5.ルート2 100万桁

1.4142135623730950488016887242096980785696718753769480731766797379907324784621070388503875343276415727350138462309122970249248360558507372126441214970999358314132226659275055927557999505011527820605714701095599716059702745345968620147285174186408891986095523292304843087143214508397626036279952514079896872533965463318088296406206152583523950547457502877599617298355752203375318570113543746034084988471603868999706990048150305440277903164542478230684929369186215805784631115966687130130156185689872372352885092648612494977154218334204285686060146824720771435854874155657069677653720226485447015858801620758474922657226002085584466521458398893944370926591800311388246468157082630100594858704003186480342194897278290641045072636881313739855256117322040245091227700226941127573627280495738108967504018369868368450725799364729060762996941380475654823728997180326802474420629269124859052181004459842150591120249441341728531478105803603371077309182869314710171111683916581726889419758716582152128229518488472089694633862891562882765952635140542267653239694617511291602408715510135150455381287560052631468017127402653969470240300517495318862925631385188163478001569369176881852378684052287837629389214300655869568685964595155501644724509836896036887323114389415576651040883914292338113206052433629485317049915771756228549741438999188021762430965206564211827316726257539594717255934637238632261482742622208671155839599926521176252698917540988159348640083457085181472231814204070426509056532333398436457865796796519267292399875366617215982578860263363617827495994219403777753681426217738799194551397231274066898329989895386728822856378697749662519966583525776198939322845344735694794962952168891485492538904755828834526096524096542889394538646625744927556381964410316979833061852019379384940057156333720548068540575867999670121372239475821426306585132217408832382947287617393647467837431960001592188807347857617252211867490424977366929207311096369721608933708661156734585334833295254675851644710757848602463600834449114818587655554286455123314219926311332517970608436559704352856410087918500760361009159465670676883605571740076756905096136719401324935605240185999105062108163597726431380605467010293569971042425105781749531057255934984451126922780344913506637568747760283162829605532422426957534529028838768446429173282770888318087025339852338122749990812371892540726475367850304821591801886167108972869229201197599880703818543332536460211082299279293072871780799888099176741774108983060800326311816427988231171543638696617029999341616148786860180455055539869131151860103863753250045581860448040750241195184305674533683613674597374423988553285179308960373898915173195874134428817842125021916951875593444387396189314549999906107587049090260883517636224749757858858368037457931157339802099986622186949922595913276423619410592100328026149874566599688874067956167391859572888642473463585886864496822386006983352642799056283165613913942557649062065186021647263033362975075697870606606856498160092718709292153132368281356988937097416504474590960537472796524477094099241238710614470543986743647338477454819100872886222149589529591187892149179833981083788278153065562315810360648675873036014502273208829351341387227684176678436905294286984908384557445794095986260742499549168028530773989382960362133539875320509199893607513906444495768456993471276364507163279154701597733548638939423257277540038260274785674172580951416307159597849818009443560379390985590168272154034581581521004936662953448827107292396602321638238266612626830502572781169451035379371568823365932297823192986064679789864092085609558142614363631004615594332550474493975933999125419532300932175304476533964706627611661753518754646209676345587386164880198848497479264045065444896910040794211816925796857563784881498986416854994916357614484047021033989215342377037233353115645944389703653166721949049351882905806307401346862641672470110653463493916407146285567980177933814424045269137066609777638784866238003392324370474115331872531906019165996455381157888413808433232105337674618121780142960928324113627525408873729051294073394794330619439569367020794295158782283493219316664111301549594698378977674344435393377099571349884078908508158923660700886581054709497904657229888808924612828160131337010290802909997456478495815456146487155163905024198579061310934587833062002622073724716766854554999049940857108099257599288932366154382719550057816251330381531465779079268685008069844284791524242754410268057563215653220618857512251130639370253629271619682512591920252160587011895967322442392674237344907646467273753479645988191498079317180024238554538860383683108007791824664627541174442500187277795181643834514634612990207633430179685543856316677235183893366670422221109391449302879638128398893117313084300421255501854985065294556377660314612559091046113847682823595924772286290426427361632645854433928772638603431498048963973633297548859256811492968361267258985738332164366634870234773026101061305072986115341299488087744731112295426527516536659117301423606265258690771982170370981046443604772267392829874152593069562063847108274082184906737233058743029709242899481739244078693752844010443990485208788519141935415129006817351703069386970590047425157655248078447362144105016200845444122255956202984725940352801906798068098300396453985685930458625260637797453559927747299064888745451242496076378010863900191058092874764720751109238605950195432281602088796215162338521612875228518025292876183257037172857406763944909825464422184654308806610580201584728406712630254593798906508168571371656685941300533197036596403376674146104956376510308366134893109478026812935573318905519705201845150399690986631525124116111925940552808564989319589834562331983683494880806171562439112866312797848371978953369015277600549805516635019785557110140555297633841275044686046476631832661165182067501204766991098721910444744032689436415959427921994423553718704299559240314091712848158543866005385713583639816309452407557009325168243441682408361979273372825215462246961533217026829950979089034594858878349439616204358422497397187113958927305092197054917176961600445580899427878880369169432894595147226722926124850696173163809410821860045286102696547576304310256027152313969482135519821409716549097319992834925674097490392297126348693414574933198041718076111963902278664075922434167762466236238913110270343304576368141128321326308582239456219598086612939996201234156176318174312420089014983848560480879864608393596492366514296812577314322914568716827621996118278269531574983802624651759054103976181287604216386134502213262727756612441133610775195557749508656360673786650623185640699122801875741785494661253275997697960597760590756489106661015838417202818530432119044657752554277543798726054881736198267581686283295260789932226683602838513512281059318591028641508157056319717315183136250243590414632122392176633982689368253150530059891547029095371932662073411234947433678846902013904978428521634144292145895582878476693946464267812219049785636355263368278051860098699248937786002398769169807656621943898544370805946433362333810587458162354756001365924352426571430834655457680023708146757325254702550747637471635067851599173693793251032682760628645914618204721486370370771926926823623334720379245964691810526139153086280291440965482563873092730426544662929045896063751918711469345361973324789572707031530930901921199199993615765003503984054067425387927527922724733566770607837911384488936261367657060263600315132952095395202854897384486256134924414708607086602676349978793420875836121947116994223848482595914304528107062601508969135303017720062717054402090669514915274597719705947695474095210287872557856880022193717743558110793930883384558648277291008629554566141306721230848740227121058686323388237413884428938155444647105755651468435702946635062893873569868688376480326519528414653517395302736120137420300986739838514321900436028982698293529399414129230580384565022707216815161941011449826301364900877048398488386090653368599054583895203185648041493272142390865164999431659207965953569430723112911629286797517156688905439322035691293324570208067194440497304943981408227829602799424541083166675921424835182723817205041039274288801556223380796147512433514731021284545944899444996000752437519570116683417447490795882099517836768023236517674972301487457742725994760962198432714835298611190272873584905217975908374197486026706053746231530039375212367867752848692195857137554269684827836317861109933680143915905974842858054516130230143979057016108898627779610750673332676048654929251399781390535882276893732204941483940135560356560442140176120605131806891989962606184831853401836237821726637580455247196266174925422852804571442048578342113228008528704205488992341278554812367615377071042544698685219911228354266349997127483660762462418207364666171283947484732804744304033441072004287271275670279567582429262719454580530026664899650795697781786219421720052371653694677041951119127046248360511302890464377511486948878496151188414719100012558838366606772084112351535588112677895715585904125762616010675131535802124273318710006358249545040995794072547989003168265123731190556682915194305370848930786919742829049038603723116099283424317122250994547150192866648787107951995180054633883844315481724635480244518030845273431000621371034625733060012349737443558180965678464641533905146569193245623531405779193698988423647183525375805257713311200797104068315492665402026046806818391437827214769063242469517128636738443139833371176159418699934662623453734523567940124168092291163609563721674528391709909146648507392051516056047378710615470216996074656930979442612146925615934256494019122989514732544715181263258368897282262833295240359700727863364604594707124174729468775705958157349962848099567839255474240448991887071069675242507745201229360810574142653234724064162141033353340551104521261750359028403745459186450472762434207177092979354010214096464502836834180407586081001407216192477179809859681115404464437285689592868319777977869346415984697451339177415379048778808300220583350467465553230285873258351570859964906867287596729503872547570879169554736691708701241333922148466851743706661548819529332272737436041082542596603039869326542235052369108595126300831846755503459758395505840356701558879777364438048182138707003440236180412002114837279422740787378933162708101362649828962927256244580539713414221451109999544582142923783881026483948233951418767468967831862868178827255582573193951815531695164501494357263106045694929670986252043393852078220762219100344692696633425908530581604497802577632544893708006267787317954852985668394869467335696300140293131419025780775816945815272529343422590519791831662164448751781696775276770913043157342564054922938187395110844166830924911159785773327363884141850737936300263921806800194982396664712313171902523703199058771977410007132407519204181221413242532729491860004200841548511547411573059872196212988541663720877522483769485974767293301868390522500148690382610848248198167593107772702648826209072384775290587650403266727584825218516231074544988758827465678094971230876614426414824157903570393312256518933356281836185405746706380618398489466284245736564564213907216305295529359284877555242754559513382771500178401655305485442285011988365575680159346450558994424849627412711869883158047691814156796185321657169645222594594712469319957116419861884797789121142681164383772384836318673186075647785369993038705466322969807567584682123028077261006969174078202479498821095473343011265454421701958523758807853480037372471187611100087719035538815731922513338424947745031188119474559536533660920641929344003507856422343292324929727084724823557671740589500126876360081245211244875643428094659313361856432414855780791931151265097295891605299303077105635245451483457209224551984890588904219806543973353757599824858037546392736537641967480626968382712920014349566748522472414548636036211584723231736998061719936421136314580711988396812957056115881246205885796650562215074820897477641770837870529242028802900440024806868125422075790594243470464489575440238736936047401308603607599174387615635296776058018334930879646627071160805073761071800221552519199379620070916138322728017731332019005978048207960758032499462238538580357347801871380284039812004681237079092457272857654510489717031023705486787933643781578074007677474215280311849815576981656151626115720204540264412993161170773312538461289367637918385370500942063060910325402584768222036768249279473400061775129526307265637853097368642000776666588993284566122465073002209562877272622278080395483403810962805764928974651843631949840261299761890046781909273709647827872435775220668465400024683307460878358765589053056942574990989039220463004714572059053712091314275886537693148040000871791384569099362998784788542177815407350517062532050951447822066725260862041079962227034808180138006610071922681402919768354884243991628098036185977193588922654858728163276905428617466323081362877649900737759932441752147677604693696223321517592645055645256384054670040452158007545437968103843558514794309229635219785228329574545727156479318504188960701280594922959218359493707458039032141043660163765095548944541902633911960741100669497780246954093656281275384963236010625846536670507651770296951303968587023679128754135880644026342382356806076407451761190883337120914157628056522379012735641935345652676296244026602282454261960342283524002050329505319085320149680451356433410343132922358969728310873956943813180943166691339052648914833287988276285256304512063761490004521864271711150897628275286714663611738982858742531721659624764332384003490049629878948700105188449411866043973910749375734952893477073963866593325543858999353799414384066242210226832851166251136834473289661321052675089379483446349303527853213012782115268594298437565174510930399249586646094238684700215355018037800018701111315193787540109149588908076473345500264098056832143811600751461827884490468124814689309743000010901984320866630922513811211159948127963678390812224378191018777994034076527406038234150532717416278674888085754101214286674663103610880018188435401823686532216877504119780765258115384173656218356750130344565959365909746900776563095156366283486399797549375638405296723283563403031591654958861122299599968682701428407239146230016173544083143643804589220554110179535135588527134798493787613379107565599541452891777015758134875768018624292222977666211542249711334173960319676390935051232094761664275347438833388869997991646383675032418632486284187846996096380827512996338173937422095347586163221630520270351703749029856852559581419295499517655258212347310819766330134175081512367752315160732088182956407263476450588757613618936187012890402679226470494967872374025813008347639756446326335496752857495370151271006944644206246175364428949860492052182321338432627533519882949208649070960592165457376909595138937899766262877086832350596409805018856981997405660054415321384073497815408094354075968156133896432084041531510243243247650635582409785346811510563238980401380381484973528744429069393443733818010901017885920564069076972639093391116136846666993180683823467403892236722925516602446859746076358290372852949715836906372909503368595118238724038656680384409859135999658830062279975291368494561705199329159949232434041372725380763684029518736981797353665709599422047510596440759070780020393623247182380413779928373967358809638954739384712895062304484473247044382339025131491385944752127927146106722526835555209310140982503241041356811888934417063480181887903852437284345041399526750839074929315594899279974020601668610106057383620343696139923705020591369122478814482197004556462960618015295726774665402522403215201062680592469294184146516926942970316447489225533568194701055860753950312574877927182201980680506551347189262650998704038723936152628091171501639839183820803710766444723112559429793084157485754971284956770768913053139151928316074937226046483741211241052740458076907749903216761531996566097430089028478792209894555140349566776329368418912928228889379139256579030617042195174642667176286007376548254894908236704904178982794694813371005437573522926259395680953716797717773842816611959931987815037440223252940166513596488398918771266667644592828072477419805118340357726301941505622270926688815100874081021630455111936897033987589916343676655245969002296639061823459922443716156818871678501955219269047700888762881701243590723842188590943230252400872836341134600247463505407631743028561032883144639525995577714162497515992886034410104753346774530437278688576119622685894813897884351225166906761879132344620772426389891117519357553675508977173608077985499293374857587940796948901185382605111362359173403913986090018722454028726512923507251346336039947797211253440796964196584329248583896153707862544624052734183729616587128099621567514167788885218201782685794750886056191761433450530724225794421504401189938032821176942753515500503593840261927124840735344805764151349209066433260871886931878391137249135429063143277314147565234427698926410729192964778315226765309633771907887021210173628892801332066553846887522709821416994745346783973061884338063688567887509348371281299459471416740210647944623047509596911213284185737450768802174200091903786114928999321369828255050439412523429387891529294488067290453371558685893911940586799267968019751929463531321204605827301365246354919747717843125514719561089448171687369595009755149090580423770550765831660455263178819159288580151410990335159992764926020916753796585654071721490272772072079533046409492679296980145647407586168417518270355419152328590131991897564442720919580664737853965474943503366098455694220541232209149476985226606686931349412846052436006261919200954559599299203576635844725208888438770109848509614553662505648222331082774877124964592394034410384880456557209153720836923704220390308166921534433655552965914773759520794595970591492130243833379570937471630364094522401198254550375439726080376366587365259895269116799601027835888111571584115744794740352868900094824133918451378059992251898473594116542190094366985029180072615270895483247691079054750239576659419788818441052018288716411670528264469474464709886880658944170090145701739592379888063120134295083414410967004600697066301139883806544103595903638542889053395979476135555393092353500102274640257399654926031871210054395169315102736251469580843669483749113385315323780426247949617769295622506132578266616587528170615484688178446049185158500223578507688444677874014750442262575101736486183263373253354192130963105322132562419461409302789335825311735548312186188185808274496642586804545788804160409610003849873310755633890347244188014704960144521546446352768745300463429370465787461230411428584139315470696445598862702341355336961468894130579524344828578813842913133400444388269456277457204464892750371889600250214810243226623247446675922220957579680398758330118809412348594105539793115016614982410947734045594477362140729819067342271221329828201893551814807116129360475393545191644885191976819894324688266584699908103487433057154252114898292494064135204869933170852436546029080065024215298598119251209628332680767252801429242638106620922006716242390535394287757500791358700376806504069329046236701998064642381662780745584542797281363649612815600633612819117180777498572128490965404563806025279792900141167180888216727623269573144529953790935999635720195691053823183323228796036615493435619556357778872038051407147028627486665772728496380606820908743374755778931220716618329099796807740695830545505816946391053802547129809501916405917729214706120537973758318816904034573730892287048764298832763431061565604142353102111260771779308733171317133834055399077148746039878634100181548943060212764145175368556781241048762789184459864887507256919070705612618906511541537434331704771073512089749664585871232326061227767648801741904170532621901129299413424068594779706484545123043270036204444603070019114504154208127286585326598625965834129193187433746814254099198919080093257152259502569757636258378542068760787533642389024535242231478116950307422996882662361894379754634314869404737054660220523658535224334918934149537318546177563908506301498059307441312721443060968681215491679993360209112463420681604642356345266992247106943380713975107656704229609060830002146456760756695447822337420301223136385365488118968676221196569610683809556811074161682888729148970892917272020316644752981556491650993296424759355530943427234735255674233588854104081625618083858967592481296758178858037431437644805102257548414551956003095448415378317598122227808362610038296219136687469906013559109879017893945095070800847019710300949634856731261765379906963665342384783947510060919802366224025837916677336598186209690123704855441788330817432241527096185839732054877747141962021020919122003541939937558489657965967774879666498337384464462884923220915966252081771094551855784919342249039112644016254035341529185960627844258497990753765035114366230126874503874841819808002173511521273105542548954456430535217441264760373988143239223799552080372563153827895767560326953415371316228684223119907173662715925216680950257599135536804114031436374928570500016182589807056873639480322361404604011480623406226830964085064565184947862087308537993315082686383455929918002956502600712905221346145142591683238499736379295324166767263660845139329127005281346342654445920288246142762177537542296561177677435268363377927727053086688871203544787678456074403451818739133581638413567183639815500757116010247023062209136180213041332617816241751224462126905137587603315297832296688192798031720614092427303623900983851487008360779814038114398492015100688229636700554973943285334706986769952794008280800408871510193767467730882920960774142894924319076599523269541480873863532377880542082237256367753706673147303496863970704898031245446088106656204930116583699242859143171957326639117940460873354170410387477676568434175416519619874924892507420893760141194424029639425417630165604729567661334499190693680733551658503150396913387483435296368054125218883032166460594553739445123752178397465350332767285694918193988259952860975698800611916256873292306230585674189853838045570809358377914628586246872311025994015876757690831677174283925303011600838846048071478361609641715594546399221829104927969229251112793795664013381991163506963539326360985956462057610408705683800302694519711248638111853378910981402240524583922160456345211221741701040567973307539584647058474754960443223342630066921057776700574771792447903388417399895395625218314754341828854229277388521031765033181685116423984842459090668564084864712227534729176002772087091119916253536523207304127403457281143076790748835435004321724871067033312039256058908763836947478428601451134482256881522505295704764411457698138038591192713356349551780841473632107768061567567942798763715596403483762844405325104334623725798115249057855454554452128459612304154962148839747200361422992055663045249896473658280189451430478607908479278319769496910731263109830485633506795521367459452740637830001391251206426019247343307523851977600345083075542671038439897795080702918698409431888452283895341047458008310255934322333268376672915092233641315967653120611587458495988481505442424328431684072867512430343206581773398533408669746044667571456675222004330063396653272711639216282843359363915970535605351461391484568462400484626935209063545366851485497344595022174912956216820534347169458903066650112239953739250769149599980731164875683223107356012908889074480041139114929364660679542826773578999601714474747822597197369102206176629747963359413820508653835366913170891009758629322982345585218809771609131415612283794230140742857517219609708392468807241064334663820378880194299968923340577439945587187721671949412173978424845551124239495108231334190095498097494411685446927126810464367629794951628949214864249196131714911299164723580230000506478446110811914449115812299764633424470996174148529445175829914157131372881744978663466979834683063377226946211202454420349057367761082493287387912706838889328012987679170081110139014998227244754594248142195036453017784199339710292780971003172800480512407455154973275048680372399013584337669127305599571328206218815992141130876955806638951579665775394244413241315371071369661381734700574482745460028185122194881094099093203083696286639456596762750124811505090895014507857953164711383535236783150519442462603033024233866607777623963532367792520543071072814179089963458476941987851049288285046330076222359001391963015771950482636735933640454911225862198229883550564611200430090520331006969844471423510531407150427637329991583440686986367533351079658921179232619884213541214952878833669486524486147483513338067666140739939721171174258077014776173413160355802526005061346050994514494808115176759222658322435066901650708586969301664407829476134100953558555025559733951011097129829414168133162909129971663939786770253895589191479403266826999918493493521145641673825912822446260474686998341002689357087169821589951314472624674435142671224348360464877244577905302925494885818976837409053632700690035935815381883280740828133022036509060649110278848197191631340902967476872679485708198499821462735902524243518033251794029613213416361860160670646726579833801692963268988520060136260127308122721574835345068943834941229354390242537575276935242785398862908394926459788524969063109016368095320411338520466963037354159339352275611976274730671323084914276213000530951932312884148955410680616740648799311628819724340996737600938360319809562292751233734195300422716752657485424748294603373865038667525655809964547552269265897588852563853292193801975692542773496925611476888086411726702213493152855142211570520058969666638052038104514692230017952607407386746595628401458292793638099004324083574265721606100589276934909467829254643104382358817121534163957942829172179362408197768819899019978733140361218579680658635836814653558955738187837879210025324208016567419832526439504211082153922017378503914351674199577152156214636359058908552855660974755528542340303264688623171663272306314113253065883613291776807543214046263688827594471614338928326902599705018230149037097799114932182970034345553862403942080577861275758494151568256422080453230079309019116615354347822117943690448501258884620286980896814654617349737831554789210426289448390506854412032720652374931405325170693575800090799417928559317281056994376439412694664934570902480722236062517133594884428904861879125690145136706459235092312563008362115495698642742822983298049518500422796155220772188169501772040152352682132562384768196467946508310757531703922608556146933191076828363656585285066867708773314799646708576262754660296271676307593189843573386709657017379322828234819216178187700704734967289663187703448331207245745902134879582560494827184614765808417211499946854803681654737055739119000597890021034377469279468790761859868970990466907028633273646321478565924562227186274617896242617308191565710953780887906210137634562553455427872498576451110514792642181602336671418980139700712972986873282822161863841631129139087937144100443787731724496829823520214297586440824917781147307608372773515153045369225956908916303290224998830272931041640064920140282253288875902793130857765623765546576499418464267103698691707059191385989330859375437465778744024340421767226124563578400296687454724507237893772604841729537531149249611862975908219854645299621591789872203301708655899813711247509633047309722806506025812936326292023721769898118542181621497036652310506492195857613634072272973464467527473852366778039742256265274288738163396279152344489475007103570432305508633073870559504709704223112376212193195753906049935667463010742768459394995465955497215492094314313600228526551330882682568446783672070869302727333326543140936959799774757251648656093889015974966204772135307231257763956628276229011536678104435642683552059590327320411019415910623132249801210751416193214421041685387209163497848175621786177622288901058671479941060157763509364845410154720035611054230018763937194623790529515391264554194110993008012824631428083660358654985943824157412766150195565964774712311455219886781344842443640738545283514096471263474269603706175610653882758679386358840853677488804217287683154379103824027241641035107695806918605490613362946687412931799165577747756648524173614696709956897316255513150715263773191317175169894978324016868714883136697811581823263858229726978780242878221212956988162336800338798433521833226807674871764314087513247462340523498791848476682682956164389287940389677064787672835881096606481625315824243859159435782345293357976186094427931333034229636773288211480125160663243622928929655705241457292581907333551590230871119570269023870195544559723394365812869031143294581250142518845693967768351495544304760263639819242301130991366073869109948189167016589185352246101655243991230341546915096506133375745364431987592073348238390436181452300041628562401789896618729932433592378912792566089494158767347055514907207076116717309650735136469265388838630199300305411301542202978734832296837173622891653295318271799773418424230735005604987063161378837005471741263579607944053017421388274666841182223432316941260940148952498752673948639048907642127211697117220013760135904558191751687797176186602934972507103882743611570141066445781051001350673506912848171032491332955147210296826657293583776007765852714067357182341860915761909790748526270619609743278397440621952813718689011786708690157900155050619223605714457397060418587439963188225773545870913462797275607689128567486103705909806113218760450487421727969853121605688949342243240782283052382713440629583691719766971842758051972187195775893490824630361762171012285871913616378478571967611839247982544888914466805290578520986447819893689290787324805017143976065488335068891161948097295523959608412626285603427437758010581323457246488296608572165927415635628149641008049542568175679647680105488894332678010486404657242916975240245985799432310202769419861945456705081404486159124461095495339850361818922674700447241199222808664155383389965178403923279196380329340906520064147404766509177115909907080882041043461348366188743091235148789560038095941867919673166932191210478342089473184348857132856361440803440373867374794993907652259630023378072562010816728437740947482044301637221319539280890723654306664009282769851033832167983309404060995752305990494712319398719599051631265725722617896465674770425387132510643530974583230970841073311898120144764645779142357324887643197112582710297987526334284335579535699225650579490923086693770027906663645220373145157496561481626185885285668106402047201424332222138980823352434000262572181049237403429335208540885331814541802877781254630019365579491484427999530294411471751670818864442167070233916887834280218966732882165158030651159881691561370913180450124812618333980574510202835792555363546011881157541595471149228708473358850689427085178240117385975586303933663329301436688997421023173457966585157115595919695338704075207973733306288085268431249174317279303616983196049760905630177859597319841771476321759314925404713981812344083418690607331073068702281330054516681370799908798908963195462023439931872479956437123257674189166316415203052781940695740480894377472085451996957462535350882404561852559571080217435971267050694025464211532739140434817493582344460288491903529717034361862714965822337717810421989353351063663165117445016563816519240496156251507908611235816992916132394934719059317347770401368466280509806833753701877215170517889103548221367447445071479854325892653971791541822006746515208539698698557357884979377970446007658652551169634245157042829345520146999556486188964403135240958815914747203002141384683644196620768177233103179178870528845981932518711059913503525301798487722855793286487475101193954051503376152790104910807598042286914003933190282633495472953234206019278094937998475652709841591073852338841807814237705369901348716074321131488509454673936274879765629422438173769075630418891992860113856457308801886133163292409749710007084635194820791845407663433510275700401161940116227161039065726674056722560095594289437318647382470501304316566661304514646059371123355517179579737224117120687020635352191520265278490274075110262653430433157544368810706128378128447325010521535180107724452774583857307836482240188003226162032329072083298097693836686858000699735187473972029591946690234506436755781023849929697274553414183060934498993121577722419060268006235706742692497722261207437890584761110602576661587455868756225825500357340899237490420880992681826271485046403102990438670497613047782813172983754347584685622855153168957774694638700640377549262437037101290954327054331603337282897822554754444442270075597793743712978253655635992289769581596616805701963146682804196937626574953203675839501672507155707565000626907076167904229656059527103605667419120393584811542798887940655275589587445527240924981267747274714523089388434180073890087243377596470098193649552254507344155227520984329340191417154149833092888100636942745472812807892294024867233361013697563728408199226637618546822365193617634976478451374737566169676288557891706670822511710109432328821940163517528793887363495462611366056265392198770150441806466447167841704841030125005778440940062987714481121875342325588198757786521289254703753355233263969256048851581997712443529685525012576800575465133654716053029919282591302156103090050599448735907857303834955713509306631531805179311589618677625470877547115908813730363455720618577151241051502735643895563727276609900121463749378365699843697242034171875418009866482131836129686725167614962966645646693487785492367759862720157628416922510624565533943749174131185809226857138155821658944500202706375824312115684562967095555271529098565312333672562403364419796450637365225208236427084845028223074740849930753762921871360833515951939202191861926711937013581252124848227919522161514397190873705058300125943547914250503856428918542436153167130534758489799395103466871387622623623725385486775569001746754378279466297393867738749456400431962065816959970832070776650321208556353741575758825583129297837718215123197859910442086339629273076460885939930328734306610307789892345345331962972446873155028587475401077041195516103170875711629214466355725497380129923886377056894155761254670978243799133333779648737360121612139029415076294419703112200041440896563608531661556852295230732916130184152208112712112277341449799704226751145566895102808128005826349973418894179723636605439077775016479075495142801258176469623641170336098655604759612479255386249957142822929556796927462608847324610363220750236694712555665528693719752296941077821627762145719854675287819145192030811645429188368927388726190237757955877284911783550641817754135053059979169097939697924565400879108145513984583967661455772456893955531507394666965350265099668502714430512629310979980795203532996430024446342802402747368430767969533194918042344568101563119928948343984604686898727422421778149493886050147548843799709397349818529135253383014531518287960864599523269882833471002364018382917252783412737386406662458021487277564289722995440605975135770019869916284725549700160711820245789679681585646573142622248775436694765194636938365065667893430623923266682751112757724303349413356513691991055592413782144756881857817800771865487801842221493223906182413560177994219991753876511615785766151551010278024628057413162337266428126139001562126626192230037121523337940766072818119973978412487807862804729841729096179119504900545274788428914746834379395374097800723955055142923905245349491369602203139175310921173983849274733436320309509118225555615991469287611246630476563364050521360428470145364228385272067558789690790405386115281275577337547198322032330989761192764007598728046318221149873142920081367034910867265693969157425343450702135790000700316968863680273005957635752391601149550021178710425871971288092223059057434578858610124824766473038585611103177984514356594162396825066122207347044336596905714951639392907241889045971565043405114808248102157054372514336420482230446175082136556694682188453972730626390361218318903627539765601369139700528415697348549190350234904516025853643793854788176396559179638034862289387135330961550874185741074610968818066675350705601826447151897479846866039110027626803807308177854783850966362450472713878970254053642999642113142336198321997954091365760003933750798615180001756435804783290332834718435612667087109548663630432258663437934547800517800117561660144921765280840101014403697754597224437682789442925492081679677646471972172575451477970752118630984245100878601326514316489877999478549438735532543790247867280258483615104026944424551563236011393684224625098515320994764704485605126259939137091897058523862356375626928552310818963268806752894936685997931846041342376844403369018492274688560839119561696958764012904305116281278217052069724527795495040957616193335988598572277102102887149373490806249597738391376663392283301840678753791620210126471117740309770879302221089468839372954818939098544377085014183581829918083057745150647762604505419947747821584642813183499717921583192055911284140486161452693659558618554648444935646889077814781699581230112189652593516831331121423404536463882113503288969875248405716044910770867778021781826131363833993901635774567565133298029547982761119864321163587440140654629935618407100215775681642995714064012959069017684333276430632320852170853557358865692968778875896454821738843355409031662060513044349393757112279655275485741207647986150240765714658198443662191183825626485205643365746901350425809857667781240520192901147130997104921953114837508744572154365338405792774262919320458013137172020407124486631899947213896233765458998373627615873578158536033142270844597928050424006934598430426300836629685326178640457218731924466996386964545866800081345073365948030124232623121337863751620431111341162382111197830695519589140271878765926496016168578884762220747615320771939529602251402062408217328433783935142338380176783942522834838854342092240771056109589184573768385285756152667323588859209474749364317856507055312986679911931759986589920928919217816175752021136527861147678257518398029214082039000127607289768586008117523198022115351229408765742977463686709303015333540425058764197105086863265258023334362330493915512016776713266592748880724796461895063457142675690031076577924037401837936507841351136255895490812622944168872866145839837620864080410509153653122798204347981903510116881290149529812782934061335597207838718328340881960159299992991210960330733737121690246416364463048748819684645647570946416896884608714095991195199732549657264064838439225722584125119187699396229314532016410950889638520649157993114854022805815502411792615598873255848785131726051443024257260694758824364812595955915404653023629840789963538077076509485585161353541467925701057499631399869123719789042654791562426140100079948238324894177827722718827406528362913920182332815788581450335185223185388744215088886691012048158437054049204691110274001702784087027064857998449781587597693058054394587478054483192442019774444921017008841840242936113195373326188852341424174062136823571803739881551856959424973627344128087459224574876824184392228166692275415948550080494513822687267903628502416560659828051077414606405000548487848781941824232148466781223116905632302817222628575759463075935324772659420605429605239886928573747893079168988370078664467390505766538053297099778731169137201900276592261885341674869152033639485876467762884926940994952887159087806278069878029061394337476000483614534960328241898902820945207165247786009249485871108860657830349068236115183174587028662047035907000718182229896176161045205521220830504294828027866455473330414182949181796474078722274094471286559091077023579387041934396571176398188959594479219629247384023841717040156006995703565457504501329338678787135164303162436440197892815031937480121719223282798949026044352122021013187614667368047033326296619586154492763352487257968430144013662228087242188799103656309680288669555722665160482596191386140743410541767950570470955315652767404783244592151413586819744173561159834583208408434490775081425580385576115299201479982310609480654957839810779106996852653439537079819131132382693111178709750863180461747154466623534975956123440380686301079886276738138291077733592398478105480930369833513466660110731383250528976686877459209358381764716564126415177273196529891221736995697056210322450385837543452771878315467650550446857749319556472403741180602851923562047109258093647076638455028328067550330204586249567759404414265253694149499720828999945842683770717912151931196093401242290164858819749634741190477400888535112417091575925912271912200023595038605090423432461050946225933727262134139384367536469275995954105298400010884132644471747645201232827362175898921411939999469484413695143696197638427332562852325292195189891728452431238522542977108925087603397803704853344877955831559366732103471889732998453880119473881336557252429751934428700720014488596712955368041274823059346118997178806917385446714577001153696123161805950978178341533990013984814553540993774049924269951968618326992699463255371558692287618605060605070618407340005636752753348860367420234751563736897038867431082098669940496905026694792314736407871158581055060384625155632352632402825455648345993318558766122976698145674195444510690686641152836191637491422962584567402516782933244457139355438483629520002216229737284723807839531254769532969784122467647668977505037787079545850994657347661059592826484791621272651473337149747860687248746564684579965168238180474862086393997021143840036240312769531501345325318657440819407281362545257356887722602317602444205453783665047217356400577125083009541394903863515749564338051732578699647893272997194960262645033598878417703573303000234320654916503660832138193352887801404433187714611296129994959743894739563534489510494784897683129617344965065259684060892493476477089942072820270146148719698074132915005681971600978721303323093644911177819347440902152719440173702332500773970247069591851387676514475453759079646678933016877597214891903044162235645781971948822152654074838412178549179515242948827840201210770816558501913982872527656759806989451550024229317490320650262702183681165804484476450897317414136714592083261735404012367008285141424739892855067538334310775306655263168437904199442474178093026021000317329453940851262790887632294331938003422657646448410218964677355701781370360619375483352585990498838703303841963767954484836791400180381637472848168007676647549403949723968653902247940242154045389002702761696728887124278579479523840375177731466083373394630238767293551754451497721243855927466376736943939648570661929808637995671074401258502696563045893078788053243886667303814075497341171965604222028796337791821022880532096736815097518995208911065998669888526353083761930215746890115376686089967947040941806265655013528687408159938861203220301115940611824463993004826560945611703591077627962533041737481278790518083618546052985558962923200090073054258583868325685753395132591078049242117680415248313518874716047665886696916430810481939661393360238906194759755994977485108758667961540758572781419372162031118872491060558640461609998177117206728819948075157692716289296430078629346014467144185600089314808445009596723103853041615049868044806165839797168869417393646784107674404486877969012007032100428273744747962118353262324320473580788806327282315854970470827249718772147452155040085942604045109120883734325291529265324795960425731385635886832280701400302640806128800600088986419163390599824486821871909649398489923383014947101750804969268888243791786706157593446494426164725718662382876139908696871560730828565212805957184798795601831197738302705599231788234403845146023540722630070457872485269849089415260947595830337752239347678752741044204370656126093714137265498804706738249393123791186525951246835828044773509945807292239311309727939873923618126319430964818985368599448200111532618422290662747265405917736257054337610853812474422004912496327331869587600965689311545323592213888768288245458065167535844727019592819348055063729552313390331134076734742341539035779578290745238910940129926798717984116986234195481830570206265822484678524225243690201357975765966237051951998310598112533044194370170708540951779720710031903210254539840099570709425034951507468568259804881471790131954374932943997610980253682386969119211860152996765131786348129537319897240933067565609559247411435219606706905569205361044842447693842411073401142783167003020030157202292510486932350616887879889693016750602746460040803750567565358033380661074589900202333737402990701899020286057637512326472186424125374024349108928149660981678088535652539378500547619678255134519302429379336581191018869463638494450122943963593843983708812175636529967617760754319259549757181963524330730477545335284961747985154525680608059761652232673516453192503261856376179554319316605136671690560271379830548687378386149582306474057079000550956140941488466468925167549020880566248485045482789243760710696100681780337017185337794054569677260824770460813309352748103701270294773274892749676221632671858847723680744166201266479173969771669437798597006826873645386170044902357592863753035701795403754916731649601332586868744575670318965756758128478162731818449562027427534711493645425733276814324389394847041701216147439164342957035174550064923392731897531854422164171299694252280232930044425895777067229979438282423015652758999050889012709724917257951796034300279087595369363749423157881390992432104596336572861894100397689539625045793097217648008391806433416842345595960636051407640895462045538940145328202278431586048556523492181149818755384245927281309680573529074434238642206736990524998691546326935925892108869764363665395304331693696401772869937471319914219466699018819669792950735262617866098057884586476483082271411982204457487552008295967208395369651934730481452865444941028203353655824206922079114652126512379567325304406442379543348217725964010450405521529590523711128397461803488849033903261962295634058432172662590918724380437455539372795420118161642964069912361389114670508400459697696403741149670733801358046940853657779263093087979213646549850383868378411454158437699106127814756402920115846953068139869845322896101687932634783388768896939535265794273987795474707827354512094870210615857573511602368001280343705572556256281363190121796812229292691189180211417209277529969265604100823311934472197666118413736995207824595911690689901930770920699488144034361405074582968281258752782726399455138641362920808716881307068633383308545478696055836034327404712994170828645179042564433509448476457431123170481780364520770240877473374926310431750786013316936713012735701085976924721666573430104443390579774265692055847804098181084077333361400205163339811243195848178198613395238039749932769835902219697046599303645511096982361368457149681409307152631849378259981167194607749171593331736955186910401623812744787814446790995984509901053973220330122354397452852806408067098883868408351718184902111978975948367250968429392800476494546537946975983859111398233901221938668914920108153577655224985657030940585193956819971716913535798408442670865407506989888338481665595489766925006714758544033539618451644357487408115325880692324094715554442231033795113769567046232793922500077060251195800194298864421164216203293140770529395453925069181014750252623128759383990698359456990848167384093955059249406058484470183722467320659109290945366394074141053343040514502750499462644329951627531939749277236991857180243250799244045555336978233413544326413425602063534300103899816042902921755320543225046500291943416861404988785866881192070395289531934433348717682417009989628593525424024107011846217659417522681368308188317652004873857580296610179710895491275709470464897591296390072546671883421476051301678264034091471201256025988375132433358441316971717674156298594784580778851144642550591602727005681921113662696628125535583403316878555469027746585733590816615421952513661743120063293794206013065430175825982394689564946481165450553906244627254065254794795202197014187800429113578500414996903535046288141803055144704499175031501956600588112127833344967473201244480323448024153937681096744824582413120485907926814145974066673446850306102774783160416556876227852468750588825171361852564847224279604285954702104738132988579645354053576036973158893684191653690320230573683608670042679093624237967845317563212051492251376478156174169456104165412438375948739909315927447598323505973749567681311054718472793541665153955794820362896787734857976297545025441801559358908543898442226030486401243180396383788852767733701920629028454515970255812025043610060011125319444268790167726373227858416007199339131855994090743107954185932621994638931760012279905378934192650360136816054685643295503601957337999016863389975288937272342157545015704697697202051521352937362952429688827481412520481166507085136929208037956325142566908780256343234295874334038821361674967864041557674944676026052820412892879628482857587523410718055935703665304323491312090795941063570084350342194226276494783656407869698085545420817401207858828848210566140217302735522770668885007810411215480461614178499741653525049361357947766227847159861247647600472289601309415099091662467221849188974344671215974372233254992960497707263021391730654417298027959803490840839686891586176939958580347407098605528534254037507350962928456037058606868404951942318169717076155671045845172413619222026430537540284431191938280483365319214933209220725472825065804042521016967359626504966510734195867456887967174884182139326171165793629313370387756521589087924527623587342024254231401524493346031622783082427011737851453990421333347225086770167243572991226528039387257124032309222295379682964642162127852153796011366273030940788449589057703566527792938063646821361177692949519022001346739198097790273003482861198134845463779127723892866141978520302716583638921538903853664948761237706457032302558028619295867235032826276888977261012657477494944808265711747239747566280525518589825672298259283222313873588459157106065856948550588358744321690464548886033413348131066118488250000701606405133755231889537465046094799207300082263935640931044279574906637801196453960794266006269733429252461764386004407217669508649692683910010884208965210974673506346859622655832839125235456452729877662007622203714877325370704001555288259701022752801596943408996250679537235477539996959101123697585691772029656736106129758080507738874803378381619044645006748305613803852782136034745596011810127885279555848742099570997532337998426996954892090174196616941824986930484000101744767276546513339657430642198365336599628086516296860350015897647564510877620726829637388670207028515396419092401614282365516240296506535725876651924647115358108712955393398540699410330023306345798553106552368966113255923134596483291185676723039876588976877497018479899760512188132346326165330263812386365977796740332181966505409612370632937163937970982730985807102325720127774663500897599751048806023835276507737923092944178053333227277965774311985840122566824188021920896283199639300360384111467133696976928839344849126026434890656562258660577543050872909959142113234247415745217210997264898073688901701324718883512120882963963706121477926612300550517102984556687929863820630160989731040063376708390805125450369014938043791082485082815944360135847458409296255871518412176344101973200445537191292154888271603033171007058880968600777417400455334480007907611334720819692352736407132385274587098196726475975122369254394424775988902920962240003689592834273016808294810822831019859702823763908002086912033595889718026402084719243016935473303654146189624003170811373922308560167350562629241464628933862050330552200979538959383536318097955997708688363570126870314531980181206254516410065118121690833521506794941645173040395957204680026729505890255151418654661138406568213727380092844267258927761475821432159083838108325688200027771555348943747671302251419506010389213896395669029313148892399142685841599917428266827305403977451428318952646229366714484495738640291467612297750018104617279590650657565133276381016619047817586644566576952148650187685610264254197311264100545329300683976747073133363591844291314229894108034435360656456635829404850487331709823240172711447489727703595681906320291182104232616505955657821333235466544828843590617666057905886142488133463577650590414668928857764403291770424617153919437978562515807951484779669474821402330746784641397846628354250386235486309926434804102944456735296987604609063817809653069826903867344408835380167199393689207794046857518381512365447286840167040270758845473725619532434134485260990355710206505867908519137971586214495398498402350041123635368078381302750691815461735738247624757608321009623636855869762977870095345565871397398632446309132942042736962425350234878975343551932814785658361264832498092196522516948226659831115983502291691319168500767272203713642274079617997881037120482859600314332684314168446961258365213703499617029470673383529492193843255632077859650145932175930499231573581117162029901810116080291259736532699748993578117890926453937695106960835636964666908632133261369418802954442725957036758427803349634401574136767064815209147423378181013304209477479603031281914245492488931706073435123341575415823991861915009487681270693664076932568487035256589626194849271556671689039365798226017000651861844156593812177985717355804409156075986829157259752227205393440982101817789122843068592282949069589653369796636933509675093566416810053010218058991844283084544177516147468041428961544543952329090105800093094365259910801197140023518394513396121349641381946888980019761200714423284974551915971352136717259079743100799256777862693105827705007927328057219130264258627625438226447256398317579672160608737722707000211383634470426836275780864913835914402751480434592898122034547973385301745180364729483484180893408909754492306224183962125687078152848871559519929491655770428252192963628350056233295675340984337759820430551727471439465633616787527407428762750431745454457020402401252976164436649771893311823574438586583115314899505808029502067644353594485116812791408139966578732298849318213999238289018453372945652410348441434556407827131462559475948024849358397924242341648181701621085629510856860862854488298064661183419365886457632109904168712029069324966634820415991689866437980848440031413423221721816588472601324356712558524510581693072846569177314291305312477189440396949896369974477897648609233072266451704562537181861273035840595451636648956104373300737712722792001565679953780312472059742971314129812594167703085271810057454304123955875464065960326911946097951513448828080847313734544451122987393090658853204458961489329057930452158175223990889528793877553188106996587993204339705348998986982087673749432658364997215448552677499657696779353282746956513157735420665082981806885819351151272338270936915963092626219846068117989951037772265383401890711111988867376398054469146749241853019378628912764358199547234052453122115015587142011411374972171926059633275477219118436855933995321993692122068219052716822095132194104553921005906743148571423144596303171710005924264004820075398286689754117734731085931393315018379984922641585469514666941537005433593796461143682055312126651162727692102387308636872620555056729294175313712034779625567845049020940257675630584297124679994304462305910173994192049501943426578201385854063888319578434163691881222433892383511437432883462883595907460577093781626611997342538515516976845985028460355924847783918179869129025446416990685428988369319611820644335057368707024281107021668172609320522435330267075330569203332144651770638887253973735002715832329020543641761557879085806111808583975848034858108796594902028440332698850788850410604672230917125477633977136857230612434938985699150256722605084129723699970048392506065620409189695263786967879803920141504828737905887625657805500052429062734639623756230546791186200016356041989949795626243092720912329923575466535776989381703079170253241509891565875027238224940862156000769560611069741126894968554710425651673417186059523844231724877377084623877721935512792005988923699722841500482610432480774786559920699753975746365037944496983631750873754505132472644874827536230606079661522867469725935675153815751495225657599421353878330715213388381287838596037372995200109160533583875276449747619863581621253122815018129059839530148245254145574545262127381885733231339284639793564081420269729234901283920258090514912618390906750618845319753370206406122943044442758050647791597493365734015339263976276739633362483322935744401188083111694414879316900697748885393537311971733089583966445515230348245081242841627931494543223205893191788683058699595031220355252145614461188442169245705154832939161261219998275052503305171366608942296293255619945879443903189766309448455165753456256105795921957555359998441224232884314397725555958907552584226814519448694512285358663934964649098196986520872113445009148281457558896903663268049131667566111853210320177805664342025323463114769427879123138663541738735869573361867860645304827579405181477872073398079262030087268701511853615188168418795676731617434116506188815262474576233473830652344600733726228171628892185389951283704231099726832482404689760712610772927673866748536052121083544264424083467489072612198320813136625128579209379349447984214552980992310200945678628515943352641373642988620518419904448524221430654756041892908368828175977533710879452379170489687389963754793010585835172162411226776712816184744797544675782426325662088509939746700673107641466803593880997829686113982143375452054224394455515224552411056742885069938844911618051341338082989463119569447115919178977868408695885361336146527206843346712801595432484005956746431602133261804902254657602752851258884732021328612246580728483709911817719811773403031426485356570075858771919282402433018024448942578482779944695929559722124686067773104118884920334593870423153518023312228985835825570094218328111558982401209927111698284398706944918607585253268227202446492889602729069181724346832639982371358042621246086461059718333990048700475041870496511020493535511469207023282048589042226899632951558786733716744567250759453855233688913964583988114356965079275107257281829764258785749466611879578974777334633593885187835534331579534262954798672435808781701369543041199621598530392188256376874633299673717884953240628946913889665400486312210381412366007866704528294561530739712384090584763012937312644259673745168454523282008773190861606616271104375700363753673287387457040863711790281599999873446044400209637492980307952133439651092592285975378753804199090126922508374912552078612628829964493775148661308788030494559367121811952027914598237442990214066967678758261784857116370525876411017960190069423464105233600671725615398987065067778754696715036601334187186975008674356777142058842287072890477013587751344553726974710256893593773887124243541246828656182201589500573631487470845946145918615162037729287750443524204805449123010668298046926130094812295766751972773606190902617796658699006909766421389875762438801429139484763447968088815601346682124774340541487782563092648473503800575923233140044874294870719979705193242255656045511091823454935700077035565318459784468147965138218115307726305488752885084251997308380549931262272877356773415628399881469811212593946259466798569049551413395063484292114082029588551667216821080564298245324207780699856528831113283313105423047597826912011213851120672500872789053347204191642846823949056926061337253510590190971168537011742349556211827112742555700022702113375156849487386854047616041138270629785480152691116348168685282562314690982263659384134633444245444171704975597607839773388852552457161217007807956310666737630585344071914419759822295902836867509851881258337629363683665510998461565760457789663513733822674582296800171795937627401806167784902286116017064064847070438886436602221558180176298784121234539270109320057755406705175741482554687565138497808846429901514413955136600628113485654254210687663936392587950136235304439716895383783140839391077509927909304861533640183984476834640253857687815201939752103253627594811855788996527273436745764555848458477735005842599763092547561143209824753436091481611774006059223825527519256633348828676747120784622837671010162369029436466046792250758536810600328446711188370760014005975849373630863654333741977367755246992586530502773502666067141915566668646878865798222090189527883331670124261697490943007737299523804441494949090278353108664448923772137490068192050314176278658721555948364983867336045039915322558971903192823945475847971318704837628351041325911059427275780767619084740061138803007285160895891924096067791122362306539620512979347521229589961764351693534945300471531848636684132438940095253986326520044771178924283201037798653472199045728454158518159840872861693013221494059219286879970979419002137531003258316664068467022616028659003864356255053547960719371366172732287964570140250993050279146425178616834860501298537048289185601677357776054977918586432126576532854221674586247820858029502512745489887621701578417986064809125258689880024112785222192162068347169316756264167414289405287129458084848157356489635507657892427024622932995829882391184588896203324279269477664825498204052593775196216529901268728734439090539366787590081114846472765877896976100319210269910132162062301012710045371083150638065635340568681262174115849339398477967994948521874968227422723906588455097783877554699570618012485665729931806079393161804359009347873336456282811286843127064221111488812324277047497437527979413888105075124775700543972794338828801303865815140172361378687501563559353615878104933384615806387257121693321983303131412733546547559823902593587877522905026873077701209078485266594613816513423351252932681789229723762157033945074217211595658737759824570525977916214918557876911508147327312575422747161655592484184842005625540213971992969941053902136481835014852913121891424936718303772420865713793625397625519597636158798322844373997357370356219297593867608375288539267280921863971750963604378110390771663138879953291831958949385922443203860685237945672032888003768669511893357847151657089703741030945086774971234935183476741378130121760427899365338536330371747799023255937310374797457884886705351914855496977403274368623829530490199277539629589093182023949405653634887637203041965443859987526787138414954684265289471620317083400036608826324009168944655531719537876534741119669664145039337663273022670497547035100982409230193423882938232147972297058261305081557518190626385067224341422002236244316687167144039503432143823883557088057336724805709564329970545677799327598711558653323288921565324814720261799370076976486359291853435002067636323139456947225139330769377498300753416939815966644620500913645446488833444141314552021266080747179803414725149231989737306203672375417022536593464041888046209337465581894287471076107615179014654270581140373763583598308878773919638189029751464541547507518095416232143083811067263490569633598104404585108904360087526958418208072592527621453444569729259187580226030849945118767846551358390813469785827939550861364203028683618534357428971306494816456517216609361660827809028761383265584227133303099910750459526790038051658825192945961749929757064993025502122226550389388666936111027054329119601081699282383329051233594538756062341259761631719241646217107796923478304191894587056232420546617002154080579868302319460379844552246917524750145021126829317244453165402226261775921542670332909403493148966654007655730238445952940851114827279003853411956057854877165354975387731149283095530706324970232586873207074139142949914726976109660468788723341432309957169100477941192005743877857653029103793689140307619712004478181786973492407879103723224392454928811078543975498371864102365049117614464077374892303450348837494023509384012173014909671418997856055063700329516054601472207383944013497232842950684192960911396491806168737927113664481040610405257586205327060036283922881916674708525626673039493848468767015715461156482490717013890041494193962556246462227078200734043324672236046243714461142356716689910569421707637189094292922456021875528657514688363583494305503287634446254482099543250400988046025068669700332694633145583171527961976246208001895426334430564414481721536790138970516434914431287337628196396949016893462816990167358629371844462871864444801699854670980385420478216385743947548191023469484254860166330198087118368729800561059245542072886772323957316861085916483932358548407615833949210922370242209630511302368743532847642153127218710813030665385474424511302057281812397607654219548837224165106784670512829447287500338037067982915293373958284880238788249306754639273720996578011194574919458952068732234652449879917973192366052633276456286453991286097920296146906279602583066802496315703824003929991103013510620070289227683167238680144167141831320918630718166845362795085240149343602155340445944265896704648868928622294577432714505480588457283111394268092530801058452759639910355727390964428392869963855879450627209202566135916987108392839080523486939292282994029709677483847591101613412920657066601971529821090011247223910593065846220888149704775321413124375059070994158311933311488449259036698763968383954306900316139574134564273113928406980734999841782873685550085645104275588430911486477777812954186477139332959577065984829045952284387251043960330603029602325923025086282857327800038269846181052930107467354117408142105897332198808699106661388725052310210346916321950507024036878482549405294160978965392437866213867374882384561422627213144635561205703665806515405901640080526268931684168593759616140782112028922657160008809764265096227310886484356188161895857684492746667766330455640943232341149337675498562237283475249285210149588154434591495176730214842495387174381845900798564599968122468839668259995058693633867005719566979199644091098932924558853238401014987528993029089655811615333631749071670874317500776218214285669859298286729938260715713221302303139343518168342349825196315234693398860490189905687610636274315129009437987678887776366231339651111283074354447118981436044592782669213820877967122544113185764922771315841409406619911163556483467410191530645371608572275660923081302055830489187128110473891267106543160219527500516557140323932589135206415275411356171073060985553921331785384767727496244936707655750133576329719344918342528714658072757771118420584749302827694605919603066319791033931255662717949236115702003604658471082597240864139798937378721261392473728527863678298906919790872263276463896826110524478312962338137276137380194776891643111097101623483722459492546552411065184008646414652322467936257381807801436491053882101118129356704183199360712062768163442581576077393896003866979218827359632036300741908728774164905652879511206425995928801915064324365030609242444851923878819203469821596262857413509936020389287402126816050761512986249075663281746356538274932731870312868017769391387254113387624659550014381450170998932671488962205692380238556657324807108864802749098987135521145473436564744524080651454795588216783331642208934082550715993213000244634442817477858930427383500555314205237593879256551591015659704346050785961779897469440087411377217936933992421526648879603160317966626506206142638185691394039606064388375935858378463990441062704209733701602731308449382771102530744974243452381626587997919332477971361468255345095121891581935089936535864865157379885616365304201400871315376311759818785842494677100137846607706151279701090048172636646024123239042650278833906579008049863477266407405067247547573344368117096051815389910907262337088547565354893812835431464156212438324395941339186775437445354268995609915418939065874871334520440107206269319781879322293198089075019008013815769819166508641104389385255484700672151581525092231928543671062640730495505824326271256703634364762106669935854616067417372529671275660797509529615926096120354970769357084816301215035832988013792224455776597734421742697621885420209265661782766529872428262916534934378544272322475531311966239439724391957484654404608698820473054867274019570385267689352748142002115676830238550999426678590782385606010491526874137525778293785031424510534511431032374560145056059086797228200648222403981440260476164691363400441805373308919517231509982810369515597926732505529462119278728183910936203809933999283857980309888346558800156727116410917154610430758134772510668038058934798964182026627218885295272881736879948536581397633344537431277774357829553517547822562312639990869205929775270376103945382624858333023293065917836116119024875524186335328454045130848968387693636827389672560221196408321221693801474898703597371652888587086495348748766880006809609874782238544009509883409161540636762250494156126329519263134573203663622717828917597040030424418772834965416287159372132631975620808318647207226521754947436756635803894716635981326906931646801836233003484094210158268295153001966407338849213705893859609200842389996924917669201150067918046533762559389178422015659755312368527871271070962821136560367634648332331128413724245316100181824544158850024390673112370786899675212970675041162786200416865311322548588398440967654056300915033722755379566574974163794734922486144211356137261620405459650594808449381284113204848633711192201324064783708139261194594869273106468379217729576075311289150238706591658277045634035628787325571215939879725009603645512870234793741645714504698048089991734577889599026771746706321184944036870684107564734453015108067508419942032239103756751209588737435923721913108839791570550994360314281715562897171420014423351400761441651875811121951057769749660332928207121257415649531570867089698105436525844918647327304122603186693473481407128343277073204639505031038441250130676583505943728936447590117715518706036550342721661448638756629511546235401878714626634189846375820626477491175621127356844678074424043275567119168273446469411404778258055138031130536065567527554103333041962127110621035417589220644787939252221159714574974915567414089741732988899058336436805825620316272148526835067188378604000863892589033850283743078871371081664191050940051524132071826988755924805495135101967896696463397256047512935080213935397920129771889473544291189041480086363440225096369442363934896189800464089835766212291548935877092733510851138612661429992464243590597893144210322098288569705833635601234099214534795783230133759681041465266015210093927435593227952442553013703620415610042419598608406139270335410735434006252045633299892805430614838823536534252358071003893231605854691630761985109515287052387531861268385072392998741553809306851534551552533284184966102761914675040714631351705305288035419425560303067011913004471358675464496475415497508503815544384030856160117081505346878218400480551805444179808696573397351735646390878976087299733868703870385069176289928961332415738546163320553537003503052899958618151442677115164286428357869657428895568599889992883611411929421000790621865240492339437145108376424233854265824400866981470086570759997412336403870346002237757482120509305874636318768011968144314663880616024056632473777168572740211560895636420841168522765674964292893977414662394104754511467555736790695411864644115114949025888914750145249954729418383940109618809637159569650704554780224014378686636939548110121442467493620785935691997710075325239021402663221366377517772617172568214133836899846027950384239563984348431109223848746741356389009972324997968078363652965442721364058282946918187063308329281662632216019235403217627253506032940597704393617742542690045382334436298972505667736513346008337071149974094079613541963068818390670916760034097941624949803118708218586401443752663808453178309511804328729468381882554208375454770168299455298243415031427128586402927945841782582203160882958025363372386923569989472675781207466294130465544026115987505645866914010183205266254946208836286946514703878374197051951547125339451025034241314463031428262941350053469608147097715390093570731591291626153877912639061169689542581722796592299896766763688213577202873456201910996509903446644925661788661368542829353394547736717371698953124196639226668363226490423070579161215363474835676531612521164201095143707330520742593996022025067676218897268895383049089638398106243214119257581660823172555957207878496937505360452338798489113004693412285896535817462433856862952999260259195004861004834957506523543305161519907328141072464458372617812478675798778172194318631564793028721981651825359493114454382883773600636449400987513542161843878596687480547170246937122320365555634956670660570469697908146493943488902944725223328275937526756816988835367125924611981005059503089253010711412663511581601008152544845279227582714417820005900070728921663420746939972765684933591491176082584138788540214124263905594442631332252838209385520250330204467781500586286976852338399552796544823790414209557630452177690632964170059792606934950800980422944490177054155555028950080005113498937937028554125836442797306669129447837212667369652353414207415673580888986512657739050101445243805549870948581445299253988185297483166424330913536302804451211361180987168443149654766681709386009018635864558890618814573660419543577275712739703110378243253249503745589686030354690598045800905248052194751520652219263580967819876566528951863094400132088571842769425153092667310354294661072422642012417328124982734024471508893831097993799104191823362760421232957120966489800441958144366626135667883844511635641210502634991212373097510465036719484795801815756801864569611752860748748706853045846984366064462651375659406794170630353795190395608929318799334451539792106751859809749567339332814242220908104274547711587760765878308609022029819679367422139756235343935480852579199846024451450210139506819100753691818502346618664411019730441241908581028592706457100876253638318638827314817878485046137842627353996844733104327977555077361011654858961873856771819073134993538629615963029905531295446134362263921716597956177390604440787507813754945211973208478302763224798595456590555972379298056798288462477745031982125326002723762738858202259871195150473447408908100214612208681652785325032109973907089144542968791040634789063732355993282192137909935716303107425377644524774881006706458813312053552738805715080858039614691685116704240955588373493909588361182387348111589413513835293078054067216557532640036939135084286736053291648090977893707678999131288823496433142785435811801958492828753772545043183137753941016461798268382531938115361916613172792805181395072679726871242890187225076988464052596199163059247473463578164462584460739916830221792926319031452664823790440943089391638579328364082214116261871962923954843267499322484787543274961903554684886695745587239227025492415603145538523835263508087523897301290709651288195785945165578160533372782250384075401639348629865270314015907385889723535117042853138424078503497352314654863100678526005215952814535083409330083904132756577588672134490636402881732120192091357497333251704692219415001144713269063552369796506095619514156658921390896624970432352828991298050245126550646762131164362638879059706099788704131651884837060488873005074786018889786672309118839311397065833302349621339728204962186886162200940297090167685838620504649347813452249484783613055140754395306043324658841839488556171861541893350376978471481878707861852009396048662631159963019876765459325782053565286401082972451369529098410908715489096308511017985549881918300839464500105304448525482104109706908319100125811964904931430657358074492298979006460713249997840973064838157604587257067354293213405977888986237058552172372052056143500473157313501598234350726893415340602708378476532675793464801910488308685467770611171458649509076620849504701685425522710889373356784730209798472986028550216365546289580385076683886766770022293816221494634697935735488963342068079540103477113287395702090657532461445512500710373049125346262226777757242596072807298481380996573893077709645518059552440606976380707282773800739929665723916997901790484538398772684135340772759911540102065939534115201429207990657805550524391062456472669508160166940521470513528271635119446311241414226604370034965059326393604089572386378302467738004113798401473263610012634311263901409243754773178135531349962015973068489437745662697805643005025511842706828816995640996773071371794076298295654410357615196833086585390871098908572158514893979334011393716377392947876781367077659768715495470475543397450844593525770360187091449084343002556657590746227491817861484622443653505112916087818738017266940366518391277161614277856012970306041944802636057144062848820903049100874609890764550275173388819318879857480311682930965594050197791408366431363839136360657430412976718754288687736370018617848937995736892537595010323245546710330777418617765122150757854850156006004604038088217679161339588881534853905368358356573390241123654233976580885456737483050504020425584747888979290739954188267225664515599934978992800888484958149401181152115527508941684054976831715849911517342609772250120153393846598719058258228680581337546183045434405978344515414835468122506451978577597618036886858913232088331224798880732602522465987976871020397812344751824793667684366929965814654090887823084106118409288968160071712549517908365048854719991879976444479088555317371564463965633215036771533530063880269511300620641248805912355313294397187124976789814680123049044248294824536796577443839202390756453322067763543853879465711591288967022701643680709817241698280145657072147598669858065170022191594666549407141017339115490121352471352786312388148766142720132064222524548421187180105785237504792361380061458729999350993143642905906165159387048755156102905017525790236236480539154631958686723847892037566923129155651355379091575744539779840678827873704504373117828571058708693260059714821857029844574434463623395618523427676912525342920269065497877383322871342775826987537430368613247671333377253498843062125308614887453701587917321644809103887259668227305918358451756614873025344364318290838208660163042706369280711195499400761984041535415932932349526793760399350014811985997776804603514098812881682743211203127555326359119596819317604370002233957772278227896767767542937471756655703237166465325218413676353978637981152544169193604166664217440141349349640942839724862617069048210774657463946808337682164782055589093550852946100291851793044907705587256255377572120524897879291479336006146936784623649990755512473514853196373285871566229159881873314976325785177210948254087129953767935276586937432121237834116756743306492303680458717490378909996726513749270382954481530318183224241723089144736716902447169911245337722323139072122684696234389961354256846237270205169150415523650394954013907067919629402418703430548422048936039388770140133666482029358100390207613117976263199869407596628098517998192357168172972795817297158416519480847797554233461881233753825476519793865967656046944806883586750927561765524097327144335577689997899094547512072958624637837180873660206561399449338936801773622772537274642739151213198741058968148752877422614083367653017460407322651837766004260903336597167693360292202099770197681756480137965379521830735628737916911538739615486325857127181750951633648710399132704274165470535154858496545944443528680125665217495269796913899454531037433079246751429804456629705049788153075164147463982117405779962995514553087414799551817186674764309200795479585327263659021871299408679299762465457086842347330015326249530254764736907456509761210322718351676039871020189782773679187241159253927019128950824348351148722907761179822674334357669794073606038289124694231304835992765126630421654535217633212786632332597120583836662754678387659214066996938081519909567181314592623081221640039853298815465827207563118613016786301873368547939077258856536843319856528061877165640640846005626819437737589959596198806979288224445710779753720512351399670103414542665571714263979042746749977503517188490284200084733689560447914987590301979425422659962421944501798290665007299736698795587021362020825679895029487092063242012672117319121447994926500569557598554609723990180436327544324219025587245267365341472201985428975429545465159208862602699271402296804771226844822860989339142079704235511465029560416491740348805791442102730784348601012685703348872738704969788724282471511588138618594251966864502153635314878908810201023670060412897255999746930825924838703806414163771616677309365770204873195255476282537537605410382103036799618590529537082179071010419851110571682302421803853993714831094595966717979011978696655426422819445692458900456902223334892709684887032767000771761070524550371096015300654602984905100701031103481079918586367258432140180822748068385084131042054798377461387968365793473608309863291445475111770251738009156266159883824566487307239510561175599059161717761634579857362303461525979635184347594293467605287016991404527432926437584041684646719079200031184954786292240125737508509044476430044953252862107310360395917374505424098004527877555808186082779803858738180072531557207586439895125742954174625026978149499636329610129514565855942170953069822972518900483169484363582567231574482954000847019582449163817456772878321734944629757566106281040323490194458043663016368545664023985395880213575199932095673198750858769084160072404742376180115832820526504623816390113297207037717681896765277246489196766746120925390368052034069104235302393559702428605722504681752252854587718993414808896113738640905887112360779404531924235941028098759991840623606946615166883678046588222749184193158014919031819169880288848734803044062308965329547605850832150800124035329200049351644618245658975413222432556732180264056143618541761808396295144217178837720679560411815942080332517943698225110085149020959715706151062623013297196702890508625012629234722523269517928634792796949413410000842336469534969248712664157192437460954280475262673436589181707702917214571376881255410331735148294688198900791870226573601870738468164914369998710698460019168909659372024188504797243572837638913875275313600298245893185888769256121988251672940271416627411010905705167040440240807140649882882985695919734610437733101144769147526291069885382513703853578097465390477906725501646780336018167932988743147163098648057947836254965783376417688679087983527460233567625001817865629403176703662737302309237265015031869264107697468858684374140692621716434662553291614629553325918200918687796526137256435633065693032800057156543535809233076565795772013063193887579325708692442805146587176897430006920533072203251388620140979782370094896330559785585878493114238313860039017378617552209062356810032937440853412640038781539652055167556863904484472350354176691754806153804641474445076554838518994926417248338171650941634908813494551211465536997899514514123030136483088655984334157677830306407650999291375965937732852848900951058617801653632638360346033958091117832929313860201356560139025057986284551478390706340714849145416133152458876422831010556006227771410782662538967036056454819731775310733683758903516050091536723613251381280187161193079201225835976438373037059211705425795342335819801531851512604294898262010078592403169382803396047268025850129324956056042463864006433321674827839722136051484026868059994282735984112876088411089350780405085800613234373880083980984059005429303017718380077519028171052596650391779096019083197492602320356029168492700346547031505700489377556371112640943415616715755224149500162735696767253721992997363102773975492830266662742632525460584033687460373253212936619174796400455063838863938982948236983787509245339778243178751971179847431936368164143014727051314058620572133494425048536528260864446164422843850298557364319120633565493935605282227513765833007498595305187291795382470946042298507110141679017855558776489838261080439307310600452159165787308095907827632988056064229232120232077855561531050450270731776024483138549340474379703990426472194245081810695586486573927624178613863402401106041352026402662727135022116124838758540952400872014214462003929370583436197576481019267736340022154316600814160611606409952708962292182885930991787560903171083557497351817308836315172918737386698062090547024289635589233454592571183695513439603353613464486035196493890255279396853650534027981286803044996293254654711754305876107969995472343611613493541234088929457834056858566597253673176557256497694857133054142273797582984878705336243101326395879860008655569101460056343697818915923790484504172272211386176827208260163149345105317896230034308562997973575201294229120391135746597393937081862784548327039849487109509873607449216379654270600143612989064171600578857760733042307674963549648599293139697135128483938233910949167588127609318503436730019811259069796487490901250549746976828472000553837348241411931946144035624003740911007021800262208954655465412745127067062169714158728110866892283179740356698924610404876326200621906771333627520401636770973844571534830495891916508809275590114017100518575248121483504767085020112920564624109509701245676160173843285733272082773188172306247453368386893615738339752968578025025033317197237773991740399857825983521179543913002740409667091053284265071339805230340014103416831698768638549554703951339378965439153850025036567010030672218112617115715652431966179249286065748786228769724774200779128836498967094983038864172813042358981119278282474825746911017632630117113528812801038314324802813493684523986741331047795742368355088755495752734885269651357615831493756710070034901352776049566457901416645319959574974469904335987971996950532065535025954725119525724480804009247760329669175706463163447530864685474801740459102398530145544357791297359610903939709449797803870632953189898664247359223668789143745559594694968069281187299469127784323704933772982719772601713197095363315172659040397132878904056511964061802291427136220442007053539697287187384030654689749771293566238982663862780082681900471412422003154158250170198907990430390291849927767740231149383515996132359915896028897527030394581548554686058925716687784365599773020685427333836251795736435488710764330866849761643393595832018354245360808482085732918191056364111745463879494518834943082316284773978565207368969334325050250436900909851852888749279872947282241015695303879640216684095715413326539361378451395527352942070203087005459922745754523678873686946530890764964283904057658095229327706620352520332187582701937202329146321104395636163450956902557655681605356623516437808930696373287785381023284864626846687266325698198360245534746345397303483817702775174023146485590687136362666347792755931475900447884862052529926428599587241086470392659387016740293072075223624763013717247798201345514618159578089178901272700189166373095118427306152744669942657918888891004820762432551044813147161553425124889471171414604274991283651157749220077079472598609864961859113433296317553943351109304512895075736306266424621427808791690166672347976788105603255886001036023066865884136930226697399430491456042174685451712842941904983586549824881549289230213551329325156730699100312584637670123844499518775598994218928084451700782150373470241370410190901850072082058227262399872123807410197388023939320585419615743863954886476480466406836821662162955090624672992775498684792551449284507062165229807118061373068357835524421515870422601289795491552231355128311452666922735734568074852693886830072796091432020066141139042393865249370363161112216201292765784105377312417069744162566703894475617282362956728431447731529433667004278779017769427383111105590067980832107160918994198885070821162027885238137013430658509442719275185537325672811919014776236383593558281781177304166418054530456309784513633613809163470387909675554130107370809866501973664840305250816943191284395646243715392885266696593499359834180899748408463777424935113128211615742306853178548949360705628193469437595499671729825850161001502467657841264221268221765810910112900395628255611433189951645027024833070074755365407224760262499023610504532330971467113281597996394334718527991215948051590607304460623637463418896767032921495615344057825666281602800564492322762233867311277572709870836544166101848142293353298882649211164909100874369492168360208203466962529265862059184814125271583891869303912908127024087291592662803975635633439945431421946162354273813128752681409561487222455045893581750891140628560610281735781110743986723112233210599412011972123618067591235467940114002635456984348126709828026043262759366462123313236210893887124780811461307482838181658344471904722053312246444863743218989621364414870313744351120251040444217457840740750928115230874323846656284788766741761459597125297529715181445132249752673847133725359611551635231386203197159001722842925006932912305231587329029518455372615479891401699958467669851090940081326691061250819355809736662819965419358446577407688916309688230499679153080053534242772928140157618746775718231907365909358743689564448461517624470046686961235922362111473849243664971358334947205788427386165462785205476955166259824191066110441350387982279380557373590330159081992929793994801333358747767559226766259739322113821151996583517747144445726168731589032525087068732193733677509612273757286805492797339729054554564543608995091117313855870591755142294885228510500108373460856579002954811866296182999787606729790875200945937054894935990656975953523161899112293117458166034471110553799753159590717722372898353414042145978916556963112381547011670117223067482057906137809190891639942099682490067560964980357200758983526177600910716763709719138891281835797212487435420568516923556588624595104782466107283546185405634073552518831575863576215164887393223903065517142613899717968324292885827070095269054733061473784911165024851309454509126033053054973964434917048099061678844625676786200773007712326096753829059304729360896612513353445636132790760315976586159010158844054608625933064795264633779187942252900217184565550248807216842935467374902928722019069086554503960955292597637953437889442499420480601339392428714034728201489838762102088301065499180264817098484537978590525286861143160162525753458436533827492420519439210229062300460736586549746292237700700474505994846662675221907297074328758598469907092817466799344686523053864299213971370808392743767312183083182945123864191947505726340073506389246918271184058477639034550508796999883330044098791860721846535780146828560841962813542334891143747396943635347856423691726297899542127015533263284325723687501872945754964382026442431741152678939600707684838860154635527989366758215234394502386810931798274907582486962236061176711189087180434205829289550649277592898202855254026881887859221317712611896411587621638828459090138931830948640878661930817086796676021157569006420065139750260464611630260360597433387575493329538082238861831824687426545630553760152584635444217230378254910585346727113647790579726890372240332102583807591912279524380409336507259787759309092633859500832118233341507344409585365618439123422303206048986877600771112171460293966368839396719153865947315452872689633416485563694281163811533484722831324344813139299434551519301558983595705558592900074667994263611679214491545952196173720129583022513341701719513887084990102076039692411794933947554694671176452914214025564297037644043472599286597366626173462786540014938603923479327728817711372851702741489192170507797106565430295473685315187833574953492804238805788993540277449088478697124191384831306905733359508571818540960951306232357198265848748831796885635945258539045393883134433390294614682698736091803438697528165715734312127070332897910206841434706402579350111982430409072961860774158707964861670705848350284881674753873599568268565335647313573522294854346387296997985989891775909214993299692627985712522018609317243034600614761188215107145425184736508942790341374239278988744752855203158502318978480791464302328077640417736253936737111961595382027059631440114478760201273848485020768344277141043336221994596262561641079066011515993186681769183719298879162076480058621428954272242080188259367261454134045309355722678425711367719434831032421280160926518216688831052693941842923659023810793396866392596818467783818742800618155118827582063002724088344653542486094668161520930130815642870743449168075010800809902486603784183169687589604044612227317821328979825427220273711353527767676105439871713579365915021743735398902382785092385390121007711097173838265972336323307288864041831752766426108294970992761443773887651095053426070990311307074284452793998191426762444396658798056130474278781320374590353803382351596548127835782591728560143235471359107776182068187905527945024993317386494774293873577913955013567581595816133468582385123076141332744956688466633826961728904406371675715332688531163470930430233632137887231080069455845345269722555137739432646050352135316777013091916805023944149187436042196772081015681915921588832707566917281573254500390993914971242603398871202112956235185890010943446507306867756911411351762413682615698211955681082222599218650517329480263653302471480931755842380501778016419976072734614619098985000891902631717428714519927816978645285109886078755146714188045630667875853936140028155977962748670576235206310676527678472039469210130912818396710543644964452564405473076394761755530985867489053016084872744630146856837187895086612880499444963065340488944779695612673052448341455662473597973965702012032660403293042146314270861536320852824995203147296756523613809593602054839550275869990627854235915349875252319225117169344965510883613741974074041674634960953179885800724635090220466076078766813051369647240727410873874819642247758193077401407270033838211102486507813425966170447072540869453841699462297154560484448680910954954247314322874848127269373679112486408942201371001510543930482604867576497458382958245547671418607797465966219551562499535328991119940662979781071416604913169323023178713505017588045193375738956366613235993865403356325131835233259285001486267970044728945544182209181975012614096024072616528009720373956380409842644625458628604999552197557050308621810638601864039053115824953325870375910721862358599475558906708792200469117778854226705314840044331477758751501991239348251453209230334828991999883459437762057565208093647736227676970439885463714094900120124585991070702643070624060128745588888805336158588432997123281419995125250138829945814961598620967064406832170548226657749895500794318848504922382995528497389599900610258644150015003761906764756272037092059307214852892618129682040164620839790093040287394272405128076472613782965222355710044569702235610698302890218991688085375214141468347010694202928370656523894798704323838520803881198922643042081750104609647567309526091493614830044497414171709435678450873168328718332669494529874368075442182409794705340478249389817334742489665777024988770583214756539581325211733824355253623481547525701724772891426279333897264529334345374016123725186167520917156204958496194623113103156665219605529147820544268637748548408552166417896996557461427420720885934320170498382672950316988505686560446521027706938771673411299017608108350843707751181338694046236139031022470943584989366420538651240345646569085578414246442811045933153941056879735272040603272061722520750362864655129437155227632379744041181718554976967705292222060136075942906423304140358762396581269704937274423752861282567470986717302555698142729021486890087528983370831913610921191770725568942504557197810925853528085801246113545589684348021866101300090146897557856965838360364506502918280258225113500548439109443185575747282188131281633554689556863280125792082349069287584210363859018171677376102832091565261675821200174242265399193810086916242146763381545805275609002577183446465224698944508266218137735502489198762057070159287699602998129471541477620151614751590922087689042337079148762351014809730089751710355348753862242392621336620340186894768612354724401170300318936316843164002818864148959918792954535816693782683693500318023545716436758945180906264565134841748382031068055458306086712280823988081281083480535239007729251560913828050124397451658665165470417271111964312564133113167113930490983007495651980455240169666930033742041103357968054385376171534905290516805906869483707013148142178466348126441251012798637310471001721588806663742748488408408122631180296581019300030753511436108708655072874920802744303498780072725173629259055036268118467097643000033646369424386014070229449234082252975119918392354507963879048621048239601673545317871106040606304991474245552973514206418665602624894554015293669796977235324097954972447576570988558817918488585538737331810647035394770126588013497970054861788972387240193315382256963653637865202621138889738454273978529483610168892810983076446412564147358656132569485053796379787010069379061866965522208752104942755466135348312381744314358895666229015541766932733508828766532083390343639192764517275411077196501315670372168489617011135157220716666103434583365854759799585644744885805164491053696225666705786340156460310343506828799060076933723570562264574942663309463598574850004425104878021648910894550300079339367201761355602915329978959117836204618120070868831586535004652737998539434104889876022897051563109173161891820144363417452798298072317375939275130064657357389209039884193680890753460490189758877801779423428491435697939393188416226370763088895130093472729478801047559376664177050404746252544262332966895715482086935783333960367052905929208521049150048435514496680810192655483874062000914607801390117171878726757302838353411864571645996692973479444224986223748644441780591292985157820123750369047816682437277096963713776190869948611834986265075138774326455604116725757908813353836209122383529446770088212169282645749226432440070466913522056130227108466696149797745761166441555443490243648977622738212394170971649778207879048403625445453704106283222731696595467803255500387427373181232040707574818303656155080497889726633476798125829035695097551157597239544821903357230039799222743141285980998407719693829136109157459243521492879660937686434045978757820760225603449091860236898801471864531670670550020641066284502352845372591512396117192369430368878679309482390799850376951952025199277439983091723417842749293787775487045036620725817392555404456614940552344180241778127107707477868451282735514858354079211980329137044820386241982387588529651778465190064399130768339519171855825066735421680490435578650701639516719009261651424659915824515281284003582011289877701600117640166947852863207565088716399672718852040122425472188472839696646409723217106761876012641819945722288152435832919482480318688699851330216634145292276517230915888920644865024270569180080885494139494653551684096658748626446476275220375108173906493053435964305128688190168496149063834285086126294301637662907863367264477030217207692468297679581859697227226604685696381045209854360995504079575937479095006227729067820563871791325945220012246162563163445746134883113115873074018053438744579640866410071006582387674750197901649331273527903381682340718684787234970728738824839668998607781872363205482940721042609703707273040950715658269137246173111232877308517542604949932151109915715294988986966543244565378795149413508638199096534112386389879382721751379184011765439656011242713273061747690477704234055440963818575982534440246072462512056699930738415985238011631693311590742501563965759889420439857788390497379168856714128380101232444584023264154147507101249300772643705547054376518442444250225967799997685499828723447646343766729218842447852550726858473006142357890595796539794578156878606169721833336457325455513798901589025636583207580486925806735720169919271916431994091184266436730495739123469987521562106529771500303997293262564221760046215108095578199927241370603060403833940925730230891660379873138068675809511918050648491627704905405069739037480351458773770067887497363092350091702697791623001953741592975641280535974198168407156999626022878946628750408658268862328215215072621585086629606528386386617337070486970590500944494588673263956970129151203917387215774756238681922528082277628684817736218067543168085705084905093938938749014986979985864691868288072960794009099947722373885604550127726788994063387244500465087039580282405413215915131763043265253603783627880867755793349992136855273028740660240225360033111102392988490221454569155095330503773989806397031775675037505577635218636600690251433898172846220210890369073963669024587271755790216151667495455147950178239395538818918043026775937056219722389109430630561021745375101469206449489531448419798894282869516241342706701543772922460565010865069571550318886072137742718404012197700603576101524970318470624937068864601669535559159840183770081805610147523430390962374218766903810946204574461989551233260203128781149064386912501664787121841718604171043742081532573066216803077427352095448822691287360811745592869625406990234282821827250593952025332868611456691704546843292446655774305293452097924868101424149758996602495880573686969218677660077851846021724612667853709609362637336511858698543901741771932800599617591567363667267481140908009807034747092382720715975292841895565453525081252312967332557489500575388551247800756935364377570355710484827693015874492203894694681973424195005008305689253635289824546761470951348609947435400921274120119997066009108499733839293124713114729938352954749644981223144812904854297936460516733621218179089822357078959149526771432718892139805235498992194089738076553781590660801297150371735403888885718469646270388141303978600001003931083864903458253532473310067889901427397729220497648907216507197816974294397012767420516952846279656472465331542101296782127320554804000422852517562954403866983368855213755641775244286159255207080242631258850921039054667703408000962329968526313374717854228604883884185952565516980917753479638893311709079522549790010313754768688219170696041601581521808539010670482322579569812784444784267497331393462105178987697628702533470647871293388846093051837658271089226531247330860853537885580578735178176697072709553658789773629597569282044525433886182137233013630680117460355588833656558506588704059562028353904657906660656672130620848891907108048880904836934167130116812878267743731117651988605726773956257080309054560751197626683466915872002971190280208867329504386898693339678162609157455476719556207371213242309718244349072360024454858322302863589509896604085825194822383377422747563615633232034473086129887223919349210687062656619481756743458652285717233358824939805007990362578406807027192313187762447435981367946237496797244305583321020442033364039290948620085424001294233472227988259257407990661484021609279380829417060067068110342249969033542726321752341000422743481831066849502058852777939741842486827191846909541686062269665074398501585485469964961058631306695109346154127250077387888257164665124099736283394965787438166239972664173791967177810619444711305466381657533729835828381736875277493852816571934529528859647204166820036667910854771159556732022931337012579142614374621996896388983864111766218887547569739844066267612266004426031985585441091400980259258590338360135501049250120707364909327444145061676272086562823596163773394109938722113111575967039966113059065694176437413571657252736322311066043346288722485453244257381824454400596754629090641160923908597982991183467759258550539105840168709402858487813881761559990024785220773233978195803753781367710553898622079075466854235163961672184554894547307953754406983987400983431420439499270942924992756042328470790554921321887464625678780701591418175568619465902058024693455341124032060567542991701431372740072830430587801831772354307911366941126688326777178242802197392912347384008600148560585643610755843884349970798265116526748998821102797078573846581269092230847555246137134302465090388182300529676963613453327455220185863350987212726588359578758125404210123654935973151107402211303644077072888918589382954293589750391863511537815310229705699085919952222008718706555779768272929452713362937914831093330283487296578859503895011047830451959795757738239343695872474335732040449762556741776975050769478791666436628020229091184849020747856628803286755513099588518927229881117488238284817820259045152808405515049624651738012424948247045728569494304921526798608989069804811657847396865449941091256699944868529525298148512145149402335581130569056333205235520596327846262476202126432399810605640971436395271589467312963272681270704385716614984822126837507110936083974839755181756759212959658284573470114353611202298724235352478294865758686003192137524702122277933203356697118077407829484145852822994668316356092288247869904993525561777848216147232054633920405650000699329988863835493730302625665224839733992469228641326941597198988537537072696651309528940173989690255040352300174561114707665300166969687412040296904613531419060269260726974639629872130107741934176992832503647076018589361766000679321386915918636888417861049111360712006090322856323763370236783182832192574204194648152743905539933475110092105036762154590614318827135708655707971730172459618383092900719138299905946136805429857239022824451063923996924433952313332670648479754420776419372555799567751911055257141039673192878274056258298188498510721309344127855249178143199332959713864317121473021690036167327691265603586388228436682879147742674789396383372123364387747828488186253853623708175290032070862234439121491862101168107148882248827394649248388575289518765536381661094768865552971796200797511503819506547141187117475351672464800324402047655561945624178588592242031980601194571186518036650716503944905923479975922738927143742260012133773932680436129795966734940585313724038734389670223218786205985740941973190905429637503698475497446393466953888309436869260330483775855070516070244925073547514811711792121131026656639115550789079393401424593860468764302823435246909225651073266380956579604521955864444503718521733938819581720186814658017430052164923724107757887737477245870099205536063520049325396909014335445858160496185016629283934596479303483499152673092231277050764442808980960620040101733593824902788076983290134235515453442200620059161778223071265353131497419853607145071487177756008438040474099740097668896180290396568384888089520866311749637622268436141954842084003176465711999925422918123990508410524548376597032519416137426931884562182075780735497186500277612544393066524522257081531505323904003794491836663469949662880119511903109285028232659961800362458330194230764900960006045250744305819986894453612905655485401175606630193498472040795489501451209165044131059478747238544909422608587437449969355464760613297003549493003000633698014306010497989349907895278818582671598480757950561286754302767969277073277958720467845585234826402279832532964264386620788715508114740814175787418933676351876223619224020458225413324409814144238456076527008024506298103908710946524454946804192272969172194716902985120196069423899143483119868298798927579314661817780661581396200511886779673699382626137154463903835237710928555252987130002191269963381510950542726691996818600791651785705411706848791670853533733138045487238072500505069331274220239468113105344784427444437501558005128528159614826045507838371980276178503092306210853704154837535826517354659117549636622595896907848982626203740734997725713319230967315938085742595995378099241411520324927930526967037008673347782453930144084481598694138374539717051991494970255796697084617226651705091149430201816534160424168429997048303208936621213639637970947055149680495093657532047296074606851554539974670158837771154143500875780988887503849948157213189985469880002387926674576586544308044975273003466964829526197494409504219508021926758505415748788722287383556257834928702231429509323744853050905423565065792138099872451775538928789341373750642800516365459764844792932337048437196257853350281023434929047287858281016209516287398200272011844981118004512444827179387734200108262958827958504698132349148090836130717606619943345182056647094756016027864630842398848261941849373634270017483187440822457794064367263279726883389552069380838000998250439025979024888809818313731955035054114938904431481278812700134880699473959030095229140998802661308921718099085934466995149094159420815069707362592896327095406281190117539394769744998547639898755005462975370432080478508730973444657238868014810803596851228316084224467422649443416719583594452297464151609951699626818805829592457499936482055613726459180035853327495937191875789511743447172790320641702071394949402930817498406924882712651131453288531646015356118496626421264980188151899550189886164163309859585630457379620268091840069760172614176069896036687238360769349425043827974577849588491497237541612356808697878789780984019626407377669184942766942134437097758417477274009697546593780950037980005318679102497677097301739053199588667194902935900054101324339831500456676690588076042551306861175494144367959090972124106339245435953787589171626470649882765281206555666230955756622547379840055371045039920736684250040364742702401803688390641876468584286190976211284829165335066117616078816028194820233719866907337819168731758141660230240074929243095697549557443852192387465613253600812027767558780238693823678441194853944167478388093332888636663202062271471363087144396698773336096191933618463703778286249186944878823619998123583758833949541815159764746551425599894182830226794297029351065324482588551014342317386614568571791019092693670422496185416122906477732540366236712312600158094052819366871859547072670638894993836302829151667159415403435838195280708947480976197444404642206793144811064471631784889677827470466288308513238213158465891738391252521345090975323924252318243595454456190611981735934037691951856134984546548234106228011660293387059246478175143362380760477125172885203695839106458817570842811632006795199393233785496043704304067285360540567713570719641800432831683163830094668288760399483777596527181502894947525461709382638153913070964671834419536254463378978229986666565283381242727042309672903192352565809873327758307181294278751683390886705724551479952632404195301204884364714908607009675631321104988832242053203326380814483613720918188554419872074202885078301806430212843173640871890887699017545761254828514425659957484668339571548245202955204528255307486883065831007555795210318209163664271797250568761166860327014903357040327345045814940952099820553161050728926142853613142423103142463637671617195564218337034565915221757454080831277815956470817743778229247462035900847400739440263696157819236424001402636811599414853466574332619765362699758988051080810485756249759271993900000099616326466668384814932093766678398006102074735541745969464511415026796721314761350928778858019377246244646821599752658365194828298523036649314058934152515240129170865241883716842605214843699426118049583030318587247285453319892072128559474756221753915958452718066783626862805126817588217232563896519694687295234368269268555941921214734058306507991194231044976613056985289713819107771457081533938183371553754529929527917611126275193145013408425485189031414211922265813804929341767421274701920128224595469515608822503634923448320620694763589084924912595449190921989841329243960493818388597247662899869720915836913484062133221072694696641798685513851969865220905661057606021461851132368497786231536379540244260526563724050876924159284336051280457635713014662465513946054857900478920187256237042441562384214043098127708849530706911331446722193542161074400166143553489716793869403546489963620935564798861061907837684225214582361266728868083499486921058953714322033480799176534438189257252905914832424124866740702184171300705098846226058243680236893316263278804174696225985394652693799084101951878231140230104632054977257454066538499231148888871343679523163257893483327803509725225470331878080362757270200377413245424435829869017147642147928091034105564961992564451478760937471713532605129662589770268283934876968149016447517772223971491895109829030793284310877596409735470189241239053922691575265199898861910678995588895771120745651142048557175428404510838218738204568905583435011092716798347921626288638105457290941193755227551992900273457845467970200616011342963766663005424451631750870810005153644296121787821592644633308894869186773760454097033428335662344039078679014117077367268656734995895464052369661944959710266861027192527791212052951795946623850052194094821092310239152336124965471079326577303748122718608350083123317233681077913022739618334921670029429934733599436107115753799858474165870052859912943813011693274328913026030041702926762588605006535357531531873075930182833939570436772220755746154745628492889451403937965446325825580627254178318052706000885515638283954692400721309972385758382693533880195536361320476196986932512842957524114631966155825369070954490592037465377097458995307950860069554443892158599129364528465044551456910252264777721017660240043548532661148764578933997156398396046964332490187092937505946284740149176105205250392373252247099005065093172545273052475052609685198525348558170694804563358224556618315642483373291309923906461054169044264524097255453622668546833043127967505558223311006690807037972948200475648404708193634168990456983870471294103278226684463193894423932663441926446275417508382597265017181227527791155811687722556483511359032376992584861385350158327541755515087392283679694898715157588193922364721816143126645738271011922882605577326032309825607894208813898291991152929037555556962599148333451641952474075765678921513949059887960972422964692256796809165751857937419255162711255119834299053062964941738625530022051732146456518857493252294275321656655835161856404902328200455559413552890941807855999555505499050126690112100637601124817458314097849668170360604160149659544712307374746896694724139696505216586210498833682865550781353155142777852879629827482697908564531833035042560317793972207982973618520921784257621977679275491962110766553336271049106556233393005010126623606408678940745374104279964316277941969614060537207881479555479962802996154987822641066142532498828405631855996714797745343807528533445792556365294126436123441720080865506571119336496826008488952477846815977051642714935682033591792831771627480781544015447199205020408298766024211158225809519050131534306010110536550987157508953139535407272585916740066715333970830869555526021347545490936226332074568261363145081941585427321294970067446163611297097619960118921989409491964708654196922439974973595453061942791310860142923690383348001379912051496806859528261254693938873436490929304790624686499898849332350376672315600548894066123638890879889182455625314189288233052842599187253728256763707860320156958609377173636929763559521259381443531191609282418292904162011781039861360852036131694765786759978592894042653505073060778844549368976683910719820673117611706378748512521102150128373323354362437064874456332687014072942141261415785838196555141299406509216701446280123433287258409597542369719689529541121875665322042587485260927618349925652367812950203046702699040189122997238064620442384480062291314642384514896048728231804597741857005802417812949273032419524949740493415647292183435284881967275081125767821197372760550844416369306672071322532283293903486606122266390050456022666897566120456162339665472257536162512006713658301977717834461673005740456966576059106571001141647359932312579343109181012372799570594377615967098992768523653699374816506644277175163915979336660673371262690811842169373820696508693326856727836742237773638199799719857834641941265174211912216680709414132845105228338054067089869627826794031787231900819050983256707085085022812164135557389762840807440583689209261183750203483624573277807165977781794616359947182340336649310317924246102540410449806684495962837543076395694358746098638574569515853765657441786292486953304166182174995359633667036415952161305429921199480316580334523321159860566627355758786197714121136172814979996119538592062298251972690460982996395071874015785575193260792334893916438704488744517458426105465864510054306870874172703208389136585204232807537139661641280944283704108127245543931079632252045155402410707427060329470942739321723431794831519070358644319099620955086390984127264660238671224671801346729715955001845145740320717673357616690410437233879455094382077678081631310491080025217745782465217074465278791082907339002395363407188014712205221402153991016312246899850861956100486214931737216972453953521843745363688144979435813765062241081524033158547138543658005721253478959924179849670372921253288923111028018069826879559666619329106168761347601273571069614183625134914767728641121858599827639080163177952838095455878294917130681894280481216228369105145569196270183665923505335164833076947555420775291504094051901810355401918391785478133997907656982676118094205293647288537142304354264969468281529287782397406316882122373237445686231513983725839706899109364499889503744216681574490065667980892405255904217066419350488164095963916282431683214362936144010897558550676919049770268149688463696628361002994426372937576679574572874913919176031477532179911102093764510196679414786939038305339899349329933916647725905441735490434028729029898561010359476203488945984868177752797453767617757399596555753070404927316739996782232594878740594296697018142430035125418290216521273632109308233750646316264149238235954552920654927743188722624917637381713344651847980888015151355486338791434086200242533235922968962212370900884026104782555705895299661018560289606339732897547206274377001322207978588213126004688676451900739593732433146113776085746638910583774147382922606934113644734438180146710808892554887423534423814483137436012485440167668846213505262347659776653646905156790051155892579976329811153762875071958843179382581731669213298434688723815797712412245054879091395474497572813194719965375747279004245403114946606580179176899811422241572334933234252254491449903378898400353786453440354688344887017091796751908780668656561277033507546932554877397717825749874481526489333003703091954907733794702512619168105388074566746787861289534920682399040612210509257393817184405316151383985141373640388528086408975099725556456530253645928260312481202686425498931933230458852931882448583234392170079147979449086838596307511944773856061040154524343665299609236641460460982755030756063714591157892519786265028597396372369763292799134149715435472802896637775746485795641427067183239347432849391944552498405291346973205532866141010838563668182547356544638057426385511772620226231982145415638365169994062320041158317435492084460958615542947179661587034067807157473981441786885235611722539374762893925662695415328152669386749703176251573511167091660544907315054236597969637235338591984177240071765938894159051260221195572373482755403701587553370292276674854304917311216876742162953873148281193293410362139979141934916966267128966502540238495165107472011080398797983563154273656894320908696169159220859185418874387345352197700644216771834902070743558997964888797108815292044587701679245021039559162542237490022733773454026169294576154099856474860909627903978659458779848740335777110024323018005986880663627360700956602891594975307610975303657936336098397508908595136011565173713108830631520932490695735276094704513570170119189247888825228126525126494072642681094876262508045582462047411362629843744807459361378866621842317233897315764912962352263280364985188085532862257341517621350037573915848374868641588244050615623533075044702860066890743753057376186424521674030098996088660353648914609326461898731112664139662168369164884909356271756402731290720077064087005309741637982813131063665112190243999110300888782704854835694231631749790726744849495385826241739077175086951697625558385705187880012828640192515883670220758106277712660496117978952767032597699707864285420797886042321713870198427966481350642848355410309387607320704908154430907420301212715907813335866406494393794939244372977084549283597055352654066770858493233907052572456449072174846944272900426234384188633465549836476702323831072946256253265158387741925204372347161032794421449243040690826148194011457465219840357386971254008716347341164587607726634644253125701549903838731577342915144530661676649284743819505121948948883595449998165036661465095669396383286328345009951641928024214642355701140082868970824399947647735355898946709185939018154256888013564841976861844719314964252710035930761892606701310410097807809631254469549563997526389994305055540759588788859468311493942474039767458770564894122585587798499960489030326117208949279837540593474131703863166719509839572447689206028203728639594210130936965105575915265868735274883906187495932423744926260937809260831099359997704349459503079736044259942224232777730492098184492005458978360975817216042849256056664461736430824975834029567108149923096205400759337989047221308038939281127327354664761416623353891378082786687719606846475784884016229921508516369639403335578242816089895313034423777473487117316343039119597707581229448006964251600299194443656207700407926646570348176515626692163449919291634742358968408426448062572873072008955968101924722808676875894813474568859270207845905017163052930587289259092137848884478779878858927947295354217934120307179898064863725492181534788609769935180898677855310809174292013009102250722461475336617658087468199161684258512909635096460849760895367548710104318297769925024315194296912573609145213413306707498962938296583779774084803157348231521285372240198585736726847456882078913825861320860288974197733931752265572955060346907205460559560462440606619062255852567439273909674431752810333839561824797839583233862230166768551351104826776850370561195324666881216219044227665216031550476404550534520407417513579262496342035448963263878755316617216643536990859225031305824821730773038660647468700159108870745117661304740043151143900778678119399392405797091601273428781467858640850718370752419364547440806247531288205495195832033950914706192409249469771071630085340283690591756937012379625689440882697566395252777710924828319654433970320180369452654104451756065757640272261247100074582124864462734547789440804036133282503703572929800334251851614091813748347436383148974340646702640018825825408267495375898404705288220344993208914295561668935855634302442085905862246021130479652257931644054147107442097662816548361257454201562622299561687381870208701742544989917302750760765612209303739707482898445872034442644201351179927208188053570247455853191415374624749905000310601710333689073310199705646197505217488547957620698620872061270100783787065763748247562913377736425850013594667178689808254395399025646396376351341200656314094102371931407154450445756652521386193480566870555898514875478688911914436138087527934354589178713884939680050103598735918737072531625490451721131770995266036307440704714653220555152769125580172320982991256454226088179534018739509404554632928492166370579461533202862301707069632603019434784055648787839587455005508624070448867416206702502091861376199777288941062192261589280088672938751141149072282804011788819032459228261227185078541058074847274412679811777303288193694088906708816715056831747569678936887315363038733228189303362247929268422914630778579095104386431856117251125369684297111538823484511921703351880703466248492080739836334149210309783114158434713088125995201645299911710641805638161671131847328987115338705744202255469955059398573525120417626294633515196880653712718436207164656469906253017842885404158860430427671298982599812321192663902460165049024338940057970668227557355427200479506213944451659443204439024228722893510819776890683511658992124883703378744113352529325426860416029185627655044092695981135001896061196208637708492344219778205365208082305848235143101997968598186153750102809970927864943383374621715702670951733037382951399578711591925521624377596838695231435991029332366998237384490665316123670490124264366309798430121839561688628780629410183411751085956817607589984665610861751201054601879261815402056959800424155946813541162726338772161243253532884200020799852695616045033435992546451724275169529962263652586031964248481754931886068776376068639024568976458870319748113229933889792648214577734196392093631344514052844690621412291355839751457400419999293514975783048292274536227200602205787157445306770020888532759666791459816020228251156466036057008719274828914759368550181557511900487484314617623189824245556602974123905559810326820334869278220996970174304563736951464729499470856038401791667797569826076123099979181395368284258222692307400406829927212908776338612246190825490317288386903097360755256099147839328580678358017493252948815595421116702166850099873868707270802031514239677012005605714671208536179797468739545735778820264522793231882692170720122024868602919226738504286245479337984639865387761876327539336260212286528813358874398034997452521795679203877218968937171047538911805919494074668350354200646230852397583162901558019086591042002823304058604028744494848299557103232939321930714729372458966683435799986125741974199031442083209060522387565486215928971826596494112855669937216009494523934943896733408725207734620500572533472811045878776180586370693571816589123483646297599981005343633731067359302467390372278790978933169520545889454648938184538662271549154724923206546999182539687141102141077113409582309404645216252605221963992224795024598398668326197758296632313920241407118752963894958570863528403899002528449928561388452437585456765731791187470419333382390943760064545048112770251425490345214137266983448827749946090104526169862796344643865381404542294805496083254643556183770703269363753648970340204152444094571035888036524688754536234795855819967086567135437318241930032141085046155176022614196794817089216033390116210011466190882845823538565646487213392683365130528108486349569177180811948900834994607933039441563257540891580923419577957835574350034768758943870733562946135584634615367766963962351211058316071484243440591412016715583059328070027410200617628721317417583797418165468032177846203007922116900960345113979955054444889224429881783989298075494291525650181238600594094312000690715304642180687542236510640187987992731139079369441628098253047495729208859075552586845772540477210414172245298751252849173113870051701524998917664972652535336180962378879951187916077487201251575195475950969618411379583030085637386936448112892749984124363503850594457800457994532627921687737468301053131988537438839597480237559903859749549422775344952816178768341544917009472606927219486290609131592867093946722873738335405042142640688175336301550164169164106244290490932065909085669606373106665627502247027873263421678358078625720331478728812563514779098450991919169045444449602811356228136106192066223503560715527002586518642565236759487214302203685913558206299521929607228251223819008297480949324436119145545138614961884285874906970186245116508852638799111027130624390353114977495695740016478906079134099544601333758659518979730332167162024122229741444409094859002500094877477589465362051903721264700416625835605721889271870314575991983969723460767789354002068127182465444879376540290215964835835346204816553585235840312598742533024874341190112376369316912163704061283917207098775387947215890934014352317692483746651894972221136327119790008266614978711056314225182937824821657682983617628394361525044104794881720419815177147954223461644362108639862859767046327703318065890846181388768893686289420269843898953906660876088418362031615539288386842749687256365603133706440811710869289191356996102392961357706322434470295741816347667844220508630952242615187804219207340904965402619915950399392998194874857244659788475596325502703445577653751504803142274216987056468448509623350890009923092016694324181233461072163582481546258851677625393336865263964955293667492717313489886005372604702086112889884901650784466102700020279276102949175282770299993984731670990276056967904008221719895828557539256969110988766489745710712247674056840090296602086581256127892267663308410657843309681055970094172123180054870603936879393650736750266094981781698586083666502808216156042005038697951519557127337949105263415547195546408555117097958537031451681465278185977377555265572626057015048250216980577985620607362969793132872264077018890928004761753231243744340389729152023762619727299551363337922557402386814273381073797856547600407968725117820087038159492054025488927604081466274878584860976249263294198280891941703188153614915652707510916432915584219720670259647888463887228553938487566425457934303285849464561363307016317363903430046790864054107952442361152607835736870189488486696124265251593806512312140440349053779517948010247063024443612845922136650133753143661160747494641206794793200976992819132257247268598268847586559115355380428895656087686632930641149969131382518754606649413265753681085176179333267639440213567725225504782664738866680904091566166320327585750937485976817173820325857145202699417308205834574813966333220878679168795110509373326877267578230594168186130532057747625051180208787168419217071486258707198754885186870450713709523929638680178518672902170787037967215021285147245320788487035773714661862993664640794734674249809671275171102433535365722610464363173389517898938848531404648578130370046992147044001133975885327927179652221302481031183654207253096339597925887979436877367761604338941721850457171388399209834710992897654687758348978354099581930189878745623332154006866211621527619389269489442162217925150536864541989806267579177258895700135590708315417495697291964189138728311740916958891504100708129767704505871539597021568358848559480325835611371745309901920996472867385904993908349609940755948834668086564347197492618813900973884712522054120055253464210728061702565036327707007348726310363073965003755930260422735970563986768177966028093344972036181939679649711306887465177681882803302611293022257853901197635988745279695412868444804638116076680054358023788613552279195164794602925153196127547303117663685719389567547232556396400218702746585326000927597433517741399689451073896505651726924388413195019128153395373025914313181964631765961822580956180363785270768637149991522015601653320897443953639787250998284616442551868910767354201921256198855162715499676554486825684126828776557268167062622289518885110345619867588318553414008442944934711393284301519929499524682352977461698253952428086773764704550617139783531737435041868403600973755751356760894976701817792535130556068699058463316491467592724455944729176278327359531298673911426363427688823749264726635999072198696430081879302182998483620863172832160094080024772961195918849196107844072312947354753644144517059210609252641794016464717720458745873743361219901274561439608521546146544073589122134554426001036152195726416029528438144428399108667565399320620401214534136951399371883853956203854749245392853493460964516619006990631031176909676150205040101147656220396000542718040393148618690854723969444787154313877059832931419441059699178788843789600909153992347276367247707668609665986191289646569134274815553091176694848431856019837631520709012149583201980732675004362645408524136912954573940447167854080928556130245664120046142902611750813967910878394766405427089813696031801404763106263238757871376493241904022851119130375025765436104645360145836313073576758085215233630356530705181193231437612749029099323952672489233695701591115776229860612239908596975358485666450685523376759673567914647916038340429483860082233885382957840677204668827091564839322214008695344567214738677119786882172235250231482387701452031804538008666841361357366901562088915069458467444975242118685403645797087070264946808693690082265942245072856455943662087424420342859232560208259153547125385228597320640745447771238493038524898938256204226437635499584198084785538841664361517133209812925780488314057810121740949744957816361522677221551013195209698674604583685925154303361306947642749462864092943155095521074475722705405721754895704343132904675115818292838887893009375476521636990012396347386259398601954038907845389403630095644323319230735677720418650636409279399330027421483345372428559738377638312894770632727289602334054514643061376688221194567611000851703675067489194542267688221459346115081712067372927838425098272980158179731420416476985249536719921499515552979474516539998884382220389391406964961582959182886697403930816483036465346491057241628456065210762694469534200134374306365281153790113134550847621911141947411227404566713889510698758354313095651639366974510984650617155556842780564700728174743613534126802127943683068510930979929558850062142024322712179041083394141554466906677629526249849295069192229057454781745463214075720987080947122911494937707610084992283554285071983294509012742820928634426233346896503087870214348730921000177185649114731074051943536746929715730331375002952587667959983404856801205316588943715904621410721017976781423448712004948478920290480341689261300653274179340754030304860929480934498992234840729474565931426149589161810251363436493532099048419914018649930298511969917326670444515197374885568915236698164421471888246597341113606227047901161835959611908269341350464992357330515736218701635305831158265487495958216196150590002400526085551398935091114289584672225186098974840848448535446551794050175574658851456660639377558344110265804246005906298178583022253076185406182417403514702064897524691597947820216484310528612174850150738647627465851397242077287039040343101400787410536896167542113713244838546609283619185585766699546000101766174741417273225024483653069686262972646748967388528480359795715112183700647667278327987220502792580264268432669378736289265177566327762166503402183638170091131751870325510640492960218352735792729847076350529640299149723227485395126248713459087973373685832381322533256742742345497773553387507937822697766519582828930061339025093413297514058829352266090984294439370509908658885717240674336096211028491267128015328987241407214949789588024376110795260720063329087531224306866815772216752048023933689773183006428120321497847183104371960107078623957072773357777337109233433936101815009831885406111290173773599690551694573357405503941942146706659679480738314978577297711821916553898741366749628722281553216487150235426504342593381360513065687098199910470663878525240156584737375079613667305295435450359332821369816093137840131611671992526146902530584780611226069731689371633497609566723902237622201098527003727797571423586570100081027593958704266487878815697983589006458624971501252165572362249164346088335914743027164014235458721840345865110907968182431533515836567675215570115865841360015847106403143721226217061316873365900337870300562624587647653855475975420923618963082629512318310647995775966311682424604730702574334575448064900446936350626071804237039887508764552189132235656036317678983976960926792796942271876219901277648433293142128338734536889897712988385627461229378007605360012183767414519688413998129762871290074278342489419740922688069329940927714191964772463879911835314191193229966125959480701514997697889499801081958063938727835646898925205908853682426410003271014089921006399440556875653281600115753135282596678922969557802735599066562419870258059496133288277925038816905627440899460231645685803974769605688466569501167274494225340354317974412471160681014852878878510984877454830352263734273207963602122008995947962934710469948140208421254984905320050118907925722933199971663213520585927385624607339715307500711460165559260512967225239141126840951882343878812554489591720907166967018491381566199640776368729275726215301994769605757376706620723858871287058492466484824250540922644273424380728792254892253625718334287800883448269669709728584019352958723646509053135062393483116058530318430181809146890012680822433366330273394468053782464683611075379293627547767906854975916089466341967734515904142478059469406550652471926839220434467535773581765884635192321743612460324243274228857499184802963086687594576792885720935545818164050620861223715829746005234120749785390263536981399089162021982770311767799967274473899235643455272923367689224833269489965057161590879869458450583172804438299673015891198057886950666270435230082122407558932779904166339878267009108012952428459012932544176412046517184461152862066183731939810885318849236400842956408140652436476205206871161000539125652755783537714466977275359233616243972652933351932253264130816179757021558625427888633029824010648344080974032730950345071856393642966385863651060707244659699322946148716469534452440445298899728655309862011645338996837962780169886755505742926057561373905398535324578535909855385259327759360600545542832773675389348908491323190278064796437517952618650954260781626424896440288283298266615363970179037871448787012418189738150365633521082221035168243155283588411983019524869897225884266700799188557934505453987785109793609707150683834732182684280535369309751828888446429634577188080816873813657798041835322309403134859707627272130615330535011129616358081126432695935583509740047068098741084083494226333345355172727727918624509189691776774287674474148853869210641980679021385864558520990729680814736409284476412725373899646705277440667053729129600398451262560816037417665962372148673142118354523772875327469730062209537862155790834655403426849396078555652931360588772000814013691028532112591903188562849594639484998683256402919926859103874702507209007089779630397727382700054241100629296516056102015970237782695926219167648701011343294348784385148088428811559321719833310106533512000053481863171662625638057405010577223833172016596959691537074166064988019258979671537087301800090051388950842963700427077566599956175863233787976665200628134066057230542653160701671380061749834421238167373214197280693871890019261895520109246733850614615124094191009328904110609416007339013160797703762755055834191157025338988317039726999419950550963514781596848052602889356920219649599215129270899203657739585192949811399488896021379194245396599576104462974526406377469822174203079930222341993186971585411232555644731287084402954918674681830692850290445215501960564000263415821434532606545301469437866080846829899518730796014161578992440422541787253162145176462162252131426665827802954687063775130223800194627198074688888588549492147745042360386070675607454493512948491245989427116635304291739026398951631866663722377541201288931910302535843861862640837034598012115663252093121394304445270711713190142433234880520126604184328898644567750676971369470949433571770544692772851478903589751862660470103329326092918546527901736817888318191353767575646267851953877274050852186448072400352664890555735213969164214913536956225363892932673161797253661687705655322740408623848828804380071171584562455923227545374383576531293122348567181298700487121559177300615015640049540423751697532043085357284402702783996006356241412521866110548148228315480579706279980760508162232966386280245697747586880096942164459965378341419040633256047893225467116587547992844258073031647649362039085876536534979302939849690545519957430636010228909812998027342490680690177900594149669283329867132409763627604620559706227978934704812416672831568956298839241685961869553876674972727598703998974758951798093575971608411534273785026766760979826715669054069214640919722845956909083672566999267501762978312586593528635018390791744200868143129352424954910253004044243546025076456832206614333986728635477997840989886029897851155048316622657176418778509685696916723949366157498418690157124555411409389777894464952822368173924075016681824261318327349124124327818258110448319879328216421521361387091583383162422176160956440696858409292390340366304470967293015586758324648282210577242216385350225451216634935034385786225029500101727872768489399007943291831764302067565405897081682960396946258765780218997438023664049555733984591933461189571361653123618653530034072898700963913081183800825599980404834491032131886201190888096530163167275584514579627931987165925552275359077408867158249791105226957628337077870164049178359354550973962163922617685271793256916363201483517150908652598983360754492311083496459508724468745112821164214422027185297672620310781830000072925056443737155118448496854114485530246425579121842192528382639073253872033589572822659549542650105637360818952193059096208954797466018919128746648897761869971218410793603731108584788565320527111790938443922520497288664268519467452973782516376620917448026113947851417290028297037135540359594898365253767548455516558939601791173565830604764760536331454662315623466163050862683181619245219671113138980012440893721498471496779550760659737652667754027780059915655475462786530131769916759778194302914816706028549991416301042923884363704912748879399518013358036196051059252203121817645603907067481880113023732673221701330454324607219439711287898483763016800312866076775034746425725148717795857376062724888129128818064462531028147267272012101725857433233172890107255585816995127861874321167971936899972724183909906635386409742400042382132026107451099668442988128525896535536218571302785235114637343100012059315047755784363091582596574345116994898586083178815301099015262781980263917312448192655560661011958526349445278826750721710330855382354585563478088302372309695094359421934964859514092286717855349448843943152603375628003182196285605452466874544613039020463594415406917168204701416739571662426726620589328282219138939133098906074095637300316550209235536314609035723935977507015231565501675407300814530185198538825239513604822193856399932607646523959262194360370142467406000187947697153436810379372948080055252107985188915541693315683205789131746926996086187678787402369700172462068729403251451274964031665553244473277281809723741263441774203038862919243996314912164946589506486548677462820431975379031364519888208712848337166270340464005534352616135079466663836622524143916780615094573834103553000088054305011917567327830200113841310713104083742876354999458386948744529481075134419802159937828769780067716314209970458544468639545810855570280002041537478765917264494199887304281681643329416840516703509354999733844313409436562745738575424105057197481774880796771416884316029999851560810682819516461062266060813892915479186149837037625218254709462458100928864067425075848142047878513065596461010439727846313998546825978266986736583751360556755245523774252396970501968579461719791928955114932222848113329745152133426879838416649097214289082584547886590322445177671822344336510479700582188836986018910751733939133475778564553778562106407732562548896885407263950222510040193024591880622313055384589544792340129731707850648400125140500113535462705809936879732315365297197520518362705220641006917696464791112632927279186480699292456282152754990635813582929846894225726788110456753123845359218745189871185126689025321554795829613924529512959408875690325733264896009277039578644715541381198997700530221753781267062352179002408085075007908738151714460981526354281321828340972636235618263864729145924588085902345080148591215090706002733692338596908868919947554193218327475001867756082555079087923621055220440936777114378517822751221240000917252322218596499580045961119023524901421499164256671774957287264205693158899012637808039638569705077132913920341262027281458537666864093051453749588626910565641623017687302006772694767368910189981032578251986591237451862198584951531042979862674365811037415751063043490237041770859571475570690043144967616257713678554766301553394371325413323624989696388592256401738159452009165602024452421664464595355294658101171868977189530218376379881304951269137040779136911653871346992550041376448657214292775747861802300768190723635209818030136582610925904226701138295927714840415807127550146016432468253091850435841754188876838077727911477927244656066807050237475773483804043382393464724675496039422529290403089428798634283527893485446442823726446334933388404109019765109030404270947438940515739224211466999061186596814823850123078984744040840013043757186585321533914333352271719374820240269239401810621941371827745931835973075683299845786743704980306171140523417961489981606792054819784542048949334606440751812407804970379789347078810579026016286456141930688339604773852416584548630481805489975828087094293855471822888368796305948480001391052837067578080715394663476133686756021798481130529712336311053409634850129367693070743428848468189322554652017020425186579585678541743196221530163998704585069573265786991737263121696878168834986678799242493505552890062542247317295890399733642696372212558191760249577621704383514638205218659293546256057070107994447091172026580177748675155665920448906372196369987038439551750408138022113322016861731870696919140182704904348084589476770891755055536790561557074421162930758796049091512811855396333830468929955231070660257561900855268817249968402617542416585323441241615383763843947727503904461182156243985344063112490424871357387466766045682783300349846788394640025475730755625416557020208738343945977005278845451928209937930821469499111917043731495814378370474085787835297914995965296132911464659568473372929875908781761200395424126411836826981534515400639105451512404793652586758783569158586938338783963326579249445193676006035903799653438577592637725606217591581846522945335651216226633949579614740193687736143881256156103677703971048028267303891075696865263338665181831849363858356521114738783377074957637576746650231325703000660353580918775027868293209784452901883200077791788284029730520827921927337206878058347048107636511800202710606748585543983689290980496900611460069976089998659805947336989736026994351363233909462782669642846923095656323274650129750672952295874147702237200636059148963965492552393485962492094865517733224209773926169033352251633955740577618363346364049100135232280965466228537067824917645479418064635763900626918703337223272357418417608778173699668100681505095825878230594586813137285457020513736554549309027528479337062650841570736008795557053018194992850282204554910836700478013949504624217977182484660442197593730297236859187939732108567657640102140167952393278157294408269078209693405938458669942231746589786097726345414850876879130749987793983386902741730466403052452466528320247764059842496662204235477941816643775370351286449149258184832989787772034848961700573158297104949733660931124637149098260893587293418415324243372769831079779614598181328038886917463943548564321225117309023314735185909719637311173536116117028637099422554530853590128523364897792413157325156968872604341193018028313967259638320080198965623785761188241841667676958878762729033170866987419165420751920966152924885119684810874152301494503980942221092608124008855863620487409799912150329518483725575658658732761401481836465894453601319512686076456218301494131632435143689524748755461519028463061408009316033157380904519381026379404047677066206516119058869938378606771044792914572274368156673357351910994948567154235510353570435061230268526772160235857658337156883426184471346615281431111709166701715729623138894181448247575210960307961064476034175225360830964665031449860895021833271172733228407542388008915831848336067834722325665877416334702983503174747680047350931928202691826862233361573411215606316085983840383139768353389446391467557427042933292577626834205123287575219082034668666471832409653952761420828256951766147484062875793420776819705185978170533826917213564553116305622056743892774621116357389062929746875385702330343953970577720721398595529755196602863298969090025240805022470967607867265376615273698598260627023970035006843406640044377699004511950478464452271071040223260545238295596676839041924719381251288874489577183714220989667851087555551669075446638501876404645557393852705738003191040259631231385447441732888577283606085769877727877552433103127663244404233568594836421430718061626746711894325824359064505262462632217272498064847067806163690142089233972789865353160457958524310402085993152396767805739580793729940449299700677439785232335004558902059066289196682858675627992636208897742269806627169942365900159252521444914343695531293234984012282586004723787126115649279975584335650132083176014398252351604275197496729169636224256735784941954604300086858280133246334213753261680474926047917641135449188750275424455920131028740277621859489330365444180241584904225870151847114984452346158446141280679765600492843524470236681435585377235884640213176684759588366629842979059494394237440592926156780484926542319746957865658457430688922720434290786488407961382773072633905946285629860546233220453384461750649289204791688400401110184234348680884223565911784385491080238776947291702735421915694266985632546537363715303964346118774981575573917678496762643486940404963046170314124410402202400370288923070572289775064627752174638475909592856252213006576040724676768699629907771843346863194592762306452309659558723855691888759409528201383169297897235262566210226032117536433091029189596609598374288763233587350728904653947059733208088138562043299930926767082461794543186090145149140798407330674738249735031752639560442660178678248580884834465429856307239449562874195724985366507741499915942457915514392362560383609008861074730216355334876106972012545823818904046477221399861393937344816077139899768638085111776145558246680353875840064689044107608525857079005814218325143866632688158829946059322714283464467730082789803851364244282812548473142556864974161546923102305707475701914646082018584693046441998972134556444013807562069491770725014729843368492150298123592537686133453267241797354539803364834406994983677926757215667353366509180481654980774990752808729021187694098050356675284579076255822230500477052407992173034608607409353338877207965692156153517620106832728000526073985899164037582552171025273424187186002115670106664738582166344723173193795645185677898567066074972097388823546724278717371078091650660970918404064812748603742968051162364947323177694757010872618204927847178663384078889828328541862004846189849669980133978416376211874777181479139748766797500915407014488320944872219086612035169802003796833862000223367143420448370672983593003879895559998812410010349262685427318114221906161342909824498205954454856147844854325807847173349204018544203688744549592255886201969082555048743205032474919376874504172443614111627988003978961150815574739921018764417619532723243479257081076480282990540873812944773091401255043640213517099631810620590018428989246213500568685260253247595201046942287700780399609968056410177869217406303801350770580488937441017122051738209986758273105643929745367626451047456546251097088428702396607517799097975262051134453004029720549282296339828790953490275264286620665532496336784051525352091550142643676249274648425540967914619628582619543085945739094528259290403621278087127234244472771302545519988703708158194807833670076806245902206838182193037353433107019337955640679117963634405328509932868934677818035362699965810593344487353306183247194973355883438621216539521759196542280382527604926570026920000528779311828275327222383509659137762739194902410542309311987604717357690093637988929949222831557446229985769341972862827933426012712858850529568323782748352105291119385863912137528720090581389940893905424885620280067869791631199550989927043970205246177348672584296359375140108720260436746040191541234160140132920799702347040632588034314741186186568044909016311525685400220599788914491874638101519353409960049428296852299740333380143329428370030653718799066840608905106846297236925296810636791415483439243087214934177102940227335360378381397473277429339922424478965080495813436572727715075594410793205598629119711446473947181162888691018554845362649500713444177373682836464256014965061401992407750926231002233669985469820541702152160119216915919803224120965725387493390094535160325755661060958246910630543892423361695813902572389195777805644167308185500613800824273496918204101397713250227461230160873832873537637290207864693231252248004330111522536448300543338454118812526462399001417826133932814181834803559444150874993011389734210387669608634136066875877541479054357773814678529829370949122433253223439774602714425766757500969894261933995961775772244520555949764037178686684898901912161566741864392843712797038960321574240461066961450299199331260730033560968815852665982972908493399499438287077441483000091190414310358942471011945243114898801846201593380298091087213180823536914314744090531220114814329858091688723642753055319169538269568470516463605224568023318262699115625828961408546559563405936957906644993833407306577787082645019326543515888524747765572835571114367528966503557657679312001753453083874968658591286225353267128403581873421271418528138711840021178135967213884327980842877135173495015825834001483679597431906604937178004070944004636269115773173170886465702297611652026155191926890891671774542521460615895861834024703463665243304748610748174691678228300665258670077670345594660282277840628997124134790467795957622274032854732876697522954113878188557348555988239816614667960479536241331031229978502430580222619266196200206361593546123559951968149601276049308749665093555428535836125302547643623574174844111063806450312010001894720055713873974574237427366764774863033906288461169685821378948257397448148497593447855956127032735262426659565243420407687755814900075122571235315983274990035122330351098933361441073671691918401750581049670271369759756663211214197198381056324546274460295692634831434704525623885922112622855851417354217757461019635588291243652874308229262913676383771334467419279484428442865572665006420101916928808109482847253042078454404816802096787533401026874650366675832489064427015369765238423878081837549274627422358023607542719687997090966905044008289320134032433851608184470765362056642416953541412841996606352157077779664956894773770208182198571187693611775766710869821314935397824497785059926434261329987411995494369682256149745573005383063292957294419888119177736195121605071577939857166117443219880487169602092457114069910644156600724192114814636911309641694848284493542416240233214691866327614803784854693028145698864885682388037552382288277900628522306664690496400372315795505093687601702812267739231995542183212993032629451955322369359699646792676321483148204031021091992158708071923554982545611910696356460841312315111595819865648721058272876777181152749292680460522806999527334768970582092658972923450037173708434973214729284101891975247212201723620472531686979425552592484292111022203306720118672599363195518284457448836301261245560412389149763069440737388518019645993567705792388731441301667921052573419751335218147956732203170913355818737563963097260260895903343925321617880954588757252541105076520119158939757541994172433064947412799964672716550003961574304550384674781370206634644179873695002831471298210115373220984093398160415263289269463777137707662788919984662863401723926088696647196488250399105026696053211841529089501476173191174065596048151830488568698131045220109288185261408891885423840959397895147110566155529451429219923138145086535230714755578706991610026192399448724944802977737682090877814427117741207496601192372239909338313619858315412221784792685567360499510339589096898784571500485202164455111763929324307098791367912404279255639343129864987794358874074126542721300027387298276630528793026042387984869189360906484300231711966958133398773053937882877994050062775714374224648458579603647686787873340523805309826864362665479450755902752565785106179238654441935474212582628680288355282458717257961064983817727616218601913740740655309541282495524947060591724140961956576374155479558713756022306335514949094665412160561271251773052657965111624350189355132814326155201348320058221134128131150555048347455494244445842670136216002841394292614149943525627788755139332181458464540403905527284770044004350197606169102888971406024700763612563339683485083174649580683731145637159645224412961919153832115450308984205130366083877720875215042156039748667232307791989887515906042423324981658043294474536455799233883273315637406794051876468210626034150831337951820176956127879941851929466475342365265215654815106936222133281312080246812605887626983602366615679828598085883808551479406596330084551081580768498203676773474170616633877314831470904621299422401296881614547017722782002041176834778910632838190606123322526651355958037835571503870835891196261260090781963869931484748313199689852312573912733770417207314111030105278168399823501983385999154809721623673582284848892314018089469221904601046872705913564207158857532909067565479863435465924117925728300256964533665246875456254249120676030899277727460748919684430478657233219085498721228538169747218225020620591280343100932332625776107474140649020003395606892805840022590648614360601619390536208657432530487156833760340829011545034841068634755776040766417820413543438884757166948625982965626456469691738966946543403816782645658704070256781473433358756045757797131109448152710681417165768733001925780199170971846685956734821266886097979635221905638097499525897138226884879103387730419988206597109688927523038762589843988772166565119854439634038603215265110429896333557020229397249297507349855162692276202610504300413598846348785103117563765751916205096246322617888005150255782253650508000395646412217571284616615639187668195373821457370444777183861174324111759134737263954150525049289077126335415304350149081366836036571722116344656318068460480419557592036834950128562340287464393884339552607633630545875119697426474493593768253278590308146013597701076596256639918833616184586775469089543760551424600581144595332550064107531206735658004972973257824303788447813315408312567166376212995215504523044574384392975926651170668604265773535787515304874740168364275851275724452560095314179207114281968574068224739320534891705858465983787262068829801623840332486445985805213819188647758915433625566828951321468058258544439046996477472265636059878431727121669950129784662274986033849378322309122621456253349893654091776314486444785467927329839437334211227323209783164267422656076231248442514319056275283405356554997722460607316591827846698678815140030926681574095600874378009218665932662734808137083536089937812822139711211705361568618659182639391576208149993864214382430276541625169841651563781642111593842869773331226086609057901477192466330055531867004002679806795932356658028309288344627542558555169787188787649030865842023516193294765165603563930140020485928184168877978018593233763799582468738796134151448663463878831310432122426895319848019880592384294686382631762355049980456798643079729644512193528661455983361134467938720749814578919901244026097460904156052807362184982837410558364467507611723786859322998892306848652780532761640088125162458488806834444917131285162004354925506670807708404488664544007436383880240241484473482595383858590225908247516385535704477825271397003240022738923228842625613399443552544102620522946712715384588852816103359736834058306164891959902207095258867683792917610615512663072798076067377376309152694736352505079971087284932263395318230068713466143763735877210764149232028179480379924262134337948203343191146388486149819166012130302663371911966814616871096270492583371047263774273909987356081598794248202446321215537507992712455359413158238682204541367345047861461738541219771593085239757664444959247281790899167531940056226721157732674366869977229352480862918933214919953300691158458662285974505632995560086763533138252885418579051317314584772796909179646684037400899711493317594231623954574754454348774751157355965501784862309852195632882515932263029841529125650228524007929364638019825388597466853407935496390527672108960240722690216598695770109707753145210471094066418875528856976217294416158589036717664925067933674039951284172407200686414023664798768112524117517702840859347030171706734381018518554721961715375213741833511112634443088789589844547406377831835863522451536234014347144907937330219518736399734604026816975850890723119174504043278586871975258809453759273101288493428595964568720864018720728457743839076390123886723218719075840952484629178762468470810868167616847808418841328658390670000000432945495240611738793555114591145741370885093527165492311706894790903853646846032949561753537723232937859796659132170259500832027537273249588393997471195361862148367283162266358871292976170228437562373815075620641993177656735059414889063564087428181514187358546925223957003761365428755396282258299637593990461696724389898940838072478978621870015497348309707962945918917926080571282286890284456968701311416598913886312778159377472351868296309105880601095529017555668067572254968349720895906895488996544568149174932503061404950782618789553912635624858651335157098999445786836042749019596880158838568613482654367950336325246646421095892151962633782044580434647588450202341684391178717116779371776792404795126102941822464086218294683878442580970747601966277876517254179451090732774938634894437289710979113943811306811881173556590443816589791527007008054871459137678941641546903043277405058454158421749442934075533374811014872703312602716369190209141743411461845845420015303487511456649431700763229280984064524066673626674079739333100928989613450410463068137011961733765993373504269822968101985200701925401049261796068738408947276539039567943535390650930870379733523955873939478745665682558533901431205777273996256823568875481693075300167533175010745167060168250755800646254402942496182120891313545809736982943599438337827485164372222067718135839252785193927253283820347576693707169858083740638875068078591233893350652259274386302356445046182819529810310416354714005225626640105866638277047373805444535092886648148882206596611839095657356325236036596180333898874345515335574831467502346983422008413155212054949509091899736559835572466515345399610104467386751987154525618751767088876975220528278527212528206044854601712220372530364425681416566452809288005501437636058310725996494414004196819731198087820532341821260002081132107920680424999649427574816677625277925916739136809780373951666322328683013019048266698800928986221877599875731596558416132648705403406355189761616829474221703554632244519289478615312287068128630178342220110345198450105786468324876608861296908829727521860671827576375113293277865755864812594093087201600429547257620833983871462808147724818940282055219606596651426478740953688991614256016064689999061299221509855361576556353549937604315350285713997642534723763247577108184301384887237403129970733049853643001407253097795810768198702229387836714590092500496857545587109003016181647863551766976359630590401123694332136661075372639115800901845488767288845712592510998266110392207833827562693640586072177144753489341612628485099775908299116393557637397376585291407646161842184099642122693794309577671896116287328234998238522560050784020939006288697197822044169134190700283267840829031640549225521770436149486733433617268090420860271413848938382105048809460074660394736576456013774608790009440185122201416751596576254159534009885181160333452192271988292605865203811464921515672099549757465741218408722659829047098169976947704629906044498505977374391537959117276178792825810275128470873579201465300640399816531431939163781527720805293705610419504083156384044169098254980116908869332673989735789466401818684156915698235756329768244822240112879218842446185766991552946405662901669049975556694143935298843442567854264165180765887678784112770544657700268065294084609324641863080870911928772652631410218497968393593927058894772895099206766362210979056629800491433628346394005156942905734771251801572115582099969101770717192303601100704331158878388323662969665402226484048547764828345756706689055719050505110521854154351546938839355819773781389139681132613727243460059316314588903112542936229056155927925017476196199101951677898169002079237622532100885584770687183850127693277295280401658533972380897104974594738109340410911975581359615815593896880198053993754634618727762312121792331876925380783430298368963884589872004984590810332447478688633819505368772724192675348683835594341085498005439033635568582063849642642346535506066681573157717056472869435246977919318056054494570741209119496781956696190172365945838464729940190560133879186836727444934342597431261977804784415993217565784810110731435011057857608315828559706867852358417050127830702228203804592920817664961066409274997298898052681111839164788607559878234263052096151044132081507521424043245091096716504212401711041062533262157449243613330923534315846169830245868574986064524304733737315145183657493400060728264176165617058323849776432865213702932873548624904772042692090041485147895220568562854112859065337345346962963857339683232811444107849604819892555007213387592368051886893752630489101798677636373689149476988584263875682411277616798729652612426413388586392409028403172882449665502280016280696128797375460249133121613068141270362944946668481777594566278404981924135949730967751486448643089298872059236476046328745853488232254586703049480978792023241657379011913364149110729549880905390839630214830118023700474242092077700826718547976024752290754599325714791951137492489009168768444620028699915239271341711705576968789156178236795683102158196462021706052680628412470901769692224292506032398732186839707937151504694160343667318634422075070025663205789147556887475550647139980098113926131484837332645851523022984234644480088297349421519944505725364966565631064824636311675530751189745020141301432198618395322403349592396997476422755035485130199423611765765158726997689578215790591902204834918776524408330634926643684944122913512337012680029942799492415819885445987208171502192505727545363748396685986897385757124655693299051925054300829069391004142198865086033981323006459662181377307608088293024281471654678566990295049884339388170045829402093868390775369157463774466529990104017552671672977743581131763464265543730046381489075633610480921468884306373675171589052629735747715609596272623021585855571173746423209887525326860306611805479420909141213600141956223788372385285337287238297286348820767812188446016386053432757012826715413833980537620736803952717001243753965531155702016276696977816803196417215620522103629462922212830161047010974074470576629101426871351550849671500322209438110988961101849078527526773920106360590722378801668686741674258520952620403771904735412898675379522166589438154783818738748608201379047271371499719889392224823546481930995354515125538903484599457093350984627700206121808790174744416306758839134003859874126596387483728627012527721119144037301268565985257170195946722604715404273108673805067936337982566208433314289427758306925625137600621424746816581448347105105465038718962388713852419870064633806631075478940313164240641548045354099245239613526224796898826363817577149709815931958250786103539210602777523052165106773398432753142664506740104842826752343373149545800945152560329839562930225476523367808273592329074618418434768910301613448333429017552262430635113196987920508491269719472710182433644285878755352932842697298252824843594827878218335060521779513856021080489584020801288295387837979420578224008496856220485192372171175435536170251326243549272223629527358007097729282994751665886892483579990040598945846127846756896095995155709059311161378541601912515521100510052749771300478792920182603770334579381251643754828237257207327829570210420574109836751092208879274397480175218809884084092562532458343259738689087598421130008994557185865987243939910125087051614673424448737060797383434948490516838068406094807183830676444988760160885932913174404856200164455201073553213570474330566866861029465329787436167764705018840947423414827612951251974208249813663184441369964464231082617929799853989980379606675219808801126267717392681644659936587791326610467118231559997706688583293517354035037188852500589477286386535729794903805529246811289568545657564597257897498194614699032366948357392195815700307407463441417253759236875362495602744072796697992877197905683680656757580025174464525089934853227446720363088215445178453595880418666551864068305261870210875112181261913616833684662450986450136790642770608422741272474036809091432350053530590038456964415474395881678956826994451824208065730435012230799546235111589233146659387638174659154371402106788637344105038956557980407708924086715803146411494393943762353725999314941522507992173039123296788676341812711066410331303079664783008420858506377747639215684724669796942648162886087874800868961377596990075462811812957735803037062426130781192364483799739547033622849355673447822273965844455211378275204513733178328506421996336756471792465116613114357375124949976932521504832334404522378498186863420871843872025140007411415718563973511447344588039816996890234577899191749042083243776036735649738611840629786319646302557184704807635184445237040808979366152001422979424982569302404960227203401514926801970896299484357843561248018429621407619066928826455841237101411113129792714721862767335427867587736541423439134090385354941690370337657926660158111605475123276874862173511054263896650138454723310971076446419659513472456895902810549427851705959087212279497253327955245380214622139825329590032702313099002495687290101106205682917541480673812846625471281954415111080769116458878127049872143295216696211834131396458241085730581921121274754480599186040981985755059786226370099749558847663256818022389789816593438594178535448939426948947667231422499207634363656520725692836596922243669742142095823553874760472491538994767368619009609120270933753622003906992969310347711297939697648963171839153237443526521510726324414379298214584287839670930328520188228932713067346118950442854047701872781377707848486344967282982335807048240853142286661205594775160624379504462867070297040553538391287332164785587847463925647359802288282397464939595033183768339275117673858037677320616526341356323679952158325404658229802705856122735849159643576005061052160031634551410546879453714743273422657183991899276953089065561706658793681856689121157333102312053081907154656484753893868885732152485352466972102283162367892056214329818232838790275093908439531602809117182535774538485124166376986584674748795140562800774683116899796766239797470214789442813983202312011313895263095272439619767219155664162877785054377982591007041352074299479819419604132708224659421199472799405024751206523842299889278102271591485483756924404232594466809493502050216367375120504637360082122499871472054482429122693910301379167331495617644962328498289933741378717659074231405217483290114604352865168766979010314697807384960527293691858932284074867500855426450820366298144213183954218021207603858321000095341718423705290220269270341065438489277527533257963242573824640753254284152817480387334594731974901696220187689542150015402722060291020410725327090261975765670458497501172148041251961640760186744779349370454607322585908909604167241270417165808730587723017940999276439396291162648594913476859163067436880990151945388527349148451067466899338663997887835184449376986852278515172969834407113855326616145109143334611453503918080692346662449691470969691953079531621988444248078486405891147971524568916135345778275758160205838274849116532328194835445347416403156844971365262783635380767377628850870045873789119481040254663595383996043334257991323784132119421592376479072982707253559488128827065235714047709304702324633611542675756600346883218755543006686708441296005056044271032610958809450779835713148761901508066190520453614167208741830046487710975624088536718165110524043653033324133488246492384685703338174486332715566171894486648362078870911202300046756216218890757430209952192380119782905698722132246365308873775157339995666031768727984831966265737689523038532411973607070652153248371472992644395599241613091372550089961038384168904829047941263105387904414331888560076700528288123837812871222916167175212200520703525511061342533548900316811829270828684586402921186231179891970851012537665232685815226901928133320613873902629888224587557662389615851428833308782175987303725102538512399685110084365317182618413723632299690967270429683531102794323851869928140076013823405943190615753631546125594901406435363821508867927659690433279255772047864721494205730632308427805533119740769141953523712241998306956456257721958970823835145794015363835548724227224918041809557057440853557032177846039511880154816592335884269678072690871669233387933041468988874073915942649264919103926778056732858030722553948986285623147882533830092037125741592877139255173564713320450338407889033653675611846208154923055020535144202425477384750223060140224411378050244309738959673338969323773048674320566548033686210359660550318541126528787691422562214512734749783003436322734794937636028132797334217362330562333045739030054906772789717630389371532252507532514233159255122076184159592456967648143737388223626844997500471016275824645455109878875114951361857369616714969075047348370241013892593150550206711128313727977254840546627020826180877352014112835415524586117263453189169003664631019488077358683046477622763986850938812046034250068684046716887177860255804405531979334303785821628691208175326862140948470221466032299635816638520862816554564510221042295520331324996112205730208575299900475739902247085929323183009436457357470397320023062509135723477003235608520995342192227930008688495306267743204670363231564837965808467698026101479904744413416644628381749551378896463498033669069703091091184697297242227895791523615127434530952552339471505803361424243483234181668736784511629254763215730457338209165808871077672689688261139075450539945568378518830886998744244098700328985928491153497087753060491133149978260370172292864823187733830889579015029851719570963574100349052469287317457584358136792476018826482382725408270154053589413747244660233167341611091743337855766612802284946539943048204986660934264698294676939907910403835816743469082476414551090307025424130726247766843764511560068897690308326729490187882965588276980521008865542597612440051905975144956128645078518761239402580873629822924893569851980437100142351564230616300206252736962035318339776209575465726361925334387863836316749406233493237096773421234593371465723351300801408382479519576115630149193323319559188830529152622495591946082728040327590614442171594529262462608191998690352885660745115749504842756262860680817265694191409854694632358184430645499116393766884244427139215835230597395852582097124816088217179985194175912494004236478995615143030551558276748608878956930719153413489017881155462419811974262395840658198600663625727306864309275519724456292194153853131153834867261792735798869558798357626356043056977595609433122005679440014704754803422250187570591116859437557110868480477955284554425033466257038840389402775597591915022354280168454013341080295942810291611216146899722316191228879522216215905378845660648013497571395082149773805468683084409450438456068007461483096266235167296369059524180267427991188721540930316888790620677124785898729631618791962901805604757507371753279758805219887548419673259794245120190527066287047949006796953008882344182376605109677483033805484721124861977858012349649494443796738745014777694601176515266660095518514680772772688597474892300094327529337193596631621446860915316286894423136852704457131659803813092633975290887854673238769145273622360811624936464693519279383235388393779682635741285295665822864745116222475472711800781972405682616279411990526676927407057965621576415564281136071045403302462172844347311744560088996231450766734188395545709396722195283436649305833049292150306610929835533387664642729126458428175276889625955062025420485752396262700393218349957684261149119777751420767889414298310064001183825513910936669377677587135270397232017514215530281256128570413715236396168758314712857870701716733567559795657082104449330149114953234322435399267511643791649784518668631030063601400168572495321664750174109744781836827545902995713710838603390039117289010018531683904328658483683388065679199579458542526234994089188578394272171070833399503288003863685875761537003626380340297453093567097424311238970936750275958857741740390358153572438706140685180571801098081315272506335202626794896869383022736091734871141682219425432634995756685379996398715608662185513237469095613512863253459406679032859589641653223154244840350690571028835030529724936413335521951792910071566603382170393848707424430551692187348217132065496867342031601142632497280297933565303264355823847607923485376710334072145486659161201030979300227827155466886592920295206597733522963633945248597244503874095160285854324396525644461000963282045743026506607940392033968825398830774523929655999560940882243704467373478290817555217582229836690953147847997248548613160714004885756698285209986747136499090504343764621231107741922718663991615153618287028503866340849864769522154767995482115813252864637732782552787281567787793626477366945127028578961842917183291408334693822205770461332412348072268889505597106198409845612494046237344794854741135617778241930401572462838623617438496010707817808909363253445065846038568374436418482822145227690581869444772302897770731246285473054292413261625645719923580792511196915029513217134034454754840706714419631106028426755664150046178840569418114577032166740664713943705012383700554597380403089857806304827275302495547447965362690886553517763630106524269570846974314089152935812964101544873718603566195520651932078997859918332326715617300012015621137582832502706687144418771371060774034297702685906388916892020769159290052853633480524922840983536226313341725439259431202134575948549756061828504439950056501609597513477075871385447542989393575058180505028689242553370911805570056222773630479308962916105339921260954268121744908196857202494254798508904104130364115242947492057446502902044968427058559248937464533456590978523422442318212632341195092137374665194292941963122316026525464447418295620189296688073800693086948251841420305014341411292072248981829547622975968266324804562717797189118476356523776226382003602288150260887025134031783973987248531795931985456673225656689772783399485237450037863734428806849098303980209875758128629636859126549422623332032714043553579932914599297555262009644397950981828608747778349051134137171298685862567868709464890531354505264133912771779818992731987469785804731087256875730077777508955847736073121335022060514846400615702013547695127218879325940831528435999486579617851479418159222648545300942587837192976768674591007965047384769252406112182983747953328911136647992634141140873846838416954581119004131166059896511395187844195077202167940515472937493133368364809158848165715927651223598685448765679797616783794587395157299902562768359002252537248562273643341172889663059868791790431001150469585606435430339959969173158918093999386184979860857511883893183378213071300558803615163325959330684115195421192673731114842306739172104369629375492442757246622719300043339922558130918308312769291790042656519881851417964828897445933585316752876272432968794349159609332950788691293448528673413567217400285319860415560901788908742117788809738237918675695392880713745638259694067426857314154530241682352590601172554090867755447992781559755653438486588116977164258478161044831868447695702117415812853603665343454999820217625492012240730147989887216544654083968308691893534270685464707762791515730293846674629114939788928845965855544667457801143099973088912808692470307829903805098688999457175850444912303645072419255836348035914777619114062195304720813584514318363624456297412638909892418997053416991497943737766856277534576906663107212144264681534975188921994951968561926024574425673779180708866152244938613678250200165448145297515236775765225263188848199079792354862956530809169429946843292710911084456813445610672549861128507224084859306072591804146909551582151306891200075621289537698323030607064573527300829395329112222894445671528901084040337781879385753832943809724387629763571273212595055751571940150975377375274406400532368597479275179942619299917947344436238492501921145816814992968616792153245161352256037969854178943480227456221819320708129456314502962229663224128102049705434634886060304416240173974165755648684964905498308001801663380495100939840373891380303244298379268560053724814712205533051885790878390072755312158443349047073368082943815645116687532572416946773497361864212989400447465053289333651931241010912422610723700778548244919245494994386997302455988635819031698535566290251960593055573400219721870708506511774271723391758475327775709495083933359355273196498399145021907182948818509177139867181607418618781711652394446030973181994299052106511967902398630362873225601393268970241664514726594683069914703534843134491713498285091407911488324546057140575721240033622432265100300917920395572457690233611615660299520650651414908698465606421440261195883828363907316920610905690983496136918566602380803328471810370212444015338938857207752941136565540208102392430182497920812183290898650204167254252095585532283566845895804354426948758249952437797043943055994067941105359505219785197706013132409485515368808123017180410538823395196468323211112057805771329196538584742054892959851133969644270578393919589432055165814827932930272186227891769261873160748931553673020575373851466596296035917465519126989239816912956853424338710593709867613093855506620747469317586655479647069533572979479916776037966434932703786288113675539389725502510368204796909481716494729866579505796345958364609604709919944281804584735952790083402132210565658799526623220358774915903914081391781893484817749458930138248405112259102501205656914577124576115794499294401438612545856904723436010389407778438001918787317457654195713567957294809011391582395552166715470252199225665611140917423150611367855795430966352877778102494807981716453740819738403952202645708279612446683146114224170777664599011433866271600007231677601913301329407727999780250002063410863136517630550558432415501259457543603784171536966445827561627664496805142450246005519200686140812125729846046505312661947486827631047587848342865545751671474712599358020288735665126490938439348532633106947273218284736199321173724443480124577135772674620129359086208433586488274157044896272751613219755232040809935646878175910203122029942024477536444295043801503651621788119898463426256141306457144007005024125833280845689763629556720955464610188208325272709777618316313982792762491018199054686832855957672030804635632284171354519794316120638499840597583636724590549621326339510654132986231423738660705849306296382775604205200239786309521070939267511710176598222602551604356579865219635817551838218682418600091990284134605988849123813895212319829508276225311241211960403265301979247307825803980314068114386419523444171265646705648326064224974020343273344295152402099853141407463951819993738603510125512045942290669504562837030747614763112809581232613895421222934761588064011256211934165718622351637293810485239081213588330904372253555718174538356464644806259965313205090006029460366504348649369923449364109163984106508041614844389143031815599739414161971510227406087173087220460964712064334314717386281401136870201032341717192143474829978087603608193343724806248913098745213422376094644715229022596215591636979471501296514626459031091408656115433675850221124684974387846927739764403173493383550211605874075125972721291924703934362092630600084057565530856900024726319343510578607513223352057633706046144698492556943091491449813079651579723982059084445057920494701168074746461697595638630816695366983846829810692320825745488374323920710186720612233815280611661206428841996728863244285988797634212196832852743520248403836898368159658018512967160812759165152737482413073394111430079557045726683254828528928662851418900265501785357897200274239223925559371194771911357602093171963299844202724223061571083559319711269042059339097058447972052276001672214387830701691398339833128756032947879693470599771924755159586151028914634443788530767746174680098811225907754464556608736670705629556401041001161392636636993008877970472950477313037359301894932737296090068901355516698037262873720802271783006845180097636062508105915906419800011428465523643738966054186195341119585714677503522452818295742823723673064458977880463586895048177593637454143545193939992186816465876857441620263374498009224901355777326019113577008625991691185511629451671062592098241298235886593906831769044328615264780999089405399259245629922881892736805076240379120146777070461688336903459484330752805083385750486083762107817679886076408051368511400687618714895528388950755656214919988519280158637557095463405588230044556504895779773811997561759976750206327574252048453748380718861079170106942202182774015590043861422672997985938841215458928562875184825671450281006287951228306459393150808531739999257564114185076745434702080840886921456205826673750495027130415227897498120418634058333868024063334939882089664780825587898746574651799335534143058600854492757885226094833756586356235952656249793972451113372750920891684018248827019211326683039493122914341316163888030519920557148850793457804526542020018453653065959955380312484562460065592635796592608923611714706631298420740177080849384611570246566906018186026323627961656994876035193682887761061223995478853273234867308847810622373173897355068627830714537668533522479285346355583604807655050920939994109981962254019702245234731434820096469863730744263284192257192776823283449807419588415398284212490536667465266883531499973452312994758284127008053596491846522232412184978807712556329227085059225509822498780110847109901993271323022580131407533760137288906782420942117561007780100354924714180787343548373328357909330098994395225248948606134220265267806298539808997184739302849536764971676572416821778889051068577159266583867666324191955460768152974073620370963459798689785343112598496487520449575870401068718251239913163015140617336245663272038997739407060419382544509170831235741254432682214719753505172172139835642847401035403661980111704839601478768727193926299656328451274279122669606180390458927737822095297361976673200244477767535134540544371188266728960966983486976119457319779579528698553600345929125681219571423025785925804255269070236735687755148865165391359245958602911537321921841116321250562430601498765111781260880147446734992371824405598605707404045112019097804343766314943336489448488359988031241270605386115192541984064773352473756587280988743433365356628723003691795394573164472787329829093108978244676517499059712641144851518393676924732098559000827179425146985594520254659702820965201332830465140817146390601078976816657115099296704336466548276456532700935329240038163338472139289479318765565453246363548620635103834706861953163098648350654967813081279840919820715259329504875607959781339419522202978868849390418137278540950772772686483132516403118290061199331275044175024594317508169265966507239944245220631744452554400213617979233739957391789236327737878285144912224000610421293125396475074478354753809315166064870054665757286854854904745486269703145908214195562775259372242575191137281412021974004440565832202244789660266551639225501691140620475284217851820830623383898727268068384058683449570230278792037419301716457103810912449795191634225814794026531537747810016921721927714614502244632654303300649074541224035818308518348514405351403519397107906798224649356409130254469862839553332422759482098430941864708829567006921401780602629073811304403156270581234631690101092213424862949493040243589728065656605356313123768511342143843415138908831491915227275248033275785802374878340982090319869895103639097472418044235339580897531307030201024327204510295280632661837717980199159417792527992941319168395636688729388254237542687986999408876339827866405535866092984631312280329019972820426295157498162912131490151765932696850993449861146483492269493476548921587110612683121909312401159841625433146280467816580680998692081950515980210989825282270417391256932093140827355655643587341268034956977007023051618720114987616134327280878822149097381157576746195675646378205500502343044033399413963513041601666784944620537400774054184809776662216979139104450383786864829942033725937667438325643691450633569990749425475464961624049999764053312412165202880307924521550868730703452867685056388802143859506208853456448003885455192925568740934952936620831973757967545640561853115962440399303678595285393625964666949829130522170679048723938585586028644042646937819229166414141272436431102349641501003239120510815797761523647765773468919865431376709295178127186101022682771253424487483366442577412060432661917746979133088658112265007677058422808241124805029874198605747357195916315033399839020583306306287490688793350687687928009808115528795438120716854358990607104024675943012681733647624076096265484795517975120709322379967144738903886828497074855368920610838285626506674542255300252891126136960777114062985416024315723815727164777559720043874184795346271908635264379011638876880851228534151411254630234517115757795686336438519513321562066932484654429141625662911406600289230051739463538564642764340070662933987665018725436323577366556825813645568492923739912654788457099862097356887054967948591753708683794438595444744394416168968415756878152273939659866605582529589691288436645364603304245239422543699163088300441448364940778763868006418404422453573340111446952082377752159328643984142511222202456296036407049673479154972512549420524900743113395733622796123692808638408530461259656533990878558679978375963953953205862992183774645955902676225377872622914461776020358568864841501997592222545242139817340284067821179689621102034474370827579190634837500513579913268053817483139126623373750920864880629921318832539395645993556752667032240695856516815011758471756750108710722862715360230196955998187766757693393218114106209795833626271442233533785453889447480820114125172205478695617620193682679776121557595167357031348336598148194778058593031862177780544288264060828460090043375821004187695381008550967144488895558940121805433104693003478585678120664522284547550424461312526157955695575673429644374454509368951738671085416625040318796378612840415071202956186209140510162421680090395159161010959917723774159172296726462954740037622245899346884118915518984320096625892851617161998413317046896439434502212650307413365103040944719024186569825859031515633863317099368375959213872371320189465631547122402822190033112789505647598282208146214271515086775012256133296352376400006716247671130216344394203205156532734602269390419842330639428600263799729216943833262743660290027515089083742445570184067385925486977451771838784722241260669947635625706259949251481217573014051905859221838111040836259641528078500989042954228067679029653078079895406588930580839204562441302463890346784965717783843637024905936473245988516691980380486533806259831554452718809220133177606302420859165885910539571118582482520443339109150701514450559178163565816119708795101872718562437906098358169977209867612600753342963614773579298894790725412579158082356994539209246860417573774347206325525697471974751472552438664397969108062376939953364990580931572692058244619319573983154828082022140313843748557810006697776143200955044042297204642533875120875836155637716437578016587867503766862171997277782509654797442731091236378219600820733362057803897287876299080933013066579494460878476665556020494676856493018247738524196318004325281467011973402657562255296602507316010859013787624298509024983526493974533115204922040484496936681700391817370818699278067320210467522958322799709229130783014659225165547600328625512191692143158388195583645240862605105776407084747194177718187097378429714715763418938254487516957471257358225531250861181906077227294327900640685540959802672428956258321418502088788637885494128289102083275339048446351737333246536920848238234977686085180219089549336300110382575983651183088018787170513493642485414113946917750720232722694700359163756376787343222910601423245899769574110272082501355467067881871448681095038664849237811338114160977442528646132540782080364649533883419626604208451773870226879910449959089758250625224543443919539677703243468432464337732781369945985069198298545040328511255862299726889184199797830729965077699793827452890389579656496282302527321561316324095752130560607986678492191457474745542549420545728198593068371750123380477889368303102829984667930648804962967105485473827024897495421129656136755352200141448128571963128452955533694948332129753682973523332280150017685530004394647720363706278485621541920529883022494096715781674754430590711131058866271807892545605241577881688848877187452714722322258021748563152920445443109297262695549340561504336550642097993572704772698482029660003493307717293173265317777949227791530149525129001378538387544103327242881734376413003093593684899024905607103899968683049655436936361466843776711136349554120964971325612865215207598446512677981756882129705775387451242263577077104553028521032244139809554354670621821779314526732087523206054819806625552313535100766996490858802557918333889513474070969415853007250267514057450677123577968184460987917526945463713152083452471650135431593343019493133520910513094214684701461131557402290250927740376366484168525714095110279585026746820679038073911267443014139811150962705485965412511081508552678840946505947357991143496229708831870529127525019048625270244352765868464990774583116609792333107994046431344059833899040002830342198104495780828664203113780922266047926194044355486949753534372749741533582154501263805293467817884027886936820952901758649869872893890221010378805515254357441008585444293316959874387349089968642388358787224496705498011172123549104152209071805531444976490467956800977367065788258198026425223956083686615598808237400995766768678884212206407059297160114726682628189295286197056481883398958534223021995127902376679252644066395916548507070064755800490914082355164439357308210634912516448977972543197331101778101824831782116774927741074227430968677645456066481935629475932635629739043331468192703187655007439182990322683324052390286189533070287926694751867551569370525329382097800122626763760331196628247476217353345662009000399533352252815816379728701224209039727339210614157326644094918073177464266534780379471439210256355584237157907872287489665595685473839422322660774943314558400591185756420703549441213909302426700473457950017465154245718044680485938046569434669096896599906674925161303157596175679578099793488280343868375267939735095581728558074936377566301146501595469211227243663961549644196824139457604595657566921541582002424162859722801827278126071047385079269870073967703376985474137954592456548579995531750954358595772451291513186627284565755391835442994039978491305293513694098963218229790774173995642123379719232647523679249134972584583740248668777780231058228590736239246214604252444716229047347400473569604791465114623359305503750041546834661605118291013945460850335929438028505479703342184492817817859851633248380769719104045662120998023195730715656032358818151187953359461038806723751210163093745497523638343948056480747285266737969864181839392918213584279359711035922043492661052796320626397052820107055362228885615788784339912369688815936443782964522871645647676710723505322520831321144418676489861527132718144147325188547183530029445416905097618525860869876063593110013786116006330099789276354262160744808828212712613797715530969901531592186679410298393171089697372283402434162824001085456798245413199510137473027831657613360096094404204014147635593370771621729764857677302112929149491007874315470677213566182593721522998362795576779356319913366268594608094520915743697618589028765896409269318631431002048505837896680479122188948048303976524600647974373399670612938878543198259388553509327979445297962906032757826757578216456276598995487242445373205234533788201791918944050269212012955716243357569384084465801424244960691905386474351571879659861449204189391951511791261909108055981061483555993528669009528619458855864700265488085477476298479616020206184149341230633647404110665790178571678215392619945290527641068306859626934759260525342717931707212691919467483116573197156707024925375433896022854178202820417009073531647665263474826851441686914548473915321336902835795456128746862931861027907298757573252990705452781451897455860757085960056721014694112864661176730901422242422772279470583217666580620108084616802752870543892721254500214246065547114406412412124654074463772680264588558963571408611265657219437752064013851731015841255427645324366284776114927415765633602816456700282300492681248477500391161834998671208639796898607627310725971850404242860529330261105303313760071472323570534946757885983654314960777163731091460970920149066572929091498322325081326947100938362742120226539895535144448360226162854736477243818248102763028448213924556182712573256499849023194788463971001486783559402415220313533428653153481423764813886869247206194757377320615578516509610243526618447369799940440682356433010113700692316170309362997931560533361927011076123698498064544109433575273225015171484823557810800868482073754010994528600560799541431860828214876884359410801428130685676465949671699525851213708657044318350787747284450784354269992721357393978310303943324827312738893091378029359457303947003340774642643374437784026912969384501573900137653596154741978925982658759827926233842636177622103925990092985553595066296971790382124486176234471479176105688520262117601050600088381463173130875958195412990930052421474705629045886711324434699236817187598098029382888956618063396463897916965382794406427521650885242044177043762686660629330320461353870304380120358153881347378733497748222216787906025186072592567073348421772133092432587604155709687773275841895463769012963134332284473826375062298098404249600157087001392406657221192603610003342518135165622508752092778995254520210342064942697994483180199745250271455701000423357510895630892428966754668977003011583255476623280962855298155173627856555285137821374933249600043490452002484096398719951644353048555889216065572032959979402647579471528196315469982609767150975852463073883009255919065990618493963967121474279309787043087053484328992088184090986363980775161187725145833026864113931868983607554237805954811106944626559845340400573814505355662946923363663843426449065714467177158615662709651034261886415283730219455589662029391738620156626817979809420102916396278759658933102628792385550583875813669301969487534747150104215707790880668792174897592922122438267623002406556514737179308916292689831734149287305245877415772155273598052682307009965921444250050147016094024056874389303658321794261048528907170188079987713607805158010040405017752286721350466257264225639731340562195182677081753311653659945691761461505682996659877541573656271200344529331324671625666553259025325098063551265205980547619697759898171802171106455401392949968153118907585036170827261410798393561582994690645377660826856542154827427821184902212706062920413634097169912562029637472624055937194514619721773275691689823356653721383619250841507136522341889102369838702088117783834904793025628545558598951247322338852579141581585176186778315906114112215928780510077125062906425257746654525374178041125969982956518666182069166511667448054236549929289766055408299153191636753744884791663425723308897605994032644115184850224356981264976428935752322688446625446253419672802702743777637243271977539900465467928760857711808013970307407271190418993654172986618035807074150879272428624219159842677289093298993792201385824460802138858918468711914236380211429036202394780103644148019963119736987832713915919931774419870381721401679155221589181623215154280678586955706517488473651675556759135965418254405480731851324317211776922896875465413503543267573352558113061015291913827118601513085223719002884141649145306731392959238090967064520232356066793587604011675755062657024889116967375831762720179004604002676766927496278621108998902463580203760714919435576636536822709946028154126262879328529800288559749721794999346452971230881052580397660471322470096447193654906843987350485087816301674168962669160726477011672776551560400668347741381607878180123892126725194523637245378083184688314338480308251671981406189680890524833205666874619014832683677588187642278052456856579825134981895692345973403594569401132271506381342976941040570729902623822971901278968452055858071579447810590716939476396264189644359263506729821528791549112750476989551878625808016396035739787347033718355535548818150332587009552289138886387508994821107298691295023441319225784610547355358370151425405237384778635290332416834781961787595917999446009873498441954951158799930579878992903421577952896516260631742498725530958479132293262504664081334848891179035032424483945467160491698446320463883822743275380426923034651540705216879811119427581308554330082587684711634809137564866412504872280721898537008630499312876689656682265412880531388800434477408246784768102107267062839933250155044626686071734008421166702046201529154254278411310691744575169512390098578235282274420754499292819650004767892010781533101041834094440966632980717740110857974649098995481315159606403480076055066420984937708465051694088393412891983399885651999118005614729314266293063843863158893862591858848287384971208691414261061143664179854823380323562875484799946191347001989893405913891838493692447230234210046047376702332952959359446530787206037165444238556509190590945095017451531292942242149934796440032560191688143058947407526565053128469871744703334757811783396928108350588539701951172308336620344907642257491172661128529478933141844415554985700290931459975911187296313182247970335266682887824680904168288213369038916899632210467438729539740195313578071689878112695575558657587617169205868390457677602930131102446022259372033564304629223590449458859046499582673604667133500661543934669764348126666709351210911608333793933726799160318534800563199298023527418703212225305158573303396278164155888388894940077054278363529287047932933246477106445403736823559095913641872208579260840797309553704461075676881640873789492880533877763661736602133549316169092570617682630757128200108271532845593567781694955315775642386521345637026956855822045326332889120440962728593476081780979666298420883646929153989017034083554488470793592920127474314705416997057172941287998748276240678067986053868029198671660581472242218383436005139281646183163777074002859128366761136387288876668624510219596398052949907526465383587004104155700553249172606066981838690609151717688332025209367219649323031369090306135294572865839736803315698725277875823977229701167027697798588324676848337304710308117839597932042860871679305456470857044761882703297122614019264048613646095430746814788366994977374152586060341346856086426836451894548806585099541195454614193842715203157921617371415216283586705338884137039063287846683679989733658076598059373623241066723488845984722111991595002836170240450133587282708620331029467243772135100726030300793931172448545088685826104819377899219937892037960792456877929314766905590858178973274259265121561072615470988929983177479801465034439187906812494962739681873531116657313732068220464047678707894840494454489956484665160976060454735447005221682392004828431199239062654860265044867152208276908294858949379157598937906854918798722873848094801168303824328316268337650470011156743560423905239609337159594607337407887090978619105863099970988625801211322685292755042921321880861192952747633680665847779147545640478873215588800396666447800324461521211794672545547634217045598643376565672916520322698526049950690939458080643194724660999528147323605930923850550283193696807928936590957935862756437701115841017926097773266192868105915725949584136310628033076002696605710802014023326971631523605710143212706591626002970851461577403173460938642486128413201574909559965411073998413444734565069778589972475668508043400760143891592571837675018584028752532395280732155815151881280907948271403883302497843698432273263218522947502267693453402530666295664681539985113208060778593855737400465264979685992835953476727781086346716178147367750448711409727453145381962211887563762238999744153319398172565390490699807241497993320035717290507989440763376561157806282220043949378359269155754502692513213219429769044763601543343215098291913139143560159925202000904313455645385366753018384561104590315774374795080753760985519144340296914398147041751626973458084430027021669514456182970111951318772082779432152048976137088478159525735204093965537683548217429764571602591315513692669753367919747535771349770579240162241994654185126371882351560583031471407641572701697274834010778398807981810621249808603592464355868737162124351184525213924903782151102863719473143340897521673854241960490946550437949283676460430447327490906722846485880162913769711065527149160324061368409579680825716719647309125880569870247245584879843399173378060311277685122263153792522609622522056154326406444007865834953248491213943632525222745165446040487191652377606800957311104825056289217535315391817351002059641956742990348075618490234853141177979534123211237631988310250516386314162286314744108930552547423721286845090689804705730879406577564796534989346581167159518431286218184666816859930746386125799818884030437489327243233628656981337819308822087746105448831206632620190975816388169712782831826548442156817272244099004633207236090588216381754886487720401653871245470740445265058552680022444843439489721982943784438815625864616959484688497318108036585641174378085118399949409064860957000738370555188930877036945506236506379037499631824986373836689667941475778951038326471590885599646737834669803527826867290195732706744548118535902390818000048294283568359341698737033193733453711521561248327399465139680700004783900751062889993566018270113985161596982528964655406475089969898480252875023018309488665555600951498852027873305677874774322890782283437883857506908005583599970123434085849381596915152608489508108999525188710667724173169234449562380287600015051842911251092889741652319622142030592696660982031805715009598539926140745758765621746521574111868844794830963959229185629326765392501456061629878166326214106597404348409744600756375251797650477483309184845905493205358281061140336751750627080600521851659744508218660594276425435320785994882285536617210059459805162635504511537781109921238375651345924721966850476941024367672119380809453652455597628140121311837984709286136401312040516384366096481940207549515494073072854729229387737894306768530564821168712504428930124967466862161705343876990323486808868940792279219742668791406951602782617223599731438821484901408071585794191391969735729007904055454428498299013629703100501701862013507829441431399160311928383706900065483409901459483738278176218203392334584767138165440169530640339746016794493795072436219410405790880366029590530495297744333750193912971339412337932785503255634850420444666268415083566522451632809156180681310074669040720583172360476060228187288522413913127250488909920880840605921148175731192861175207346380973376739181536118126210614534370812604290424732841237584600761060447394924978801789887947371276773186651161262325102830554003590611126322196458053003448544088153067154660590816660767077261507873576340559599385684884318207586414627586888301553365176043769624468716018783109389717925559908077435545230248197133424368559911056887946949239732398167994836118920355091043125960356036469469932561222612082637422910545276834606686365193237605888270987265164494550728371067621336166772140417942611395220379652417162473120593225991950113911535845518877175719382694300701509480143303103664261928135603290121465821962171272264366174293994893678094806922221819713655472101366334424295133797071037941063342103271463169484284088692455955324758113375160939375156088396917584527303259494589656469494880216947178151013716782023422473281144677022654389369966736980832853832623227733255415956366421470627963106784251279562819190985530120611587113432645766815238245780656405035008880365998736967406780185443326426216162820250308773264830931334130190665231669252831965493430327661806514004045488810242928609389322174671387270196458655901941753991621164946965818765366330316039189475064403343829841662203048840317377394052257202938389273565433468631625163007724941320129834853991766460576056682790449653546315236614730419300599862017523430805859644431014842976268128442894609216047062946926659546597197803295097705456963252408117167250627160308417398789316372703183833273203958647813040488258019965699107385204701626081533057050379473728941188428603751257351672215424744527307658778248738149532957895863016846392649948029931809301508647439039597738694101807116514246786566392133031984860143497024483877858929377027570478571924108907531885246051424848173952956939829902212357160846355380856377573582547208379006440437659951825147922262081771020763230658269270868743713618189634759618235227259459302545590575055584876752960422540447238379797953029476104962940664899632758231612228940203046368226649321005633221086358879876472003872010074224935234941410035856202617451349185427657944906749865507099669924433160629610461886591168403989140320896127413961601370678335217142255986935921057005567181624621757161715986543927419682635866129844288915304063926846644609284134269828368522242985941316566816243272394012900795674018120124518714350001792840711181834125755099824040140091423278917959539335373665962757784112211164254608795083900433623989613182135054349385573501855794315629975595349634789528259616261539588994907003300844012081545395816885007542268375673078000013186113571914723146390084845329708852145850570731823931205573300589129839766238970475590432120592631334894985103462134120335751146735481705850280310966420252508712907655924750499953226620106629916144978396279128849471750994893154192116815094771918741127647820673102948422212862137649387365874402596874370070080773208368583929617208477758093769718051426830409157871009526204083579907636912032233822558947523299305100007255810548811084638668962198237212750552590786453052618848767775668529029647332587237020651796111437400386249330251460280678281673275872325018086231769722196396515510054177028430520710754244633204559783957158335995776462207484915109166490088450784620676998485523762880178658398262985967104739676333354005587760466293822831479408640163613239583256934856708573453216317374082555355420644120625085409758696478656852234124565152108421803248583157926849976642987098557077690613415503939868364726778059476585976839329523271827315724135473678605273364330963686993914149321371178687118399236694764536457558965456751176465225878734816604251892127710705464702578423753906655909765861718670849335646036264492194577900576361954495929317791911721237704228952656527144182878051962175507984378035230392136569236609338833797100396974324954765258838359227093947131963173191894102117299673490629214968426503551972853360725520286563210049589244100233453597174421681320072462062742928898621807869899736836063008175137260213418030987407964297009770988317861290098848426448754701533917488338156997208675484665567497402580591609931912029828523799806539658803896291531314886224458260294559745486250776157008659187252501078647939948777793740729282922518308108709945392804273075594554779364102167599783990403412974625897229362954969999744435849764079530719603302240143627744645085106555109999875211216665390228003289111354112794715221370828050460567167019824521451325228073925322537721240158353292986309670687341068490531499763920047815086683384887874090578709411654593601412873855613609842979950622728713573248906051064289044573002750989441869834121967129878079822653531791424057289985077177158245590265971848905723477682456882472647556207175621496076855361647809894605556010517515466322602050577097001924600425466204435667865145708411025933740873363219318562778135568267084750419501386098627681072027766671325422042906203935592047140753573407113308736246176810724279344273144786988307480882590991814179449361075760130874780381929047569687212650740636359268556698681818030862670103176482878301322924632727314517580495757050067862894814623006541121681644643252192201980754183525678115943467572198779698269529582637725386098274262350155940717477681413954498975637128089043607646564499633138293064943053506238395863034429108036623779036256689248533582783420703305021535934691896751818150150337182612577456441822953023028850240506392938284218950329530421857794210302168753356637136773030860624191245473990079684330946327044920316487462841314871988492237251918340322794854769196551722148770817820518496285368815691074313666408872387038885202671673147692013709800785429230280269477160793285625143750986580021030782084543628673552727697382760971303809401703710409864368361578350804610683200961234202849805494106680839886270790588639397372634547879680922079619546484116660601523452749438133992545360000394875857186181340868627952955892911246378330984841725387525047171346605404460265187745230990471438365498619141855757864333462011159873757017284578293898074842046339406274124394857030091956432314240791526259144057532762712581678337753348290113893264998667544072347020074411365348570201340166888751854964605234716649190426291342693947105943700620845231429495847381394505830107541482607211719035993418428455731984389454626991257948551070146327124594684191803918103307769204652705880431159182644377678458250483138230888510952541535070745348688824528794696004094058076362620342869199934441484470600012369496782903822580441650367088587724378893713967895981531969176882595708097061601662467123729779600548292987808469608682355332577866299584817516783705459114267278728653908353309835292673747825676368130473743125555543204052944348481752063327368461841823621705522536665077055381961622868917246822359494323530516884897979654352281381283825130127840876277494368715710625243094205256981251981239530614344400345267389954733155084506557153979493873782576931760960580366401579640356795038395767408582598465055293399034254356573315677276301907920735535072002308399302957338949418151335515657020924651296233604220838455494037858254021537299864036070851956212629047102353132605939721094435139566504441085647966734375139186581446664859566064200222304500537549749582488684869378892230513502349387688775253327481757791669242261138168473589569089513216810770280652033137283939688782600733585314597730443451389797044402487662277166464126316364945038440461465575726244588849141364810487333372443832170934222483749414105620951238790041528607034083342472258820373068542618056779088136240640186210760833180637861250440488106820178274158922660851809817031359024808367725801179658993107955735929276723442435378668728636399713059977662663038147501609134144807095007602736422263052282635083749086792070266190616333703331466608627427714736179628807608912548585050286130456909792718364618356342137694786881838741708330730003432130056069121397692824559703455319422631921459396539413470351370099524345651285083076829206289334256397565953746796328198655379670558398629660734910881286072093628431922512209703381652919535730096929537286037032799187067069669043778582861501186914897620636091029775073815034276702195472287348658049963060023646793585095886310757415529936898788098644516208805736300666288407540400748817146206701992188831643103683673924999535205202814214309224988531778090369572557146909952382798860933631450457792404552540136682040006695849893446219426260115494489324283165153418485479462190650976672016424095542407010489602267532861395413261524864414090557468435266745599887817899076602267743621702059645913244980183436318259171263658644717385791999155144697145076392660303545114901788438308178699509451718202883404756609735749387077897308463812732681939748822144167996761996938740760249028639787943162990546136267421269520605512026880927250375531804566730083671016378610608639175291121261339609323465566102328113632444359035568440689055279908814148246788844947022870543239341494118007830668014853657380311310860131036197715740339587814707602895775920301082566005463312401253101371778969707657600215304176313916963719566407225015253395763045738114082398750730810606379439824331369081891398643122517351697746441553505842244741507045331744873255072070436766484800266474875553267254896885917618722435578318178828298578792890049658012205616639321388029890149269273188008750734168595013131596635166647717579273169849658325936060714676898091692808043857139840870622331743861957193628000109967838155922060500432792825455948428085628234311585452288034530832281799700491208471772957918808287708804436690000717284249683093284853804161177453665635672972718129949555600716472729503958285485223408776826749019852123565694962536146800949184952438669434249917239265983153302964126825734170821449830971452883754603467024794891257086715220439877537051995877212653108371327598522494770512457872655250390311660394741312794913893817139133858375461118718461282426510156593944076989316629018741095248579726860938459568095358113917074793861010511221326417277315650981203191881751335175975919296253908229053708897739868592487182252769875143141404614055880615404792759249107989216541542914040602677907553038400785610340983522658512838200247059396370405637560114289405753938864982022351312853589587412472489136312815081577665076523264287115139479734543141535151827784795806237065693532614461633560690210844000562573487701617564862318156585078324018052167869410976976355337812666130571731743277800099859285443437770206961803295746722038955889582084836280073783354918024897478561715226059262396667005171455460164018461736903128658610854065993553411642187488043406985023574327083487942375569062871425734860058266887961598277404687330419492871963140534222345792120464397497414311549818321839300564489598247440144067474477152115682569578546810272736538819621906816045800293161448982099069880541363677440892544577403894699646304365335053381625237522159603972232782744480788121085737893344077901738538442167111281255460677934193454358864589983688451404899069850086785080717968288943872467900709546408741699063573810090274081342604316764077607586381746448263278554975784232806245419965150936356148114073769623026528529430717670430253902395247956665734505488988221405424140961977171784099225849778377275016612267138427073857033870075408650746461534189365184705585550152318754157494856120493798583434378459553655496294567588900796928062129027699078155699252565663939543360622670385472237198007182063154023574919078203249540785780862614799582732139473771584330757591900819052198192963929523195103782118225842102580817818492925818862861153092464795954329661112218666565914213138695791713639104184417252456722800490768951776932231920950566383522603991574612315423714379699511508966466511627115721594935490543048164558073121933141240333883170550069192910164248453310423752353137076142129340885560146730320108483477183039799862672765296082026727229547459781648228000293415823568016793090290728863162425751418797898245590023082782353044398073984241091357797753576202640488191153892965667153596686611932498380518023913755520219093978285727595351176839397689521071816603230854215746307575741804611198213308347961523527267241233572017816785592745464025117557473537649502938000323045455791815527535419478763544196356950879662593721712748278550202340560337043960855500345852266366253662618609506184982476251991331329772534240116338506616440223097527795713061510079415665905146193075581926190021781504727702039049776211434625043783403694322620087497382155726871005719433213139576292221447781044112129367880734683585164783857429296792000215242942972601814780484380719640477496609906450781422536184597466310196727362088186973414384327990670599680574496231963000325531249050404199435696323722454285918755346884390810797948666236112001975898165677780674123303128306775508918548950767582580112989797906321705603755899795330800969682184640547217010300007732461791783125839048101764408743570791664345256983309984998386466676127393466834442006547672525394669334983111678097394975729682087465947896779634382108713516018393395451067845956513188200669533207910277126443743350324037815761258514784654864843835048817952435502509675372471978292024750903869791502743934743835656634449081720528457353940636428490432008445370216763889144393171227844919645555801890604876708832721616476494605242911180761745275231285841861521357263161776965669233086978637979985464131700396105045850452688976063193979501529241512056201651947937688365961114210857142015283698391636694535903614673116616853059755457453849126011357086455533408297850688220415175774955918899944396049593876168588742256052678136865440051951973379144391309561057128405357624617833475178709402537198071171912233209466223301262853316220543596148582319912343115594568030891761387943553175496614239376669920959382514933546847476597490594240921868564403009116602112437736698330120676110698260908937620989957941998017990682665583432475701791411891214259398011596177694485696452218321258066991487248999336518873467390447271475170123678274051999731562434554584763284902241316944960638912465802432282405289676916418316475943672708270443319071939742812465558529936008798174395277137851493998963404625719356070189951440113586747334256118224975031677903749980156921428084467522520100511325824086451424204998432791608149497647802464084728012389535514608763529522877938572890857856985347294811030985165020537099493209080674043820599802027038455047175106913653834854200107993767960645367394810980538772075721228682583184388742623293598007971053295185514536884351990489672081955209948785487255910360285364308946102027009511507192537188328064200011957546502432849858640793235462955080980281059720243608038334441025250824053734750857925488257828130719723099164119826869338473146687339028608637052754404176168119787458473226735478573019494104788484386269304039773202150807000430460316774685718546768797026773827893333638727718751741174362913625820416134115936281337865226155386282806038222322440998237464385988328330364690930448809211606880181569072230021764846357876783193492974347752876567923556840443700818692843661647327870168498654888327085924377642559587141485768479430386555923406880657236922356042369663821299617039919194833491798900441348331324331939323674197717186505219617516901214701572663171259608228911178569871554627146311770677386462250989506460953056889130488030384683197884094513375630973332393591115520854710173692516339074767149014177846377918413747449798211203234026043802081949693211377729124931820728068223263530901418509738280022483408516461298452981397689688165001745890210353185844071098767238752840075785715419554453955204805409427071702212783770000304755747014989518962649568438412356391116750330509300321539362893553029628140000487130375900252260545488769771515632124187948105843827419800043685716797904488157840822171208029351587828498555486720695303148539135590760678869828323025976491933692832597849038324158772153378304814141851598480940144807213351015547465606380879525895087118562464994688253100588943389629815808701009264980710654775639973185554595047090510163682977344436600109260370148790117772793270959106274408460479508630612341361000455907882854261633817505948669180774790586834965595474865898841782119540317335414166790579895494937719901615800151662585501389150178218904275209287100056754786442316286693003466297035917251889504108499073530776272425065731745147616402470454826549633455122502335201426257785901426637197365898693106174413859074484947453376511916516124299459485780533132818015521100069669378954875168856649060053790568299921746752763217752970406501478975980651432691325214069444373100732551862319019182333317958590772749249916648882722658856226942290231006332383940437895912125053924966220699023749502471821220802810476388720162295539578894670948989196233363746654018894802791541664329829009188011449334373034987613591851956503649851597698223720224945437803387984129963831541440105495237742875063832065157641860321053743881394237277001932968433981123476350145596922292617511468015023884731643383864316730730711205490978367123953294457337986072801812909076419973718301975520145761947341871789747033557454010510291802799932764564574277759843361538895294991870414237814768852083146276879500386703980640535300193679919813660188628963921590418560203133154757510384091882949982912249361246364968228784399350722818005459274218285384851701550141981353259011850653886447754945854237565154955136304417158794653219086863573186028213573498090066483816390697329008155232314182664935438395769040091160530973580796633014019887025507805379403410782332241326514023040917174633247203277243134699066643412546196210153467853501321046908053754740766572089305525390480576450176834245082433464246953385033343522449217243982859659117517445614227514401185153969672951276870308813362384262776658895702245008553017589937996200267624702310458244203666126393773456442181467642997514302622571582719032596261715813016533470013395444479730070176355159512246296001733471366477972808588506894974001674689344935550839719072448422476014623273575351022278493865227207251222353714653965572004724865435276789108452937585308200837441534296653908434086492076345650817690527800722283425730554633794073604961502027668993523541382171598650013054483769049962934440500888502258034164448894867250079060294474467690229417036177223994809766721477877235433178173360428224391629389741431524746537786957605716437781374414659121389578977949089820940621485865135894118519560491398218610167819976575028706349956127506595627908622148395216115483811686453595352228637462987058030848220518507123516446136061626832599845706348778077110611956871523223619585798074542705355414130843911683978835262638173306959364044000121574467078063348434428026682433568992895944276769461702385016867564957518839844376799696140028320016552651454801951058306451941904286775783183838857839697935870754891623726815960139990648652051220980298099521980838425755988887952622682417264668090234680934109355677167177297277938599536991693346252436232353985450485225815651837134992901483126461674173577969658426766663241469809938190593167684173002134690570601416366343576995320213157821163515666119929045791932581183688730945418569971087702339828983038992484534125431294254817371541578979522361263390085380111109927128621798060459873984521111719053466423437621822040648336883534462923460252851906909425525854890992513727533985398878449743710874740439534186306880688245762391820080495238903310251330563930471120466503741385479355567231288366729667992294961184751620505513776495053017484122512322244024906102724973567761689916208876728714100534491477098341537281461845364526143408711838427146706846996112760115016339207093936188765230955268585990737858525364913384909799436300227448160962794480278531460243890593486103310031607776553331202141369245696227655222362764811007546111489209952321397713367876824310741318810403175719870138809929663938728660492522770830563442466559519236964903517383855001267773357513994809222661083623717051026568687671298869895022525447288327280978244883587368424791750077975970424931275922851578137105547979386668975240731327640107547319272589036371609797331978621941694412420638330279372573566717632772254705582480818115300956117986330430046178170731747388388689930310696565046652827639649304161602004140512293022635436024551366053357380762345763903631878025600284526950089030295521279806574959328452776205734214756296824790985815281857385423616514512285570710446733145461319737210714084669460039495354836932579754651086093151311838572657930323512996606443005715805740868944528855816795333530538702190882338758655665903013711538116156157661081182363279242838660689235388488524921577506627055318007365836509821800768023646158818685549978553060486125044585702533967032871718088243340344085755608146812978614700974929237787956219120202340907442979139991127947513092094044001019556066084654625979995840775650988608386203609507662100829444150826504862473165782523290776876681103120043609218666733144706402544401922626312530828656230396608832606796475445337386734222074232416566424772899839758436661566703744012675728517041486983159271132976906061480142142870402795104639594945746671542581491275091046048859725520655306819220226054627748630626565978535138763906983620932593596342861606550789366818836448799845250558167525108592335228217236652678266427420031403228653768567349974198667040272084822497814063293662415046530510650065454138689008984245883650805876707743957496825928792032363405506254883736558791163281236506999608368959470952346885473850357949858027175879922666666358261917537143129972741362555188467606526693577264606151537852741351582951316696212564657613836686022272914528390085294751378380722940669633892747084502051870202768106316500005493296267844288166877163912925368326885478658553146844846941995190505298537196141784781003501801913485711127734111729854427503268331302334403753339509923874086247723291307393072915873054373623869858325224801382365884679144394495146759074315020900378519836766642418877075358173876346929834599879538079885406256191061068522904815282057576103414761657181751534188926688090059335811551304445448476445137602752402782340914568945450918804062796830377279599812267150402373199236756784507293911976575314453906859747735204277061819592711648460892695703615426005023636753128323001909118762129988571793936467340992825480748406419974411088184813759817604698369945746130126703675949096569522002361519412704257889307439699138333660925505091862962051320078527790882369581984768586672668838567265843167850533709407627473046775305654429908967950919232990187227342839796448535341021918318394101032075794187827301350134621995919006348143799122097033224944771856824614754387262164279181658486999566438243377106054644318996415678376331047745952607492664132631308257624861013336433592316682575857277952645704419720232384937793221538694713924254117672212441579386310730561064800875780209023367481784050435910655897489598735917813137206754028609980458298027000397769534376315340893615478609855047569379664845315177281660881215670212720346192632837826447710332755805738698607314397317604758983290964731651334286335632282763543417845388652738185018085695371129880851719916260473816040100179378734941835838054965051941462384424156258724423266456834992320508821450885219963772047135573238633996233457400822907936719017489914574669908768688123729812717671079098015341712726814345682666688036397492647344781787326991920368156521359598434723049945053452755140492252206774679028469703777191301073659038742860548485310537071220992130311109666280721399319326313231451809569617006293533052864880506334709657686887218258895999103708953658890444460250062683256913603716041555703933711151358594836631186503191366092495744736892609465896546650206674371981881763805778831202574266710596040368651949360968516818768196730609520208375508373338699478609578644563993111870594596778642234235611717489462971274690529258531868683776306501764703184527855643244426118422363814289548214736727436024321465348720887045860313754360831921031284105795171905920613935520439955857482010347144930443266315165336636826515856119575596664743261521955887971962312600294605356617736090088940784469621886654011543379161063845041159054590122210306567959394997057553751321469869577569779513026548998830941121790139947890319524875102996004655515576050829240397519953661215603706208180364332124948598780392896507414313516442589802672647648266325933978131252995301324363563757865803061566376106252920932934444601933230364087689937764584637732235801840868435828290884567912737592152838610386184178236427739047410167906710692502295308216014012263089868503596862495842445351870911195844881673511091834496774251912158894967293481768262707018563588247532673511374869330142261041855852002921411207233234230319697367432679010385415714145334190331342550650015195143050495526266703484297442038329873173959478054387532583948118095350692669990563722897075769760914176804777422814806693122580236353583307404865835084800009847839511281860633683843458014138970687847759248424746420092249454803423647675132425012318021977554534676228944353612005715152553551669802931899126314160555771027328462174476892928728976784326807308471244949322552910471825298090173783739450315282328122377865331234404690965346864714905675485293460713449887432220967213948119132902336622203991355620362095448515316402461136837604326264937897103519533173482543347422237418465185175712391979234023087523665485778822055639686861860618088210116073348809595335481943594190224449078318629949921155603698712834877978739390592131861592246131143352913248533323950658785719731429843733073020853729696528872407470333409924747663601453403077225935924053190293458460927259097986851407046163036157661633226043117863318216470649978194271438264616533013682571419374442624706612458819005368220977777766360397439390972176393301969215057794300207357227104328717226497525674188855432043259603695798713687567625872364431066073039810335102415788124261031709459568829558352097712554723780054850602155952991096285277571496247394001102190005760618957569082035111612750791659006912463352622933132902003064649952961573549329024372402139578558550200180990876064139097123429096295205555511682178738739462799987202101088133233274247883454351493725079448359561097594464382153496145840653704870533902423919118393473136076821495107922910664462853348546372901325907909719571101328447266700623144109534562880914968125452154777798807646355043277650859937646365839595086899158799369258291573616202708149067575760880254436355057577797613867407904637624871525692719255600898253412895425956208194280213924649265979767647243367474887015356456120735851963473153541666883312189815330290316679345845382379207360613849368846343406225719563706153741530796342951518513666883264113035770643290066400889017364280860232837044172040881990359787066431716080666597566535863317780713645375488402725832460230045428374837047176204324699215014834708700095510302984304237725984388980260598438055769737763286586731996819088746776428413211799979183474077812480204844468193504770965373083184702056621297035005764245507532884230264213899643504133588592861663103582800519339383723986552580272385974815544109303463473655023723119089789534537661794914567985518949127224433425030727027378509290705508443743319796373333186540155763259206181485920309073826654590553665744550018284363738414985130689702409220457212046980178767375491534637651830286614803842152432650685940565989288065276707581473712770643651148867917800122743214989737723276693746612810228400609952790761552974969302593145743110293467321296005437369384865368842435002065608064896338585090070215366439105894721490986554082720755346302305774021344519666678158828345434751241730529226756363403071043801532208087664706935940298450961361631778058385949229793933327384658689617473380292634599472391717791386665412753531826570321050807067116531431271089227919507634029114601800372963385830397171488009948751826991749252920492720848713391720709400203516663104840209892799581594226466058110083923918384962313779863416615310022521997465399078938544845268053542147788735203710380905949032616670387262674312077987368952363209398901149523041066464545486119529579789349836928211769065220213766871092031968326286451257531840897285518524679187318566194094728174226384001834609765606711917220419243827631629221589010753860101666194594125209819081263268168033347878025852888483153300507557627544574331841056932866114541624155516341343263712842954110382257381016427616167616814955568642930305222546966691292720452292622086798927792474922669493658381515488588010816703691274918644145242862286759523503721022867730295158577322073523744262622291287958294577996346111198487748979509572647498541291776512601211372425548957257658274936635838707569166561802767277118140484827754795381746975085129831581474493901906505996721756396964188400334339875891688965080395999096050617669573812309777444883848220619558438601059267369830387169345399414321944435829325816648014595894554104674642097443692974611914555745703925089652502063860063933260960502271917480936775783596078489233919322112118433160563715678857066228443575055809888269582046063096336944578578918952111062607510022596709677669317533180923070111798638733454754845342568019947629010625306190069798142752728762928225944031512511415719893751530233039169555201337768042031535962444342373760956092466835100902963936143298767556501208091070213740611294615215208282693539507343746096887595589882725392650095684491795840397882980770553942640946552162558306816076271136487751954998211272358071441112622547846611403284192022404080265610610125123644100633595638633109787054313054747069741416256788079529404265797716173529171028576205367960474474938381324127868768571268680745304320510703941626127835212661880751589788315569699379294473609016687932103410858742489134007414353304342265577076991507526154747092975402890220020386697877006309478538220282193612128511719692329357346710113610422005768107450032958935392821862767713450076770164407463788372339883740806955060501549754512210901386165611693435039570002930848784590572561761270244143651775222845694370977595584233532423296460566116456738744130633863773357400472799517760305994358436165200773759353404574768907542907078687763863306378071995687533351868258258041194028282031474461122821436404453146647027364337034127406680356790753961451925862176993704490495061261533427908115808202865303756141115409643811662307124030564137998618372157068313221533406334975469359063879187556117538371398595860323977221968781243235886485977083717522141494616698574377950513800742464939248881582513989783167808192426588344442486359315979888954277807876499992569793160270067737239849812542316149589446971174305751938907790228734746047282883555755105379071308814106697065187726872536142661050616612619305332382796814620844062057937163521938168191505354775009829323134806862328590704000960555103672959127656670357587237568289389607163227512239642313111593435624683032646934882110443282398738432272155345080468894346622162270202408958784537699766882845602701553078611248894927100612402875032974371160391380395495661803575380433966389451286981272152234520473901039998767414134424624915312518710097722679967657873528858268412306300845789531036409356918968770105873120221412943447251024852819442680540654528750102881442898738238045406579064874726670608150140803024447451514046930707746246268333960709952662383552559762969010802986503345907126027681198534926848219165285035658561601481763505003280695040269951892614842279627186446825207654249637272985781241823901135667814027952286936795248076610620344502921239216343182303500813703383581015132462303685592178735105100922037155712246675178938965480906058751733398855988710932260282525355731030689452072825419945438250180050564692294575423055256999870928753901023048823017054393609393049983462625036544997133370940781337228154743837801085414786163181560374846888505175481360437740917665999047980601308743801028778068238645140302013002756335975321898071991944540115708150746082720012073902569174038710715190526772593247247590727258288764442775242618401014933832844813036926578536865885703957480794470139706211589894091101273638764949573496125178436694808400274105744921999843306580944618910066847744447961648245447813284745844192838210277000042592517961019755639473822731700370828665685717749010783001652082699025785434642733476090618237182727995270572593467255222855870871976734170085923532147119772988924994618570102812325437196194142949198878714423026409897809136784336363838927030104122417413920656011656855883178797057204836649869779021430580671302287302403210851660579972124507086504215489623490762730706553767402559595510022215791878132481051405274532477320945400021011987421242919289659195693331288621507571913113871418044457410711894832617483747769212642818024570967723671490961281535348636726515130080969451626071510391273300262055721700968354768368633591892378605828854839145689717490689675133927447793652564009950067412010837715542931334401469048624346655678309741104188425545976292776246492447499830726999392627966971160216637020611988738367590412353349066195221720221224354599557438222372483160983953225860806216333902373681158958047753943963416951712046429082540691652063965016269743986715400955385678061661709692805547793683287852043897319319924129038965975828315046590090812356095742302827334495569814444244493862935727177617470902483898584803506500364622067864528237413270480827272736888611786039327852082767935256177638031619309385152935009853127380949680789937528685680794302673615857597263887296688620677951742464815059492174609373868456867001226071070667457824133681169234718844231196871764885620485000572848817503010919811955033291339620211190963789479731557029482878087063970773532401199771658546696433150458937215569431027086087844694800250876312113943263380718273500185270622943465952085898656511717034217839156985408629219689094869743539950327113100970967440708460293949487096293274482005688178602782288576141228719168915065848702798832144589426344252221901405421160763793512817060839774819094593609084590140599713768214986472067772775582951792624963327373540260314012467706184191811639080090911517683348296794657875383475387113871580665376853507305203251966431706885214228849805668215792798298949879669825760803682116595609466781380036402225101941319653146261753866536466483836460487622682347205427335418565025999136912005923754266096115127303841734011895159960003480588359341940758359539515993691274984411653205630691042712278892510025952796224829024129567588596328288638879309650981218860540720712558525609029726312159247955359290229875960129867466855775404432211299535146499480203646361104737614465655961496166891101111170918824693624618395539423292672828206777480484387896944299587715101955871842806325769977641614594345738981519350442765626143298242336593118212647931256409550934997660138843709318701667609158865888518954942327310660624459521833120877048694899555277191928726816791677171593279970274033998150652255156568215157743867829554354163710061571541846408729688265793992950482334947735010788036021800135597464937859222268944214787650708162290451288057934485599648532944793444073883726553372219434250766649724842270289716058152630507746158362630484076361675449301180665477510653931923610024378330339474431431905477186849978941776692845087185188641054944035212835760651193843493166390927520437593578116909829257324231335854581717678184705162949344812506605547296068519448095518782595201652534895635622878925438477666406350918196613579312367286161340414457660994013174413681388381703214191831770586246508981325745635741156244405381352844570260131021650218429769322405854104589120993849580600275398059948569871279696495171270642686741974045521620436784238095996630720469104855364814046162982606130266318413341973497686521475247967575752378198325020504927621445188030596718780063006399362618428939188725003477355501485691141067868432153022345129433320617272652633098167238529817565216517664466881995169186240309765412640931500627120652765201555629804337351534568599155128097381596484182703797573058610499372258425209342316593756495789956309576269430538982262637700156158214065326754940003180131798173437418678475981855336436499577748086844836340378660495686512311576744269764317790022168115422638218240579093458519114487652931393405342335775332507439783957979802066993692146893687574808638417900068318073351948114288456008987830283629938999457738610046820191413205878248450602410060194288510124618988895728037623864859697014140640602875058660753434319531179031026305682007081488749156576168507578743453403443461876003176040951124075893295761158812832739191426644379729990044630605773376371812318923828801160309009805445063111307481749886415434845689101881958169016781630751044744766608832790235342731815077925911559496649285095012157804937705611654575849668561815490827495910737268898329208400628080953553984647567791581802270292585087891250408874272048249286815328685536159304207397732215289519886181835005425816000229690285114662266604853827757808527693557002631008101822563609538835953850411766822871707761061066629830281227733239829135073933549409385487179144816729083003498138735230718157818227960493707056061704154073189513174435137712953241892944718403801845300206907501588384372781264768796632011006594806022332069751396474279537987583197687271337828537514283055225311455566153085075440038323751108414421704790235219390203043991697293751428524084226764330383565110495254382106944410093494380189038160839633620830159829908908073778470749086916013285939369195187088732839380975368710991896575096155584072230386519684057026077082518184262787613577932115099508120315941251205265340640516457322185472860569453808728642027934164172941567317053391789024469644128367356988373087646076879567002354091579752296958558507673418152397772740100105753704253193647947641466580164737625300825794167290550819631840651068853154928782521872724485944707144628628519816728603957071686941756756438685240627600942373480185070440304383344447576097569720188015628724185543971085801202074372603445423476208953436593905834169553855691220953709059012086750345509462137004116690621378643946304221938373735355819365517630840424851939046432297565256717317764741761967186977239277489364083897935044453355869480497388323791231124970500663751582283708098379531568617790110396680440241080290274724556020911604473065817986539221828274690774432060805558887848985428401870979681851071508460051569819393984557452822543659125306709685848267108032259742547680235513001203856833975865324746657060600419129569070954976131018524068992788157867094418302626703100208406551392353019451041503365097157936630303210113113376782842776313549185460876849622910716962380986944599178274050654321449235578884802481779433256905639695764854308518561452045896438646053963193551939184017523213455502722477482403016679756840049224734549951105035176628371116181695954554062388944610650549136329570764975533616196678013357628692817627443953660285562158230153112099643905655386030812597902858846286465950425973432147791281866683133690870110245900748147366054046547710081618112969501411038347014746777833408383080193814942399482822558848960508285511895309558404918877769255712745734838752096594860038701491387254599053712154502834191539683645162555943536805837472292618542687591863292079782242726425000632913888358990191709969846407253456568545810764689107815291167793885081137855696657743660106181607692447026588091511752197920028114744865093965142040888685945478138214177085942421655396591988170408152511138106446512623566285427707526387834240403433448222521461704631693498421263623194345032311993261732311195672465249414197988008189092470030008917546473292532982932194831112751637423418840925693173154715854379879003423114397453374926755609590311145793638838288460303300716450143195928222612218089180782562529041066103735230418999955618832098953825428851312698935716803592199133892800772369988857895354402785793523422614143517155473838375785483961836212788167473935250797126136355516877378031685172090974565169313386449639703936607798396451116297763078741115905629264789787331960416484367172805047275640399756210131244170767618917028164698200434946451207789802080428508479869172339141453491985042796646003475454775250628346157391228512619671307100769452232545044947955334550537938772595379939934953871342603846351164384834625984982603529179660866760869258464821052883384906978429720126834334691949177206384631487675982681873622898076171214088806868904690604988090132408283957981780013073986993513454887742617162525269786043219160403146468810831282252675210253160075967248913074060975280993444537560519651272310275671020061667363915337443686195226821065608817849821379222060377981606850433370030303649707664607266293011894007651486666016397368029437706423683145528616120033238143552773028505188616232242889828707543050057091247317413278732010112754441840688472235053796881290398757666069575539140088171683888616352325754066461422640978412463796645581554822358040372434458506721184863834473086706140454934177609983499668776938613790427780452105234197329978758201100505766589675052819932646835309584324171992612259560560343083321000048376761149732215370777143966158812504108275875704597246615081353499258797404471381165332140458217368234675501110109244238335934555872377074860466306528902407178631925440065808042453929471822771883524970117533318555960126725404684526187026981129738726725829016799646408963908306212613443997783702838563421813865057035034044555419507166404061876067209073998371020561386339496593698729756026978145295590428753030366136800743605013546629747310807319049374607912499689999411548089935692711010277437426004025413349531903597007535697753688173039321877405137616279346633198600432130795437523622157858568167962622140828481833404825623045467540746072964085684747269880982148492127525162810088532467026706984018196837780898437361914811964386401015886829355822623806864931493601324067389477105382104290600543143996402709996532725896589553007384479689538920777814847166495638715930383781225439117726806314270498617422390557078211252221526555998226214821826241572400257933604712023725763875988032748200534266711165150370565245630720957052817934362076923890084309588875620351970901350116228760188566867758347220753438807986802970644543953960104655229537710065338099542062805891719119526868441354422627339491859199450934766337960036547780056527576726436703809853194355013531792514153207382273413840766169814011628732096829454248730834883426694461333750600577508467581804386504699081614810566256257288577493073745873129934109688832820097274390590146919700228582357363964843053817629169291954174348772812670734809704958248102789303722208860389306414221037149139374006044261379937670221137464603243646094203855391219460428464549311067986930062485868671034190731450059706348065967374029869736085376709472632623156560098528201136962549092860058135708238716939149223490019050958517161625673010585424724046237130874268011980594350546883513615450395477718112560388074910929659599196738793616169394783647925269308028482079243785745473194369056744145140054017513418942111802327606073831200088821429745908274533661824907932632226045418903246980894095763862447936349826087846026371329194716635341078099151597866128585930743181439044775012687793368504706464686225695663912516380580083530198667545249215545131209609243930197083481668625274870377424977014203435858507420893728847060082974489411964542762056436266242983295393361085010764743962439910623479091102526495505258166649483057161893221131826217766038491925348309803860179256313609239879292240928760724659028428715388559631561977257880747152475579424907766998189142764634554283732060960644019059720952292140581233149340575105870366789478312150836440502187286638278692813107599981319697721078481070100952795215188586434776454422669928403528327150986629574846369730599956822863440495064353223575804611459876812235521605380130349894894843984754980133673086808558070859063762979361539734521425184322210510632965816025908452220865501043064712815086808316137948239500325161011652750504533301318954923478401637363978571842681735838288184784694823405926850314983080195045027806485541543699398172283663405312842064559854236416337195275502216758454652842071436506249678381807732802697392259607536754488199108357725666329334019303551187725326199389357440176505439862926980957487591014754925262845211468446373387348364121755914836914967266122362036905279404891907105911679757416183157848647453345800037599162504186665577416293865067760643899746236612165330638785252413576152671006971392224358923804589610628988061403096838763862774609962370883522794115115086256244284023947385626185858561878047690620118207712852776392743571729266569136340858294064889807441414857110514768969584311334295890081269940830257318528692049959882331603009458644081825253929898618871473520687330745078796891276049303878530109877217604144162905419168828508541407318115989722686719318833523913459673023331860825126163001300270671363062720187136267560551089547309355571956665658747697493827228679538510281214413419932862822952555883096088076411751984783430875706010834199682559503833524628857683335214797812555473181668670744678242980805112210472778208116356490062202675451965155634689189596207833385240678433837789126136241784367684217140035445827042254650628904833822321480097756866427870335818693073066998001038726539116361678338569612876836113622650003521557431006924833647973108682220641990695811773026565882665186587083645302479592137642939296861216026171600973539450259536739385888048255708773833333344155558946268526316597621981237049396669362423704635246426590077082299795259612077589827584559015371385217962227921339645430041821777332106736835207891389220699002274990343184321036175184889602157711644877222830175382512110571113463813137746149250919957319982891414428906921960309407133978286752723965398349290070034338423801949455857090978109464933823380965823420056000354228093017844044839887064769894689837693480823609778495446416811274495287513178297930201368035647574255805317351647670172891526432638753834398896248464212617266929739880745522817894675931741798173993448704351872515528932071623822375178564104490232850102554163192562588972119286816890209349190913690059400419210194598092019583813352247906851428211904825132169456207081494891903651936916620222030644622040298073019888307500093780743595809458189832624696789159690515885460437712974371982459283038035396696941721609907012003406017414000424400715217294642316796353787897536218518107477280014182550442700850069558333097502909610900594336181133765338966052333717983298437815618367290078252510509996810465598501527792937387852715820298839882303960144097417421247671365058347787343948963364050770981195958362531209501966515049920282412763847344991474072020178313238611301040067528706028501323426475039516879077667601926524453987151817473862936480571586958225354518912333276433535893565376418513437487659633239637227784556348801260898087167082966262331577976279898835498226934639488399725753074986240379769689597750789729963157850377363905476587976657087951625556056698033970595044419470528060956839838391450780826785540194868738780158225430291760755973322396902300138816270968501514885930166547385106611634591759621459195252245537263136878313814617132424537049902078364664184880241523794936450055741785335383122386456474553168462588961469004095829533176888323628211944602544453486346191962040410848147588360341919147377514295227102456531610102901757237089289294090194811070754056417986020722820893038189878392550000769849233823700446705138287445154668614328516377861872072120289628522487502998413519195621203155600705406148230127334180683234989150273439845730148365222604228256860714851516680742137662674277431964146848157250365604171914226604164811384678959808541251429993074206208901087684488495445529927983654838580551149514546844982650169015367796933245730098634178789440082746500505587335079354508051019536724619546393618925157229957836518963163110048074822189313285996193969716975531247755201343040297831049646479205774988603342287010268838890597659584122809698889075230174013907853236574801408783640144579788852895332924809268630798583298659747947693021362092067705495388176410603238864783209270631553750434034546739176006636558089636133475691529236838820052450091010025645383149972487710444480592150703198491921665039122784971271624887140727537213676381205579099167143831396870341569065714766613865087667688989637024404700151549555001383983911746003560040954834693066024932450129094294913551412858038382903092427149171199636436780112266345428482846144505717070805731981450410020194489559421198842161567541649392309125827383198521874595404063834060756500346739852129739122522255113300930596174736326175972880708623966269921398365797457303779029307639335372481853690727106012120033851190955241945383033446914882966138106627692026559160515042235816414045373562911039783624112950290650818233961046271549809539979288663817463140156834149244076965569051907302242886084945187132527536273193280201757919527871435072395590258944687910862654643899261283508702089522647269673393830122987992964335680540192519234866605579778480934967465607414242195132085224596758430864774360130618507695797996393251645425065513842872336442616229194947972908070070234029458390398059358452586996572100843397432291075562861364280488432297939471782403643466692630235658160421260292323500941018392210804109882155091198806771687010169368544960201869165110655234993622008882221897569191964092408901689530677800277205611438629718845870277918639779038419152191121520178405912152636197320851821102319855327659093330894877527283591885299053299795893914388363283373286929171873656476007224021442781118887741424041504680813200860807452625653022991764049036172071578185970050253754243228106193944910437260582466425554801364903068068453282063846520525149830571468092600469506643018730184020175299959482453712450438719624557484277136808207315397858387740374375989017774415052508553800731486295927872664383822755302125068371375986007490479753092273651103892157420109243392760332042592871942624956792651248988100962790412554306461077389745723648556276869797956788216666534132099715497940088990216928794349610661632535447227274840795123657447228813252622293215986301509931022268523882747136181152125942570636686651799219050167415232328115047806254217948027368319073860052940783081069343833736933170903899790350107149295422633867746558294168421734101000869115756597966310920215467507171864568410152206341943391809834914894381408679808600939528894811058396652246794511441346471256131816471118830453623403865213970832465028766471842452380226795343518600532111761081800436002776559073310944286838045300254726949343607046390316633676869320568365807853355901587021706127152074619984245720089630842962745791075752505375344086868205300950277621914826387188426414115481153046367271444714843852536766169074517533782053313798515263528524342814737005125522582291928578062051128895355011431491181991364915830125035833507671706813375913719635655265436257557880718731726664539630536306075674971768424021312201625996296601404089006069292257640507449291716661403817773815104115719517238318451260786986257106642696714781849620566484037741536460745570057819409761652602179995888630758083690557831375763180786116443206099427411729846336709461509299231074328247127842992318210689966449190201456339969029685823029166323787932769007152416522545722906388786633580218882729250524869653473800017783712727301338656688020428446356405057298917201286017949548271823209815224403647495615149271055904689701772516636021166278546631717279664089447010682906348376375250608819619419784400582261255762176289270255666768909515583514173341130440445442947701746650167750631277882178962522387696847119140318153377546423357315108035665291524325226734189117284376056435983518008859647853182927737693523636339135977872885781547500897818004970295134515196162071672981763384164764218791884836022402292540394387671200086253340953559106355081658199985287993082953825468024148566475992494097403663364661212657639792132554391795452146709985740531122351138519482889399294516494935647628383652945654746672339795514279146117785860736002423372828925419204068249689956996272541141153594588522474390359436886759948748901041044036328022722811675210205275654774570671427782638796692433810384160718958498630078753107949048863665572443823644671770699991751528309215631707053988968853509028490416941221339572078147532585978615682928372752658980027130899453350212386661097492308526729022244003916011424047404606249658777552554580616419268745441992592874302125853464598710518137462676469381648815755588991775679854623693197386704995839202180959568750057801796530453167534327278785313922320158239424845187261472867065585209919014832582136057160174504901423210197696313600002744890116606328595539998289257284185515710679199394527129570003803063095128975253191082536256955180915181977704788147641822234633228121202754290077307278745570602125735837367484393083962411303455656214590077178490296933649697723249452917415372272887271646458468659372640833544149809741632661723401421459028093304279604554761185888625108944115803079063907319753851596305389995869418071202106835013305676247554250213788919319247140274665090609915337327333875972735227520294950513046440462166397560878761068219612629237129656932186896246311211552031477120299605067112678170156780407342919545679157747917472674374722177837104897278600757603854831615553654334149996702954742841866607795279577083601215825893141897868286579188274034521199129834413644937520696134237952471823786712180176461335697453597250365888750756028581703219196093421559745967408505573058707295469264342519452973669741593005110714868786119407890192799397760839682382107277023168304381359612386588073895490476486449400052254674457457545144172807457911281188047555824086343145371605862958596872887208108512622058191242267126080274264355543658098900997597602249090533221066289349478925892128693966763437048270512743606505110923288546693096940139781977297187230349364141391068234616572291839092113439059461122254525933005539651869751071653570853374686188045247343166394024514150672342544247726250680967986634097830339030423464209234824922345030305943020846761045106363520597720256540874688166396681980006251275287472168793591933315927969524198256173987009577509608159692062695441052722715196993222081415773761550747406451906379831485661146408923090199397917174809712174534709654056356043312633391089380962798419734286169742921878456272449752045977441592337029154534576768043314718517030222692563357995461687382998964307681634225959132759724149324185248285635595230317821683774255979460425753922412291512904515546280642762578070065662846390594001991603452253592528421194468332768707821077114667846256191852490519559743989502558853086122977712331049162624434298898704927233826738594913382214415934072315775701210931299494661345536729365665735951663268503260809154233058545266091125991835050379783441254436582425251311638990593360157908285268314494172220189700006109723735145150354538117461177746681278408514687438450588481728349796402154939800676804251325064680641651109201223068443332340637457748373366931816153431747516579112554750162542346599504750678982401836203707661105554617857380980022299957716434569767846514807149211660837744444796773846294507702983587624927875278514582821582346582508772506598770099608584120922330265940231926247078194505242411497399205259606345720037726964604644181325735732019480639147774395184258514817866701638652458331121537894851977832733090403491957615948534812377766478557045359620718065488551579409060476297683173536431095546253143599234951305523850381473769734393595698966430470202561613445404603514867282907594112759490485488811579949347948625738858717475449672401099902719354182167076334622593608736176661100190647945739794733155401032029075340221138411518425379902260230441643985729702563786482547422194736576056477875537201552570515919720759326165566996225188655243578681627843767994875337722423006877976632530523916382018799906579830325873399291399437698960723834954050477949465777379252279495905058999160136197433079908793564826154745891883375909876952107820197650751718734381695716840613542119346816378702625726445838118485587488241701976956909826930037404515762308921950425915751159449141103617495990692331996001562380658987414205871722166020489925901524291979711502787900333068760102944892414823149157184968398913588272722992908495169709743885765155685751232143847381359758474577009143813369305807577429534042922175751968352329803092677736902051631979725234809035431868836643389850536806617126690210225762351384725544397715187372642521290999490933037216056141990065373900013749716538747497648484999563770686520970719085256201738964947752069933021172712013926195927661223041422877299492248368069078002318259766733850911257012845045174549621736388701328945634271269658152046321314731191017913568958105599458385528085450980483663719281381048190821578917175161197160041998530033759354361362253406958972532518054575080505957415958674837243997199896842233661488275854141827355752443091088654779107049240655327808905876893694992633376169067039329702953169140681308979344731420363288189433200711574081527534821049913269539997545595193989103667153405749480974902349989155681571867647866560525310699147343018835469137707487257779729362591121890139664510502702551630141702938035360273533498360602512854283969753785522482632611466995254296937099514808696373414360920147279066338661938852276077810472439328121756212790772536297786750507823533011951547981831127152621707182507285400452542091108704571899253343887744326672766948384917911102532196637736503614390307241776195559728156091978302228069630126972917147208195762971600157607626805222765693873794789818500247056104089154964743064463179291384189427498488121191235867192540641958335545340637155148873456902035738744869571693470189636304694003695032793070548657942118832084708863374715650669064543833587403362125858012371735070389336642287000769008277558701359226738276059959785557515245016544911194136329464408531089061802689598984142638425756825010715296473648288792613651493949616643536377481774322051881418977724359767185736937871899702138198388631244263533685127570698711647026544283374897367752025886322145930636402538434806268189008969049347256537805072511896592654528221226869645903021315238237296717518237444915794243781999407451630762671736337394111360655639657452982177904549511164895291800438859252851395903825690251206445307165008172652709204726177275766506943007238961358236135066098813075035235472461037000225047282359245657171798986737249898778767725248250130654535434785709592987538303967763102969846506790461351002049548660086232100461589795224607224401566160273882633445414889469699578720510526743479323278193510648565220246611584806631661201133699385458778365605920812586566430576418406466427959499545777414922502283846466289967107271030814808251937618008881975889696384449132705863643483129243652802947491057407912322244463045646970584043842814802733429724316909633144128775390936380829648660187482861034504003305477205792708373729005939875453576040513177566682688473957310078507334123262528468151300009175315012983163401265779803762070345030460892055837426178926358837988824196140899674128791240324888371054599148691601771282127980105053368370132640327523290047587401197417521119645956610654147502437433807424265858723409870918158605116415293232689277803535502470817812204616724670146043795241595647394180150296331348815684881957908055112080526165743733038052895312715941466945542420876075955360455958606166216230221020100483554358189686750330843327755853326324032594259094855067362085681011331089455939134124048701825069182128735305287216281836687723376564217739660875996201159611164724460145129948853025772486198831787606029660941950896003568301139150284369476007624218563853895666325643335185848566800297586570029997553081086346957659261615843022495171427192079021183123025549248530802150707514262303047229930503388069046222067387634469367314949115290037815164790225955007161565033381234059261201746992490311201337726317957302364874002056692213912879141814492962009327713737401194859293295595577035406327067105671055388437767773319354223512210446588530379795749513606515516914292333810764363990820937127981593350169334371223100179667125831822722213266405283266191858994939053307557051814524049078513685914436892839112822269243569796940604171415458515999605949366556364966000810521037397596882328433583958606949222915692284870208915424478105425811949279959254436975785548233047190362419515355393825048928877223889443594605619943079723140763465876259844638228786945998065348316156199044466680803246491996441694408819260208994376544980958693589438888061759306636731691245550832688930426719918825436308974033603552688701296974925461143871570086965217490006516077946047553434883793641419756886529259323136300374200530570135706740806577129158398438181553749812209913516884925463303005805036352962874014917326075620569078384291051212201519299025268624488411522019566364224128414969866589082429254269481542717526873268296559827578455519178308167673138901631164299393178336656116477772874580386517637844287522527974398283182131562205097365694577553120437100903712541466381988610466722664956805824954217519094443013583881245023861927628230264808571815001106357752274077962533419957305042643492101516251349347193885358066010320758078127139516382024200713605363987013497583505345830940622064378032350444735813313147799535474472134472281965693281122104954119286769357411339631673659537384447666412710718698343678799444808421074704069878839366325291966459200005143668346496199490796671645023296665824910010116879770752335958954598362484740770290872089106914695644001109231274286111819148720925928468876708716058072226691632394590178721694608523206832502586651998957854255815056788836240471990548814467622692767734808770957745553986220781285268032644062861080280605846766215035000155691104332705654300496153264908407517618279949513389998724910823381582305902537145342756324208594583346695995855591584513691203514605702019595742615053106608768045311675628858465545826163958713803288244102561049077625180540885700626087705889386030335321058464632156084772701522512390559491382442440115033813081127662342289809594850787481653626253751042164332135701668464894465620664039771546526313571443170118988266296083876181489497965016924348491709426331334756270098020859962910110279748715332542415217083867853411312581160000710184257663407089202472350530894656550062507070396723492803785116540047257255114838210682322878985574859193763768063736676323391437098692552582615693677367422132675291950447458700891290160100902200787998646675679618756224241993050536402665462751298490287199531348467272599252304047164370772202944022224858822125165568129374205624954104991770794263159382090514043418653976132174574065468662211997350187729923470879657024742108666972050522600253050194282546523040217028178768438532361785319506500922212419715348986495719862354772431819090627999519048289343393100049052335051558297058015289510419906401571328242935479202998969080258508526150612610931425330891483045475723811888431500194984416292896862139450143603436498526174714329119982550891380302560514037735460776305662968961599850449485692508312316321342120066474028631472175641120547645952760611446237301187768107574774756750817584390559603656238948018072186713097766661531077884702219189971936354265396639740597826834176099460668169147561774340014533715629782864827797095443992969906363515252879634065315679983851347300178458572901168407733903672748351319628387500396273683558607544383338428822881089340543413602058226472904501131641063435252460820533935966195805309289065406618160636794628018798886908363031393896223893674054956726031007635881837861836301085931186908079569476810149948672442235293795592343286088712315548022378563300699818218858630576799138269790664095306790490091908096019388357928700496824756029891151491097500775200726485112091040260758068393441012987267489779448369612604854627092244881897340098887261104675678559481370470721653229508570847052513666033327533610434903113455026957765380898665479471336831320110580824216139783111342624792608864439053524237339325595691586662376696709825466962339508081276145113851508930244631132250947522235992787344164526411274026974173407860083293505358435831374408248646711433881760660681648109769778454501232948519792628210313101055025332552295819687824359254126619982095168117438629017944294651101655599128506246863981221620356549991975589289431262651218404162784802308182519861377930722329398281310340133947124613475711643573673998377744361842182892756470836626493502953064011730808395061722284472779310451289440217091172437029723195118785991780346763662985853854345064062521326462131832834919499864980726432378461562662993553737174510456832371175157856118212419236346399889330095210438991725258687498597005459287823650428587220357554390878665830986013661054325784452103291982025269483919965844950453739203591811577320508412426549014558985846584043138196318725883378940205021919380790426344275429440074389955242171129050737187846208862297613298012295858993829037499632039387154923940677020109604808192936818484530855250428136959683618967432186278860237898733105092136730575450432396900107395741543126869119459897322241977354901317542436757092278925750389662735431530721557080171668208818323217752715050553241677902599710129791428473494959704223544636408367376031925154146253615879057901207175686296930192502854304758697665003447009671440708467642992168313526298385469802847468394019493712767406199394392015263910620260431324561535528204151224995117923018408999423635914833940524792052591243621803585078022164543220221928840245220850135693239360204984777319030454603129936943603232371570737122855576789126565647032465918759929265290856389096832614371626779902133790317677134227811522601809318732544413118956038632638124478189322107970397808225177114012431650615697543119194038657695763767316170761514218110307924163160281818012415572326995897641306644745496984286776762499628884898899458542307121942645457678724516868413624136779007318012596664414234612487544455783641065666151614256613218413378254428918786820698215368785823236174392933281289593958584774039138487218394433433515834117116834249191807596263308654344690362047739728690343805485849640815947039980619474569111748618447600911557373371119475277903932300072483931037636510402697550699353492031336086693382203419116494667976698026193146112564322056683016662602992608722324059478364007970761132445467410176078199079328255132783063808005904028642723527625776004639327423561811135094175089413993832598112694767756754358328980683597965653903462830461678088507549952121727629516981772334227364422239092677532400783163214905156078119176423981598563905596971042621020220348784779970564686791384420419592391501357060919004119932868546816494521375357629857001700741083644980336294746524881901651479613172052911164971062951901088462515260556428893418743022525248671937441483080728641632286549541534626980793968848772011069959674050034998271833636963269769509276396227067492666921779996805581254007584294125205813365577137175811407211582181487999195805199117352840471136921785952703305640761116774340779439820407728033567288343129765775492395212567688343240530958535836186390537823665010433703192173984022174731263783357546435695731064095147296798448792016774704072681146748351151392255174891211570364718019247193769419396656576443590759555648151215679056765824917992678253585224744778864406300829679147886565470923114687557688792555601060700788347339523432903033176662842161314861591468277950370481715859655704657407387386312641812853877030502377895286088475541923159908526300130953191655340290592988734647692839490676407659725908330524136966549562074309226689526317230818063566483199453970463405964168997447951572876675886629735385085361230967741639731875052229243772146095323020470302095778530062105218417406135761556681414301899650485233744264225890584769532668542184365478126204592019423770166278367571877376337813129619744076407035840904187039011089205021049078464182546630031885405204753794553603593640030820088722703653707708527393402760259385119531265884930734062960905394314556616651768679303848322939287327301691082456603462920963416281001639885986449996654732755298769809216657616389070096878268306247463951495744581771861790410319431156644300474453639907926697696917088735444566075109133657120649605991395030172921982698367104477562745699625387191837712796829565439866897371924021541666724994257836037835416308935688213720132728406075267211705121340137534674198224443866758979691228466319693329406092357024033831247290644120533071219956410308554698290074653259903930978193412637880394961756231664251999821884141207833761649425644459297039642321026340610693413301711865811904559534652936139851553982302030826622895917807683453234633195843990549249752505979666512685783447891031971185927646539593727592933276582442573110281115168141179995494384455506398877662444576127829627943376585936050362149872029573452820288490825788500756183225864630818843591171472649812718037313913858972298540484001808504649690893972145088219341452980167440518762657292904458078248222722219041952745550254112542188310092898685857146081965279117416276993380061023696678119932121593767692434237488695909932946958294835737584771749352957692627931290539904111397678714051690904101444976183298849362159270611979663469650722059913919338100548188515312037402984045276633936964117696596189556420179142408140687826331634746519043530297407421915703909907263053622457425075121784846363182420728945600995823343440709047534480505928774744713308343297388574365691948715731637845093972021305792610883406417126400183548099347834960414259469455484599880076788026603426219906254945175343249619418758909047637705842685956077983232161372520391300885480926371233259635238426080062256844781902575027567757933593833924027742116916685001980301891081185414430718621465530302530874395354598530349008875353576446577107889373567403330613487754682035260517724849305508481304389978020398978880332522626959286104576945778130759785915222259654090218413420425478657480907355060675081890958161096307419362389537565041789585133011130940743885760889230768132389734449083657340390725086663908612335401295824274459320839327724834466544378431410929633707044037893755259667901713669668107687478016546728892416176197048280123555946188536297944217362440238143298724979488380996573415026226857045753937618640793558817304189536056277669339421551198496304824331600638370961579010717232737881176751846742967604690260183087399984590943990897991506819771082181764482905012342204139023443229373371569716930693800924144759611699145445183793902093575224725791968819919903473479392573683217551096646645696142527743465878085464103156988160339626543918599759131058221880352506890915915798555339548306784396278857135072692433011331911593080177585009977637901348754631194849690058999458259221919894493618160300612362919552693645886903382663739625986732482623527581309467245795126415412412333224109485209631491860603839354913143564757632340901893196839427089353742576765205402409121635649144627424899370814921036632612671055220278153190518120838578869906882868407676489401257918464457335393942417816671722968123314509317551664070997893966375799162224207214249604160798561861075546645192032231153174112441462325623048205681535897413896597321145893400997992530885880960006646234601132133940160175035982512267163355395923033608342753477231486044442438576263675150079279550213540230485361368647550005570347499233841181348175222302683487456072111770358072231509995929764353219569323709661885842175593692971524628630010754082179814356289296381212314040925114029980940402323490888855880564652027661459881978597766720690268372754246299598391235207906845553590650245288496489679466923736215623744201207894274831439336504915512617695583402317993005097138414209255603380304526534147588999440762603213038627047720612443619370777535000448723622343751397980383114151507549772043819552737108044216678765545502989379840959464544556050978917321156337514714764746841757639948573325933569601783467151221844480019046767555301279039238968746424737300691852394143147360282410591109266449610979208450327278154891164906013133850879613664306837903050955681593774462162296689227532396333779844893818472628300472314627286511025782264273782844838976097302514180719588049998035991739380712085611331271550278558473260184921765260786685092148730642904189004924846021181587501262449869393785908870029830889961310278167908341016249465705921517492446726194694760392839047928909251029538311061935428244834100675625824862851146843118999272381915878069021709654789240182171504039382553675010424244890068537762906962467570285690579361570521242533770146437439960599242938994412570196324119720706067572358522529245988904681355176228361383975251535692452256654222427938203274376179131549015506447412705344091962400099046834073646056869242740612435588055201253814881296282056370142993530543726081574628624530891239325295642963072313859333759556103774854510477647038349206442125375003890163807672707750925950732728879830720381706143582065158865531457885365532486508845696617160944113591633589449710048657345982618108400122210911550277517790987716803999267975760526781096405175303431378626872683037393006004129497702986201367467772202117432062368089040212955273107682056986669490000532591808534180937809057408679075297040784858937168738020559039904437266948407465513277990993607002272336648823952762574956993379013733260275285775298539883377462130112566854643836972619469763089870348100211259000564253706049103533483969736063181859272227608175480152370312117832221949361931761462752448826138710632928673754687346993297813469399886040485438872243404170657812141249588244795048383024971760248590491747800371587613917621179670219572783841842292334545899594387250309344787576957851919956658483945216629794850864949140465667951180072310380350014875371155604890875426744329862109219797475717987032187482617407986452913028957450456687692557691329968857316295951540791316458477845453548523488630512253400372102142367295133784985086903930875770202492310358157533569157173565991981246952657736011879064040410160183908155066268457597263198130969412139350454770177115377086668195487613199559430096634289645507695441169124574533345763646473046195654690055997476046306239418126580426810279026409854359176746549566231024703806506612795529836218137819047800721428636880355322453427566867003076246326001320881814932479631902196202759529717181516210146749516116626518267875254622397163987030418685370808346894278871553394627472265269889727110420561227910792589361050848755842649550068584149726602535681515900503377024513441602998925360302025070857167319977848998064659093567037826150903772871827721947705987743363690383058594498290240367365982345056444318917544786852328031554409687225838835221861594548376776102759226683804747601937063737158519247511945118441558390827244426571257300010805628577141456464119093498524354779736365746496741040795906832889784160814453506619753768856440740381545993869640105709211053262947386716629306661693275387712273018755196360852214596070454906146238066785918305177392883838759436655194835635990606288079111870096893801382302793393841247652757288565129975851941835544080524877020940851041725699998265759881218864513610777658519255610110515884452152637152090663359054571335050765270195801932947457129394495657969892745255133176900306736899919824797563896841471400017861903490639168347091811252573196013662586308974548716428722565516168724379892124491917554313145172685685815099366793687171590489746742162179371385070100039684863497092261036525785587639293532018670546035850533721423948689127590036583662234113309595869911594687963500368182519556885278062799589315103236049820093404102336335938877386723912294854841690715111594928954193425111938249237541398007886900982943379409965710874601307757917996477181136567813462457528648544638531775865137550706828261208681841990855830666003809756049762217677464909690089609078269271819499369083790254340279186471599013941499641251384097248205657047761921094828365278009603870246121333069133522734831987983582192886885803999437934721202064993092203063249569856920492475906249845603288022280585269343621419582926497840270514770684230950741484245820591490963522360008744914889887728615037365347643448091611748829429540580659681736932271657821786137003523335758991636795690651609048206475830925086898157361266580022846585157277142474861080491657600837626782293659061490895236324969894579987000069330722339610369348409309539358013157148743918665079017836980029273959671550813987794806714937863729381449879399644948525456526691476587757745953201246502517614315775619657132924797634634731045291460613493443021483609619373250628038021908172022170605165529874106676584742841070793445937546474532458385733276038466379968218653556769567760797865061985166005513695926479440624395930022588792074762878329335907389722971940952283796882849115644673989670395628820789258207678945443570041584032011578942995002606701042736739149922168869590213636205710518554061426461434694848981076521540941126545107253284658296999353435880435840454487184110857390807404809720847321736476370283041420550814053925045677400409048841087545611412365143742421981393345618870851539590995144697373163008568723411570224855386127201234368000406907447372288193475096381561873576288387837231042390969985505970343518044800513378721935824456951920907330608557079060009791695506004348268047076606553067730245494534305228419728837715085100007735892136920290090771389563736103131133279125450381751069451868776079049939058862891268756295043846071730474348153781357102552176058714118996550811525731712909165413272688707563662091674374053256674986043691215202382026089777603806360339482598735942617161761757959064502240571567550846293516467031970522339949144238015543736996385268915877953335645260536211253132138319369856073237698123534000441725720969938663981403752284272173682610191527597081021435109162141882516600712594505582249227857289652399415087849338658190144177633241063448238207016327424229477934323667958787841897132934127107784850381928514275881891671185208223091445500824361506292138573223603836321625269247325702540955864665974221862616126562907925832160777346382505690619685834862840308356530595996200378830049670031628005875269347287202940145033531812743502546803830959416357099863359195138516452349110609510998808901508685377915447095034537526879561757063891238118115369649524256429477533794667270498166702848708120302720864763438777652740998393822140857872100045216704068151566801651612846926758126581824756929509534593621074316660882186606880421597423549792321617694963620701695803900735130362578539574156318749283329087217840357528987738759114384914743828980566489974618936177268111683924749921515647628280760089503477275175042238698020485884708129074126009143555524305332073898864597640782249737481349939432248362978673369134489783426883490064286925837735464145571869557381300798336462402407602735191538685137702804843366996989602875086776115113193418442346876657603401210665816131129251459688652806868684326984102103246181324966300238155372683907753335305807287609418067784369872619921032907573214755741913887170683461164668654189326828006600034323847282952631885675875845126540137089465024415712294013423530267147063950624243752039525308884195318749417618112066465057856871402955114532704254802809274365364700845063438723933625825438910110154591390087518866550769312139348800505529675492941016442133157185694184887537274232566908964684837264131811685215304614255486740362399176409777745677905867196919380885685241064040725209736996421045869210467721801502350791071362221416329169605555116619593886840048735108101941555790806512464246365237939289401061446249339271458849198501863189988075052737660043213402274598935018009630860553124757036440774127967032193110542718394471536497387233779629571772933094745087219383828892198869198773007369371556798320488461555810886994879002085381847203119853270418006599282085607662115919685301855427009963350392486312533971641535309715671937332310292685010453228799553532539653608984632118203044295223732221787470983279343501311924044762406445542691505443047630792904420131124387523277746203577545597409045790392865591268691144264051790655073404236412150679787526033317582490793727704776443342472225297419758348972746795145571694780985056764048307488639296325856417435809483048085440151320869829239986861294849535597183160496763708199284192819020675414706805751724160887672905824570773784642114330764374229757247099640330031415651101909330236520978898547254336667026406373573821048084763526998823544333061198500634703912159750850456811517885850557147398191074750444983540082079626707716825640952578885312929484030979806867896430813371553812214358403054400711281151424613802964653755025262534391763802244581988775639846664254097199328645918544998099583432360833389394423879960044747693834730619427684037273172071237829296941654553176506321771538484476072699777312427994351585686110874555594735236310494038420843643629752100361858940805316843022233734252785136952334259892451794813636038658886132108574858025855526047223563035222333078612872615326343047229909612709688673931194418807374706581022164292000003872334157976540704131749777597566143241558713489370386645673758144906588536084874435269318759240051811290230907997225747098605939418806475338737975745435642676928642212227198744044245766498909503716619132225160797625410913691373598380712694791366894249122145085247823300471869500714688768637598282645729851039574741130937847635601866805251512227793660947274165415093397089221467626771923644364221679223320258758014616326878900631191320312686235360040440564037663689944023338694419935785343832978598034067372607327960732445014540707389609250447937488313415302661896088290049205472258855558083270541114915545602770937438585391321547625731802540361997254602201070885041975304236081317473027843587847585833220484013399138896901325929926559218347622562642854432808212385582997765397588469144305150785910650923439997681542994643396370630965162722464613224022276902582833018678062460633686839806357045427315455113268402327336075242355342352374434360852777519697850560635814928138740686670626739637576812661195706698652427009966808446170414007983255756635679475765388270727547913725799915611730699207563973662752746869280839418018047285095798506033569265044520106214838314083767167563734658976933593517667421901065483598120660328557831798376161342332909822923974746292197541230143824463143483555073973507633360361931016107482061861138176934327877341280222641013094301599762198574442750829942156062065527951326426281735690162949676139468450496934696513300637818934121530333081552100318202858298663336529640480650424108449406908373864028386829668087239624430951710393654890368817307312817156259823955461026473343059110580960953174399723662346415635400365006454714593994888939303401714965848669293422591052149988236082310098677627510093285361160822641456933938345628332015635465290290937265939455907678466243326088509821401033498169486307218298891057765951718895820581601445454345454427572276456388728147208580227044414392146656570353517685996846985282069041263487685196928919957601021213085661482075657816609639969976203080818684585494222736359039666115913772841342260090941121993038844676648190686525490569184013652353351721163084354214807949962694057662082371931400597696250691427899910957536669195288897553270374378796453774055427827857223075515108208476920769612962085657210328607594004266848298550096184155234819835215960343493138830566516769622102164203865510874012380869894065392463024034795580046918225897661891941702853451180615888301565797087752220348727283265878146517250788729540977128662718954743512383628110358394487179192775087995339988210491311626554742309776341967210291459623497811834760187499200651736809796497435074373952071592386397284553997489338736143846864910055849728982448330798619194431923110415276514174320296777655987302331532598503941525967278268903497673408371565134788315221909152899254524691932459070840677131436998739339011616280333056883864660207420291562718031475694698593686710975189090963046560809457375767494504408520321633303743367517808190852388994805450906080230141537713304412134678839733273610526145383304344706043843837222323117030411486543697639448160529223561237309863039288844556058157078331624768234662530553544604748501291755294612086635891935671042009196390745744273579324620466459224250210141305839656490124800618102584943526956872915743098263978167303411899458587984493142714031333362943969641781042237937158328019378109850312706102831728183509647380605617372331725422937940853193701109619070338527726094222794332315242525029214915251034461904945093206371983641107135193103971227581073563758188394395411322919430390988340607241342691099128974193220654699875489998642128282180130880329022287192977987537568336492324108605264487820688213704148482410089757493050407007432712132572904358455469096047710193112845928702768858227751209765381098919662129378771938243522242994888926662454603654262724532113423841722524192808957742079686721449831837644597339047353738957064841888035334316474401777941555442075500148455798707701238339670773336808777687764850805709409906024484645678483377120638407060601905282158603957332064763236125402818916700944752764445048376138460039473688333565320561871989060603505845786448926033862125072021083285674333428438350016175880107069812348882816027012889256338777378431472032083784016713011127340109401905644966784579062600871708954978180686679697938555598881975064399435475474503449558379697707394589838610009088942038904635939485729195928745120024865081591506114430097466356767701642679589944452561843297193885783199303735333158444623629411396872465197776423845783345321593936836879942247422653337556204142282319883730443648661901424649123582759277593445771129232498007492659049019300327091116020505843435972005053261007051373730398792858243146224274845827985368398152041506197798552766837462565962819063854697255378767429915813333528724567573893017160012492394544872700710484996690927346113714293329984100524571851088564788149405871681670958908222602343931602438825760980738572278299555774668885414991682324810699226700711573764049951158869961602343238338164041784974615988789565295537209023404574894453763151171176542035628580976691380926962857081227225894455697124554723470192641299498841392093744544457938844612041511862806447695168077645256701288782140537982163062489448059393304445468860614069932770403953017864774185608774375564169387091860786645988905328806721340763543955030413177146894409877035514138332531275519398544523902948492401755480586508586406574234841239427794625356889170243937640530698916789815399371990396900745517178026046604837466481268808166694426294044047769265109491232537722998767231251509448001543063778331875324039566401502717894394109784395725450691605531558910312293304889735345815975220802281381551561987366530169981519864333623241988287520465300258180282389194806191452325435991576698894953950054696693158674679021049010200277060104982991779926233128912562288708394126054791118941706069236067011614728169702556422504389477864509090770110563106774833906559471002066581492212841411910392651438152704742227402402676445522569223903082382536007978291852862313926685086589019127210773525955765850953786968311326392270135073836252210418744390681488818562779076276196113896329656195580460151911935166205379587903041117096935264585577963337169967923438695267223447438300285022811506212639262791656840935724448344537102004409502158993021499336412758725149193779940738671400134149208736048542362575634452656061897444468722321856218443342068207059766802974821842127540980812806988416923561498873243993557950612422053613708354327007198324077039684489592464779100857823582562586797572024361128795061466737830522720852717521088963595631442447460853633068918146529639241913793582435749822672758387421827844569298010469395694658385491005414662181532825225417482877541468147322492074362656591627294795740949024068919623787016126695253757073589929186542757548420391645950966968408877745475741663181711148175275753361966152204501334373388849831094969129888392422135361310533666791486537099478031701056330289293828673797020457239266276458695004614458307615912633305581309959933667628078445654212399320284683724944437060696718670802356021169680976658938553137516728508526803242364052518870421773225621203838186479804183198434718988762720451113741499483915416141134252072869343150789235239200125275334755252202217770341411810422797207759220419283522819513159202437114367018578807200540429589709115556490068286913451449278006376923742438677381373258614849281397600722336597903733177336620058705081887326216499874042283502946374389892534256243707827909107453046591744257531327719631354819497561671067096674288347106803384326737337597704672984676012279825811067676153893051003154837503538195915934563679031030608940156517868857010864248844751636284473252376753762303948786560198333446719967441270754853399364696942126815573923999831875925445866273424832855477350235855322567196091040641144143055340666445925174793972531440943843218274237822451745342442484638176521683177214429002950970997251905238875621224836998020368205325719310794877687192154839813717336253101282474737168020085215886048593388974801450201385393980661976297210731236377573306092970729765262322594863516579935041829578735809859612147069333162737488379223805173377867320997522951677247992404476691334219770986915884751951235479408525535316189227111238743419435725143654463637844768495263764261267567127012024744565599347409633558424592974990924068169113367375930488498526764295010299972713619952019038670735729490340474685563622257872949219469949263960013847850073029121347987051172127983887223605766099579859434488521942801675857091385537122984733709560782640032398929343595770897289060384967398238726282364948676170848114773009911056351081984846222512316316160466679682054917063084061777760871701295448967742462573895206911794057584861249243040347392099223518233898542419695047963465525437681451025098908812411073513688862910005172812972454140304490781519993003743676498665691163335085333757315553695074937448046235322852338763981134412550968286807156223947776203593276257924690392555059052057660037693438955302462854290662815331353991311424597457620587436257564737227418953472855644069795816720479065060576690385462012833983482857895025159691428488696599916077854731923152358528071554212991311662061862852433692639395408369303624167357661077533857689376541578728910642976288102301542119453961589005586007453285201582557038313839019070600739211090009149767867653895285421300531391594832275277420212202376378574632230455346282810091928951286272061049186787277160366547518780176445646933650542061545955300103985428923822619275023121518336989046745133071154787865326606969318513932960976278738393369288819426259717350956713513222983790280051236414698106291651703317103835078335178513096282175437632052426067732617026306041284834484685817850156372807397409976774488459473222054074662692721143974421536928547646587707367490570530156272158120005509794754228309499909684423763222188744457559124748684156969154725677930976729171139406716922513986487773253428269678569190269606998737327025342641539493348644563777669546176055585994897660847334610906428492796584464526630016581830455655256234923503871867821292588065552299277914208014310787436743861258026238020226179693979566610115565665435325840221927734896422240677326280342064630501618971109865731311765029498174637982302751116183760879347845483729498209749455676453024929851906412847328016265757065000896974710765860821752427150582763563644761534410991747116424642680489763403372467399045838886120222345592126441820487246223369145297129326777352523172011974811190024097986841212286437340156924362930760781377201334138190858544673230445755729939530702014351340925936030087124664485964248866411422549043315029026255509471471058339367654874996440101205949707605871252982396677187291381063787054733181189352013971399673085782857679343083407945910632892550723589240918515721117746445268635087828235220747043008081905584655195719939889403025920708980308282620450543114117327512732975456625695551558295715764729311943529161877289797385327336894646948988040781096041803343547740051896763229743026278103848221924116577183749609200192497028069642376031357936049438649736809240164602111077002131152599340312107985584618264904324974879632943590517068402969866387512277054830308637531501023787148277919692860524655887367522151350842568552840749299467664478642112205421179838851552195725907492013329387825445665057482108072257797619460301618808325560483818994678926240355499787401160407552080693119326234324269792054621676300319863886229001611765887664396940350460638689665492174439439254071242713016860112195095310156716101379381618493434167253044068972590136197359900150174086128190493012496321216714190099531230658425611673252749046225068226468691391781828196386599986978381674485673807091430551531397616370154268037690261491792954183794948413266505747286924782057034171251112072676282921716930023182969830139307569103731165303509621692250904506116391498780480703230315099738549602574112852447173203096422215132231558546524186936945375058109487593093874399089801656565816339309397274506387392146288320580413361822135280682557152787072466059485466625984585429284541396856613236547823391615867487602486591318454939660644841120531121345379241440008581196472261751410023730738245046832474359103150589431603422227954047768541740554861954449445789582320145160309657699948842656437871800859472815152240527542183560633663125439057949392299376055536860737664824524278133521320735276433946926108037407342736233631440788539074284314355414245739085661961990490089793788198104213582274909741700219856210455545653907087442229796357623902023292933497726649618207937335710588232491815734206567318626420585652427852584515203274661250684707725071802991069029275023347877002250408709270827251138935994838646178555844459439089596344215836483498906309006045773675059216454139199970287482596484112611637716453566924755369536373662681821864801574074515091271780069153453484234348991580864470684527271193642094227997630205127770414163628186226815810736965819120944562695725431762319684379566818306573922266945072094160655533968005321741986279160234933434231364095469132039361339389519355337588749152916091586938823613693309331326910717497304925081108256567173173158503993920007418184416068416740990207464325335006774879571166014299693775829297759688646349745045288476649089451818638125321394600200172454386830958604957514673468288043765941218099941193360313466988925850153582654841435534402437883595545498847169226580792901045087639563413763467840528236193132287193267970296260749317044984534332041833493894910501551655479858343414559179192427810191167962973737218647104651702469506134783079420117895824040297717962786830125387770496461377181264411109356306943217017670408392857044570350687615956845611093888824600054318794476233494641512835389458567379009099934319496150402071064967691639428919703514045653307266634017810246795785033535406557336745253690465743199582105206693457068092969827722825794522284753200135853091081428477936047809419180299115945854733729882380188917386422715553733767819061384618959939412816547938449072985465152178169862471625163177335124710517860437977536895730823485616022644746225198780883264852524303451174705364605977813598992400365716133943581722433957926120982381512038916843915488980753383100707311655612118749743610463526647765367910357794234563699639897700303052254559572178017100985003529125648677940016956922383847556910759674086318996661176404950782449655349322797582445111697070033410698292777919689626300557269266282663384538960824970095977811259451703178740815446781974224793689968560235012049117212266119036879797783337900701373477462393706401052752480690093993371984986260560763687816447194987256190572367766763686558905308322622929885602273385326874111964014890330347163086192313017894354596654025367978812527454751378482663370340339422739591259217725309662977819803494118269432414895825704290281163461366472114710562162476168736575734183353678516451548470482324759867908969682866764723442806550079982019508022650449008510108504694442349734731702230169703452689606162041233941237781549365419709727545531175654476248768417254000511970691222008517721945621198916191214397712755815618317477414214461848988953824439079115389113702837692761353854841644485768229126589199069197156501413508580489818012626704622491102709117182538006412645339492811304872282597538810042803938618007943906051940377768466673611611052264659289236571476580906086625322074215889486832913483808603806990805033792620593898940504743082247133240275574710402635980502558150935690099681617382210111319498453168686242626002308772642606892377715194562432165912804928666237730978151986498169656203187749776397240145904426001732055819097221754061106704962147545289562062853629939669244378314917273076841594278696825193315878072333308465133517509656578801389934458954784877759171821417072184767635317937734222654760392865654694367020479524673291769121957233988974765115183894532667064051687538957688710918938847196408321941096041980241989629643895984769568008661998813508787593399477128987070728880565560029580773333442635423905847514617728195753848108490685947823724973307079856184558817038477574301793208664338479985369979675623403380820240924715992647488406451164604619619449313049527504778931135500497929842455481272486831743178583839269739883452881133526230898069870956924783995485379640409060968941407522240544919210870647637504925308789365188784622585433347310325691427200711373033954557351508799460530769423824577039759001107365382825428369294071410837038993961026188093944241838721580631675501374741293398467056693912212180985562622144650789611235969385109589485843364530052169349559449761197266890172081488063962640347562958967947838606932707534101858946640726788867559528384115014902490310032578262503804801816385520798628505062474739644960886475083531230408244515082682737560633541745363685756672924088089028160384039432419098514598965924427879428908928930798025222289541158180532335796633715795629952705915658192582742247347850722472808624372311232223770883580423279972656976183457184757209611361886164306419354900820807895403572259781652710366434954248351782214833804010992807068576528833780659714214424378119147645383740091669230979153657260260529196109818280541445313555282090168146196248905362511730409812452105047982722307664824351427623446305676269261566110095883839067071947156097044074008868686283955378175296546252903527994580513883002816067528053628203631828452397192722443634328821481386499097477481565198499334089351703092389535381980300157126226812485447513813395187248223160653081274330267423628776318801860381231919122284981852357313076970894692284625729552081047743326757587830508875250557073461843319701895276479376775521721546444887444030730386245857158884535971136801625106372685889328279085268707010978551582553186410039748013481759616760780631948553122604937623201408553685198945522753677832752997597810177280283037296768793252715580720875832594728953593916746633630002690823619530426429156764498420076405942704729119244732372712897796027509737821704957490363236536964200165707224590115897251187280332153696358666660108781857955249849138733797925392019737814332548758108098524702862398038079246426072411333646723615895734381069420146396821189764035183233716014228222797504781104864284070463633444847684271414874867356192137837902958710087846737469146413084580559573293873154137505799293732400049823979593814347548603096983964867421460937345631574702254907761268902185182248114292564499584154366008143458644491692884834581903403517111000403753439763762151745783593103080253284618178369189410976237467559464336503255090506299175661324132078138738420518794610787898415674043073716564134450803967647598512713993852350363524905802539057274342137362571528303747619393699817538574438430369601932996663412366329148559254236902838884742903900616786631461093463955972944872060100197454513053881356653722981839322286350764076696692628584037464937838049571870560820699662402439453379511973153930097737621458742940828453333273798156421467569397672370397631566278940042436471602764580290904848935329371790733495050810625504778060399143860431482851024223961821966014012685971856636149992819053312303910109927788867982925233899927017127767185839447747340578224788062276284477105491866604517370270131247700408405159692402714467809186131608302006889643093670284229877137886119727792546880550128867617044475929414457533421508670431779124446820757165758152189012050043503839958190829090038574988746883170384350127123043392347966306947906336978313177096196336786212350885831542711882552093888092780823310338609539579635549068391175369809345602872473386204166106401822865715280652911199538610913413652621679799209231205077763399109601468347760553934009450477311049162323112025726849431662175326548899485596268661923354538025910862240206121644870022633368813116970299876273307993672481570060920146018555475943597334785657439670267371610965179302493120020247714210510999658096096688163655609309854532316323040347373835539186405496563431302504340383578998882426850837719340793030174144073112462905524377524328445403210808625244894381839556806241387607854152442400157784381435547059246075280229379992341374185518543435062688838233875406570467539784995643170257883211844260151525374421807470264683429357945472463128982520137252467635336628200966455187444065043418630310303780612872006598879997899114826128678595596780199421098981587184015942078198053651352351955638656970317139583294358862406046283974778843794147024587531551928162398255997617216234604365239103572666248308967148930372064759300882614771494951611108656137130552903006173720289238990433403289781393672615742175621597770587980657051899316490333597891934905238404365836359216631150324026038114594725128828475107127966360413035124125184018658639678927467412439486769640265759977212949330683503316025361340508598946559733174858727559820058354683669095392041719006006538748351202148867280766873523569315520505293771257061650801212914380462626514778435288777797407511884703541455892930943149629910245254803832315366863633112631804298838848157242543830987303188856015813037892328618937734434294679595777085433616642414370654119079739894222213799816737654771523309575425121953688360364419231183254704824483628970103786137026643713859042009975213707220906840489107863636993987158558684557058917019378499855720222285050283648377192899947114110421918551067670074415751456448405970486990539892153821827947493562375254310663056115148681032570824172502216827521536422882742935611016128768790232679035919070127566061196940451572583456550686766010617683474561509985602718565713244215656933452613429568186193954223595284021831931905820641332266936319571021554262053175875611200162879249723081795639348313745842190692619496336984375620858632555512396815873883093449039497519971544366183714079899599962032543725796347945503632284753924098504574830798464746460247537545221227797773024595523876752501401611760263634470799229906187981329665900070806620633529520565744661894462071038383613125348527264512378601621406330612665811903068886287515631150317944714160362711698029311774622480681834644488254345666820509977533065100842820723041743519110579014093955759075027905665361971676857648441841232504211150496381731393199092147597318556300222960673380582861942502552790166075204375060268288984442742168192319890986494788819541554859060080175114088368795895776145200819870566310306828716920174430514659421668242961121371970438617901922621910580684347920325219600385919441355109161991070359895864858533505445365182402586570420238121209388917875431370034252571699903195571687361297360580054117574474952527910514574181009574690478099873882119363251748152221103005302528486396605004574957766952304207731789575946355134181836779238849353816427948720186134917322722999671095788478887858130749045823599199427818404708510082726463771059032608179108226695182930324131245416178690209220072291372620628841662742712645439615662353290379319671077417276435605479281148908516958208438255372198319566883329259351693593520075229612080307966512325051203304572428807117308093691185429423827562526978345896597428980686521549054837735311321975154047234308767804125174279003855876475775325907367398310766600796013695651596004844302066983549207656883038038856894844031356227360891203489019987351181207121407786863252995894469133551341298781530542560369837439941474043210112851841110167995735270008657321297841437669438239596041090315643550461209480833153252288881310793848221043942202219343152909475114881411026081304377447995900710233301476357761222401050622826428113999484219105175347330532843381971725523136783627896521578691870894617056277503577848925173815596096367694942814287291743648159304646621011861308846620721817660588380953247772670509399881595717138756002702565399509605095486687759395088832128338894379286512482428139564311567620318859174362400049625920417460339818580099677983832833358888943058872393087494661606796116195645754989197254123417632475035570203644891159941337140380516658764583983480046039393780783335584670869759826752605457641746394644450517644008315585537430492758762746901937491310617852146259562303572532413230551024289344043601675385881646973971021711185386240765120246010368076409589889153569442253003353499573760077635592328284903889114875043265635358706501661959152621606163959010530913993672198869697594878179668514131002377195451165036102647234045640729932623358515854029839866753805190225165005251839833643017646446953657512885895040946329574535708207030997660140410509071819259563977612569777785256690396490290010036222280366497575676322095543099838628046108706864919202848076835644435538605037852442471640558648764432681783295785249657033399120721732444281909229966898769285302117553371955203268145161267277669396851515021093763895782568147491982677021338473946748157572903592033672310313182178515670648748447934960966198752765106949763965181941237269205913037966228792066288912498355378137464226277652728398909295369477080910402071237031283007367292411533916431423740063369839811171745343842314692233800205263316679550773155918102723711214387346934591191686364490429448379022571931752320675517400611741139427831336524685283522667846637422104946526679406586638010854993318475112707569228044302019908261598552801931005059451332291180645806287689564918909610085146860087172236166864417450789836732217494032961749573969428064861042468425697493536703680807816808811509322038829875886861399848333255790214284654386822160782400941425030444116783334154176005759168819166777539668389640830277549365051680241994148665392750752811909715220640963983856485185444166613433672739015074057419488264307586493776910119907207670118337871408212564734078261161237212383909302751767115806613496764289907852711036791500076450408609976600489707755637858815386791725839078438588398692318886378825091869610641209713390623417771929811105574337084311212863529554120927232121918796126818941528332626959709403942771557733002550160418402595247623154229204039765511503202306485827333942553355583525385931038267087709812806852090146382429899615651532233083097622794230877687786037141804070176242334252541424742366906220954341374758542548356639573990729013393269852676817815650921203214456925993405504829130527231435751508021267397829587680805788439785377583075435016936360412016342151208293353994031416463898319299221665534505435910644848319617778095148159690929429770516308237968342700590154873644127597045570814669043231562162022421883437316729436198139360375063593075703290650015237628487937908255853397134691941166672420784079941132751300980358494655490661094258850752599558961314564766822100980877706473051699254337771777815096886172732102777242643906156737653010793556242046313478400609284018845201379669198937918153812854357304924937063847981884638527247479529719545067761118952238315071673098982390926288244688711973622273603694798407988196195495661782399015709536290409394022008232629096249552084933411627840597022249131992621573702536694777752893978160327190435993223734810088020579267462994393545096522639717890875573722795447174107207338206405107265513634578097929411994774522282313981029986303975204962686762855361375521825026820928795760237121047098412149184354865576318224327588311178210980664761071322078063840405098818947635007017683276044116572210945788179528797794429438139618785958024099531705629632005873820946574300568002526168326584460119429942233567565456570912524953469276446715715088086353185789046343786688539228048986949371307264112056103622661914800734879455539231457853419838465831918058914120469942101972386117992703404908448328678962250060204802680861769292596657675607809508128143383038999824749787412836948375347095048736329807673434946201826045753735815956163273849381534213640322483462725327224933339244002648959231394537538140460466520443171961326850881249639723368148617023125442487055185714772903032817288324266380757547618313697564213019836155650889712604468362651023297526534142811748034539982975391742713729183354527556935041120644883796960912411233220691826807747781148069949464336244476741356816462729407805305092563750939777764117555257539038120697160228067711113607179693290602801696281959600845827583219973763130260340220275765232183774064906165512092979106936289481910910089558857467670697373348928912593167262005258002650578098890025419504858605071154947168442435482037753458530515880763051950106732075273043910218473726651878207538125545383417933234496797876597163819328114124346387747745019011546249780579093578142562005489463730263453754182370511327917653105806508346456801948704697003731864436509562370881664756403998302234431850668599731084350691589120329274097862967451204771679549885795729650712973704057316650226672863185447653722690389556395427992678013511098941404625776845397842285915617909063622630654769921838994290323230792119248248322383021391453867230083664055523514563077794359381645064468806300993489713705613803622306654143217012113287780204611978217813577066616241779520640156528473325508524988678241665440377081526115265811389239583206548032390950853717793903131062712064291728358149171492076985649570179127069033886387887468901230564125353335445484522342612280868592529925683040639177102284033803097375677231366421467471584745618791875517024761161430041552518171482869379797783101641420024967878124183397691715731507797070303833420104932615114738921753524086327480518422750636833215636885565681996132424593047542046081107094693576827466384393507677042329012110181673153133682114611844682263156738405979084922652570100286454960931168035978021514845442333031155174339947319412783834421644524662263125622518263859644108364973829499549953758559303973345562563211176913739857105489674276585191107786743690818357956889456112673619569006215571653840688896919181246154435094914508977275298514662754839414917719306180613489588128391377632015785764379067793344790747004021313844446892947079826721663342559235778285382749579997481879719003850276555300410195106095786430784405273950574975976998616924728962274043295008685268888665875991300831680629275871180107308277823965530896478255541497753031063067212921844883296634347704523675006038455495078368615886591688856884007772473827924357604313846417297781956794070727002363535107361664691804106945508784722327151214757072279011466260535631561149095017091101233704946787630525252026796122231391971283136502570033740454695213062385544082540269693793443253676417346839305014012902434949979545963623628053464915368924329565253787927136906074556018047969014036827317716039678695453167577113248505856109823435710035194545595672599791357744383804163253220979087684328007564813221215513801586965729734464953827901333538335482777904298757650765326268024933493472604568401294822467820272238174308945444873532971180658368793615866340718911903568342364166914311881932259250523008344016745692988543955184533130003293401345350829506703102745571519490493407232759373429618710344520308347369386979842316847973863649060252280380960888809604712959425375063711244227794904092553492984655215358486325732099045736741097778202491170772725244270574567793947273249468265891566712460517033087963266675846461762881065123317317118529786891524113008049412915193096136026967571729732209610312264456578576863850151262291898706582242943466984642919456909578214935852058199037209773196917214987024956153971743897585485688457773997899649660085661780015523074556108541054171819573356415808733054711657189020083618634735238270735105961879274329609211714912879148446002638763857715124224039066958468635942626957116446239703229361147568804313391515237681047870515695734407091403161866792118828250644772069694155984319876147177453252157538500976015714053784845202782334951252376386781097088776276298241433449694918517464336239973315850982674448405503193447029365536300424614820928311272801605440664431691155748597371347030753581263645097099996908388465942210733770311964042912369105071202757767782154264514361378710853256005903045595534241873750151787369688741726834939217062366729795975275166120962265880592930879575961385900677147127306456152695386558912635756916276036860261682675118081181157831632186281648631850707457142136405360962195037165811405220851276871050438028844736525569204673292220175304372975405339674988587978900451432289755839266497319657692776637764810430026585511533306341144726388914991274532376575855602283459422111938630464211372522360911190583942929206318224455998230036177284888328545604570889882962593447974563691551464830311008551576183963243318873160706211080621514770458991699752540228842261107656015972047245174714692321158092860586840853814062986976729986342522166538247641308605116409122050431210106638013861421503487995510038845890780268697836057557765630459233579612317404715332147918993057490210424754679820323012371943066449220878508041518790789846284161888639930782120951932757778459712044254736023150968771335435276476266690858482237625778808252497945176039819604316455755344730382956201375339485296262627746108040381565171799535783073279861961431292889114403289936079426879712083021642850336015562135066283381434362564291035206589240392753676166509195964416776845781927220782414751784278143519800214911468944373943374319432621383668895185167267437168030074707082489228752949879156621941493643190738597562276570444753368188540899623288373418870869523544737157270148670219629104108431981255598237605292059201057828445620327074159289754219756581855514118979359600158377866131130715999813600719619856006430394766150471030555174739709861862830824612336899370720109223501655901633879311179166217971530954758906781700589766024829258771481161567970159460418211276271081436954635496208748733993059666169709808972743542683210323155436996849855498885622965390580804805743747301709300716093176040485343366888393145261735937577137530406970418241378949510101633936850624385359143431264097810622487282697805893745775952519860915409168592419911860133307016901177680947581916408352004552933155410510416424926839680875444320315292660564274817018408147738461729418384377048700498222787219283064834437982824596009696337623989225289442398500335089274679569822402506398423603606255437417373202509000310507226299709294056054364293202849942969853867055347319060300834795554729526326648596146967786315550387588378294030052830989960984296646224083194977884192286458435265219929982411848570387090767889141214771894000961806694924217906596153440230546760237539766490274939010416549761125820817975109717975078748203902274070784427778378787225952242328782525448149687057697919430214474446363938095640200799323522341862940643242244365916722619478804257195174349791755009281488336011122490050435675307559326391620508621935459136062495627328633990217348804599723238053017129160402761422232019566261505581686137487700762177747502758501812994795646297545783346037925718429825641213059389716121543565134653998530166238781349507531312621301205234104429360987632722917735128422116305301957879462576791026902037236695724418154394979520528222002267875284157663551389890849515083461975559358817448593973841089355695032536407380613428232443137928390235072871248650160918263498084584681636500784332589969915782737437237163275120724341442511690767330327224161765343210599983691826357439361744607882897293171112012767049099693264702056849046650089866060027353101676827024777016412611559199307723441572694263942312964232746139153228834942519944790509433212206565133125549244383477721741342254014774623325852253578194883939890398186392173960583282429685700957915788967303742868688839270763272905784751705759248670853966685433577966438315963430074152182727064071458909826855675346008165457188587094977289954407295205397654099395105480844093637075955276633405073760074166247365973143532658768080823335490580913948952425597483086409089689852030236500370199010596932208009902574176936815212690979227291524253451801704541225360540722988890158910903390776895278344559017236257220219304362786720100694799739026650551469193679047959583591301486342521374391350953947947114169148412732841375638788916688905643034585549664583685074664564072455653542989041915449346632933817532833036706359258516720250599532134085337942925198115138911454017489850422259075401419244253563855509256003735678914306658966276130414776644628356560586317337249790450388017235869579335240495109702756372148769500517801510118912585627058604797852742818497741803181653277622281851812279026662959427283153501897081180485763256303348988064816286442789322253419969847259903325050969439374971528473593550039745130245855618253727784599816844740580490762145901208938934697634806100396073501723732358459866313256586192760716484981753109679106716726300989418399746691114104341887491961027401887687866678664290587995506507706027072920301614227961321016708172320565776075856415380934648749419451667336237096228531023180308898271805538596564685772370905205197539377849405941560842611660642255210597164563361178421462934700913548222286284564068035784278655038345394089402390207646035275002789815768668651833040277296854117917528157253043566045601607764340367409556738304196503069570030266255252692382965473601755446046225773321015214068344424379360538105817754912564177756291777237412630502278013824564876215526880928569727822484794587000607178149464127262439558241054820901705770664693994059688343722426345067040483131225192767434334740907674022801093455478688384849431721805006303263980950171759086064655604437961261097926871652927247241519637632670572977100771365461153783425888370969930156599137140338696668124156060630510871008451650278488272794551638928882741960439614008484726007076630464120059488408990144428702306177672639908135952626051694319902051971965052226917786946865922269102326259126155396978164338944815131031516720761051235232850321590818680040847265028555809986293676763270210045569568984013243029285459698173915136955003060357054019394647322053116049837752766602059846375778515584631492605634934377843235861442382789182719593159922426235537286536653287613411773481135571862979625307478059138835711940735194042053774838766204887529846686546903069050004132913132644760195195434827767824642280547957648711033502598325867412029475076322249934417029794825015116722598109420060125527030381711532830707379767310059925405451421521042076139462764709330274097787573767639228080943716732597399808525283575635862441116679690522793766380005944870157762605215743451621857172103462298908555390553816212432913985341764668629264198650012663321844506966716915828126711191613267292121155385377635360137271396358733834725416148501824752618939045643295813237270375095017809734179965004606204601202367275687522958548453673944178514163008094983431395125804532384417125584725410424471518366658579679986467586484981255059524878154919815630211806060437140361799194545481418218685732377701326289061763672529032493958571722272299690065037361098721562191826592243664704737763511739826680219862810508852174841208229736424024766246165261432747887452949280834554509309688399319857645636619781555535920192744858108369429197179487077452984676101203479408633491157688934243472397518465035733584885366391146558328651038283976827227389277602204880875996269593367226480797103455373301609839869888414435886575860301085476193811748697551836104995041228808733604004035350950040914590905202119230354031668275729601483104464486343204034258505244842702880888622366558041645710476970729143924338647521502350640062231860283810384648296929876157944242430010002908780843526158607596488192743121977763853705782577852578159855818780208060095617454735716495979905080216330638192809313737822244242434798546234482661795042089819493664548233155517336534293552593637187118867106666162995245423130310730585079614632584762872100034846719822405637278754550369567651503281424303993631657794412113276121350182132227122941880904392578806697293730543700403156815401680148218682830140380500863597476780395886785112380066538585008669055124491472033579507897491723182160881159303150053502124322354950462430177017418359871800013405520456442823623567717672650878431887933970926563908169903825976051125214896668164634936252689409295580083563529520113107350403203930458904222874205585149437336804480482214229700860038367492610486500315368281905058508585038614957304789741216252222637917217486638770603133256640397482819580493835629893467501949472575827060849285584000177780769869611467042307302254511191206928853659987892738520543494441299322012876020969452105305985071830804134244844737827681132754376047862036467302740044751596162537802468315506537556489191201839808991149900226938055034555268187144114951813646554958023181565273226896153596019552551663147208850776721102765331739387480516644003826840926160077442997301230292036978300683295411330591149250189160416738097480347938240924935976563840859169387335229811172598526605751632528295532866795724011507296724885369990651702402530667198635874077355536032012822927512210975399202375461245973232485267258377146789571133996946658506857728183538111322967532854235331865071628207792539716591479458368754371688745025808950361748483012184075880948147411583404398437022580824944933798743910221598900375288731834090137084440915962740846143913340511171441711184166060773650227175272456982232579752548934676759954380440400450636967544240732082009143766403034911329126736883037828113783665951161134583038296727710683783263987077843029325545843836148049256622297132083534614977031325616234238089194688047926355442588988645289800636056757198581800947285647274148290258729541933084500114813710576202810524540507484864330398256035500832114758369512162802156720995972266953970468008617437959832373919207245647574580029965244854309758574885771880986235666965829093005445524637640518581255076715537608355412135515628374595901411336844706686919659408757869784875769829762199024447492994184849965688711873718273706387028823664828902763615628187985170919643641189200593330290022928498523963586528381576214817148963052974412965302623532744951127340947511336432881459008692006739387255857057052296077139963535123950584943292175235477535190734550114874590186661158606451113393888394149545050379254903634717101361560946346909851581757315578414302027981277347306337284550758402516881964694943477327750801733317508411052566484202036671799435230299660560608181913335352615684443190844521964391072792595048095277321486755932012038482674133699477788392695052684503618013384633879230269630159588113340591641994880045400086569682572377514974098980786922266918672389153258721842276001529770321475470400907730438208578223589240723141681652833998841000782453238051913781046091899238875807476552727877467094497331852071819761251583090922120521662333092477990651496511834733937030388139464899706821592499802159542944573033509272454317561814806950498270614854803944663815478729386008323770665086056284411449355147549405878725043248206266535169856377476100494626918389238935612508936755628325841691986569428870172878226119892666980975928850243513624737650344966401629459978187867634761870628253336697595370448407684620297867277465274707950259294249548768051983677572624250976515729880212278730982838185096325701396697584696079010905696032023160449170256439010419148368516736128359291381408362164139653300491379542504080076630974025545646457820006453471639715035183760876338974838951890091559946337265210255518987964847206277809928460415993194556191748454825579012386311930818550030876791597754274827312219840225331579196805285180579651419263384071877679104532044992484849192392526855058650855457436207360044455419141887800168906787827256581142878325849884297878100488796602536400211197534458687293530940716221107156678992890066119793074960397213443170817910532025634810575451764047676723026585850035143836077526820981661202241007056731756001660055425582122803467182206151138784286179942665099172269093844043207194853754937787917117954053914127020798556778449768721110433881766488835481472674139381666668297137535015983809188696061474971007439577620030626806159916534213973293222775409478984358810270875605233743784617747577504367743117960478759347192269297739080636567545685326358835238355316527568259408716846048089855752987473798992168269161176586678934874797687246561458735381603252134367419086353658738601572169896626481005897884523371061628234236981044528395085469403919317048870861439686345207831360467998456852382107683786139007228278427026881844384440294451209724331767466767075483251986737338968658244950095508297446004855725458019820727761323232288114483181234428269933766626444066915589257111502681051678448069744651342925956216244859399631805948825326968993908148638956242211862916240458126433292552944488857867168541406089230471954236324857176999335096898821724678625727070058489930834609990480204966371195732030414263398271068691025766585526282397132688193397599515463188882423741339153527223142266213323916181429762474193138994311542984012642229226936052898139326135516865392201445086041979347764023674997831541797319783529569248029859785498656325480640108684921914734721408666740246270708693011391404309741753083674262232313663546524651742063485936670597114898127601272676506863074894669928922332206443379540567209232203514590507677273360446055630149286985462940726362101045445385143622279662044408250202266399343618969981295213068191032754906638684790779948441313923478403531998592215202936224270728995915993939702752973140319843328400423715930543184286167670234764821193862426028970063436204001159239784612969067022559707207104824609875850956777427463595748094760427908477162618337457931127009218318573518462850312043855212269219519316614472301851386560021778203179127821457898855300961708246167027026277486605815724566602814411941604660120472864240421150472714516668117516673176589882429293384722573971624350528992232973925754747002410848330295924277052947645589746904493581955680643970957226320838156632450984313502661533960795140357048030471745939982152349387555948303079496044437936857843434968770730839189613901859776870897544842437201893449168441112051287249986990936476764466504538690266548881979967511777771740588034695696000169158677234216101343499009969642706757749217858925496447061658744519699965723859469805645933591896827973194775562863159041838129012252165084766932758054441274981453080924826397828529785520070564849682996511597357186109129392886500410340397218483891414352419603360493100150749964003469690255596024057006825293679748877928268250701656315442797841671397770341597680495630622950660616666299849114441157673850460527364729096246345802428927284953029871071046182506839850126359857173889240698379159683632793115975999018708895803976512290626112213422454889027243581449012987560874551631198958576762343492381031881532080773590956464395502809742004765410646915492911385261688973095171775757238468392004576095656359020934969598608836634027762414383682183759477797082242598730098618054168804646194593311102620113244381245946614992032169005560695397959028388239541863918344190162495042467090446369870161853728643588718554778250154711930784019139849929646045035568787623354193766683380994923786403362620048690429147314468316693293644633661066287607497910599353124167963661258547170124075826154605654642346384486734473659892209050173509970089388634695624192586475350836619319577892468827593656697324968524366950114006218207230059080202836981364495392111190541629521266372990677036901292574616534612233793530730033460917275292574503225144394313814176516561640210424541422351403481926445935579683736244986788578990059991456187661124231070610417285419456853761758397271130282970187255782875817852134728089319704995536454210749724181574133884875329470447810977563215074054088185206929296998148240464019037284223695687701069604224330578693909354915627635102076748839902612677375957045174479706466281237983193348237870122066006839984926757399146523797069285591378051917428636078324104772679696176323601197710163394947674933065423480355286275700299635927711232595995910315628703253723064813264957601141022778582450705771498249812083353112035555428564079334980099437163485156360437170577019705809626988707445525932335294560496041286411186356355341311884940243680203738100253686561448589782538173565935900975806799634926935743871225283290659179233810618253856711227678823513155483427389310160788687000154699300156789805217706845971704956901757797645783330847774782804529107820269448191016195442792575360551556000558980385431007237115870323712270033736906113306497597005187687559486481735717287044754041151271801322289037020076144325848589460471711561827948492230195416736646065092962715805080819140179195825273367476803605126286449006458968066014973157301909088860698111971022321961563526813054314243436991829970429284591654815443529779585215231096339722485074356317761380607653233861479726489417561827107082068674324375386689196217060625167384803546621364417274497986272281121908084075623499986789499100025310750833330988483074219583313615859496550643444877147715916968464435080491702599830161667398393049319573667499824783165992438220966839877668262453433260655505247061995427673431792014204308579156453842021488418597434283215088160158176048814183191119771726668394721891598251551948965653247910076796688782236620075666853913324540880739573600963924935440879540375890741679340898800616983160332472632821878658548755072702793529303453687404115935506464085434737539002921984742913556540505622440719079885905652287044701594010361022389664233414355369507858052805539656358159318272970436213272246583952637783013099892162726848834304286506620415807727560324137712915013979962866506317003502506396403116738315412325316487494093969868747485266500569889820848390206244364534120076394793067992878168001486560017420229954578888226095649608850161736598906640094009965285837974418245639307589281645872973559268286369707302769793387528466722436742594973824808282670125831253991691921512252662600989965409921277140387041695298926033633243408426790895152197084877081580424456929637670819725012695575697190680939168583953844805764084599689165283391286288274714993648838051914317340442429676730818114420301419415752890552565883055940978594455724837115168079581178837442336735677659014148520075791240917190070856446959648444916880043357351662125164116233546004625619476811472561632875112956743567920027914901652486382859615057567799099660159602015473407485363958893453729123857501851023984860239916350305046882631141767908069797723729457982300175889961172620261861723163330984295336295310699475223364341141146919123348899422827594500543414510358757908053094745796693191418601073045476875791538712350488097631288189373347293806079326174950565388382264772590535834615341254522072689832368415774488216640472583151667485368781426872387151198068122589134392143485608220175211125557569622523296836094638118700701343563755532666124962770830226679136848167212640806100034588319045646889756077405480073172841160744471498500446575673413693741128674740985409910642750892037600386563250162532937766884915897109029604618660336179501795980929217045716923460506363687279168909337172330822407364013626295695194558311158085619234724596964180409794724684479543500816155116961134159155069044291501403709160697650356790644051314383904952892825224685012069622258621811352489268906261764118746730774476336094128035268299694416924680990884943547536906788868334557546308120197496546767730435058006333317800155379625777278005421347850524201543313715136155511041276989500760590342550132689406225744923551430356637961136161533110297424093095236819532966305405813317342139483928136114365478536617376433474878900859199460018493876621777430795207097810069962037913949099972419987754295264310834418031952399280881099392145512078293384902881051414353729552186703146915988107768070986486308038146569641765215674206799140337737502575214206642973207894169654134385566026748114299472921729255475651518027232053711287149722648140033322215759717816539469922198404174783500005371487764572863802138965189693677378557632810889773769747940916775385813925864108251558736037979405557699106872126802191131228355511411650980246107934038881357389764125961338215276174885150830690870139947845878371767776335261950667688132792735380372276897089851401106540334678818073392115289266217274796798752382290532990504926728208256024476050818221596433201622646404402146875500366598511024186916309598167961038856217112485621154166610372329720980862511714481422650971528743879696945245825620974240713234213529269806731348615128250314675142801292331993554993601097802798535618047945394239922182958411674112867890380336355579598135801892719559019925877543417465329226222008842808042179306520573600781766625112087162124626143986767669413210609572745248512775767690850377768133528649762303239096333602614345131920253769412282671151094632014603657879942761540190257129048400125127253384517561910474008927587216498292262603473531745112331446294053989748992690971695255085644311991295208591449449660523580059904799498975462940900774523239536286048542394712460514823884383337541979350890522142264344443658542915121077416356211636420893093836805619976839384911372623305740584049359192544363905971769570526009042639516793214586487576601506965916320447690580799786976019790881061086106801330812456492042865483327294584196027455310069414198579265810128227806525595939312392202320556457088880951834313687370069828526299124389153697133070596835567994167736574681227403917203649169921565208443100438940958117721913208364766325103763559968791853431183141037790219758779115141675788957096066716433725334892709890734406182897559951619607521967292104905249770306669980694074938934568866977275024867884170835226276505459114351012057830449237208349162892193302114753422466036735242685071666130884853039633011502358623402591768254286118329051643088206808175189372062316054652787559768391496568450951642104531447105985465615922076513331663063801205080391701368126846883776835651207805640876129029591769382715864363109107667068875163078342555385918530685587639473978571339039083512669990752168676013513682375699756130927341663571381387641997625997394598788417545361569416606926226303836481082413072189339387332301232643824193065269152543927719611936204443396123261144372103860432684203056864787778658347428858177467010458901969498842096465835530444877907571606562637137233719070658490550239903718468089423437881249000211234149695691374830926570753546937478894762338053648571853863970114443960739045985423329867786622963429746246169384706011594742860747614480918860342876539609913431104657375633656854261991562137701483247349999564223295381826384932301383123710499646347198253169655183694878589429421436020602156249029299949072187442343859987132716609743667503170288614729634996371953291691100088971353326375468579568869350225341145821051884977168892448590758957553558224236682437819842067553734302938827016671366718005089225281027516702768274084158804026051938429405403235141556195797209315802022793829704291864721384022587621426254600043730073898339641765532272602435575506534096320262193062609581231022132300637294351357753899416407821179142157608101798909857492772754107107622628421976442460065558194392502824638498255558391434511612954495974056990960000239976229622310085668423238088011744300550914132973647605057296090393899475762134894925581606160361933852160557536752364537852251264063263954645057111665661958910281366762021999682792327279533256034133380005974622631093450761891788955116233355924448281682999869825467742788526895855388729693830330729975703463589350175794483833283964744216635956958103456593485279723084256361737388676015391498769923051664149506050852244511062927906271250189774232133011801605034214628934874805463592239206426355670841651132177570024771745445021667792285465403929233792421534290033970247104112730765622141120735586399371163873218482079671309406067075883280770378574711346684839664791360530059137144169445780206485072182917615867268032664250449760327056677063447923272546998123382347073986548190824262215176580564087126294146022944157343956263828114711184103052815139776863830925949536986838792823414979676795978328175762722569280926762729249382515052543023565641758024237783018462414037316971600776953917704141572694424509180270279197132531197709528509644211743562111344921855974150032173318353936450531168240895255587235567769996006616343536712044309317889936143032231397631995458189928684518867601450287861640496398963223855972809992096386436148344549679763000001571219016678958532873131714919840092419208372795146560001206773851091034592704419694212680681195271392464288810497541825594021297910937591101692390069853775777767163863821080587976882080135042397487708543068726055320741783682366614383153002846629168735503396010823170433260356560191042264510014838571424642075476134679907200272224470135442571862494405722039145666804170441307367856434040823544338248908532053415835495729363648846856074162910291024752811252425885908480892477174279600788489616038392188874479269061939407312580173081717410242049456365203668146195951612511227851856945786551174739011405803057798962782163205495167981968798388249901431886103830891963877654920002632063832111334596193616997999130124415872697171199960826656432541793002141813945563393428435223289809296149706117498821858294018580212776972757986097746985149080429234314460689528594718186717952464622737800306740792901093192340956819658744225724238751872561728304183056957760016929963440755160347284570002754323604635866252025623287544211550636984137598573479429611646107602736638127966068810154695477049361611748018937258544250468359775911900615645465970759844208506495886156746930271829910897905773480803714438535404301286706918006561278739887080285560932432778704526963180630749004539508062425104747501959374680511113695935810476155047639798261863444283373558289993992111376465901179695374774273278019255259193534990721025547252986196317690077796077523106975843992659953268590022575336114822368985993335437197743430568638664914001070459083333443427405957444998340552198395713577827633270675724605205663133633446692924800001933623085032081553184949148033447389635479072834980413551405646680327960702117858034437288502989844846632330433258895554029200096315817631458034605722235955987140588509700475939759794103461258404885254787999391484113796872899159120436277118581525608569404397101114578849331313623408053537672714730560164745535460167066879779997809966251034371928386327443336374892677656037020263475832139529536566628505760345623761323609596659453821082320862926649394626674860711177767854124224685632171096643202580065271002637085524318713472325966685148202637413640271685816441332694061722131778405419185011087952784470428608920403808370618655661058854743055927461303827029439065037145643329779839782646882121344896779825574597463124704637966782828140002708453888240106292126606906016373138249891678383465739024421594110150473887201143623280464909599237215711011920065364729154366878849017377610811577379797921407093339155405197487209290433840677969386770493684262696314752386848130702024948053424876146748587527928746491442468418361720462273201203383435399759594362354790703024285765856030548301084703689165861557111128474429371895995887664418201842559962542245846181974078526999279592665298960450692702426177057532416582773708791837070629059768047106470924113043027781281154949181914017664585554879675842754306975889359928770970260428335344325201846389094766529127487715944431994273094987349437485014535708717124372747495559041689911752139130991867353121087386251720138204965135051179652796073960418300754723626538287490269796268341713271904633168083668346664642961677874043098476842656169985124434104480284354374694557330621879502560165673198371051071467604226994899540198944333394065848893162831352975788593703298494478851671629192030547492126436522611761548960178627141814421826359358988050167453894711683221662533262623280603791848004226940663104169201459740745237877590605899268580089412231371875969951789754623280622294996200245213782661680893801910855730601438473080346105114712358946920895306464468834900076224542939918903942233717244840291124001028730827969325190481132703220439618881622125677170149165695268055763388397525755108971000542235918145633430569087565099650742988381807047753772164953535139341969477042030876579576041601078058075114245388938818320372509485181011154262854588377635205953778601357673252449582965219019552733166019364499601806841589982660053239123393150640301449559463856086186188302456426378434214073226066612395848757347272723835865591159990653901545993201580458761533738833123033117483476982287629220215706921715376725852991640186842979597710133144811572580729277661592374370645522509810730823313260481876905188838166864742034354474137733295030762783969746444270150610743146525860546566437560319314153098075965649400895759290102378749674797038597130461729936470991188233759402832729722454733366519276344952170630538006593535443441466430527057162558018359913921470032867965306479089281783564669368726811460261978039149652467632312682404458169457095102815722707715742381799956200552280885301394456442381955952858600207190095051851986676416195936505151493282810318902581246705306678311974639818925010201512648866269572853261935936757181096674731351715899126601200445792815577939259058994805010690112377863397391842315529894837314831823209631198494452380818917489768902926768575769892845332637869786148322643385778315837075832656105149816030039921035905106052107849226300239506307565786624200122759195668888704839498590376323960300024641750340586173254788614172806747393780041009730241452500000148825629927355800684748332232795360248976673252409938827154146722418810278148020854863057998145526686572609192453672044471245098119552818500926654283794468936558249407681985799223048273396142046758466049591685206357704208810460801575078849663879356883050184821644331273061535182550748886087143000440404714284224922541108072157395792940714399870395600201172527054813422167811367730366764141864452569030104172096832381831233729627681004869570397034259861616202657103377802873836183481806692793778033471751992514272024794730875959449057974545320325325221499157507119955301118837152534358480658330148305161825628804280005671223880482202823309012762650027985316754026902507200478788211817228591997445608594630595480721374553108052329093213975409134976175300272799889636679805769198933077655706663097602994240185039256118937781429319696411907555869809164892175571275000435355069587811972656494022541019186340585165293265919233981264622625804752848616412422192425849852753625020186444098399168153232580123902743317000415730283484384648947269116477809339652996381761489679359473105946693516860843007259014806177646801421215871159957745354909140893437463949242734123845258616905924372763076534379701758285233853398427642485862249880399775507746538752399383868857490318987676835231693749354311294082701701611866436155892057081312646894790343012331576816512058343372198019422234306823601473540430591388595181212744178488792729020220283294293350879619627215994059914269844126265388833956571520635123995458882384537407027043032177312399272629110707056220893040564438873657580964866555942165924681266222924281099834124587077992444665011259181668028996002594806309446488084571529066508213977820615275564452137243812624757961144572042365407641637176024369169711918292275109904990836337879627478215389893779057107989832541016326292671443176238744201360342764059372672281000061942571877280660705654956265658365440248155425231933535983107592509138664653368830445865294424024418124146127880095812832438590255432218850966937244910252155443822925479411210843266442472985503715162802936246994676887215426576762301491562544718175943028079560404824638961147391244019955028178262885292653466611567067686999431715643895676215227712625079874741617236411445165848215394025455820367534734776156944529184697193981497860130498146230048198418496928136302930038966703624513006224545451009084944771752597426554680058104644029339287691819590592966826883677561392253606142407315274420115826256138203688350264311022262565203419324538645057997731467396724254964575359531620138558941427851611801850006766492328899538897164228387135253114214688335144794091649838456083092880139006513032109311508234865767505176917365659011821690113812642586912930811749430211197823223064458154309151549379824180929269490122581580267149084996716319035069169578594784336209367278906248423644050317323529437609051021283589693362409130877899201707811222289344234504872383149350150145241963451550917235233432794494256883067510551301816477293166389529031799021764882203312907934208274615122736271908588776145675981512319761529134436740264786767160629549682232823463431968327043890101840946701339289419907835054282214377270355333340924728127716712333794474865690633959804520772911909103555615802469113808479966573174966620567156048597742742319714969998450684315387206425658760318116908413381770663947598833782961185927584526072478210235356235475714524603332606160524513842277215727277649739839565334237463692123652753730882621377713210817409984015753145369254463853118792679604884794910351105820578300810750060545457494805470161324451249716530421804175321212264684535643993148376823887578093875852032680875321352569028914461469832635853474286031247361416276438908898594087402677957237128806902355340479031604084724935231164462572041887865272247474825409530279205808745812263106877871448758653475854347805082250973350936606740762671113727582169730475566743025215011713668634544607770964716561889303656113983704020502512199324496715621876389966057733967532138243131870596932612950704323854747281190046052194370552945910332532191953419846642478580692616797127123422562124056901661969629976642242304022718621204654354797659719813618848527556257733733142434356939150304438266442797408477702066795989650668638291047310060650479858947266278103383707749391188874046241834395905167243416689187380318338561109645675483194911965305476058206952059753737787279969559980811312996954906570451523990646374849033235131317200668631379182506869107164913074441774695742232522649497881753193483386414153861685989064558126251193565245729535066737728364640216545274666394431845974233714431053683250722485063784378248101864620571576321825062136848532255166521371682168326602105489455049877588875941722561170017441669408421391201401762567114059986923406959832336150971827559883387813533012392578576411589511861941280891392310312214352132894465906684410416628909088159498348288616261421337924750676117938901886732957649610301468950094582323493258851853302641282013265210673693596308340060416288783742310071936565137009928431269986007406686521442962959769529562442458120539653907649066025082399862496813398905737187577653222492068464291220817173847536470531189234830864306761762750586486395325392366479006722091516851366061530471528626200245151686655869409262887500512326555854875809928841720322652692408963764695366353988260335023187374552324550534481296632650008199717512038938102593408751235348251135833876385955762332144182185194655402936153657735870806490412481832657068762097341858710971890983903253838964414619002079909153679447297868068739799096685581136976527105306852761780704453384329760291115302535494110656734565796696566342227958125168149449917671641681405859986057429612106871506513492954023533414698888745854916751826905488119989780106813690487546445618781451165656439209614465930093888460450067242692308884765552856281691449351330973263561243741032178597219758323771457577320284543806180465577977228333452100321176702322921764336598655403582057797290582342455811767051687288295245487923641844895287652251288504780876256704580800128124403768740169492133580729273944815097991475771956187958927625304861636685279130818910643891702877598156534125367023420036948765213302726819535661864121520484910102077157520438747845000115226779180806462411203454994099791680698751251371071979706939135926988334647715203196211692853844269822229399696390779570564419150910649642534648005979309285437859868138335627019476673806566168863522569031398683773703876461221498299040683891564907937394647569594346885273104505297128881877344261712253681873853989835057212317291990228892822941309220510722399312847704960445227318014859480490431399326539011567785052474478562056467025417060620740105574003957135307627781411654226289793523479801139061485422660072956337749502599024322050239059436358114171860538820929219616739906182969752193716941761092892880399727314669825355257064199980789194083040373476323419041368296793673266812180324168026867637370399939927249214143167315086206113939067940571586911370830436327828189549001964237794729818838950640329586934822656416997174543972044340916306835536971589544906509692585004966627880481327076220932496975622262995556843822313587809736559255053274116100175259139002138620408192359045336810200918062087430471168715938968964627344160859576201067869232157862565475805924057230642461348461056666720591839910801662847646604493692561632292842598989132062181489781672174292437558768468572977848090098583873426541504823610536662642270986496742069581943737483127158873147438730029306145307178932491515693316720256510605614861383261586322208463133843237816557321357786149649150772658412090818987835346156227878918687448577397914857196534719837576592856961627163163259282312421375627444611593449021938999165789549545050431636039711244789565647209446395645706416438188982254378466730192673595001544067535869756357414373856577991330753707973509501505605363767257454011336523551035992234783634968042139594643226992641392842472180322116178401867078540706756933355671587418020859055989426516029689577351911575345303897096519339188004955832095327977857104845849942454971632696321314377913167531064040774354357458578708047292118965960639840098653359497734563534543168426169220611531549747361007728378723763999118212607389100230294847591595042042587883179336459293892843750348578140150511807807784272712193888556273728501254507808747672511219820227034055479453949350266832476029835864155407528825463674244448879065303852761745578388836806069336106397492588759329003721751962383671436315412420772014479006093450515473264124317040294412634127335418264414286326063935502267555273315542927746306215725643982184898623806332849882994852927789416589724022896383358007876043385586294377964186153641556834667085544148137551405968000805519442912604919511819795655850287960618999041308002410801409425095255007771837078490267428051692561908651657041608096312314296885435302000022098033207827728903835987029224379076393962540937808240912792244650910571142224351210395705217140640877114541848034701253935978159469697729685142325084592060819383586826945714127778856075207421803245158566972162540962553430479112609542356721974261948474304092343592112056887046321275113353965168138290930809544424743185344199620794904741471615695710369069887735746659546332344994176770372819847827539748980084119557543320554382670142771729622531932905949705354774519656657596403912087156610851755764123070285796624366588924119417592272481632648223603280870640323525619455274403882898437276779573090243841714810467786032963881215273447581499535407281505296990789026283159186682628815645597660552743451915670753649441949915728338050874794356361248898380768928646344173802976597654774302996113562759950415214053690995595686707379947370046635978018203920830426133017930626173032563866858951807474547800552444990010520714644572695835563943715687401713440326850247964608901160768993769009877902127923763118854939101151271099217731791043727934787350209719033381443506292811200063574309681996861800402916808148548729329350819815252487865984966786016219960471688643286705925686776536285347349827094455529338847889785894236144131838283736124872609849746033589748075887062998822824674580758241871530762683602008868319501106047525418138896754218700664760965203014221422998660086618104585804631939053322175953905294819157996262365429419922223719131075868499788561749180070387745540935090856976068190272235184933384898947432770039787443190363948126723155319053611742817328859666882869102058018959551181593307745703036213715516034656256538735456669992797109197113285965509237847859361765495135124460933965976216833780767206140320404973034668142334085212044716416703988845353654854676386738017791483806011046712297070009573137425632058615673110094464538233618562299187450495979055742129001133908073125893852911320756090604259144457024322601660331386104602702741275006013762446413788284999858852932861987370836998139427937451776036562201233993748530215883683121826543659646003762578130481308479707733109283293342781595338535892091613539067953812095726363465711541488237297182588178863506712742252568189618236000655724224441636651354204723185521468281249471073857417673790272513696681022578033100692514810201830935501337530379488449609894286768473294006617274146683872541287338646439360183393237017558345219057758369758543015503206654714432023704656802566591834494673881680141921331521305081529001356737390727489305639888982209819520767783612186864706978961495020299627555551761993942506426603737531895486276144582949525906513998191554088984654880813526035613098904092139317668093703810075934875290063521107176832598207727335467206753530672770716542354120230187627452394606860928951388781794069612101655514882032297828415498720836694619437991333151660344160735894537764169415000381671147492427356157723352856979100847208853977709370251325837933893323942552626140653089742299700878129571532771588700216813744883749364634902880911821278119434993697557237554662744503618916798623067537532989155913744170123261450313758288808184067607809027685573811138429407677458899932832108459815149507214908584734701015587283868464320810436273650429983146546459396128593044374052820108500778082724383362789329618466260035342120922509150381405694376171631086284081486095972600826769583299565975703830111850806724899870426493288522234975782217614253180110555924640028500800831472256119194082339755515720314734449396520575719599562102853534110934785495538515572016745410644290159552739575580777968850891474726139432426677391304213545738527627679349614425626744739562394167038672141611446271004860880441301278111969958954199777482545140481869880815754022559304416321093263057913785636604916419621822219335661904249909988019014026514773832836162355521661938981622335915298331940331278197117310618122864552169304495815967203061744146325594755534681201178099870565526660763664057792767542890732159793744511084714254820280355357755333084772294467440878313822263534030872185861667393749806910746809711095615906304001695409930790065784167369299132574465092187785120800809873212773152277379434380470239774011025529888119003271439010760833514557142550582599544174131001200046664272236366504883421342903681012726609649366372529201920809270886043187779779987392207839803207556582168743920952235697896362402579549186988315443255286438154907626242131970196488909209364637756408661012130246993795975639994392350514274583643842849403012520234609743199747183454073230780242620322843139729279001797521274307639109540232191450155758074477229367748824786379241573961127492224518318793293999730978827785083714240159604325720266859506549179636860605887994170806652277502001489953277310441496193088084071449874021022410049380307889967413617524052936900175544607854015838187555914219063238526380792185479622651806033157775484346133297580360484651743948873984767552890735404167610493430886319459199359029237355714308991044595110019215160594671905920154063474253922890007282317192387080959383859553208257290115033269206350171654400468043310010438008591069043193773163054052685899245118949889460825997703653699374688899299287020723533152559941187895334275310690233073148945068332515239461277425580512493850075588686866283769854819426494713708407379410066314038845762579485884353982751757559297707372557110065341693870130254973003089872427818818270562910485773846201093131714980267752734942328398698797510420434489397521753938533186055172732797188256760905505139603375557190541307334249721556392722618656933911787860393499675544863057052331575020778072481587493275567794317635301980921998615866170721892887918587714500885260665248930383295406665921033065900402413579109128647861353490273018718902490482271431143281463226586052309354419817320526231135532182886724211591076414046147869672333742488023892729516864106141521969943538456353520367941398464774830193047146745930469515704863475826789765444706293297483263304307264483901878947414406271058121280479600260429778502522374654625144427343156887049473264709546654437026734290866120532802487138986882808798349439102173699009231024438149587479818768509101113944794171759601496037678406281015898541765019369278195837504307596414237022838578244936867866421040078193485912750347193598314469643480102669187450877376072754156376441193379666163882328827862041739512677356840769065103103729320626192342093582043501071090302150259665714164925295890786175351734955783637901725309257862732391627513267386851794764367654155530787780448158131109679158857800821208629448273239760103324675205832212280510480176891803273981073371827345943229284803674560090952595444024503261272919193290138764374457968225403385339841839197850473684400117869801602488072881577905278266437424299277077784539242245700449957136176247219707542241472262299086221806355252557799512729650400720987974996785381858742051734739097177279119932171296750278216902437495538129222474345758530650267840149230297848852757970510524393282032352780963344896936056961697544358837608620203346465940586455299664726895712057221739739536055406101279363256838952352160018011998050530822656395605375960435766360411398625038360451034629627841606289194646227553535433938823197848073163598330631908740530160225053213317672241598113069032304225754772537711495439807184064726777525224532322593441643798090662247504435798436764287652833002953018920294697113194283276953564116055353643705094450980842612339049179399223813242964588881654783854528501269197476033394822095531181513680122144002522993536643955577323311922123387173472439489129801871697560265761528104003817868561340745575531691709914941870737340540099850007216027812661979454033501157261677893321476321289040475582853474872792397723395673041135635788026150855897641600046897233047073234838779388313785783068103577591314151519653612402428694215367249796117074104427945286723567738937426134247518672936554811124725028790795179163908980208414651039002230974636534628718488669292376038030253843027248355315714447856877864323274105235785799985511523579368800229953132430655179187463420182111984885512012045039647525031768630648086349727051136046655171847726976862772105859739027406667325754499824173078623522502846042579890643385219758752616441579874090106158610694334627687491759485707039944854798782248474548212982605718156507551370978985601098316558903170418208368078991174847646248513713578485853257399702479353229967839946071114621879603274045055201541742647253245102707171149581993053611063604562468639921329623737897393826990826947619423732314917421348243084053391695971390495153250476397383644541301473149274105226902813451964446796244523929418008845148009431632201842605992935321620232798999671472662058572775531888239405238392219047913625090271265518070986344771211814915367294227636835172992462697935080715824897905055776579330785168482762323363771552624388343613149549609808999489209101116683455704951204159394640638835451437155278945559519068486776756697700464700740858006588753376024222375096084959533958202422941715040865928517228997121319706680796195613789142219649356295564040439313353648544480852938883039985707305412377208113408785631362512159266937418266337465242622361401909586674275872075823921327621390336547670290934799582519311659794957201169711311724697155313201601189545424643125090787493934765415484649803381327187807249077074760671376935748474299684843927587815954216762287090367856791216265280038110574969435327154230368634764825668012409927305683379262217374444997485473460577252646458797800746801582048009436700945089376577188336264145813265550885391831417408529312466040392800890638178811792241433055344594227124657251252998254914363036586025084672188529806939613544585892435167374326843484052962218570806138496681419128073715680875400315051631046705638473593682547943979887800098074189574149456973824408957448660213613659779979804678410430707695395131801829630641296307035947202327422506636484858134045826962501943145409840785325161935378452350774755482080517804481332452085509552571508335533066088441073912351137387552247486863282144014289982327017239227937354005168970211198781923281526798146762718496978971054023263530395937649472273767856576735274291009816346721674324210776050294402258376382315072103643233983243648084809674516729866088598677917041867561219720144812943933543614988849902637109441143803957041012112462867847510122009671326397903902991002471597130126589475914767589377516372980798599170076236248516260003356887137007256064391639246916422851148868792066272080109395659059790684281673236340286080679330324138589918616923816922786103919276910394140958043581559438890396070308907001641760546267133914168500932380294249804848996629675569312529009595908647314733978493763021757730521704045329877491332351701905172573956968289781332242789216380562918772769769807512148775814776549128750334994461557452690392948550850827787591174273330020792205520156283937804022107378593549075776028819595782539198390383312564464097974852475462872209736633878712494533223976042136591299532445398343568936656357019134813642540022966298203467554228912933763117442789519058710819399179462060619753285332180366357459655887009456977427209285348443995446263683040290964887678287882495679325664763535953591299834391700182191428902833443057356091330891534488378688709342769749353133248996021489514731862555103554699450338226799714762763153779505602143117937954610388288411288546015941232026990751936333862273838387530732320409375176159600894402690283697278920345383398165805773795971151888092315229687575219626639801411176696616826217331157090869142189915619996783935256236995348154655105420248368301051376187410973429115344846064285530159152722245149249423652963613686610040634316700588831449477156503690011030996263953805483115333928226984843690575927413638912475199161580278785078688376095591630087622987141508512425611024600695352261602910048306570343974762611853507320622193118490872277930986393306032282395345222058327398917122378663138924609802127554629945861747292997367591175422249797279157781729861448939871023458198210229637644852259729860046838236388929235048419613015418352043605207525710304191208374459135556214301100090875057704778199218801173189204209075410698275887280592700300294351516200822952072016560544085812062209245857608698345041170236450815264247731181273447034191508814863370995876137809885563585582849251392981727661095196068604769815947253430076845077993959795266940140077158177994280816013728233040885374898806633518193317434644340649966887926039899054030314052185681278171248312367032558077157872126377512255155047858808150876668264681122721296170019627876884837204430832803417994698295653637715385271655386699269496043788613096161024183479854974778306399126263816662325358304896552094824466784165875753364446229917122688031529628275227889115122684659605130358530754546070869505776680460583395967969030784588695603870528463022119500561091718390764403277267896948461461739030775277422996819245539548974147149959055521517536446909871062267833216742614427170958378652421585528103397088682536844410425272078381127040569906732565083591810548190660170919493036644454870445930172622208309724608400303658824955824306051820180053212374743335488643321634017523569290464401867927076716201280233837288772249135144580998138054960722768086534522249076585273612634390598311176124858292187714662149716995579498005100113276841003278674379037582327361092651130647891134536992537847056705807369595241185034352266832833438936508204972153790417951501144472344681256820743043666261465044676308210799079168619174746319754709765169012266741358045624734455793139975178160036225209168314260652733518368922636745367150895704311599730641017768880220464750819530885452718848074066267975666472230859076296125080707155269455681235599416391471423667363983766749700029646748043475955628858315331037185218681956290157165804962316739436587246492040377545211734853722960684057386259940431028958372388153855678444995036644839702552739337749171772590347697572286429500128379509739923293854298479529866967090640291130155636088166962959340834062285927474340449172589405499013426852404209632040796677168198870606036376819706374323123079204344448685917404318759403460002271800938140229775166270822258749390587026794762467933050592321679701106952455620324521542881528912999373538398537634694887401494200273543155352783052233456853845879124403302291042503754761374782476507415093827773779413662266923010168346047533845375798279823232902423714898612624515710649201567433299641786158496440342908804281265688586369704209627597387758173812121682166733996625510168976081292167872037276987731479914807889050376973057151027812552016125614532916226213380200607647716303302842984404222675054147056309978598701844761213546457559491569631240351341140866288104485654520108519144819565548040025618807078115404018970599802039095450765664340433762952552378185402255611733967300533288860327768209226337153192307470868224913639866585914814912096086376614869257715845091524306185732023514320716879614231590461317866185602817203947567188505121896129169345922555900100096844890288451605924701070917742072628611547414672490904784777968085791959017839948967714632248266694372478281667093139663678002826115378418137865812213285539914673708634780014328588569076826335720262695812238313289079315737560448684499880665848999261893263189850319866366857105270853695965795983883772886073631954384303715994798059149286359426704767811136081584913356081384752086971024237575349134904910436385804635600670395821869373521202732107631117033397129780216671955963308211655613724366813950807721073928171755724844440077088997916120601317795647954707118842794307794798674018710617398247695566791923388979366139084557227070883869313078113524059840780212792052723159217859442990008585013368743415574675212041072676586382113141397359200949426662326246741159321907203330067578824890771866037211130945247602453932326873779786353759805452410420871378796001567939923721769730379579879344361432223551961774394982084896614600421989966009821284184965188386269497118353558303964865565175701905648820894914591792560941241754634285616567084171484368319935337280963945289338641791467434790670766385984781284456399406064665106871368642426680483648414703887221119326739171346137433549169202104504032443809087534678331339593567673779823277955323196075701327610306417833695179249970945686333278701540764728338027817918322270400200944701461017846266516772797787755673903156784589830045000262999950300037844377099879943381535449557439148526768042368397886930749313360607302841336746693728997660748639405177748406922069701200579368997907041444387660311489275311930135859419611334107157198691937220344839973937806502812283824245052578720136619124217979502080425036586117273603719538949954564134564455263130582033583975763046432460415254581720946982802356324364017149486216597664952385606511314018096639479126279101769458083032229223541247634060889059184149084212500580463318685782777818854469736217648510535320127862201423668271548880203999246778864772497497971166097419865168618268283332689287068017617954376888590751773946927167975150713779548169906523855297010803903384717953125851819282039213032678148067964986851945577502439231408476279312705743097083495249388428300765717791679428085257178318831522037507422949008462750888982394097980560912750502843993240809369604352785946365577480737889131546380924957767650142737855344170774719156994489947057362296183716187769183965865476294481048395709334297724659639457639165424807676653366740527506767076765988220299812248069605332898725998493463980927939289222787981730334209468893596860521458216294063818874945228915938434298503200460525424728178137264258804480418937730359355085489881399735260242208399818461539671183698076705547050350898833385432138895875366433878304963959911783354855071382750862309367661347549499046614108496031611368399181445185587857202826346453407934250158951239194496459667805106072194415252785314903007566896555137590640467657905962145386282624384935131546372567117488916974623710204047888665833156596704350157245283560241362552332067689004396507587487857834172868642504010957610883341962698457623805138120237088904595643554121038077221901153137510016443900369967895476335217928711913569088905031598428923080399383659293383133347455864703038250819685042678593637513128863230781100992020659117999401845328718524630417875467372290853954591124382197082132295410859243053559323886536064379084021753432060932183855999237923319507250398914494188389369983834586698236673136018052240772880503995478739321837627241048854485186794747774808736990064478288811345013911921303693780436819976842369495722356402001191479923826641970837795274868403223460481349863713665222453979301512777272234596754689884970472598454182937932254134777119349712328604051693912025225312852648879515996984964260361514823610689926061930841102740549292565024920180582896827959014448192084813994938862156722225969494856166479133185379098191910580696349642049680234917808217406931427144061120645339135442436252323426552703061974886165105468326826306315597123396569604888828134604532869878785953942129944637832680140991405654876357485474186979598128238469086142145683857230829565128620713886823425507338646838702875562407462934676214790377692664013334675361786805229287137706813742776511927914753818413743189363256189842595016866342490164540823501833059947737841387522635540520885364358551985534927098866697937089124379694153898392881679268437325260131092136683756829952350576307937583764541751843209737649344768348992883443827107222274748820221541102935442279218552460443240534783032995607994814529571145355872565578731290627559716047584904777874294786223223249291057462267556875429568656008464820732842124948983188701019041872765243720886411948851940946928851803018485153468792752942918819054292208575401619572053328961371872811504410191134640960203311186818771183195357761079792371877167900087672751712380208097913570427741497360922683114356057662131957104800075674194969557439479549695379009399999084043422502514034853757809838742716807065461494517669747009002009830591546529979206527502791959298574783031904087725438752492393528280834991930887981342069363899859464652618956789332418199528337088224559043530115469246870191768137879156126852694885765646971356731585604387037069044331095778692217550753196297147979479667472436088307027450736551019630994699513598724358848676385869974929449665937473255088678662572299253501211296017568690677323895601150662152116886939148801669043700881283257184072345072850511093099215973287723384199978941215031680702704275197213061205966696921420717934771176111812082871582123871679479814608632472779479199807433422608129586316529632483556810549158867967485731885952786050442704465938970739096805284029850629830866239801404501783301658787650415255488492375457820370216862714899648865693322442210344077012215889247870415136650030963859423052861899181151940494323524376526815242761415450826746370284022162430121232252238290707784875966010684886605732729816544574715811585847537025116063213927180081851617034024955558897749986729550417749724110487085973072552796450720525333171581941150740310960312053664813231075890356681353907133405551049412635056512750743875916409536760903119147550953672155854923114309233069354328309001180363322794802532660168079922114186004227654850978145429352791513413098253568575424757486876612684245990398889491073630262568066952527754194382078968630504641847721592909363127577082123382009335769961054001444215702293228390203245451211508314190948268378869009857197533106597784557119698385402589640912975820232380967431406554107177976214820660060372328775092344809710411503007243603783831575687376335817546534999360758616559346863385775413222127983976812257556263750310838195993955399284859583735806722404447163518015382419136826416561001117741455475323843796717832567916384762296400842988919302162767127616966258260587297733822296396785558399546391163017932517243268497600635569247857625034943250288298601607824214493840278057589679283053414581399363411790534893796178447833467057022068112809562057191150886416167252606463529923699628111450445210529100744170689393057338749813837270609780558875246562060217030170233112818329122304747412801966508316842116239962088859919085941998658825262107603469936527255781891647102744458439494561159692282276966082715723961599090062066062336772882896245166154451251629793826798178975442414123538284074509459888328273774233459292457628289618849986496469845491528255594978427192480842987545365726143239198345111683630621396572539320202283622389877109972169971215950741211166957823676766201959774987157782465153410484535729394201861521823577206760283040958789475806667495098952687680409064461472092196515431462513775654934743341544648787553648847792346993944370321721956183544848100395159347584598199681263435474827562400553788435820866781515515185287090555350193476229271516703254334633315343727646506836439409623560287277800479359959817041187155135822056836268224350506603924653584451981695852847441402827323400576519329214432813667031127185641912322041487809351099839257076310900395190105064417786448001012728400175082103146742824595718576232447308806037146774440844916904464795766778827794512442934063309142467386289968890361842033265896190782651299149876294414967478179189614154080228606043046539952139802625604351909281215285262219535594467077255029127145091262242225811656270721930431531042142297463953953833253988806897893023429783147853708309912304286687532079662790366063108048113088580500060374421687029684551491570566411325851632723288678650448711262235062924142444359896100687828768475490502162390613911016534311392611708902366792999100657988185318232694187034912142573019152134721084207945169224616494975961381229071302489391665960181943317018334347763518132462782018863765219255263152870099983082628818147956598143014211684229992524074255372356155005102519074843197534535996577919162435706133028075340050519519629572668987695154183379212918056166283370993782557094335312217534646093465534933932909944313149516655208604965455048396696657084766820737410978140704641121354216022562984775698171882441805702120584099636688865340011581330441545765561359147436155933314257544939463414472142911469433998561180503191452379615377054951007770122557269165251123345583133971266343990434716987944452588228420288490641904408950063020091874765262657785035839459875859481449858436892479118913097760651810360395025767517721821673636077170616053613463093796052683077101901181007090099937839591249498909817732227470542932727717629420598627683710911237010713038314414782716805428557685992069746529003238092842479892052800412943575519067168135284303740746999432664156207169477008469256124482760266773303249678118984648390700326158079837302142846117142093495008762308887166831350497809596544627856109067824871109035277135030772382486903024407680183650972131304757068996304964849048382783843182664189222402831421907167335459638413777695086359135552173050700385866630248067338745438413959002755699079210696946971465396481632317814769256151511623125477993141668401165230630059614227025431908288388902835903692357388254368850391151680965410425855487651650553111301060973368535315218019731623497633223368315981063974431922856181647872375172579968536068939707223630765020802867199317407717366794907591531961542174042346620542687740196239863309121278038701005321460795645408803128421440972122529111655684075622078267223957109054053345710248973509806078810791856308983291501279194068137328744175782426778829584400142664560921540042534827676135529673977653019107397128740391755896900800052460338008981996405333720005103226230720087892858747687291586102134285590277972022602964185072078870883697472857167470334038322105788833455922797202759124740529794402895652003333919448727756212033165644798564452485273787848909299884031856047913071780148998101617263975132255835421555376895401255674207107798972079911702072553981642337176566915902047207515136296059198173316347758462546918890702877731740527482432806306023792877560785274591690472328011583213150370488063739736213794622632267443786409171840139888747787302610226109824928695753781848686024096918340610267874623283837234252332119169379085945502139876683331842205227922759811290537285766397021868418420787521785934663006016117968351974059251226804137904137436348512347676832297275170967032580116249413474930998552808755123274511520113031452323595772951855963442794885924396755041069316393975365304948500149898740984202908687281048712192491620907268440842353435458518179383447566772087129339339875697969302744068625030415051943196070532963710350435152588154299147507542962218113474839725236415740936277201882392234769633812514493990550723764086256090814876213093496841160426100843151840815712828265408728200770445580569185530643287867186893892890889264323348866719411938418304431493377597457800305623264385802653655108295051179968324229449571639455322373723459421087574187258275367165754558737904889678829729901401591369353953193970107937511413828623701975926081821749286595541080824140982752819203809785436860428386879225105735070666879704603761195484657936324995502568767472021085564147198366373257311453668486597668116011865633402794803546475391707848824818119256873351413710804754644526705771337341471247482601901938700583019629345031244058588864417735078999532220453202137876799176631433504265986037205049757590212086590830826958790790387721273733353530679138309182966293454419755757889351024265538213429024960098233817595689795598845803904693228258258411245164026293779294287724266645859072129057159068356538131930159433358457071873784247313219303708172956412690942498324684649020015920141494509124322629289405268923825382082609015250928192837012823346192142531729747685089663405677404581908266662550414190110800982076828673534430274512179025981489576307657286808351608407135624363308317669890513777901959237841476603099844282300901905040992558501163820861643689960724891795871337246597229366441177512612790690901723151471770823791786339824416270044927820737173464651361206184965572692143740022348012171152935847676024135244972749262826187588537734298212350886220942282032156996388917510381814829294554804085960347179681660493986539863980459331973733244205358155224419375713159574622820508405034073775974811616216949069330862982117053261632069226315617899005694118324066126855826927937633402116220133700068436927139506296554274593893670409562053703085408605019164323908244172315477126203399260972436800598159280406490046321491088424300669949109656503208879248011530901725935554188336518262144242824009835812783985294308547169296321999105244182863706619906955110165011203072877190873894269269153283946458187369954423238752741661571728606249787569519500126283682766648765092246832121182173536929472636053766626137835673528876979748410337710731354704347194648890880833384757798749484643048783848303286907918416841924787586417884528133705126782014125749189949110356958585048904036995666708148029172995397608172169516886087583293682374425135735976560792674578153740701355774651803179515957899156172633842755001776894250213506710293790678222080191380585245730682207674836966407295744032089727786847495358153365129553820817957575640459253143564418484378805652578133539401474378157210906975693026679746366130497128843898538681794667454919212933541005923890442632022074045933955843134291930902863881870096993179566682907306727966968905504690857038400557020111440443678384306179332068142920767243361072369014529257783591630301513313452995393559839513597746019399431956979106319733829008604224583876967993709940661847967315779432598617398321918108511328615816782728256385823723939554317216490253757552780771458245045683209806590149208225539528349204556017396132624302090147438001179546934463077793298804171923223641447647970586059602778620623855695479832126897453578250760057269843989987558083030302821782495107896951994521047798553893063854492790500752056585400460421893450839308854779499545094870119441450001233989270524132313242615981852642454430594508285904768172585002091937543081310882542817933229035260573913136018869260531505846494707885033786770024786665935458116488780523865951597828444843660232666223235666614281020066335156345587678553818039982622483479167245670492713703379395346200206644709635607029262340228079758853125277269152877296521846622094075082233263503570409124887590872157568926491073543438559240737829042381101558662944915353646008347512697297094755084967516807482716998728089959114203976836370462790329636587577483010485403090974332311706810881324922932250684764209236887614164516339522642799250520184634996547363328363802928480601994361280547815876805408365040585729321437128381057206430628242175118045258942089829916009270465039337251220552317938611499509876316465070055398056013375708133098088605977216742743396150549429042113486057336690886514779836410253642969796326234886269439011132101479971827162988234532884820197579023439363491622844404313521344220266368762848606747014661754889322332600870842053044021821971861411194911768538137019208528812163399769044947118001434055604466759012674176028505785507779231958589839557025725113688553618734418861376428156901109429097755106491893298459950225433401953497629495928075849902046410430361804805528465989667258123540979502306902177369119305526695730533045210280575399157125246273454922751098527543608096454426683390947903924651799097258051335289280380191706056004644202934644839637157617959976403899938151506891165676058410210410947221373509236575455640642617532341896847005202701987213645330763387651371434143928185305810786402433070209634115945421556797929652735616433336374897342820451837993095568989076073246213071415575122579120835534429951784657897371983199427057622949578975301614862512133797834280931811201698020661973167982676927675445764357970472962151314940242291804629461065215815045689395955859580520500893242828431547517564727338622533910273632823568092274663904832240237064997082020159960175854331419938345816780737212398821642595928527084135494237279588928947792280878375871541969917514062580315891054432459183988504100118425938963585626673748718564301084215252289961036716616073178058185367425530168853619219385738612998854574724150786131448932578524146196610406362185130294624061767242538509940576134549323190420023436988994074839722711840832056422734413062173973033423359286849398136388968730087581979633876596699223676777702537905916981935844606372813195890181607154052796763711251478982569295144996371501642407702808960248141219247977155245324519657877926633051824580407349345722685649455619128862517180463966464433347914919711441991545005858528677243036309148666737214228467821227306028870428687661402645497646902816170452433819033370464582947221089638305941179308642442872565960973902999443797666090397086103531061194423943633143145184060747063454695272630800300218226888185191902503852095418859785459938056357692139629586629239611834559432455753013802270838748893064224204709252451619226965954125381421191625412207210612730400427441907130792953668195666708527349682018663149018336692051344199648522858397453092334258603924093445533985320085465173631054300060209028702406065499415329451467520467396780192689986923985154643353556188443980258567821368441825505208782939966808647081534989822437028192353815778285559757483407176804170661050421991660599978409477024758857990747302437955814223728376798766387533636181472743347906381163590371153934888511092458803125169532072945082252575019024083719401585739851104690757516727033496211025646638611562937485064404768343826553812609115027549993749980145126612143789152815285449020671124485227723783928796847126076686157260697869378870414354247181740530353521368250856388248476343396837659921413943110093740499300866233598406368446493710465279733369761456447351596031440099434672059237578912534211630072797060106004147776018710201394368376269632387593156065443212744483902463278631372178783747239133637270101333641904312930584004063716780316650486038546697648311374160718065901693237896781766223163536880695343106707730400606005368984468596528387972969634129608971112623681982942755970828038238893510777258016735948080026187792254656782060299683805569018773062426316224035144285558300024513285804005725134593555095163420882740022922112243721625345430479788874648039662142755788035674783843185884280264511124766209417351293512889477685875129944870409070639807229312543919086972500196942685697477077076187790196510644515784640203628090632539591172221883388439437553233992340682674337063606568105708864550176338702905356051770989389301297439978382876790419359416142959800184040812433392243344259480401431010263265374954108357675078434217269103719327803958051396955592278164606862362519750595474337556362196588838289208863596429999037241714143785129415138608475730630157949507828404034947361326799997101929644213486119810036430715266558987767733756750587723790692647844789295629662086396572559749227973863209930300651386380792027468097436207354416427687571107678759566779581823385239018040938030070362296834029059231185681571092306734979012321544515828356945190807311572819838036952289091896168964002204421171618737513445350053979780830857482748020942964460248096980318798240815314068498815762646261026012766922821076571902020909984460545782198875529775779280543762636420745822610596873217970008612386187349311585232717375959803679364412162208525315509586591162211091538695403536388500721590658700483443385075375643484951372710231325063588511234725878533437501036915220926192799443014634464559536840890935894275503969846716935728000762053703272232037610240628897689638769493856454408645854177910221511612913446290299429561997674532295206433319724944890834830372425756870748155778563982302698100069320221135925170481012619459062281210982713524071993852029313707042690757947825927558347793496762423331098337683346065860943950891049981294008927416813332928273736248432625379088072767934019692376366117184416336523164364836552055380538567580432070753423383459276799341963786986861592957796637181057498958865912684609726552998802875947392641940456382185968240049205445139160941833832182799008109747414860566886835555359635685967127854680339451365400023732505299753529206048256356662266492194785843786678685947736258093204681140291554757383568086462595069535719510557537436239098341193243409661004253935935117930272477977810414932285522403691981536721210847170793405158329187459743884430418400412474786093868892486865893683184650459144698754687929736115283977169662027858749563443896303095631520383274236829049957052877859497324422935866717889272506402281342121963692876110163297532855268173320113987643750801034129933932353570245037467306293848790665552209053395209014490278693414090221029046525956607478579977505797402759153543289887853284322873505974310832603234440046689838582283539319999274009120292143043532161127309457122485065464888412077605695838760514701609889141251676418824090983714864969082675813665526092758897613756553052015790983217267120108807593018165003209977373633663869817054185991256734241593373069586893615172500461494118450471283428634334829489539006599824918110688954331859168559631073452258587990830724033765040198088403275254074380502157668275886522265035090165806833579119724863224257157123230641538341906168905498408502687249321067849985324226631940718811442586592402724772797462370582382764324010860667380635482380070348488923932224269690910481049909621975072319303745370916150712230654413768899239736165142355703151238886877675003040368564044476925175577225054987096490342901161226916356204102077090740251505805705850750940180319059290756582588995802475641860313418199369552675411042240571785335328429004855325255811068171310291472821948946415285460130044724331284808216747052698980519003338207691376834811102352033005533491150281368507793070421730964801304296622728650540686553246343695996457057223860136370672689672409740942127157552038880983370056024798648736448750525035733230045069425737046052296765597403140987310278363186203909135168613087023033364521479000079442976755907121065213965425459396408722909348166631373285149474275016949304953164870290446420487890319760141715135255468626467599357576700400554398180511486741929298959977312467786376284340063947630501075383724610406431505287644986616609708627919177170369492307107209551340040668044449230669590805656764534448733664583128834826409835618270104114357800205039506734560494819245072277340778690527997615326041305410359949103926342214219694600324998121983484297113205177456728015143877718493393512351749012298962384107177749000656952103345074441683245178059905957638704908449757969984360277632481262268390926686002633108492236206503470579934293368312385428636335902395129288561663754090803110854683013938661623782992964192935927173015234014429890336668258735117790743816046565698709833695963762971656347855170902934102342905871730920041468185578542271975032401400632870142641068043109343223365231504481206349532863740439177289941853693104272836785705113059417612011932050577553906287861371792940771656690309427636990715504400870750721795881378001140767459118572644379366307315220274160303272751810433407935539878904243936592949404930712290775989290257787938980835703210488065991609346744158444452577623353920879014085548240628465906068361377363270680606591801537740568126155567744063954542611221389011093649900041626742317930206092178107439071097111693457167589185327687215019982096080457278904766391269266611493829855441157824171308597818526799340889906130719637642668811337256605428229819517340833940080398300640888799722395541376906540067631043695072830565837443726774295211578265304128489827898433181888031064135808612284280223744287575497948380216601574824594979683551048150658076504135531585330206972456587680488227495031424844640376893647617638009484497636349005914763478104116444533289745932483570020554633950603765212618739316470526497849716513965009421075623097768599545601627141656246821409396031405742376949744691569055881507197067884901256285791816880258972897999742988331832109703279208061360960523032734843191860091502500326348328674743993326286305842194050796188210669346996650428054085946303544743431221035210585045300422284201777145572437238194443094430236818394675937765432245326672579593643575597605155537458245006802672369134875693390162080365820278157335174321773096338888893229952728847428693341994776082048111720910039592592696827757208207463023457417324182371911159197390310140158431263945186948197680775028378598670155976029944190462937341839716282340180477590517573706545285918581483053270804576887201441239787485369909021829359483437582006226674735231978356641416139232723084955424570640656725441549977884257492112506496157634730488880484363462217174261374676638040872262108172092659076221757857028087783553003925293906537820829863629156285996447876181117988868656861588622340450402314690553366927226356044195433562910573674013123561987330955179175438322041836910396913107866967288076266181131506543199987228613497455656177341110134219146494470005401989548429413208818930131583501373072767048433195967395173949411728355440033051933678339682604699693842156817582604916803523904680422221450642159233579766988241612545733044700790054790534920716758179211938611059925994251246428030160779606722945074824036269327018625624307727708244676476657107144378589401963862881554343715121159620689928809744956090691185693555364406150410099154441150588843034172301110233894096142666201728597824364437328997211530528083649815147462889327687524279649716558940723678995920363625966554573139707789399947777853885320186029392128738045960503236169588079274279390161606037224191681717488300350399567767211444857430617307957747483281920862720919104335031793064773108735074132992066559755275058057767421204644645335621099673105155363668452124339561538329607672095691612025521812291516776707953646815519932752466517667590060010775225928903035248421562507687912581863075473684191989526262276901296164026498574226049901930116552015522205049711556140198216695173461866907419782027550443403346244781660189957341743712810982938074782096937058104484628830866653496583358468428661065317936219670503086136859933325072698568185513660472826426088930259322162427719988724548032239940723004164098293458337981802119623861375035880425279535829591569981300392381643250177141140828621250873646230239396839659468925433072234493724792689107900996713486147582524321631934037990256708839171431202732607251933334178396228475934704442098631704462985438359364532075453585835383934388162391794262775768610825869620558289139198787274620925931039181623966401123671314023989645346323558897081893246041426704394262812250396201135967883422770903524386943164126744324678113145713922789419526873821277450885253827387326395245435019210124178681965912502997590905140533661171748050526172961728476043254119027889192329742754450700609313803543881665788428464084311036872145312876000365937915986749629648262761855935293278816136731207469149958857791333059115451064038746388405352036390996580286569128999135286266686084402431218974848369277163273950030053540862583854761899803504517189219380628268207195768555265678150602723145978047123831868543957517114815413852005270764964981770574179522027791482026660091723297357444909911283809121630921578548318208998987218254166143573860816231060624324002284272557614095928640322500918575233540252094844708681445996150770382593009935562199105244733687530150623116125607217584206127373205331510953199644608297700965373245304851126271403254735452984577259523395829545700193742141678022863575469326109013584365408599387401556555976282960219080693433619830136678018840716628004328384584335620387008847551217759218622645091710829545635057331146730296006185714209650139563301552390459905181439674912953818727524941681611776067709486401660015660406968559068292580037240798285983432232171442427582991579918036744574274729471557009182790650094447987650171101659402727238680078841891482524313243316126951537864352762806895456056290541056874623782637924897840877403739604650086238380517399876311609535277981714501749923244135636951315321600197444558137412397059490794916763807467127526368024609849390340982838957076171140934814623932619974758791318853971404788407744097078744343737868950446136047948546285199324302306990517513389138774881351925296957367183277031042963147922223534045805795881102335635892629214339641849218540062737462483823405771897690499240888210036884207337707175682870845887535815733133452205567819815643113183902490143688793652330122676576158073876898975773879842899556760051032281420571800585110575015607944180194521115735566230081141766235971205729486714156591036040674698674087945937496934199461430656743529318582649577613379482175216081187376337923499184593813578088393653069344203029663157018023462229017264046784585943376926146197686702252745403971525468733415460904605696228649794354849153595430505486850693679547997710589782210478604557694901899312323161772088251244983126499804523672326725257363042484078679921249438015733718634550773598990007589656898605125421279666841691732436742796977525983638233022552931107553317346132276931609814967408441249176346821786109590253260768376982425467032371835951357497968042660021776565044221001606806062459867959077136649374471872242692389212390566703988778441009575759131454640764611706372538299847615100538682146437684240535410385914347355964077189324256861882073109452169417137375233305795278316878339347710076337105013109000692481286478408114101303661115338753767059544495631909626890357095064202941184076171219560384551991684840415065858026924262166288674343647833620304552570073080972415914299792907158632706414607379081566374357140387298604445878619901628319098691031074290667454177668177300396433596934519103055297847414579559783410655516463167998684087849864134805527135804572359115617964351527588201328320565671816222255960272751949287332096198066314342036761455816720846639485441279888676195050145243742336428689534088466914646940119587082825565342100941780999310175355670359958839645221649571385177101216280723879314150401816268801326770606864889138890203261834094723881037012873227158534009488561187092386891693276126747732039737262037010132884500965657502571598801068490566781533451727041959117205004003083429437776857284633542627191696502856554680068610063392542607085178725431782098267011963422059690780651723015519751777092947725907550151459157930777466143269851515108715998240526652774205034278750324078270354369393275779295624724345029895631154064593994278632833070303723752208939366948639166651145150761934548696997379176086131165496177880758435560536526663504049850855777288049692973763397130663978796597733687796521902146691937987228777435586729088151957875879562724665109618207841150432796729607898814910626912885599604880564629815515822606937798602997756669025797378919789064545051338843659947206724234951379075130401245096848309020127291802478097560097080126991027554915970470940352605978207554176910219722365733504940861608728660233745517961561525565975472403520293374222886102017487395765686556422307907797530014733177088854154257918072634757278755647193572134910532869934815640690440127499964123537040540193259429822593622742428342336059532898765510587890860102665668808786472057277901158778437609863253589663045805702939256274628087302640576369772028662330769065222693982472611839928983919236345073404283234056648506672398260412163611994455453730581646015870446061721174580958188679944539635045194880994459825466941558414964436949781782133840290334062550442829225558358155472078900040801983027857934294884683071546768379383957106336310140643888129425177922351895952164951458229543782512803195214469978504553469040184311116672104903969893255458034372664073859933849559871642399723200798768184949055530648529516743808381067007833252320304536630222369059115674460706050966473815345240289861707116271469686078489373134544064734708574324034679769898337412019564639947292471548541462882634903041050450734477428768152785101015269427159652900230911766810981515112607908079877475922220358783508975907601347751207415182129172050506646875560145143613734387024895199903957559970280471087463725603346935649309639291210708210923966648703178624655639793764755429167467648905539302211160386029846933452414100626625704802279824407714204095233319259943606495702821689878222150087458806867809000313048977154498461815055461313214767718420014575335102152523370026669913368095068648814708350484621578315395846920929749223984828331117234022392156539941761124472112204970095596572765252828204738258472568016107192522575864055129160712958192579493938882479078249044341287832581478031198409337796450608998480631389867494798952697350218819419831257713332910492577756920195962381711913229997741845153979436212211365734503846644805615283610328361698784671926163368132520475941276450238738415050147654159515741653466932602467794793660570323858742299937010137452115772475124612077825526650869550137907936823853472619780038139002499622217887377856287264296510830056860425765591764187110911832543800101038786675046969357096107761245845595577463801376908251665284095105209106405417951907452728587888869966088937151088131043656879192105432843276719698840358632538079111930642336839291935699772671171135739910790207923627426767385201223448701704339395054553308122609644243498552371897031358579690895852945489697309928987364557036094609175802655657061855753354812018784612953982279189936887352240484526902163572904037356151477116117836812106611920057171234285195658068846300688561416230222782908158407473507988662376095053372564843957245942868553179812427385619727063447745790916886492351985590858451135064811753875738496564844362148914526897333719306263903365147173689432798256098641371728421626758766231655554638821209673543609224006128981820707988212588505301650450690179492114333665241344353950044176850246151795393254452216922685215089424846222980298330537713883226871924859357118661918616427328734341561182871917231024164502113232143715261850766722397307299819747840513952443004729125128714540958494620921101999188008002301357267155012500058695894980176919246521975297787421827791187540533677228088160926833213306982309802674123392016330019904053127254989441382773017507113384939976407178222779979894431965008951830676841214542318107166771565625913578203220088874757996397902714956793866480808576888086724562429665289697796156520542197666457545875433953255107882452183628195336657314201587377634517458688719710760061990825612372754928904882382900587491533878839736881876332048115688745664647073289681354830317699195324001758217695138128404183086038240782551082392517608817425686187439473575756337491896210971617290520741957473082175624007512859341474102474835976171571877441816761467475912021668592679879086787276550853414716111697480074486107975441494941810033208194939137027736182981974371397133264854837799738816757722594765324984488520176919866671481904699899063444786040654005642307925379265694224486578347698540324185981877212365760407119428446091620861028076094213849138215118291932070152749724373502185055765985141977988914478795380911315713426912282537971732056774399390666450888199464542663345363730268919662918948278666518701410898097500745030847629310104462571250682857284235365008741419639916538684062964223356865566936792221342825524475278756087315889703206014636782338428606827736354871180003766792622529196098912101367227986749228696306191152842076457934010525326773220307350549097515014170639078298751036733471476615431569915468782335565966069310010987614680288323335340501409980875729835839701127970488163841650754673062353155016392552903571795668539216187505987717153927587109198581458021016385933852271600512909481196841253376796634271148161662428740705164498297516111736932203493013684869656952962775974159459547413452513013464624519563390977890379546725695659548942854325970315080899704781724521893950220941868085828108574686267772380534604954673217571373249880781809030711245051263991207315679230260626809214927449841417441454319617800246975410233791125440716171709808411470177528392944923702847245627424859169718486402215915836202471789253283324260929745236329724101245944287914553645252658397773398205978784467934142058548622121708544397056214549986401442501717283756978033881651635955275055403840625613069282477727735217156042382772758164361779093728749384096932668078047009395081659408330182952733493755773443203440654085381226075083171346731511019139755345253398761232347232945921352983143274617319277695504371912204522239589678989658634282402307370244421282093049815792852053962530853259619100366343532412192372789100243377297099611962967428340955206427277816160390908559714471052191792669839637169546032629433338184204394703517095698127765896434101107134576840862191573246554045123977994758133479210238189752040590311062291131915082222156680288785878980240228103475861256705167726597686992209842107444974299748255886720535484970863083753255236046706948261829778770798563591816576807668969842912863875931222054238312189459449904901877767878135959329640572918635683870489951979781231057554466086819467952950633749536712729762866529027165505770828727194887757777155125328746731331669252662791536376496454091823175743684481386861417981478085537164290009170093750274028002939426765446773723055352162528144552165143449518913540051302753221464613446333231064223482047899112329995411562236821561710038346981931530619374477994839773617671543565496495460771905395705598503325788094771497281111552248963348110048903558570465280115211967336809727418601617467629236982329573753068432201410884697668412949897753544218385382029462714184465024150937248565201011658004440765407048941321616329879775667926756795449081704656993029362058291771862683149221325909729023127381935973411832739033267848060188090406717145316977452486118210599867662185839967551145470958612212194398670839425388854800730719655991994976579355071136915936090422505492748054406240693542247076135150886812897436761381056624572932059626753139242894363256181037622998588932935107899990005575165931779597122551165274350701871610115517944783010046467888408612195609580802861043654288049967866311276388032715091057438050100002854876990779735095272347207377023779456130654264991477434714955337749053646725415698133000831544251238438421375800434795290037214920741245757758929761303806446271366700153843203866800058353178973712030066636701673715212852017765472461685571420456517519723211783243353409688975903857507928858541591812292562480514569040793340127954160074391837531589389988260212242341583439361771900101478449915383959633679765487584371880745161024725431906266089200057930642252078971023580621946359954640725314915859682148264881922127453438903577502363289563021170794332770689358118972701601656708283658515970390698037694618351784251513418845546185803609510488277070313904954668065866680538258998273823060326104773329492961197759463053973736624010040273497469110742604717187923022345707527920098908448094965814276108050645206705388044483040193982506354342885322877124139850629479858853070380108835429619095479980005102954560418819632633876617740198908067186301379806637392666447751346008997980065591698517057554732630324537847694276974331728940571814144133915830002901279626487520355983778990249569500723746216158138077667265662450104277361940597541591691633929460608931537216297626375086959040162614151579616335418702538851470170831878886019687201657593390493413111056990989271140994661746345863077762815943342042926455847360107295881786419101625452769553913505068335548671454646413424975511249411327495544412524531435627368727868282826669782133773794072882611575530875335412577216966468245532508883455686836324886855399116699207559703678918082685824025046364860532736125868916771361056054736449698812411763414714403165250981932170268359302683607576354055754854776894734330566684730368650987025232533830142830811337199464432459414582002041033647135727782702451562015019452871507794056264861505473119590214966582573484948908490152029143208236535399202469990278185701002223403667136638456835211213345970318859335787804484007541222194200404583945309937392038345784627862740544816664951977111142035350041810205551607012948405908114571344838757096804966866203246459547947173878211440277545174142732345087354546060153605325144614982797900207887394432022889064054386178799841415943028430648141917778630247254041730111061128040139402676123202268289120182394543504120476536842940930236074634377595954306207167785199417272079866850916266937729042383606488236133536298417073183142452667634769165565940576493843877767245912342773506521966509351443884953820409403776963737203655096643161208664065486563107743647348855083152967191515887570154903300450353377296030981096702088290348633600900649016688902254560112362658012005411787842962287003985718669586251299188893298912822261905799945736253970764910578359085822946984692353874168237429020614421773922893882383844750910393083814264358001206529127122733772797402596792941971478470986863881017555046001491094816801047579626888126288303684648869232607987731076141865965712624020673369798536497170292984015152092526420316539124695424858300047675389525645545811946747824704947118569992031348166167462701733306748356502133704317387322979266500019192698347273656895975019533001645690557832296648883843254575830229249346637181826666781246559514112090595471542961042105914827769494854110326788030298249366563459459723104590598962191576369692368832492357076170559010147981661662924321296405083291692092476227599810093660407086775540647338197286998212686946931858514657355105358144599883853795254184194551313296775473857394516024915985627743925674022747709239866077317008172392000086395705435954636019993118374280135002159153906197084174091077424806375589616668810893183977771094577069948857120001455165454199466001267605110036683850459532902242954514279238826709725962434722590128816093142754927153935545420931091685770092801949888763262868248487923236622875990715276939929336853771911677126330907719038023037230776556782302207785653717134308779516291204251592892657914624632654009015818186450313277495815898896712842564970882435564661182746536847078507080166942248039707259619433946906283804511994079500282592908481066990473730768989988918471709577441774044411650415697113960816460013808023308996176809810883845653755840410126002043280527670624489934626523106860966993076719196734924880495376008060660573026480752562380737941829078712316783721043743119673488706382503794176712389060600795885911362868988659575806242103157718465235356133963002345875484090823926532835903411539635236051649875616898206854308955777781910941974985897913141386270013276902646940009743463828583401836195308531796707734536816140610278436163018841016128933553816957281791697084540703669198861022471436033117813022082607385874003587427057190622229285478902228959340499210426475197290706972918267128583409984056967394858685915112189322711345598842033286080396264187502459398797198884332098874493543908826637279291925634337764091215263430580261932898303499979902807542529142549486002788210295794805135759164477481144214739799365063552370108140341653412617824183038128306046917250143056960444668425479104395550078626581532698824530668369125893062407616165669162197463505496654206527927986146297734010972884068734339445299460168956224086811635341656430810416102527618492293270960903044468576464314142201903287284888438920164702016192684709203096576559679608765701263613078012105449039907023178397228647271067992944524721262986344344878731263152600701213394635143254823604560052162760718849422116129638647845259183614719515148115668420736409419410833404482615212107368310473170541644629313353637944168400949415039584309992822641871430715232178647196542541362703407338989485203300070973457977393596242860603684558368907249313678171188847359451414626940819854278311666791979290704806176858874921231817566115503580805267057385558363541542855838660731960003715918278813081520623890678039069319208386777166775436712249731275996534603022569201641184840194098457145293479512769327435283134216026646184911045714536922766520906379332303132923483329276019460017316971049271270418209447886631271726656483558611371705999696195442690388180223674520319693409925524533460173155371586033293934509119661370961349523144114618988622308175212305973302175164779801436736697799044642912515694660087077591045729318571067125409239600776669395224187677992561034412390214589505056182830584970207060784201548063732128517327275297248150016621168372965523880100124571484107164458279983459441009848284153286267275894335494615001968761153678927620299740819124267763762276283873872987992997749074512578652615593196345800054110463548505359925052231422311598606577828812612870982708701861843649931406923136571040347922874923424108681396073046333404245129445487165261831499719764077439242215082488749215442816129683302957989104032669536710500637504767498471062622465279349809507105356850170130243882665535915423620158241334143506502475495324114382858572976607150881357039738941670544545356019989660636663197869100581063685256392764218505881993013143581652501999393260547572053197815551356187342006694850251851942923585547367478851082113960426012077006973921222587550949769764408367930206870820259067880524066756713988033827731325221901616208775070587810375134252882507930945622928071582989711561982667449223757706809268049571195802936375802537172670792193734512287458303821489510162022817450244867518854873841992376127390850306742378428263808157596578919242640987172740459739409260274404477842615398178405300414683626316018445256044249092385278378463472855465023666395052812197632551822151843362142474879083126065362558358032253173359558142223117283224063256931220786482166316413297563279707137600295762184373781837183413079829530475726321837946914967892281294376871626930790305984658989457240622285181058697380182472954571090898218717697505147854675460525946928697617243530438558831908880200778917806064863551486564829892467120928249628576575157829189420626565579304651268717503719057674795424154792279762415979801173277091345382113233929971116537296543163314009012292535473414147257701223152013117071225046219977453163567887684646595773616807345577723693021451948714918203372989509750128122955143047138678085731075887574776065404604971817464410219034196545699123131012145060346894000515267012073903623766591746247227774440253955307123696307069730052795840009964227834652675492973796333772303181502777298925384114625270970539611147841190339938874853751215451685313466163296530824562908451870974097147281649447148418144648574880531363999329013533555142336038752695654564572798150970844326552904152623934313095206470855953312880861374770771757918568384010304733043371894078090823028714647680237050118302680774032106666017127707533191953652026403023890026307772682208911964020991014767521449761110297187540202904917449412985917214790142352772112254659858146006972054371222311687730056871799408300815853633518603099628003116498645903193947954398234031473395129422703618579166378741052780689721427757641252640842292450375806322791909737852215827750805030036790941956817173668397150018423816949165925476888368773109914252309254399174754815542218320678889073214783588707919398783087888205586775932466987606022837343445922393065160052856742784224388653502754955433515348750339968597177510427141489931549538061628607758550276873296348449156432698527497920442605752964175163347384404867138582890089001528106354074419017417065413435703842043626423042894868429936568576653247908540637517383660868442428264517548379528451547487937504755025265112554159076635625839642544504172350375327451576500129918134733612022284801726026625061127530033393190818560878105417687273892813171066110020492605064067295716441162905464475748887242805389200952851945187090764617108809395624562254962173463963038231713180459501364710880252830061188327609139826509123174015234043879971940961171356301497402536178202318753200949748526709432589345027434232537218445882357811778007647156804627673480058176909773753666716339282056756549469350824259075660315018690756026727136654639654757346028221834163787821569324590987784041508543018449735022592135326093295926527575432337672466258764152134209325008803263756682601117009878109299619660531097481121058279972352384869602781148429133216686944763935330589657723369946743248782025480051793155979008235860396536492816394086512666029249507983324212177383245946277883930131578655680934889051977062930022291462819307757495214746781411355588453743150868609476808781048343203451798632949726053894070056222849292112412940938310136796462355131194605232107235928956480524138767669371886123358974816496148848757722454653544007004569550296950547511757691898445163932043489821332218899551177775807320166641690237010860847996860875866012247958433882392180705261655354802358267578649698663270075941088456761254781801713375728941056916853003678287137808616784389101231017435808635468222959568884886392903488282481864797208167188163706671350842679670742990560850402892397606772524423238484263820658304353681179283977350612079710930750411881457529043542195798688198854861269929454128423028529819676146851606160442835588943430131376171914615734718918057542126905110156026772024061195791011327974492159380888213227890643112421063927766733059055477152030795153179667324391920710330963180994689361195683733267752586054671046361243155289508654046181124214651207256434158961234858894969844398904102832479451963568034614599308632071569773109724302271201515363855891842533884709598977182708452748566681677423694814813725032119947428442221879705149804962163412648322267174283772553973467639204153345466109304326489828480985366277016074747768018244492519870389078615290171086983107374822676600918269526864017160295115117464701195443715202034436816274103404851862500366514764302811809147789650557458188873527396470286509936679286386317758115377050399731665236833792051782736387923977430632080515688712521215920311717166745910373849018599596832527223124426297209060850976984749033807768439881288313816968283100932188020570777003399333058076008853172512465969205947408685618227151391945335220013850468455938784415222359638055436667811391636658259083184553816293619405639555769476200375941739682166011247766048190201678586636272292263752090443902694606080833647525696988369227806472590878719537110478839797454208596425820112893237481291932796967927743161555042038802092600527538692775845395595381352682021665788901142485082713820927867218584600093856372489334812830560364895459386161533723676182631065986243201844062848364402986073554695924298995533698513892488969601772049533147275551642924649512035716131240580478134992465942874456010462127948324299497423797940940593824775974389951762726618451291210581280428403402602794928120115080219197438237281751534369507637638896648077628913546053708764297190941502542827060902587298113323785122430063295418706982362091502940277069207391694540903348261553731563371552328551998772809651199206905927968678161676297386391260247252446474387200522365967160568851666786256420157887900687420267566443275135031730449615697436945118830687959922265973827959575839771971539062190400327119381452681075275287297547401018323965184513999598425418147193449242902678616262762097910993709771018146912248108658571876660750349948349646389040394805353722452943422106735417168992263228566933201783179858531410061153232561559815000008631317863017684692953767917401999871798663519109458189131023619319911026941417584873371750113306633465421223426737704936508160762810028531474820051317905373800065663769226156515311000305198495478187763666020220579728739453381527073720277323140832212702785888554809586889000165400686218922147817551136657467846947553231905805516835331380997590760224103754363478962281775841727329436498875681564956776440367713550950563087476135202880461777268966054640726630098555686833357663052814809820358928337001641325579377945800119489676034670530155942606226260891033881889944238216773480328691102402588785665521302857608607164805854603042334786852945969390233404753020435504717258313707014128862007967990667382531301161394130033202954519059219402540201065659241090728083926997995392634675260181786696775294787803259557457454464682693764092462271550858882103781322460868487663472640554012349333228937265234881776987919413274361592866752005492843118355582522032909924143188341355674609037814915513065176051426505289903197171502906105031207116192430102789338952376861392537115414650943069877853026953528321906456532484562781138830293140101467419069244961107569963111276175366227154754433656362155513679759904052338466735030285221157350848447226401051256284673050283748130832211926942287003137231487218500702711664724161173520885623016405698988491316426614416225363833270615661851186854547938368385458463069282499638957962690942457127037883874127839981763697747661747152488082859525308244920696728910980168424926282037764336746983792123421522207258427553039479331503662169864455540530877799950137808270113272720583767462300396955298281845639206454019100388365328575070297088254039722766220848318445083342498785814151061190064868459103328222382910264023774984723910397469130939377273166018027956468007564284620930285039237869529149064660403789532748890698882364033441236204383979226595173825633515888082751759807831423366144093279751151060012960828487817469420482834229394261128039392486155592820447044219988460206055577482267290092965376077695341909620676836479366124328403476772204719550780374082899907954755141169193207040795823931197088069349520180427558762857998831272848933564893804733053194577279144007905601405417188563049153606188494601645419617053095623367507571069230400792371077411107263353166762114253618730450396041953931386202381370191907625022653456694522158925736129913223993848206081518629902965595209233480547353308690367289512640192863130678374144542430968677445107321731691119480745212376188699838871078071341357337039246574803544636087422232271979192013363951753022512015141083358729020559160210151758114329902270593954396351339358135094928658394587589877843069623126858140686108306795360548081714521495466974614491027441801482698474097473028802736703417128327533116134115319049629572964799148805220264382180844032781887229496270023835606949865622081746270487575288756832833455583569046559477678017731455313637918897228226748594085469721592445962442139352944119872848466246204208700986587675996518560092775393171544660083654447541414917088831750416256512485139353441476150224984467730525925586413953729585183046713522512026988589196903311149585097101563526154792565790114832743300550674358970818674913029015609486772395497273100443665012705143953550071253915468137647687791574990682326860723802466304841140769559908484935745930896907247387256209599157295612850077736192836343736240614523521140325885151620965635868857847123168754466646666959546332508041378823430691346976142527591441135294165237389929749336017209260644269265872855488805488623272036552811098240058456542020480085334884116001869842529292629577922004596137358568581811489358020337244742809728847774641504309568716579431395962407519041334676908166544280415987403460071312008472197038094015855045098172965081218275768762059429580771974982614464727865217413256159119226125015329897812078044357592433748186992120493818527790966946585417768671311405162790841746755568403284800934008868375613057907694681064452035473187235820902802508899513044995481201604425640357689045634500059121800875920147756025215212236115400183961793727215636519736865809466710613611572285848584081339331681392837091356536136639556065520893951883212802917477194059469417953206628083505105849080295382316888687619119819029466109825391403040708125747318969548560940446833552203565389819389759723702709249221425868886512953286422538494445026120429159161763574732094329676633854764896987701546322485664771173923206385409638467241698450497167162014148902313368306964208056244216918638241157332436689936178776671291349218463174866411563601485576868028392421097638755670716506485040657694137102276688647254930078085638558618308128024449429552669737497344912659119637806071886953740506237948473931211633571404622147461573487724240685181274226424189425478671946189319054824164721369786322024151980571191597737825914541629823208535413525790946402663627241789429332335032001757390700010484547103793856881345616246203469870476693361509001128263080007489707872170832118236071432518523197719654942419412922765849518626785993931468401225561894131724683611347352953961774378124806879005815247158439614011590185702444311218589640393439396620831849971144917787357960811579705646455091776406443627304592120613240864397506708837921367046955607512516880092966319579698103529367632395296543522943829181808576521183086980578608709635086012054711780161422675232095853737310114148466268986147550603371497522610061158620819931307366583730670858683772700170698767778458118973006834492306412623697300665666233505614660442547697535810488896420280534886902960808892388509965811964751222248273590338825517094051449136238174557439447035155639969424791166039973119041851635338430565352171084088432191604769746492620301351689702752051677499944287129335959870811904749227428646687486521821239785801578047638685613353518891179059484101330124743630100863432528328310581728590205804629370553358095941533608862826533543693831175714075759830965743938978654325421230400525387175077271535433707804659649344673882868475933046420823828675717408575782194169440021332782984069264603846347071684794139665097030711223544670023648876250953245875656027026918184015630717378599319016522139510375520872946665466935633631631566630201268969177508496735876620211296641959577449737800775290272604134384650270536320092598955151663819133591041823800175856047533412314035891158319532738051260466621592095523228803665649979426455835426779821896053887075778185877084336955755431764363741294228274742625460381517250082677934662961237176506587669331352703961659347910442397795402040646561742416140602355832462557288115121788216585734373731639925714723495015071752078656701211124778774056656975505560339375965065790874455437279044343556894447427172282868634920500475162292666822097533969052196780790408634544611824861809907252825736186548360502978222229215484571262735717364232022494729764462270852154525525788494083266141250045897831999527889056664605956929097198009353034240016943218280974546622443895007255951633244235657009356016395713025219010843554362764678443212709492231976516225937001111208141948924012361122281901444558130721585740578174214970913256624827354015692137165421613812609465058968185081296258987580742838023527380752506541512464531701271870974217350649479602279336605236964660514556708805439768067404713371156864706537501041286655914067097205599718437436962598627610902565455382413962500712342421136946986344629710501972283609811763902671289291811498518602037103163165062017384950405550777003049404002477277531844865159152315189014341726437797016305468330988169202497775719531879727885416520568397677166418306453051194535282350168190932434741932456640645803244816946763330482776639303803302952336798847245906606882485742548876205563837511828436415231863102567829684801116429424438029440716053407211407628772608908940773398869012892695574347512052764796911882356887091240838369921436014705561803499437945953631783582581662499567082450004751395569698620709627639036216474190945039021114860338531098332778287642073185545662469635640617375246851646269725210476728746893457553578910329346761799956641241574686783699490834133137241873593706878801672645717169236847743241823592676332939253408399343049926346908924218684361464953199262500551697110321986564348462445629831473849798496658326852939982027057932494059533747751410332979340442963386962031789929121228196379340454384498034807871331483049875943981639369788742179428226620138497557901065354772364597981303919993851464843918725598950518835777512719686790088188080349693547024269465781096201412728408084413321707876224360338627127455430133144870993627374553020633664380980079513741720835518265606024328157940783370186489680151797837198678061322974266533317826032285299857380362970492486542692516844823402547412170939499386863350773960869402060291366939263602458054135503264712623536410827707587239684310418094252445286662277590883092076032903199148720539505853143154083850321229965266606170350243008350577175851389543415285651908216446520783751273308345246216142985077533623896485695288755722820515770458464778758354579507350542822896094757075085669614691752485134571497912078690776694505147535030563035982474886674088681986812506665440914839726793934994223055279617314345357311951969441689080199942457882411255469103842779561630426238274344050818560444803990243089109730506820635478576144366741512905816211463235906839607891572391362588907625850040045952013099874133566958353071965708681086025128783410857009854164007945711409409292118906585902994080765929971079448237376841713401042602166001066016127047935705170518008393941580026010392974500667527463460797625174391743077850758017090533195180959348735966003179686838230019832484664504163655169461801643275165524824454474458548867589182600113948147058324858141080935128465139278593195459088571089401032699838895346070680120003223223527834541806595104270318440344648515424480770521477770198842035570266433749262569711842280118505210950048592176479629678117901260154013449914851831129553462493799103628087591727793108926910046008244781408259718731211618697254536251730686832686899154452027881526561591792348079244981147460848962974787692502339748694535251947634629854129090669810617600018458649596425552063872477390463068660342650127164851978581042261002195422212859655629382995806457607170615018881191797971395924317991143359351604767959880807281038683488330260334867828032589254363919325480280037320169045980337227291653267920925946807738868584104307744948777929875833539214127001581369612730789725378912854658045699941319015993426072439630022074948200948092714725966992525873401027592167583833536984828259144374720714602911938772761615805126330738613471433462125418763769240998392984085391624757555284716509823277436894805091326032618891772828699556461785393560900069563018900686237667443094958751037734332903532617682003306490827093834624937094746190285382929694581498690450760603726525228469360783180862869707412297384311404707884456477702654224550204990444344175811911866661685738254066506355629401508057482749237090925400221933997165530433800628360764676459157286216074674356351620013073159138861061386602793505128195959902842567531759680217680869751875512773337824255587219173503805515748494931318259296916671006381105721783123528704718481945407693132549509249914458645163581198602436375373607760926887678507309498859240233430362816441265416542663073398845025822196488709875769272336929687745218881281076068722145519102411560524698395315242888345837334646767659200864380373061086658254933884298890430248942234630986657901629439574805404309322086030205836917573821800652372520107020896955936159153998786999997242251263969590640451495714300348289315375068879452075141350858394046079056073240317707048619590588581343464335562142516961612192908696933007627472561605577999234388932821929414590896290257570397416369164904015373597157382585779530471895532658463838490758158232556122748800599455420286188904963858514086109672467080423430390466171930552510062013459708761421447370863890141905852468672442441551549512054863881638769971750940674185807077019501875380076584567587473642070581419972753223857360533124994812380709939325446135196945607259073494496422835504440824900804551821041198802377113154841407815334618336412690867228502099111101807112795781727153129164164282615377716093063313244662670268643076675129319979087700727861403102094883471651593348963870554173740676879109747443732536844934380013569140763268554949157156150977381427728289329922517280570703809583351473167532510952531858403148316507988716052721941744803778807917042939858557863228826473732139434893513554404600586070775261886033131545006837369551203255267685722414582797267147522538702492827307797907013332611667020676002127811159465421390009719844100667076221577877098649476053527203964736624022213086320618971829440956335442056652936864870600569911234975516839090303857034500930338474574815541441387983627626130188689758343382737118841438977291512277476106794721195864427694960555747633413054830654600346756507346429004527478493241736740166075241274490240265625274400247432135408972563570044299279770053913014579681764333920035638312830263806378779161187599394162578878862805133542126749586265358935620959593256513361881069228217317565472407885835514633105410650046066630218108871188453249014424392405265625915030559071463653830111453585355750572742611023922947102596663869032271283713988257812657486263615837542829447712286872011195984161256002837815382441901220520940937595899057420434503380152148132276526054250784909664501058613100690740333039542772630188136748753392786588314226249419854912303615039789639409898781168638730116337246248086752500385854842841389665136015046175730816750319264648789045947736904121618085377638005905459017875425773939256457521115250930736922429534179667735381011406365373381924034534843522142308030516699706286236613437255459088909419726114203772326378508396527731614052927995210133229502752480397178667292661403279521083262318618615345673982398839453406433230893468806737506887102316938625381173406715332184897199429241644748204228929892416544706229317349564830031283518130971833677240577077288481309842069348534171719963673716527002868122008738751906082511697286363929950605258161411542534628616869755600701323615613407107111512608528405122283352929987375176474130432578416791540877029609789091647827949589889627026422842677360671500956483336322805134718808975883322589682369080785910889605272562671735749541246112194571263853207292812403279047611745510722628214160948018607575012498463747660782626721321545977926092852690135656776077258241190242437843327564537510959011409716816237531001526438883256232539045445155521959234594511403274869437716893727187170118787284774917553449637125505670252178457622594121783358873263335009105540999526374344440206888583560143825175328433308678495740921180909060230654128701163186352674066903196165644883614569090588132211741573715491706752010651912873509783018616784948170195175075595901742254717533690604314234151188497371130994439620448970131249413963052372843144951988354773758016875053343595888206682582941201597408387042743299743528918109605958364378204883642085446322649307041812134036729647872138119371340495439884856361096958201844945833593752356109347986601742272225442598493142241263859460630074985059296710884102695206227555579279739665191152904972495403649613540926807849332214926818519958015054459375348120912316769525132495959694072727436009705685197513234325131609592712718573076895856152079903342587606799082468290682313641032574921622273302850970130134924750653555612481616818703556416375135049991064270675946522960587119171459072053223509737993093194458263368890731195401780247833521959238961382174217903373573622426287203340153153477455625851198646941759717418110848200108848626210274150891382573770561894485188205079810976842718512468303141359963897678723579675386021401980606141272205676130042896619659763109784193592179866408331571246801178377337244960772012363018026673144865379429649891590733167107008846672093687060362590037668504778139670390422056470760424570213454366455115498570926244974416804854804184404580094526528575938764868178147949968269910134695966087500952787855698634851065120134201897635791188976988900784297334961759494823552599655230206537358476125698023448009344383094355860669294956790321481102603711725157722417261104632428263883435728000160092027747960798129726468670413629320415876505903952329401283934573914827743386439283001781021845370658767040041223143503784338474569225745439436154989584311472150793288311917175287353461494842516685808302126271370966823024325417594712773653453953688536679125151737896165944021102133838299078454193586133666956729641731924377988671324506343601300742951762572164728964818728370824834221436357799647307808862398273083175622466015625966907800846051865590745562874802873840887721965978583940935501895116360925827788354947897706685594827840678059035176067895226455364170630078349531339743479718312960350837810276194194075712271231165865478760872770678693946611273397157212599569501715217445731261160476354580628175543610503088003188622647630852619408961115437312420162716734916544222316205859959479752848651141162797837794293422203388370257671017373226714747381980587401219914237649806431686593272058155449919623536400056853448616974545284284803786726582450003358194744907006766933398075419740225296768036689926379201428613650596892517954494915408713463748113197763685858783922973573564478783958770911540362653183992892468446754424805595036462331698905872334268369210028255685939200239952445228982401679292120176780508788070028124996910954790835194922438429982698719690296818845244466517212191290714716676193543084701997636932356385024195765957814490645998205799318213368616858568059491576496338605052044521983604450608933173189737772224670818684373054315922671926414665453433988459547852820299248921928384784137396733190150699442473271113324826881041789926904008091421774458440266681161379838742208351789669344513810490131979918244053414572655199381686717410832895397332087306518988369267457237686857937611044739059300069789577503822647027424606313978490557111980908392390366952116362564101153346242001225393016099338992069349239049477397316879620725111417576818258388702960835626786636160024027186804229238395064521822622793597804834976279884912800030985820867984874323533797545580975545015052712318115828407917459739251648610266336358857794962557594151986949955646144142378005222423739833768581047863198400540622503780623163098461178667794042059525307560667531128136777294033965829369604507753761415637950493250196015470228071767007031037503533131478581500963603077013478852787251290459448312734824685942714029303174938200108521714819633751112719741464911105696272873614913246205142492982524951750235968233779715934914912242563490725821251443067157182155962964374621719977125093568274890088929740479628384146876844327769549709046104306949353841893895280053853041793189771774334181899129386554803594047759567302183578365070941847250602402633529604063693827461903176923268075262012762763417411818210666481787108273614973791821593025420552443478495519659426602138727855128805751662415272427163863423676472204283311018051259838496770307924794348026528140038523554380875052255502227177283375878967787900539759991166107991605857481295238545037545808421010609227498998664139701805574179810876718571680820487540812713493531136420065012815279756982594479368020320964922598052141472498496267329521295703246036211825834471258340885752043572429060180767034798410824794342006247266436866340763257115415860093965600302207038420670926568025243437770468334902893111964905696728917855524697460938099365643632382877369702228163872259438709035891685023538849001686195898304712055767495247487897834040328110607696712157239812842798599388333046289052031075932275418015248036351592615122922684777500643570311971580895883427255066823874789073116208302137360677284940353956827781090572019539529091495301567811692034287873072405113870807770730076072814941995158421157054974323558261739045900600312354763447226782082938789496723827321895985778766863156571407349135846791333089152412763221058301094491427176365222262772137795025279967470604657891460472068049183593302059998349966930968219698458474906566333410431495125624597608003776589165375080693346876117428846468279605488724310632755043547975664565817406412549045551717998403432685959798362350049803157265921389529984897732508659364348073702569939399518038888962196559068556627618835610521417842972643758700374184358194911354849939312017228317285342630939853636846961810107170956032390275898228504340712580880914595197328626005536512382051621147856073061225326751046058849305039524093197136626703309703310262055640736892911893420116451418263481332924879698133103881740479088022803789456006194412188826813798914768619066029679790625528368878719106376412048185946283128782135146718391137970572769923665865714256615072960888959968701722709466323735264568290382440056951963990303914925569776282465585570503046497175373980029636969786768719558327728101820260467303109272478408234242431112625331478877131867670755203323999308544925850930701541580289103643272521720311633713281079729442314667632668394353221289942992109193690709269926851438915567245947296760856093716900428682169770605666610955389955239978491752239166988842382855769445495121135766685790742849831750234970966706776781245861230617779726340145810262740482954228973848613393296881190801066615250752037869360145394177720312181659462581706962575196340721945446398672637105568634835271356973719057796843895077524294801883178164978330473160177138122408822289846399472660969666530756922149973726447705292701472237437448633513389949283675261118597779563143394507610096553718096032579550722724918487680416810653297748274401741606036290035943765568728106873774446100944229508331210898264728626411904039835744268864818126633800091759712279256916955996195429682301006281025234976087664426554749391405077760927944479193027486746529739898595942999182574325183140445703875516005978858829096443852346752974953845525139562401461830181112128231875026789578985490127335530973970711546006446570381440935536273854453686186523696987026392764595173929048202837474130922195528072930185240921393985547626346517376077973790240518398937329854820918974521260378930384871619396710069555954778467915201266896708858881649574242857506694290072122010659374479619787900463943261318424627985658379190578861743179495740532888720077508026003700767808317519219948342253652466423964463123326332012103221849519323619313418749552527938709540669217236677435684716624003172365738660225762533127134541990221424572939433955333101453152815628728434230324586050475649600950059956956272192630599362228703768476260305565621280107512850088358646712016843058152493242648327679878148935875626353563774862053994934052722791201293654659000237873844169381550842319397018774894220757083789350007900059574469308694920813238361990516384991312172875407540570387431082055769888036409563972803791422154687128206784960469118314289711464466555559006606491313916585905566974617333643679393161106304353516947524663224053353732146590015708352331090267334891547091584686908657811996066053600878367488772472288731199507890525183781620159508379110762622451113198920994773409021169300964393764386520799109507226852306234944874406138980523680590345435643545781831361373762331150257307404542706304508962653160292190026394111912915487784425353628660268603998482382316769472402670795195365945134219270327067805876136154753768156679197033230825906541395121715443881540827087653235911409312751377463830786908231707108543431864712573382029306910526270299871075241605071497683900200404320081630456006242392856683794780040333800428578991081528902336295194078301396277178266065004552552928621906225310041671299183523597974010119468775951766225072521739116509380626378081915395142646509313566584623800260287946989050706040327071979056486776460173439543433330987179405146663668824366147354854627669191794692375666470409258665651911332766671396495154827143017691010778741494842715973581633530965947102694551030315938737919508228041017139062904855651149246093948135327385763599416917876955616041049946689910895202430674785734793664211313733706991525449014374771262937880122765685611127014914251150409108003811035207701570718534247249604331124181799768624626306253658330152319450458845585489112572308318921501696224468692498841454607024087989205415014916801240842717272550811694524491208768953096227795541846836344442018174376194938239126623587818613141477314076845910613845091434936493546410472191645748809939192646454683542139591199771278066987680531057604692877912460799483512240230015441293745219109743702467418935830029354975773870275082695594466119366067837746981464099836638162399918326469704259679644506872460713518051454274934457910964062857941581357957774361511745976408792923258618262368670789108397443568811262231618527057686472226674618455174806349055336895491847902976936572220778137488749571461331527056011685496392994288258471914297329842983079218136098467753826426899963296756086813057651819564966909653977412250524767062728189730050646523214242736578965164950268658342238577793565169069360545489719909885943103384021509785916371421667564648656010011278955193950689265334085385719571514628576041829884234355340255032706615113288668572603289512501342954320541175695288514461795901238835603059049868421787983086852570677807174260999973897546395344494524637612057211772384731280006883198256733325021908149420796724802264726191341997804080510174233509274484571049067000260067587616889812511836497628238049318476827864598803294586514144429488850696162402910515777104569718498369542695310555125338403990049201201235730328361166591166453091460733065056855106233579265633483750004971805741621480609938041767955271031739215255164637480610084317772312713673317912296373766700021882358871627550335547310602878939111506807608146529313679795716198451061833410101822973039031487602646053104308763375606586658770690740027874330693666211231404201315406754413715622818990360555507687576041852832717068066209372135081053853897588981971901768799207050240971409841502472055171370594943767678880088353489290115287884374252189954091509465004945306234974737238005704811168562020962774399346950045510602853858574948747690946893368618350742123848915216774830369735405910761069239518085292872635738407221182480907776668096807692430067695667908188062649877391611691899770032075057574882261321275240249467481687952532775601329604568242566385698773133593134428591728624852928815403722617061855005409217921241552337924419393374238991555436844754803243775177574972867686525359054776812197558297012797657791007082437620207052082417710470440160311076099268382900527772562303809955822272291235657697279240236706497229906458160381938222360213528897875418454302500460807632782397221738893425873396106615677533153155565505360900343618800609963474232186372690998072494097286847411628342938357513668900156032657323681924914103348942433517427819021761865769211165779707047074052090617709418326131428103229964233198760048764365690892477875632363331582420668517994331035612459312189770701156487084693021346555974506239344389852476146740996301684603265709078061077669595373074587614014815584465875976966843830225037766945546393848063642138198268386211869368680970017865273685147834513817339764718356351607234621103551285086257859072568786985416587811903051061224700440667874819838563041334885146015407771933869486104913115886047722868356911384904697588292288520257492019900184698399722631743730363107933194782973469792504602836100014049117331670458005824400486580196920879985731819308087950976198239392713876744186689748206309961657042953512435432222303892642399535246972809727481226821126000559278926556606660475738236398925531792231923668477888367339703098233446320833948151512611895728421892310584040661215210969488077105339394284611829650702014310437294192539951422554657630538155470010519412155619834019667201337605838264292752476528477061435332314972972763940570277568282532317260335037011667757723349729627054274912620336008772432388570724193429725099962111560076037295335470402298128528634184282479885553512019959078225226476676548025265749420437452597337938412494056565565082101901642198373784878447157499094763226274161878057404400796786890605405475050139723746137713761924776416940057466135926613480203139459187273109930940124589006072645872576222147984036421972311573471493115735999346618285380770319944117392438258568217879232111615839268716930296559152387275565239189330630060714245675505838117807335221263153278873175609564325649706506191523285776899438078224844384815560767342979636627955233273373107248421331802280046118276949430584499488436942311744715095009846039184563944479310584455132012986756072063042557854781459816752528732094049614836137636448189537432617178295380258080798497887146477109497797977220081761575389575068888146130387854585501814302516595349340565181454165000301907751514397583973757010061899060464417344246329050130193456389142656653871645581547520275045672874243476948023902949007426757402494497492237955435616150883053115708950531694483658663734842854209758716447672503551503492847742854150050517975603141678522799683734947745634225794320550219564525879218743022867702104207823210500790070697836874240666133471005573175585190142750142553101217332984183801336847397558489013872021201068354295315226077055742710345910022650448911902067877682875998888603594170036435610468962836507584959407194673310453826978322196986483158536731436244683031032944793437046668944077262609960296738399556953738362634064617425752225770152309176058608263062949351438041734929425429206464844224735625635299900206621120679738396618263578247023029674264164723058364573800953576429729902480265736944441872973702419818034194954295246736401179470348135091492084284614062320420305317232938686926902266318660793921475310978797250404110926479353879884502961654521191328515308689247929048984815185476857616241844940683624436761223788192066781103617381206270296551929103948707106432161204183342481255970454980502396887705200843828577041450511481452360458219694396330360205045502234387105724358884942588059457949534641814938156003449734332932097361359010538386402572275652990414256873429166021081875414736954322483627180987274633659662889586049349215446647508431360485103679611026100823823256681720426551108971495591918682001406308625535495113956663589728566735081343438628952190101688308273011668884810149047145840753010031456465095258668788784004090262736843782712488057108406074669410858404831811691793293912392763974628166645801579746846319172577945206662206480462588414277361791568094148260572300343827854595199688720383040709450483475521639809632638688204349089134450317992205533532965271238526563431027307881626878318492790364690061315035504207479236355819523722819528340638020827068888175328536193571020408859889948870525229284034709589565079019367478712791731377847129465863106357334056951213765408176795466431160686233057281336777247204798299971903675824890920899446566780635343802261152919283179609451019506688407329178690179988356220498472705225172811049243319503200551477225312128974667674879760881309691267053005236765928950725206157492569502176138175658586226431177400737278218526839716550908245665234653649227333555448808901803747582489514750874565551409960882188394016703904625309997246986564623673661258198147108702780369758107260053759830061333678596766254600466275323118319248541759444888698568797983082742589766549142042580958692300821265371047551777641077979336949336512242510071042770396946989740821951496195611433081754337984349965543351796695663084837559252207132967189758149642639348081855334211207255140863199290972689032898841868218376035372931003684589959252335207189049175873696477312244735211729121266251653090962166220553610857734980750664064783134292371944454508175806269398685699017245103133884045816606529923198922541691643054993061506570038222161829549163233598499069974922860894643207194962108094757942180878768127526667457824063883105464895897211631895656273495537143449273476192578018209511409738173708069342416015392652967521744313702871432830630258022264755593249965865906366002802207866109894411627200272650557367357637510163291397485109400370234977833606249858360690979968111871887991777864681921785327590404742288470552301856805255630001746232706166196361726844587637246371644070413184599889441867658706369628923946411145515409926291119905492673706946928812596167139178494364719233085044139248204374798004501066925052784470184963871508356054999734055804343049548225184514620239513228769514585912031168043814522233597881146364111219083186507346283652541167296805735904790109752815332971743601248101282450037600269235138649739858681099676653124402700779825975663830000937397335703316708728586331115215454816237369840081726833993351848699526662561715257395295798601699118117678841211967489500911752673389975756223857707487247857165672368270874762732278941143607861889804138950575424307405524139400363453742017995039421106835968885744004883619200395543323808996273820961373514012309946121163807053674410904204420958911429161957544341530637863099065664725041773132141032900979715218171176061949078954394894180798671476694540234998718531927794349253374037811220437830025115063154924962687169307361876287838386393480216389482525612329475043629656333316198226270031169836523994652632148105128471034590853392599243736621508029511659910910242252769762959481658149776332514098747521603581523014940798995984469339207069033833040491588657577749556942089026179543204902600558627158014920342845407910243244734421648685399700685801518279738299945439667584635346819054713718403247410489158053351616502054136533430571263417665519205903790627128182727706671565228785298702869220374954953128432653587677312732039217254013334038261098700336935118795002905432044857352266076240952971165138815580048126055647412459506492021323346692184206972217738513924840639464786714133997183892773696779127165783088763027402773494181282060470539730332862875937200551410487509977783564606313570023600038226753722794818878128765804407009542425586135649327389952532948018071862578877807991606841792384262624367218066555585866252150808165093509618848401027388704256598229716645713507984131880053903785274986632237358689341031307707244491763658699270098306957318531893650153981068400626587204617840710682588351747035829970773557224340495617775327339942856472211198684921558580998589625453252452252451989648929025805081628147142887698099251133635679375923193362281361096305024652311158458339827402829652398702059957707587599420025268835897795074429781890912237662606962824294684946331286635459760288884176720713045007596492546897164343122272298740967001083772442681127933959329546637058160056946464878457992362771095950647062158330073276676155035167750650222072650145839817511017255870050986670115081695137460555158418868615130782740322116188428062342976273890282555917084662802665175356545099642955745634481672018072124056833291583444804760188517298648869141706134224950585860956590945424441058022918900222051191341474604558317530509336464511464405838161353012164584700809530819723862730198409421501769661220567834392851473316741532726686850760335614552218730591797488051407152010405024645164171752694989572886231436147593550569012319237219689021947130284988614985861526535933940476723511613239947738713198859101715727009267408063435270022930757070025736045920010745046624736712354083025719056615334955776535242623019132093494525638945644955492386966403625173421341409399921421529220555937237950583282932615458508337367272577402512625010019969265034207280930054517729831506349080142575056579701278839933286758978604885610219447421181931663449460658100469200343109778212603422112742892791340299635238399139498374799877209452743376691388581054278213762062156491927013367007045255382385653773763300275111890677889840622248834927271208015821744211355283923816152173355427778053159299315550453609803583035345076839809372555422029291462449650414608692373625751967167444025087816005187297060774729082466249709388056060208501280238450473101492350014319044350207591917061143663768659729923710251701772849643935544530500609339809752720923946468106780227928945651006831734221645951949818281544837687910517264730596719405160325340778803002167090083524435170274335569243766570289075654713692649811171980312789090984841687285050618413429920747786955271514541769491858519445495007644081623598149381842384432471495313629666456903158935063298581583171568905736738004503723604157574879561278624475851961826140932284621088807621457727930362667924782926208004384174373957421277174716308896226073899342175322866072567618429476197019095424626120892101582360146175732251010840639916335430477882050024250935527688669270207866772997145939713062696213452607839719287244779435823486650049687093480124149225323266554238662682212276429124935200011914623116976078257435163455320883224361963135682666899494864058006465775019694859397056815500106248493776268520976484868676122035711004899579668964034076392519232836887634003161062561933704652979736846155276641207015204434358137510363896962120965606602785112087684073240992214538577888632997008809448279914365180439439647068055900408419707557792111092952569625907361775897886518154068446924733503491108580031148401495238142959936316311770267081275666241751892730447570350195370940441409374509482669132812896558667479055501110457681114071087667993153079609161999367051251232260229658980302807799363501930464308461815630681566324364092873163206561865445951537179339235617416301450858413322169404490827478680061388465369750720087708635125929865719934577957953276398252112815351531789791482209317344243944769144044058331168190150160993299065025878192416980642814634579552587296392775446659406403192331415218600609973005104757495071845896851949939371896216228136468019156927312559506714516330743244633954063414126065884166337121090571970939652607548876797760944488908010533165026232293284585536992226396928495516236486911114975789716534831220706616664547226566503941036652360974017258745257517613625004292474776326858096951103849841377602076836825498924303244514858521042784621531903319385639257160672371764676725861233377068125291396361287337168434684189362717578849754271421014361825946020147042284038918793936246242901611411700662430879476745708388022625025031453894048619924630583750492292406595461012886306888718830595382340716328392416036207527557369539477530334540014210808531193376443190148528847708930975048953405641031518636666561166896777919379918258998945537770722941149929295577902557335527437013553520466150931987880735821110590739932360286112476806613633957924014554885030835354560656522247063291653311693229274978592751836331376942721680387693928869392413719199064598817324945032490256581872584899103150529281119820727754917705401785229827286886765429402605014956784282629356690386979726975456487718080916706606711473537700427787313089580563375423578458346235200817239193551895257609436389033499705966349158483856324902156361652984985104076240520527038657081139018286250904401065924324379922867596302589617749126202865470761608195476595304399888939473792648742890025241012785070698415020022560295590088640388826237420290275091008076732026716108742136940399966939967694843734826138889227994177533890601663420299085966846464285666432378132856571598962128107547163360845373692731768811415270318883750357893025134025589464727641732789713874928394288999208697143875177165268027896056102540427302906164841461663979252859688789934799655715790947735156710394984738082541141070081540041893590244083196700071125566926171028247825897297876703921685143608160737507613207004485594899620566567717174521521542039168265087339541317077950078485689541212084813606410803212194701365235386739118903367241821237077537892281551686173771817129633588686648868711511210915919928444712646196381147160292233041079327962303939737612626138807337848832180931121662512811445854214241575293111175071931852608496801505176660322428273718686961279089315354651532460524587404537625857613178590796555139882692040078803539819114830215956432205285254088850477150655928209412734219062375905147084297814248994482574064331557498196315832707249743811814573594780429981982867401843466802619049451631373728562173867809334763067073937573041329616147365588389131062438895763030949647723221841190636792016448649109176838734141087777000917515910842631651895582998762208982267507756001435896419412198806145649068353577213211077424830076772050561719543737838692368312147781912091842047835058354971833595828072298502941947057652215069274935560640168566414903649890094981961975705074692764859903878376384549762827646930861416720832232397254478094924264549016095010756139536918378491921842436769446103459526015124039847846083370545364637465648829230719399307132721645324039399184568870116291243646049699217189830809986291526648126713971194780572072225594734827361408916920194529502579993412599898103454917300883279586258117005056329772953291926395522423098255733803804997986064830844157666924119269544765752520713326662552994888743497114140450512928666046999615110091320255536836880162225060105038555025986391770704904692564744980397220470912873828193668768394226647813498285099707654860762302190344322295842113910140200560172395209419011060454097505343214342026218314853697630090750932025359135599572099232304648059288191676021931253710849031070305972831169200891434116651813891915857713849764435633563505783779135372143334064960229095139953246677871503037287438114226016730322743050235135448811434813511919884691420847233475414286783617364575484606064225350135462115995100066138697036760896004409514494015536114208071977825301145029284480502699121859618140856142312299636173391113033994046686414314570377678320807891711689666838491172893930730128549432401458096339247817511543058743793087401929760682167997144949544263745001876476525309814351060325509167885918139855009995894927290592597072537083960846545035533032795104613398082065922099069217165496826086833950252175662930707886745014181738225784646142616108020670429792805869797194369734782826432071315338065910748988489889952529771782901993754663223557942059330644712014617983147098463998094635518907093670722464261589643649501607033044870042632692611873345131274610694326615579120768542662925258873328749493407264382570882626693041066409556049017213595230596939450976748061261356599666661732780446385043578747878551424976855213088912544739092049281033248420262154077001788180790304446136987288692429247398707823588465180566430865278211038588344536958602988354449417687258666490116096329231660276907188710734449851426426082027338293635465852929030299216162544910225246765147252908451754021584724938014754921299835298986961475801051105483419910572886331395448842275731482107155200005687549079139631676594245542210465243439060597746922337971847170553997115181241833634383033607900445029192349132224263873718663800767127564778280111326545438004963435513298086434743457483163332590961805662363551188113632702238958612713197238627025169670029152372092750359382595876168078073800775440237001148192997679634015583658177675686016782770611335442200951156919324944798292578745847090670948918255184864675824713338492884530956791807840397145068260284543690719708126875307449702367554215416511363175038678218797251372503676626024294548665799795299965130324039522303861874383292229465982078506525083850345275166868066934764411590335756089818166818600619455853728523208556785538358447157821905892165193051812579106036397542870722524778778912988767133222956078404867974059009690314661529313142838332628235816895099357938763276889187520762278264119229715602958210286911474861194230723589921859429057620574781541328461687402411796797980540514691908744390864536825211295040399556419381930125965613078603699940992844729269322340118078844957893946738133306258963934055772921628498844376226660864935044700615523848857201140909782761402566771481554114444547808187470226628322349182349146442216230547005637626690056082550522066218127785155638621543268618492560439309770217347460612485195355581074442918376826947923861844518690301922172039282885740557783242366538193575748657147112611364747428424849838719511558448784442783336333000107711879550751993612078149282017871428088959836135123746464934020074562397450079794419405270429760767913429814562635015840270223813110651776417884216378441335140191505499160612019692664751806475723554759968830117254622386766149662048748260592773869790565359399705912750369323334204121954625727506061139508093393404760428156795263986599361454661669995012322917859870190818974924135018913914368459659454160848210123459309086028618931733361083631648587802752251728368396440348311859417620606636892368533669540131805845184225097463962176583313305347100624398599918179834404750949579341030670100528738594843353755664692465181071470782182872544621333781589319031428731800230111807758826688360194503113254055284447632104473680500684112866763953911704263276765552111801314882511451801065977446614857741667503716046107830904834344638366165893467444173973157003322924437476898302714277981408150840341696534342813565290605156100387247467524197249147288519518761776039906319181549359691425738293023805991742601501980460728074258880090578064214706785683657856563382397292461420102961461526176145193647550312414097477354292380593945381015393990220570508955447700989193267451368683814070858038461698277993441723181558020177643598110095562890492277270752651578242228354931638619606846435239720067814862888451687802295296764351495738292133569873122423302103314197779216290020244180209215625169606475049347631131440438569908053505854521405084255763455184727503578040594965741250151757145858730454466981193724349461885730284973560069117828356417316236050761637917212580824963127595381894120348975752336897484971976363504376205481354306828611914152594614553345255701570354417352773107370838711123164978528419714750184681091747424737587882275833872335452700905452274613307109114096151510542003987185187318478804891269232076191302098099730787156047922259583986673920623401847796900993860221864659403453778226014400658304906438939653897122150794464083452183832137791070410147757966347823887449037933022828239923754522360418803409475959093837102726613720001951104541096160382708164084444795171220820441215880318319423829577431358675346516863347301226743904158278160967576551711991659162637592733679877859241125446012599224866667981218041891277937513632438579919677577496578090987397489034486985038708211520729440935354610558144219114726373352102982454024648292029970410962339632659215965533759246091840057194367988584346704098138608759486030021416119184478530242200208141156626160332256453713722744276169720536339762382387067893167893913173334253378140078457967950041071190025803913968212948450245020160891534429508272658108336250231813981171813025664835036835267038137152908685654465152276476125392398016228479810287302299174296323921140358341049175680168311427481038122342266029554349162474767659771156786866570764254883064997937595794681238145070549599648932865700149942073412457193718534086173647566676219939903451327479764095470307400632353016027319021509603531901885230129815528021750308481721393530770873512181661873968918062447447260406084199570222327130899120074788363573172162698410173682397152683262890376159584573060234058485494682619019143447167618285097744394409214091218194950470985383606776643698917598179701128338510925419212634261371777985003011506962813570628763958793965642402890614197186856889141132194455731818074016563983794061594381452430193352117334879069616359576053282189408007675267248254521172818213651900751439633669392294224459369532903748583823506396041415937365805149325045538674282050802873058138722656365780816157951018193451546882105540325635901383756655255736569632808364545197344063828803859380367748890702174048915596320796138962049584718060588704526537837336950162990044107596143699190662195306126835354800798088930450517072801360282788399932401321527021775199658263447214982785811187081793407781655300412610771925163633647573490428415651139307153617683597579369043249508639199854225904440326005898952687759110440583316520121187232425699919659582920849008017632093436374454609489851583894011439420125289183999575805043785090569162765631658537281566211783253895109447293438525467526602923689517795045246446278774616788488519756458410013564132079685421622379236538288457756654477167833923939689380149773625918145462547688955108379232578743602867543698247774210022440475149056387077077350706233945778671547603565569480428512347110730874890451405089053734278811282967299382262951119775983891715155666916759634753028320434743478907993572788754127763041774752843491869508622613198703140773291196016437155071580277758483189347601902332984686240989756710238252446451105201946329469401767572376110268354118272017137211129095988743893508562023271753052676156903378568219676091889701616295769842701076894495238597619000208524611066059283269226587727096344870418842342965071712464620698502224744364475917136591549425396830772342130669565596877328825097632414427921526514949926588492394271224497192552770676033706420970688139275561663310746822184632226977121490344695573691954883132076996927330172882563525631730154471153519565444663536635018399475970023767297890882617356478383611344767791526330564378488084762748661914968656574741011290713010683488020245209979138229312157458007629271946023043840098142832355641238387202894273597413440055045552891291344349682514817543673638136132341629379589929361327284156863288551811684133721906449944684393051036803079993891575189751257200400930624322252900854590038203185679243443180420966221356045113567676002151063057744934101042395428140559201985688571178632248466548754495205695490237428760608292635109202946679498824977659225937523148712999305496801268710372687574174633715298338833496404229525874763279045123919843468568121962953005194018083114743631689001486211683338804683589937918672669313130237734439713389910318145043368517828010656704709323265949733589133491199818627376634783970073341224934770444767765180534775390091140077694554870998669416112698945431351739473520535575304706189234816302441375823589734651600529193077840702805768782393900839344849076137331215062129868471937764189549028035896562575394033239494783878947603723528142271502544355888582979484764740618423213310284837502203134060908163950950539968351154932433337246180217156596750921764498041071175454426770205214430235638905283502713990882519005663633336410244364541772045652794056616470372581806725557884066968252019919030476285024172135225946072730648495021991837601326064290693974528715722339037693727875468406600217233244745649689821120907632261993183049170130157755983312230958375309503224518075346334721838395709078314020414435087553239689203646224239483430669024389283001520335522916152405710534682035036202037996579830605582541832224037829870037960385468044579405776427864734030620801281185092653200265361061315309489685553823755080434073089187166328334744313560602087658345841241537617482000802126777585298263421676399112182129027850271227022523803903381795796892394819155637405004464920492892367906201300812694323487737253523659608806519295883629109899558467244235286250708616848837131846257857744148118402417991532732951773796370121455554827783961235214443137940902828351274517844058139093550785706658722515427398145181915577855923498352581291161971203493738789533915245690879515366952968679709234000092310817377417388525519533027507950314030075561414083917204398153580440710403150018709820369540582828739871736840994557294932642059607579809415726970288254953663296695995254507132487628487813937683862478962400479651202004256360778822197404224198392074908706833781138384794735864531218962165733287649949291221142953172538780398660126307558582464031574125678937055391718461802402948633992301137606486206419271387187310438216159653275789028447245614611278802047937156361353195029078307458453798953162772176857815822868289851195308957362084750220523635482002779121415414960922877194048277910620003773083629910465156036989896856149957409462443700760982030389990203100607138453315915237435729810514795743917889667378533997725151126533093156870688256768641770844345253972167069692864049219049950565340572632347156997410849709190493150751339481521948251931782677860734655735841221773324949487871879347714034091732874707190382043658737034951010868439536792524939718212824730303155885057261506400204733305240380249176338642617520246942019826392556880430419922251939181626258049449249937529917444905072117976086740088384130599778998952162402880661550116388417178012605446887926704842348283006305526041377417195222185904382071652021029095399048762134056245417305310197485249716369951743247045676044406140020681200412631783868351073742147871085840872192215838658808548052469751259518514619802478644935282569862002174959345858858326721143866913844874224885388532307375860917812871978054295585272936818943877884653951899460484599278687627154315978987590612527218198711791987086124462660023439656139115157483500512409980353729210897235051171677316535467460013362847844815659797467951458871125647775580467693058332777629496573206092689899526356523481784189641390166798821996912828761660109684687429242540697789780195205720811929195914038384265731543991887331569181797046473776413047498503775154648151847095373905965826232014575489201328709806851869960686094986935483650969952617715979620914368653243629212574355234756318725941610968280291319063615980514915044084887592173777794621735101005950990754669426256150623832422364203108145977320835116399519730793407080605658694741856930807448866031016749992590232291668279310952163383248929470609620322226379739654491445705899795695567323029778711201851969725529617510175635360015321700545477223730174210783707395453872068853819555097628315112757143139549543143955819161870790518261619477950789298451046897619616796162310115958241185243500397958086849719573375471631342949274280502724768575698295246987120885553549059066975331439793656261330735784231616183960604667537650555664262933403130578103923158558990190705905242894817545406470897879860071371925570326979735571652175381855617286597179454836326287255303011793731407382950264559533573455188868348684226355772887878046246000342565699947054996954628303279231528524930581074164050513512737154320116465211996962910660255776167144874023719881345539154746495250425198719576910353766320337700195288171399416706534847912138843337242568275994791334146575552411801595876558570764072244349716490966015778871359440029158032054988446189457708668116598548562094346436213775004031274510475292099933438741552913329696052079718097783494437036235417855344807634093490547628731022103485852506660769733349909446590985110246903445330587680737148760384614767112602997380184795590800929050760810787044075645224546465508052342019204453365156477775807506401371083453424032352604690707916742119445458749622099314345637447820689453464673166634419471877875985568541813385941763404241623857036898032442398770042340307080434319921195863379307161372660280821583731923627747112450998884415107362814771670822898020595835777338384853426585326707619835073273085634460152541699030139434066854533430688042316306847759617969056003703783116747754312770067295679689844653254901475618410941192277780778481673734066389806738595192392308216466584092179673401584882850694438647226653609101324079292543512097333689809646832877105859655931368707977745481869471289562080939357893150298101946930150254954933563086747549421972188615254920501713828160275513887319766370881738045296719788760954026232956712384815624943455406774705343539508573750916354824236720894981237895461903382410712867169959080532767740149434830648832483603144200028599027235756598979981820599359913971620152819529399378733445680309093003923395719821168059742314766742136760450289829533462642803751200934896773648656630098621265019263864649500682721205530513258333012440491367675785838085624654728359547577718275988086135568301745753318056017308454480416356151966238873145036723928469017191434459822486277681784673048755682512077724449888796638627783888866025232823510702500278657877905244991663409417112860792993518034981259907946449123663172203502423894902459526783207868904367176865810960735666858596685176029563851556537472352581515861174184278218150556409179592479805770620296336192473915937592125186845460536868909220744743374997307406055070045507388040547562311250189369080727119835984811533583884437258612294517151676901464959854710825656734154444465597261678250384267736871279506242483209305221148388761378541244029432406143843764587009001940706646998368253117803166576785155146872830883690603935581754524879903899827957417405727219916190433921025022964867375639913962288865960601816396445395400824409048262634019726096610296187185246821073831135531363898412123846748760868808361274277314998660385587883971379599614944291431668867339803097519744906159603074630224633246576020763505149174653697477084593311877513785783273462415976071743182415944014256679270658691351027988686856909980025594563188272218987602292478724886928001144962527258988371960306783504914237861471400746327060327412191953218045575555111251377204002246990597792515966951474361409765867058871920777976634686287054961556199798693780629489206128883730161301600890866998649932941463894285006725135275004726389507894915212569659946912530302192669276179478598448363263934791316537195163817195904569676938546700776078665418734285496065653102876451211467239245121545140107504694852454609672442098446767106869738633289208696372425125684214443796647359391663446955600125361980404004096058573527082975342761818801258290220873662151481040031577518431719530517125999072014980128991175879273057018379783714159125140357799539843517963908242612998625380484416655274494810098333214891039072091025341708229832487162813659183673692087741663668103618753684456470033982321981111185684282605010666597485045222281179313284805402576778914501617505881805810694885607005648209690370043793547804048042153937190812848618080755833422984586273879873132690330281511247517345928640390009520196439787038803894765678019670245792461460170200398521481117680120141968258659437701989592270669983506276957246818209665641271308007866982948897845121223481350313581850065358286972225202218486909133373790695655354273114413089296241439046901450892954797312841519966209791635669705350195377923829588478810126154681282515165329071590041642203965973386522013551927698653192827262175964652698522859531529799653881748397486238984174336645361503916142884656739290458101478395414218389891084741830266001845892361578521026273923335824873173476542791063628830370010074116812294617538983639631606244452870275042267454054606067483471412955858758473102723470765467406448727857769725122042414124113537184026463181570336744633352041298713449514122324222055981854058823444231807334624016334790478341781903472302517071429720120869639351784565330599876349678784198817630050322854847856834952089678360809337997394346978144969934329965047850730639840405640606541955408529952176279498862300121229215425874871748466010595838015215791009175267597045606699170034889562833028943523868141026437964936317596285699432750136861067200165798484638017024534793775075235792601660006180887276743519766623617840948673392428372087093989511056478353179622077005503103987703321819740910981515443601281011172012007343912427687735739914713018527609840617469606897148443145795573300360654376338549407921678860535259512807125453054755415303562920887295960622954972161983893927434772585906728656081373663099858786966879872654456650566988992819242888526990664844688340392944515296179239173125565309756146947329320419575443162310405236084962734292686229923706260635006977723745649509301795917026896333152362870121416811750917502877780575215695454420829881379457454162557916156463267619211454573794434089555862509967197397081951119680112823341765606605643960856725336915053543246737773093251202864027105138200415876303458035224434005480735809950657079783312649479443918833680511390211014879737043125341432701711756242103501642149051921845499277243463964686773333184617194516016354390610141373328192688735199511030474986639140674699153784011486303469441229974815786751767951935165472012812761027475176687165103605242232624046644215186505465084823661279858924452599342500511207811607223450036667385535098260440170015426327846701910550239843050893193939682006869641512146769958189207363337570051715913889913915819097861784783651244958267152658959684750277757686244956305777382006974681709523325635149215542793305408053200167267229737883652701354651308705512786021489662645049843541495662749682965484550799687730134873767765887200091142744374693628835401306604913440621149623645654539784721087762029194392012507314058019197767635779697974378405268485454018811280072692206375040649634085483815203870959274266352518408410471303861961701117672536135858064877654316805515695447023349700653709078694076382935718826617125194634947499379265855524965052173808895956404669173209009048307180219554839853073026923037241034863871185916553644671519674632515867363479661627475761286368109903662262227981705752545468100814993673535813040830430677924427661279809493752246385574142471134148351490266694565625959172584545721628873876687422108468950997355269807961374898318768721483347299806878553729012175444778082401885961878670837883129531351611672386079804708108477703207422729933623729075836391492710191982415355769798394944235026992597759386211803472545471163980729904102209658887793624240875540045365752262314460622973504600418112541191097244288835958377102679429633047330300991334088846280219549374826101446819820208682110255644923474986913658982515946913885829083576011643734507802866836932664081456059745664644578859270399229748500257900512460991451169549410664601489615642370433071113051249036704297983393028767820336206679110710987948136336867081466777842571890659128423951803060411448834789892724131064788055550661978738184971438884912502865017055629390467859030450451351610336835126960406046073643176684586383375291449350254682887581451735420632234008432913068984975954800205341382006345324947134025310033687726040898760271773375718297837026299295500631065589601549508688892906215973321725473166861125899762553841012256123847661919133860129871706719638903309385984118917298725868187476497185703670172322139698254127915337453888599425864920948000484940766869952519828508616944170544406838673179871486469150592310635811109529772963709459411000076015850222888793326874665090554231644392234547375958951605824999925387777679561393003273233192930688370348878687867564055773205919350452132576828505839263982266172515795619312954864160357589511505524173564128936585067309192635584355915477249944761698514646614755858425197894565196286759243146516619090604061248934543904233067815661374986088447386795932835219229337282702586838103241501274561867844709948776480786916556586605854549966365769596192293377799121976690155838206350006373034890533363385178758261326484747269731906240594692788218525960101448612888237457833486505762819384806796300552831081166762573591613912811344387660541809195187458368388490733477068554410270296756959565301130003287923218466513860194105908873592213289731407135772568952110218256623537870878718350043540607080026543243282136376840527982344371426065280127556453490170164867138245119916219240704079177348959415381362930254243183499630715858562378093197432084906508733553533093388372228649692957566701903497527364627069413225892504635353112899388027345554992733898255610734263295273426477863930273617583773568471340334292964547542510314277487152915932680688068730884823498686453341856730923979735654548261072293623256605324818337955710785284337005146762515904688123864021253321583960529972002911228087272262186778390910903397162892199200263192133080338954673929610026946168671128933965354310129624492407932750547050621439695277479597413535565452282709686155431130281394913165448764158929765166834755012053080221883035795670662057438635698324657166431084515766099951274880974621593290677206318369591588320273876162810105210547771384538746963636896931312366840569473969895884008607178775989971998351604777005536852869873227962699537373050396638131033139751751170284157990428032899774851251082027809062858761799975426663679578839135366557439882675679649131948429726673188052029740263653123460339054689136838546176312827533932209420566685876575888635540099240772810791587918967281938483878661586723790496295399036617579867126703738921944596807149790614754586196341059285222236150506065525978957539953295878446012201097248186102724483914743934318355621395733990547135084336657339099059407398480299961855049775355028187938511971157495658756700212757643871408457312321963699979296209358519209531358651063541932008911427936705225561478034655855485939231013035875865027964848508481884297447318300992730426515958868246308620363050737165351293433115134286289837589584925321361973601163543113509999135094751673346135442204368263299452454310323454757685536819874823119533910032893748143978476726263776204393461448750573247615870117577883555384263352767622413116573875902770172410921101430178454354099872746201324276933604474976540597381003644713724537765159773719475451768807157665339649847793672650725284868861391807897490148074217004306454159483672560832879289439081030389563572177941852495716346327636920897982316966555104190085078294566393902426317280412142303544195142078607842712482063375811038050935355850479252499232417015158852364996956727221802367309350183987834245823658538815442599401284027690385322548991192592826672718787231408060506756081132408960152663950807792879342267062472719309437684648407574472116686994209453648187410485056599795987829830774699824714018555718247059148958530048222120895235589145973814964070479939856189528044301792989271815594532585813601146654099663060094535647114794821241613710538024474063173011523656473598140532247158793980959182234042019217395017558791150867841727871908280560760442624831917955229053829261605838031803666950562782533511094014743852724016511512911548623985029270704971982209370577451828081204693494789894573668456064007875258860818608462114134344515438033263112264211702515808208662101176143333713618146450172660697088909900321437531729631770118681823164555944294870393176634793389469516281964588008921057792976526653218798565969573697946752446279010798831664521722407257839424178230088778113113584350212546127679322396102052701743622169915609482210981847147537637735887541704883185706824065159559260434507987912913061862722718703823793121610554996275596473275361170450897484991796050349133253193377811711653097867912451480275898060963813414235851855833544155998936383003963246830537326973868756324061087689562352066893488841553781122412301334768080681627942657038462028959757861582769705205753975670980410923128670094956242379483881176889727052833260052031410701865793766972999155680706611576840846658750355557295240881059166762045463245940837739818913111937389349616452258949703461276057426136007410319945189225480783223260259611940196456977989881358416026399133143851485951065358103379540560893990676035450672859955259782130425067102811169492584422326481035570599333880509885843038324546493822853877185501633830027637971794647296972572915891348860253612037138999177013996502644745354711704646775562048181154426293614245033173527945506215058768559700259333766229006792304452712383074300095332872640718117878129259121144954090163570432630846205215631175717236959963935181136642666301348566122622123067150717600110959778813087054182077927289183511573673759149840786610151443934698852673891014220364769472447073735063489802833177466429469112386173018245755393889976693421633496020160001595232232203180076047331825105800418936319364263741233418315646735387552741857916767501466187631228726232881351867756525138853906018707536470945563840362264231885197896418117131867238456712203565152348812244361593428740304134867735321811819902715044929174874929478999565979053641006361255936387799558834652786022712898629409984747973771810405725532836581006546932720926454705632821154823448194571949274059103657298955274789168307997233246851244982110777822911574489821576314219863411916909225917205524274583930951138397879455096892119149788591483062602592927816240353535287891262743476927085579131469934957728333693282794246019761712442173457041180703606935383311082169365712461939012988069516169577373750958075347753649956253168713715988097010116908840606241889051251268375144991992235540271548589084929287984109019902680724531354118236183284112277646749721578109018233467652228530446447830752192532637401788915162782395452387174324534013314357984596018306876127611240500058858471902886912243847062249769408858908944125621923845559610015637408181599143103138905169066615750463875487132713521969428109687094641197709857727460392278718772703074005599498995698079155010116003327238942767828012247886204242469067297444997688939531719882876634178310197725368059359509027511153133070029303775940268440940425278694985780051029458388290972889103225828655097877735835528963078061056500324186090193431288734811541858150785477547767191373334052546673262082889241224522008182379425708473233805427402387267805589497452778417695884171848717728694354567496218627402389790527737356825580675199884207810921672437004403040211686781293209407493566897056674109543237560127577227632604306341477697127204698220993845792820758356270031652071851807098721761793828041719094063460382717169627058752088677166063185447995163135878922820842929462559696133915980075775230865344306520986474462627739440318332191660179666963669793106215622674310772371651238807721719045791615251200535621533158886739692271517460275064663324914722755692248335026428947278619221549125961757601034943516169147281435836658569689241022672244233420349044284072342032381114487780302367080031681736759216953926514536204738446498335141189850155944836838672912963412657298461535363931912144092092770339678591471254562096284329384659713585395385809786837960810524729740762783953533109171559869015037801011194947370888999435853549250418108259715114608504101680638534235591139571442373100862189429616198855196576630452384606250447550748793969444597710188405632614116065335976734111765074581056892785933248802057325220744226005968579874299366553402763652773016161299872674934143857346336636171297464865479681818374762046844162967658306815177476889640798268825715139290617474838225404130016967686778045087638922218764919013870349088921117377674975493937660285826399772337532726800724803068452327353121859761026192127553208916283864371496467604251883980698919899532866445763824290943394689457239556327263784464666623212320393024283164847323102855798491374335691855811033260238767755429454846918781543101814167047120361818263202266139788880601303616653008514610716592412533144477689657604423865202528774563757448819905519979974447271329529612419841656698929774958909538335639583059560466052696275420988627053958124112894729549555305571649325754200857027185742984392635229648657325811465596484831934612398897129141440117870119933105324167576388149731439697575953953114229646257069235308059294855739709357403398033528586612856942130434603283565477702658723038583549395789098172487734840466103529449384929183582004459462931784675683649152920843057948528030562791257689904735678774210075768460058350537126211575944700746080031205967180052161515533661367255777213891479410239109125435494829762541244806833187964358112029585573549243153012413992030864819162147778442070654601740328304927502424936930176976422178298145178111822098828780187763471809830928236518107087924087303569368161527181987087225835899442981741902667692773456944133974450364479970468617052325193520902430607340859603882658542373683724845288235146826301419954938503838088482591867245797940300275619147246999870834806062228417553401738927266595264693208526306235191486422328066488007676800275611274188967042358881650905670860459761656451665755117052545552553064057957998444222116961691046727216014314573389986141955356397294905932188448063007465662783411179919182728119951016504687886382032914805987215541597398836799409905913228044221814943960391749089505521860580832342993510864811537611377188904218267487737666317520973119074606923133237269693439422224122249849320388512201038288858855259813449703919389075455922353130263455457065637573767612427589727255580740796651617536096470529797336913823558125476496226417716322085599851865280426342843632505731755803494446675175402543041484899823777296327393000109395144069054093445421670350670820744415445804478869833040757528941125755184482948197299864961303868281142592381414244518837682742734996580761374846970970355998606883744326746030694293404676411575155819354444891562288348070012205775784343523863016716645446976834457016479712820777158592551724593393002465286755524251496479135629224149385449069260894738698315222988990444884272244156968822143779013489454404926965519698382503417438782917564796387936683129880901503660153485658255598542975179818456783658977393634018273568359884647571307039087117300532356369385543135715302332295807030136213247587436608411376517175131521081925318981213240288629934555010160886373605051785420091382938013612632734964167007565025728110920966311309761150170649509070795336303181809431815467771207067205440800945572449680211739751689955890456989727816876143433671304720126460573509030905106938498009376398766294023603641032250517278892779360294640706088642568861030175202473866820610401533296102748407949339860586430314236333037125722161767817543970239355899311882848961989366893065309535510474803151665144611347418718198301380749895894489825754962595431694323711592675233307848517882786895825989015928282300068466828037865170128934944112268352071273858695710593210947247525869397332211414355341603823642699069473270837587234635256108421101590649697029449613106168658956742659232763771262833757193658961320883305784247851056176853755685002064097495757477209922495740452307103591666283710382503862253553925605050021326959362579132992474363381715247186172292758592755037792486486120468134459093811186551889902913883372764900681875582985162496641035845690412117833297297294628502383262162838823018693641217390867585543256192451079660284384262618292935444504417612312929010472153078860422533908681134062829623707120459085826546000879935190856766116390336562285369981211817431828101876698685318895957625715364971985556938110988770786047668788741779925554353238423391538682446811633470483365369444130962215615581836395027984542510666500593422851585631828458419392589208980052514102346399634097500185064174011453534027996955864304829120303626912084659754641964921543057553203355328689695355162137324292219702281588940203160126533055506853500591147667405957253720165425326333632170128805443110475032455618003995661232641018630369859457880035413246541698233802206237149826193198725576215236542627484225813064235205215275383618440867038594231554523583044154287867114833872621768334446465591937807638685415386413388371665910285887783510350547672707467946806169771032250932624396247785535777752986668336238227120553663998107591971429935135912853553934724901878297726274330995524298283220638626080171686128412951052747869225709262425429231842774727862264438384668576376431745234437525712845074336756535559087549110101922615532257019085712649490813155998035513435060754586509982313960303198469089128650556731684772150100785189302627592539655756997630197702660821564964775938762973915771075277111702571877334152538907486340071971765275752066209270468660338995873870301961401291363502586578820787128214258868011157424565204025299806143834124121338462796005996155643896138717106718540013415002409908909512408965749769488530228763036539179474374369436026351840466405676578000394651747679034581563208596443060148217570760886019873072944181787167375496307173366206913234174066725824790570054449350389157871089134069032178431350265553154186488821244873023970766775799797782023999950793512220262294300174660315389659596999873427652055860578142428862287006827927765937063933521311003886003001582693748180458049934297782238044786253933332058220056175307536007991795767588842115229949890583363576953486653953910135639503229963364980945755744721523142953756243221035969994041767157077600614627209121554444076589400174370541804053750694709213340194138793684840735534774817180933952555319822902606870527188424404497564198637635720116635513313871753284726482151307916144099628584450642974807667319243845787430935195898823311805351672381577369436450732290248091069618736981907602603004343078562376840795795826120743859154756447841258637097721659545484215899786720045303349460579869312204514531405790417363024565170452634357185567525898900103800781705835951198034012969266394707413406734945832741368899326201177409110223489759916327983787323902303351300280479965998988277781993020251732068326044282349907812020113462278575839831746861750401463204263924511615637318788998867937395664356907701493528159186648205129412473794200348333817896149165758017413712555292637200719183397971893855308947986105085536535729879532448413222802091455529160380826409754972075117604067214090915537646508825065908806866688916217880541655425236675787486173661983641905379316050818294278891934987220282022185720250246508112804467273664022030915720998486227604181702604803249070203320435118032420952816438607927974673356667010131504551236301982751900002729651151781461794182142239372584556776435496067001326730759557757229158213798471712454942165221002172972054766859293566549598717131930641334958060899166675887398721762867672297511985806635659047681319243224412754203601407920365768369869019762508853799518827778511687007529918279495106323523798152917488404607559708211743942000556469540270575570355723911036512778935708826772446400637675647238754141130634824616276832320783640365501874688432703940573376207529679615256690081832981427483739938512841435092848728358610579630108905668081426885292927094685278921008309576937175926689786088811293868423107913060353145403594226052037634929845916285550375551878051025867777443378171080387648198115779922076001587148296166875803031358019924134130950563896970133284692318145643543277201079857252565360765194475812985034728580624785195565429390956452162854807170320194236686580333098864986859239460715029167629619839717947618608862540247357528319948195186060974651525849080606901256760823055768477440935391831736361160742522724657210212308728732164800049780785769396482321698428604041501899713050952322271831534441895623248251563074286089182149131085143643284894277961923986366304081461143361287992269053031866648511794090771748393171368224710159117567384687541267133395445641789406951194247289423857038961946290641794219716008038659775941711000534189547260978636727084036426143566455310237255208477338283997841820192792088563714913901631719977343931753209798368379542419318047622420907980649551083400320788635848867688684131457148210352572603311349942671930848235811791051207620948619460567695466829279694584324277988720349305893133075691965669102072369146482535668681319355114092065632263035159573545068911433913559939729940375840177850912450597224599017301374626284896899654505326161240061292265479368868321569221462090059026350644467837308509533411877486876494521443297666130865228286684472736832381786954781271673041051988484085527852264545831716966787305259730944943880907135299177161117910670461236395792425318130193004198921191936703804210541728245145484595300307882178145772432508029026417006687495462865932754186762473919389797050139656918984554325946775330160954957726817657636101994886885108707777274635578769836668139920891222832294829246489871977229779596717098028869462718261671097036976731281289369577576774431628605973987608744051095558354742750855555725828708324409475774917515102222350902642897233445446269034567939825292777312760655462789460405120534207100348823670270048218016345566177782836434530450255569552021511286655044655277646912792372782130168501183240439900683886527955237945313139207501352588322920216319428352004197489172371181052090313007420820386506093266692018591349332368307828532409038417791785004598029079137494211394064435507660215755673863558132868488640074422285283914222873087634158606386826177373301054105757221904032137590065220845253647950870493175069892443489244261084982517468741859849978884554249154574888366205297158993623530561889888156898191052725839381605425878520067860103727932228672165123551210991806288343744729959567421644606476663348330922526511741946090772082433176812223143355574351013476827873731204780451932793514462870539039152116956660120891811203671237065246863770230601971433881494211272531909204391302936924472018759978281145525628588092327563263926928241013698203279925024946721284124569244629006165929809623352170823762006595294979509614245219230499247459730949174403225832501777299309856459328329932407714856677386760810298174584950892091929015217320423161892173356905416546283823268879505907835412377534430608155118038889951730513490382407966067434066774724656351441185678243017980422118058514519204141995759097580650198548252774665091651386260082133579410460960073596442200228704556760299860441059989996236015234897278993519282747828241589001267527744923832614876283633658749495423930163846446731983957080918349947380604628841290201930165581437031395429548619427372119788637278661181163917596722109300064561088578562031789157554896827516911884606135506225315472528501958163992904600336534308648569604630221558253807983386172770951013879772905650721051581635295509062533781507990039712944873457858424757513611537443098406464098602863086316697970826014244570398106939912548371306268959890014240851897024834844393850108236857977476745421224404887490216296611586165787934761263016983987801899822859778014428223418031964356863645775349037244269442616537539031008734202625879220846960955952864669769890155834449694394440619071017458430774202389530161410687712151109006987937312953125735670802027895320283016633998200175890711299948376435579704177168547020977242939134651244919448962447279003832126900051136292929690193834084986800861096586729996444769608514553831688335929971356994353067043448787220871441611389564385446151865258643358657968285025244697419395969975172688393354728928795315508388304252355988812026373660721565171821577871293914225511062402190536042498565716910731672232087773015385224692297239980747772742043448282507195438847134740505537683848158968455860137163614961570342053809322172281063658894076842829374697745984852267632029197521664998467477467549923117015109159408772683040418649686852153551935633426763809657066757870056068285753341830540056684666845638648915209124822649265465501664269875883621364170855405293154965488956757257368005308861821551060824855977137827840829436228374929357140823857063596545709644450021323367684939622086012530149879717927384698580420551262094762399096219907400742855647504110816770966788047125195770106646051178098142476179292793228513885511499309682907454124582377846526382974946801989397173606244347966738710925049764662797655542779168239134389364324701048466358521584246661982990324864539080671741764825683541273681173701031612483581704029541199943357224401180700915676726307062406810892323224681007035807225491209628793981066788837577611555029576819037015100827518149325030859365912559721395004483280816442609610764313971514501617475326767203138920227709348706313750585967096088184896578329118675494915312593944771135441937374877739980532823412895808832320124012995113575449383688798651623908715737282884108012478372363139382148899946463243870813841311541047936717434708568535945203011167774058588317444900770723620222797778633311418094136848098519852108315310069191523910305204172017312151917128286249618936553562495352425153841649484809046039866177503718423905751559412579451107305006031230758633492282664562118163778717090894814172777408373647278566668712107311794574435284171456896173549277997829321537585403603687258941087165315522428688758489145802240651207221343815755313614466579951238900425001465309198020149041565555336073322526281539843054166870991472185017514177171484349881608177901436659606878415039968680257154713412841204202088189180297823998899178205159107652004701636931884620617488515536469736741134951544496829582626818005596155477297989839983990395601713279219892443089399709503966996624462457196449076667650965642482882178176873052351962424363378855136915187947268773994900003703407400784907069117912566902123199238391807931412673922683270808160074352571649698894718094308056252003381520050341507345007274349057526747194909789042924528134978667217434864142055296741163075814273070475528282705872185240772227198209303151579175054390241724561941711026166429163467846266580892201831849510663980978009091372692884580860634064388119559972160082586423332576646586690773869660156189036960678125644579816575927207510895401577620334381777754640591964228362576578235184202528102405514351061438911049213605775725803838254089816278594015854054713069749982649257263641024514148223875892922937481140869171135730872500281973635690513364714904066930557869526975924854265474217705905527387732942999743677253481321671063329369805379498619365895710697288171263322415819212445903680044672937537394857218671655951429367479860835336071592882848814270757530112480241519138162921101056788492021675400172436400078817050467477279189092264774782415422955162368360933299899112537721198188198833832844558633600474986969352509524002395202954442784017220036097515088321910447152738061001414800956632688370129555533686758767641368732218222986725754229131225618261140954038464913601579043894002182086416125366222358769906359495177924853456445189131604375306732495012612858544489016777132577468293135943610837685766846270211181246364604279515684252905322833183284065744589957195220139963590865288511195199598075657434513408140789440263786489512554078478886401139386895841231288531168316634564942296542960328767040537955269890948076323415416880047683810656137971274316280727823610189506552559741696587164008268491556491035251681341251624595967967354766119446745263736364744941448421549609207229376963590996501694751027105151177309230170792254006321814619867914587344009984983724893465391881987323670427924627192687859574358747346662633120208468720308210510367283140260011168829390802427414958230193340349352187763720730462223599637845374944976288823558503746855955940974777146583283505429971997313396756522642907664108449408645772345193432104923947043160131417467035568581954717764628568222022187398170816194559201115758568657509213615621710269831978730073755410481512546808087509950357856302669156017803379463692405241221163884220783555356360877774603041653315879122178655443270123180893453622909422179865762682240575498598177274516427182767555549569830044423379472514804171369589123100924205713005834435786792167392058079576580156339133087575334603815339306143253910707784209335509741302744511048196343581785042714637311902035500140834892179260559789524940054018519278863782351620022400387808626587107322600687191271506422264003337019371734937991178292901653807912460072296833976303975994640298590084897857530792802394310925051570572979044484301669480515260329178618489703294372646301580503982608531349404952869608220386383453643653401309985925374384435123415806102724267539748713088412553217492332155010899988099823288514583996373141989174390160949304324649767072437382608818321402899070427900556826132828673796841183001236189632213160714228197636139672497077865623573504590214502502046361924536891172695677644232728404626358505826047779401925342812429899234487366611805200467575502609425142307600865328170656207582255425942744134624794535935298124972453162810717357276520179076864739951999345675053001449960031581512690624424544552163739725407545054503378520702462238421302208612193627581584917872489814200218504628397891310399597576014760663897898961457308007435451993656259831457208072346627414768765474373451153441590469405155075237203471077276615319146536347314300816406700201880943462689080833119502265360625539139007954681768662876169049718176536575396874450131937637406247399908969249379617923193091271391622874302360304025140695540827705242802728730828153521795200975500159254165753968166563502931841792149521497274362395717405724325469463338592861917305482082726209274195021296743243563659455206115725732803840151072640645051466805586169825694556444952468244843314806539139152619374068456876487760284070373792018813801019953281642966978524342153960916255015483194470584505570140693667560173593293446166713665007639203396964299278280578126977180660933945618968126269674743883995568357667045661960413307716284809306238803360242918181720987862318643906482353012451956800926598137142839560114335922741810964738036525047469203539652070939138074930858451929646183611051088503297612048628160871552406991462661807941073110464024296250992405494933764839530290371304926294037173010822940895938275314568717528525454965631146613218430081489251096038320795025846812774093781832057506559833846346345852955215133889828017253928941508962332163190199792193682001694501858431458944386022731158771183115388063881258441668752003741185691869348212656621138049103454617807639924290686982535269821716919614892106720521003233260113437654317559472336927348949961640993456142315510686558153539187611290730698146413418417593554985442557708875147925846107722601649588287517426401752944604726764333670617548330430329871413603873833870696131443628969937724081130484639746178089435918600846259351494718498908296349163363480484981818660066531810840413171659118982118277133623229175692759904335735368500310251986732278497506071464867666430384238433558061728674859672575856065931753877342682802726704698585174122341752103975099522596064690541171102939580735838412070164726709156343983318206877044068955647731532546284863790337004638664962397580619772446919339487915460853607687014013369475440483076182764574641683720999672540103916522898812177721808870219156111112766724636873628490179573947152137495840811848346278157763634379533548023387595947121887236846562453905578271654070090071491748476006035086235404946048474226430439097857313156983729357355990811531476577105624016474362782685399184720800342802435682531256227447551986593875956349648847565458776071606505851871699664594730670738944149610126591838369039798901000153853947427578982162928615280293921745942398348747327972590862724215726194444202063441713037486260002990856891535379328401362785384164462814016565356468159271978539489671701327947090274949264895247143633208395088253543070303849500821171774304140115632914583237624870089147922362841690023743081083978757777369467585147714582020452465804037675322210058460331205789582407970225619647220013574660231050605990173405373850353682865543600370466703781127905785164789884734103341128724604906485967466551612286129064214144988625424730276283516572946392139632194904068858145044570553472060531310043895318449916988288890136160038714635973930903824483740531437929769966014028008056650680792658470193005058857289350184124174742947910650114631897897733303331834159186578790634437271707552025131500743812968864032189322047398779028469498827448541763580868083549704869686374057370080303229285170040869841525278726472897918719466831809279134110258147304398631167915941372841816512321280584663782873763174252270339160725550309850339410997256955335705682928353953404033201299772933302329502595084012765887567534828625101480866088942143934991980716406691940472454136824172335470807440028301628453172563903459364089189837486475459655773913611202710363891662177300495385276675393561214976048932434481942892391613275396082913227772453770926070847908781001894477191612232578842939283753809251794861865811898171630997340986561427864852746338478419099812825513404059627896423778859195837483109285986789297158813567065404546138375578763333440440643415499837748664962050038029790921474366386532635516473695624208272460975446694178524796021394630970108255168921379368593904488172306878879238964366535940423948353614812660304748187216939456043432687500010162233693201094188798905713660043234986983923002138361768010497992674915577826647898085062808943746584618160303715308108488798853018861402683119229695652622581519063929114874410083191003848357044710084937357132000126569794414544160469542072517869721770690297113588712131983432005898973089090825604301801066750563090222326183659333761328281915874572341158200680688597529440745466478066003217078303828500399851202328416734797447863817545016807019736482672273432359898131972110304293321574477695742705017360418509559460498322294811430739011205480719007864521323788592519468870761296072015603074816023169082844622546917306141576464669157431013877530526545932336805027593921415444968896417113771254940563078166452621025915144001219153122686856269903572357702252366090189881722421471530248767344303748568184234334739439485224331457477242314990398179879999778492730613449769608122457464281068301663070145244794718682050944869666375525111594304677288400125870334562284546116974791333468631401319353015212555569520149963410279991821117699012881957133781305516401423051361928940661766661284348012471126666983383535547252644442826096530372877620565850129999394224950497239390108112936527522004836350885003943984336779970740954888196234465296377604403354584605488021866966121716283773461619819954626817514986782194970770350405283135386126824251324318444496997578127409778304532165848019789178601143121476353687390164519497183296126510372529561767493239745076543720473683243809534576748978113610836349073963860441327806258087255447204660265173374337940067216612501981978461473203603423605808592029526257372910136276182089074651954466368005607623006192263650642904875173762019887372487660568280868529258748358196716420275465520038892660023280303907254876155879600138332871870173979532227712356562672088295743815946596104890440539043378611438831003186387142292439784468318462899365882997183332902295878526339021727204482011129974849376669005858115485037246815801620224749241792668910426901038248786615501239595418767617181210828198407734522925994254586116848196359941569538612784649663103018277778491796855283454710482224028956836851954116367866880673136525065561762014238489996846245599356656739796313067625944378856147429033774751677231575831084660736300597401468644516751982504016510570573729981026756346785968515680032554296790887887000345930081833111140211998569331989126978745359648589203493804603862570739992770644394461568845617648191504599691504004067436664301232980459902038895127941434191489549364310800702184876326947289977110189426104529716822930325658546968029532846390040832536767778517874991501139965558863998596206909583242723424686691226272422040668900313846741495756282590380677604347124098346606658117223854655666528068175633932554499244019509697595179803495526248908353007748330133278685126317788472738812852310504245521951300902126908334360505783882706186537088253147922203033638440376971961470845053296505308168390603123236645701663692245627680589189759712743331727032351280026191261176463025688727305915822067391917881309529972319383690907054615768822774149739090803132497602002232935277715449395796238840294039742664938256368806204264613481643136559774059634234586768347922267931510546870560177174492813338465764337830713921973206590805535279153665802702894390155219839298483969246291747729051223866398563960955021582255080581849131885966833859690299482153189918517318907189799498729155005308538611661151957808566690889204133927831407888587611178178068738926992968277480022165858380776622110585582480320830013122423650847482368615535118244383319507722197283925790367138091658971497970915239242899923299066517733779877997234626002948612605986283994823143915836524223574280993478246227755977808502042963437965843644016280120838505458123040473851021749233056444137412229952982334786577626900692952865737766619116401857506546302279067159924754947822941933108044689617271042110264555233035424687860008442330062756897701608075089781691271966570062436696787247166432039174192792578705161145431766630465110244184383685210106113272419709013168131357729790400212776157455127199099622470899622775199816460669536586840590303251302209795437964416689461540760884169601116775547392173379081560892438361994295186195311919698278146882470100635024522812212009487091631592513375499596081509083715373898848453832465085988370547887212171017464528288694867578685919451143766759021534842982687260336656570665229201120676104489843321821547057628109285033812216345040223249967219652405319431280167035492353572944836013433189803581707370169502664601775521014123605912908441512627386375794356917380024630704088752793995004811246209847558175567962224158851767554003301783987842845728815023142343808790192219421000408272723531293790851769810501676928658452881286036752897338930813322614899852743029242454157065959573050412828784945131981547438491526080171070357536519987701183663509357468685855955732648643973947167835084758998441808792310621302496936681852996153187416464348766498754182104185458752393901996699176053787369252893912233529139667434706088828668419684517822001085208613800645799106837250262632594039758635978010589160987372443028440928102805146886476752297473223771077236045132689933562199131951003301817421025305218276839701911647827756524917256664761313774030241266286794975715096857115744016662010593940991547216047960735724559488407797707391685938002500202388433805914860871562054443408565053872448214331334374958776580207914097152141307492383255235742551878706659988116029959179320315085407929814013586218804652163190382092789582353554593651296103893266824989119409651094033995609075286738139112614841767989061821990505390215367506437149990483085088212771606830433335837147454772777979155679527024644474182032627470192150940536209536696987779760014199389567677961915330174446871874824115602805095897510943248396475946278264732248849064537653467875074875330441595866156199463113380209958056818699286316605534778369319986332203326291765317048285162334340504852063378007767066669028135225298482775967432268000625670371407816489668758484830584974742743814087368358850331199961445259605525830364539924832196239963888228588453513128063735920083894028952233858966993066867975594257165713991488816028936041122818663419727569317002879775501743355694156770119412644087668126976195133504959346232822600695571563420359559885793715625756597916637525342829581443792388455683927195110987575904748425980216404437695885026049526771635909580232254308624013143367786205235653879521909040176683505748001151823399837010840394123727098265255062465382179449904037476609060257677847546180154621806602265218841342418623272809052140035450194027012408440086778690986586614753162709572711535461057735522462533165863192563874059275301931136063926817170689439710135853863025943656556020340592859284395638776227797660329885794879912380952442548927277871018621183588544059065634220776600406889740331457374103281205869600445049401733404235977957735801883824905900001245872592626080347588631795728104532702861585113996200209890854638283918715271324827753778347313354825287241626273499246883353890552258982555840182487614862991233820063478554110434620156612978471568892009276011397990408385293343839862864581986949433200817725389523877567145606509420275253059078512673433134797902642294523313653336974528692643227207585501273460650157369155454505694502179736228274067742281052952343851007522479039823104368318337141330889564144012378564685348549349506953125661046744187895038184430663784304598962414040536831079553635980276632137849358408200436206815072071373010200087457163005871164319394542195989937257170117792534537968358622806547378410445911246868940722249045688717102490307111364807616828498451830086205486840895441888042130304298177122547210268010159568271696390227399131107047292844569838132680830260110232587186631827749124382259939394150750134427405617924227521177887050082045105171483413129581759598881629060120511609329381303165133840130336471218462030419016559999268585962229133696564270402112748139916096219894470184746975301623794734262506191099376259549274325606174898866736305243152225238672098029899729996668576865735272178577086522708362009373567007732663385077397371211832903029358027941792144014246433125021001265422200780478334524975883111114522249711030498548977735829172589633611067929025668998214588786431285765185068926298654642155007924213483283852952889034287450255798142838485225375424388419339140552184634954477203568684545248277859853389648770983120642588385646615947881939113561307306566410028635254813367847603238170503339460519914635236802947611426820489113371062214112534345168186133073556513062542389209593718022598970241903023934052393428541977070242858471669389251163344086664190747805171741054335475693147710057036856526778137042880748496552499040839433949566533784409129883696261060285546713817289034911808074713033544046943488195938494756779704102182110094859292143178714245614466525475875828476374154547469298259742814606875993969961587582364958189551869983266068970123560989630321447837721189515875420532778570689048855885411760779993078565282778953629709086092179830843399995789832565566556556704588572690729866217775190982884126353241306367182849622281568707557728943637196169855080579124642453374377224570058724260721033275441750795912787332821468094346342770861647219562998967818857718075110636512643304131679782797672204706404516453952766995541036020850515475507944059400958826033742313384938020880106358601145864642711541267186658477570703216480240696807465384353743698134226623573366126635847222916173077835630773757472183895344035087304568038232080569965351436662774970754199013965986513390789815729216251769885080279123944181524459954227657468780937159934364940430084593442269746949090199637344204886522193698651917486912532394312187489612796173321933544027809873147188402145151487160380630368340510836981569912057575796887227282444982673879782276487671034019279513599575484633151511553008099786425532171706272520843347754027707278997224559183979880022946993978975552921260968041233994979749551693412068981841587476056756662205882312391633924780434984504249244308455474556140996637566301815989436318731012382914566682256843791757244608589130182972905644522374891249002957301331985696821572273290542344502864206480290598006884537451353513188557662454152000933725004992892433851520269782289374036260416860882630840373996653223975775818281040404453301954219397263355733069994886145869808209814775290138687027361711297807391356876173303871675242631213811032239543060088540763498886907719372298991722353259907776632059346522136831330454813455517289675998919778442841007126593563055378813147284603645236329100060621586274640675540490683983685276055321595518224161560339140492169681986939937159981380918624669831774274717897227256309810811143931235526352836621033882677867311499336384518954625966382699584402186268675011861990784374669397195074948724104827154466913134594450396434316801640908235270621179256405696703978251008392041192663107158029370182644203489103016041362415517692748216854834676640870091174854567574506228886071812861950500627614149747315247789608052134130527778944678204745914578656226519287747742956817655707904465011773961089810431589344735913573747828844695873269559438846760168647041891424260814560019702639376165947986279125341159916252711579311628286084284109164300504363795387977110473074842688840993496589010974884667768389065612525481705182403235942777040132451245836656632764214861064738810067955660932573305726922713879360197740463058227702888037637396460074709299304049469149557567426399931101195571778018547324400325240138377029990473893976773931658441825947245236391039679925695503310017049426524797816199110073550166161693531405317976842275328510487499178347872159047742215316584117006576459966573587893325014817978407418880357358814253209621530450474161910644372878437731424218470743573712000955508693746655235688921388648997493038183462542340003272040002184837670066988733809591190437330704087281903103595064279159492277331964721718944632499537978066724270683654132965988157018730031969780565331669704559133510102135238979139829736219657365768555981175948779677329794408563331626559454221102111786229973114083747682258307437908079507107615615109033143509868999290590930998015408977554466559129193074283677746097010305675162363709777561186932690360036767489066915977522243936591745268918736280338458132968950099332438465376199484083717383094012863647933204829026422573567788673356059318320694597135231659259811624390100517842610771123390609625455248631413337103659572100206374819106874204922708160472565512042025850429097836317570454753224800187698877586582965892826558615896454805438203098444956987929436495803761599576780705182002169101374658298581197684459666124191661813554497852306986366842652996903432851697472141526059435521559065628983153184432876414542699927384995400582899106577474741973442411726352822200372165046394723957917125052764085532343881180459312833589603521245633541501198284919022656148184132904306253015669319331949467427636383735601906336686616267704687557292534530613199272463549291378826888014563436843925180086627401610749973374793597040038583385189859714320571546515241076938777988342009007809302331727091506882120183429710734020960457865229595072706540125039834089401338781024340069469119313976564426632618983536691882413579693191451276408980476523351186923353972593969930992572998668381547851360783844176095532003185768842035913567840984764495260174579251448673121062833887072832958936472419751070270557844463806684065445443221168348553921349484154567199401121106800775351159027241277369987524704434156684345437334151678394673460865202089295357820307194678282263126696308259540969876509739940014233171782199361444572854668771198552628507946239286587118266581597068431770333981982876505110868104051787690507752102727555806725537113251801245001611500386026655769511292153177497548192830133750124003276100134564622196346641323787905695779623586516807721801285999129383924717138121188209734619879001317397464313355831223095551568179440158831047939592328130974604267360587285091258343665240396911112118737836776526665115550114288084697174389774831989387204800729044260854114481174192142658592658338847683371049857428626717756548224095790351944103582118987507288996081938145204727330489022554045487388018331350838194709661333460780477358223844363806016016712205358721047596484451701800092205332494083842353461489502817528086543588728854741618376612300819093278093034369424802180645075877702841899596203734213431793343309017836071662599176102380652068407929476765535072682046550486594498083402954663413103250931261289899565540209946114939692218799131738452998673682437330416238774310221676886703044054082613229959091034280663070119737981519360908002686021776252451151646544471679739761518377913366853731745669782171146590625172356933294886981468394524640913603914100416384977628716133969953947450516978700046352334821366572473746650915203926711561836246622404572194126923427038850452747061381571101815233203146968102039303716779487750184003378803502755936311635400095670979365078475574473693912675711885797549931186693488028789964064640903187237262039223345514964767889255284792617776582995859298982665111323742959387889859074824886558949336698656240116100484013743732268650295942022765680946179234064656310358093832612433652043518414889804812080720157329478820152945525980186411098956503760382036545734468282385712257892248934038729217166961368367004033535854249485165467237417605332653389946779988659358487318415304513055079751224606177845448287247115994281225317941992024291469574977493357403348979295648871428954299845686738299112297394137150136287818450035147666375485055037534973486744210928388083205771383670267162007497986695433895197408714428100888420169414936340682037010049366011813180489792457102392348370294628827215404939056879402609874473918857469821285266676544965320253268436633829928807559475786804027208225395772512901776569578407238284624050924268313897968434201524327047713969787121804386728116436390665365617217044959920063993557244477635029026645221319233642508182121146181786606408504117320641081087823990584896970190101525559125541480959428995358121313343393953243413137705160510349531885314139563936209488381971667052158259645472602966767249275721082625893227766400676036509599355231500618463867254548791414944407096220975634314295756904775900669661223385992085732383476321933082288433629921615360188071311288881695137984548857764080086425018061849573224654524537415364833025064404504983640415659093459254673177932546806822232125706166843742375622402735542812366995822947088911142320768319255755556272752359593955233547331067632779214842064936341958998118580775094897491783384792621085335294633632260921838642971684101044685239235345737902199749638739921212210803431294884564298354604760202897617318076802854087186567074010036629961227593162765897950058445156558449617796273462256892133796204422293857062041975382828318440293929975348116480378726888591680374990384479083786727838959499377345526464440878164834442519294713486693836768060272483482305900176859076690548385989819750319252841578998400829549152757314554612588117207646134282803271319858832484135675646175613383564934256135134541286083973231627783950304120116255300557607570145548018968457182738104479278269128795322930723105449280773144447660105550586659764333247047037451180989535493949694453111365259350774435221621965831873907020217903464427715718788831115586646992522153679805147492852225712724316311126354013424544789922396103797133885872992308452134399917789471937148197651294134856385585100939273222175290445106392956224273420633569138920021479366526862542376780464595918165582677975696823430889074603537499504779335920210549372366321626860344610473206937760148103162230741770805902577357506984095134204951608166806455518800513766609551904031729411915453495576608307944881148212794196779922917842522535306403235055847597874487288959902239472845440842727028986056906005795298249366830668373985850636410995544694149486435041343193095559019809997393408588115343619803767548262463050562231442799024294184795502798573536047297855938852371795235708038744896239294431332200467882264322591631304030957830705270144365290833429407676772126284873061735556386209606474613254589404868475461932674438076422286415296150434120962505403005955647214757954216381066625713446510516345136197890724199342046936489474653333676118206346054414270995634128892608455131596127949648245729501940745206469364265995059706560414064802484066912786101258181717064271232279427799827907427403347224853870625146493541641556808290279717222574864978249121713929850902753543108527851983722808489085721646892155924895107867920601414380841682411336763315276679063075567445062641336978030083186552347646180028191429931563523345853789012145817364695434998060620415839543738862967580671764120599253328266062609132257274454513977345663881597353267814730412437847333287943655304829997734145609238976912981671591438521825711731510038505006895997362289928981035641536906691404872027890087674653898500701790224820844491915766061653243414555145159065537411188782945185315757124097570907233885613614467858815877726830845590424101045366888951777857038868690934320171136457225141012912096376413790813996487479807162623005137503136288987070056092784655589361106709837741756364859020894439963234759211702382278780561813735625589350923975103404759776437130138006542629168108388052608499508637710254275787846614328730311303020109241519284544487150230626211095692102294911801017102315614762530961825794499532326435311038325706062143726325244144794832005828684561308870902821834860323202435523986237590998166400428295996032279073960985386651595146524048425075237874764072855672893021943602176924832242643468955495853212379366206719189117829277478416096667338760311108799131353359851880201874476416761934532005250326831731199873482323018425738543097945018475740049451285402326951770705246471779573910955561025367056492992647711161736840923395528621284569193811636074115281602312942592661222246503208364591401786120030720382262484725841773457715418552857378071456981463942666428986532046025741875460116929718126557172271253068083511793549860361891774696228600627766814935570680095588135522584616484148089838398043325558596888233367044749221704266062826066331559608165038294978952308830449061227016819383434046583748931507457507235865502346654548606083695663445105241307319747379723831211087703323413477908683123440910396101348096812867114638752939914540011397965718313702076671955548495281577918060839922458175437585128548026558418068465759842023143558167527477628063579972361564133495811440796663217101971879110785746429492971428226147746500694160508928303029576312720637695285701296756252901520750641230076837716644079202867541067084511998140083762216616607045042998946968587508146982837328372393751733157349003452980100503198392620684449732428493376237328411601390504274802583377444201970082945754182447934325710167716958533438746337147101202151141135199680793782183360285212127246062248133196068254550090184597874928128545455809270008602271122092900100979740026367673228339208756311900035558513820399606876296313499263973244562738723111249634427474487294867322363008515562084044597259241883320236963743732369656906435659484985378426707326569366539550740660596387094242483135201280001901725514229856590667129551322052732876925956564093906092990728800644859459939154289363750326501710012626708787051966169118836989024496812092808201191892256335157287616917274764482210308384540387628155609580823922670039567535281733809814880871880267549296255848966800859562004221806087551928715157660045753815847732022287079712258142403898961602465742837519359493772557918853547680903869235169007435045716819197965723955318139971686268479402912914655672520799222602204010021790344400757756991932552533396322877777531714668452701300323269589855351387383334425290825393473678604504126692157853568485337174688451673290286246961623377075127366079635084006526438425979036036202577679903702643394229840654085049874864833935474877870000005469988759344454734557477747785612626776977595248451333971096721860524039926537331892174202400756771966131157573258019466048994569557184192845786635774309446219243141494385838502604011580951790743998630450074120884339677678527480456856802057405954804062012381041725960582495478434627037390795038697772814852130110665290630717677165746695668250652879862287413970580096715646061503385552105823031141873302744124480793057179841339338874343658378791238168569278903163392983354008440384310489505409797840700172869996085694335663742424569153416468570622857455083638654337685089946264989105928598075181750652653636275050332933208544510602208230985217936883888495849500759824331489370585843738452286824553077774354230524419373986112150706745872364095836234732919753209517319473695985480394131155921100807261734491522756207746568701733722098401629956089371991162314228061234995524750253647880355445185613521438015888796112487521272613704458152919777556732876684226430171900851407640963768439096994129833646844927125108530751959936555484184874373826978213683961586466464810277548455209603974337117603333286069313286226843335190560431182944941854115593121117084103471572846071245707060165733867237931921457583110831889874473597993073203162195921356627904264975810833548500141778430634430557143859856087314028118545748330504893196973208425370378620892390898944369343016560752122109814241102634031503642361669588084037201620403733048787084334791863294309677600267130399348923732267064456687923401269528769288200631022916562960387684528833921347566983086282350787225670196120962374965634447664706132815548871727804075874315167951771173245377513849149256890612021829202319609030575849398789303591181276130339330321049577481293727472000862324197603059223221677278333639642605033979828594086409519497520300713314574980055567297909701568961156354563026065506636653435809226497915026499592124806219625057703074775484970897544529930943519303679140641753648256706334167906020412251173287662999705833810624746048956112854242702579333306289884772187793854459299199229497644612586603115457599779301932800242432168730225479219094678359405697619408977660356913332623283479125252587175350473862412037217514987581247456490523898132220233804673846779095598498430402116058784018611270844718535214071512787202483928567988829732001158710564486057594126536102360559454387269042467552855298309870099642686685358511152607521450611765947950322512532009609736023689091780401741428102724843434412264483032727760499474531017431461599890623420042130568721010175755104530243265660112515112708274096588054421066673600696913223990518840374062263828927375260548056938820937546820358931098385428999595854271673603812391445291311189229596049719872652199532711709979866719468589357137482752170347041229220425997329326087591559394698501341366143815662717040685574451202616196766756975677556073802713756393800334244882808314719534569016023051428430744890509358432054990989095915231047766636648272444602553297513007721561071052798679245442029982331459831185716146415077847124143515433397230653696793844241316245130798850479164700945560373857257449151985117704952534500781172116731594162114151122393371977186955345659801238857805168980373457927485729236838974622220184713642290099653175852383817105780612233243967176097063806849440971744115046989701153425712145297303989496600915038447785463322914648144686209363124743998438200726871485105257870088626986135856836817706927315479022663214741614455332031532276307148546972345428309306475283959785202059214261137021114162635440410424046868917441691195453545899028171073492232347891859459015966510974713463327591140952330343891855067837349743802434864219460352647871718635706260996907443650058503372898776935295081943017095042515594757990653892266251724811572129286990577247230320911499436860046447153360085200521635186319094540788533285888952608162699110192236747740084907895229431782758733408045054006784486958053896350591603819514773813499294169408100896349223401866005322464994230537569737242655704917766517212534837885527669426327815230545792474661916627070380497272935580605173571087472988844999661092849545192323346231639562421957316157180880980298816718734122777719856245284193582687591661601184822625827723167243442618655644999404536229369635606709903018991270773084500554538904140115757274380663316767837121333078904140884094237984228235717816813514687122775648638168291860471980126889936169539507225954823762752749854003992219877025019403967565405074434239731906718051959901204630734142458565548102873125995713966868178165695089907711416851921204260404032920083356689062404522031954587567208275191852616306296028713301089600222405505975528927500896319745884095531983178875430291032180239538892492750911551582044095999508741115316204949772950188785457657567701195378736437462538971593888160040690387627976108836156811450391680185314603189197634069503004461304622237189087754380018464352273983979483007862774064030813832889896098733961791881685859819175510159348599633549842315158945827364620254312145743962876834218130756936423874199879093910827013960953426124863168813027410413555099300823511240352302392760466783386150574288278577943597784196159294066094204363572659957242058631888758406499385775870763486090125559563734964193982735158141050037533909351277183122384146953769784656248979179271216632080758283674741897573369234818778966672722094340213318977244838886445389321675476178133128557657904314388694266791037092598547008819917906924493652996955447551313154758543247226463873812029923943738860259306642074238650741742280115413945041551387124695088426298011410394113497220718507555835230565167496537830969615352436887220338011722125577260428581016065290095996208537299387903740696179319446006066172310523541158673642440839804714470223331640205155440778203978717055519852816958088790793812226902408439031765834598427886868968884944515058765858524686573058635880140925013435834022985012583212303376699775527573473367448590097084375002604889568086730893561836170305897385253802134010041134194714180988376060527110105651784978910859839650996816437820002502188698319252907634011496229248987576816308213506298306211870231363380667535782899557149354290769947763924975156009602192189577119665406285037883599348261337207790992096542120940756339090320068957707747409458352472439217779463074552908349843636002503299664505929246477955156739180716800150627742447970436475682381687059331417769467430620139759535910800480957662883738321870838002250000408136231811136673817418548813267510126129530932608284008890357650831427635834507733237743797343111701537121003733266732445122199793336088300632781646446757047247175594207373329217118973281953254305401947848704019919875469306191613820033616565109808363614803454788438973016886016199786070096183732636902312921292643288388371327406333177530846086168989240235215835298860651553133093663028484395062917695328446701424158039092496156854600344887288673464527711737378999736085695669555009742930962346404103566688553292228331485593522933341133694039371718657088627817037504339997280146651803333885899849831272590236515332711369521119958424997327888965008425245493055588546494216766270358127479729975716188749721667901296667808613774549661331999793336928453435884766189940386007218132361845275281502569752685799978079929865782112354981851692983196830710118531260066368307596733384870814918678689401181561259423508443896787443041436922951453229104415152549915250642783617781398766049626009080318073043482308804557686038452666912862670855219036729289374752577422854711432352652142348330163785916431151899330373434816840821536531269728490895327941672846258135345888086856579956503928162752793162992858590909099012131016043000696574736332938435784153711493901754861258652089636457364758022560296200526667930554730678505411503038424214063993096068830071262467897542644626149195859877208964011736448364752241286526522195653084027191050219108339887846231876507009399377269716730464311600367738456962172847773696085537043629056014144230715474452960531083337404809507051597887887711264684969479615369879948898167229658573363908207972130110150969887668792773394349410471598646566180838839802667159297416230335110248882005138685974857505539748409254418658685607564025841791825163089481327720123909383078840837097075621427614165664166256011491683594440498970936761117318963351903037502752474733611129456766469708034676698297917430779686135416571371089716416880978301898342074041246816307999660354313563050799042407030106823254825047117762622749520373480332763126681025985284996671344951086645694081157056505769721773646942577707991752057798400735678987950338492046498687766322829302175559042465556614504831554434065542337495589226315485618585609418772111541549643662171365963484989706160085495756317829043574515183628299277048741462633100152716626035057567227275446339951571471156100032762820553774672128513771980813570307986573734971473576532734072485716640742094202213079148037736080927253541504133804681187569364991998119410026894127300343098440750688372997994096823092828612977625073519739457124659284531758824909870712155922500994479437936271611987310175718176753876665162298558460212693132885045722737959498179894423250135164492455446841212626046255182490319810671608593286291567620865727252094469194770647120240789083259751915759678751863606292710040836153452230328712949850461015456338271057522563933503097363649542812246082156274130065856940596254512259845644968779510675200821836824475631274862631040942225907192524932118331050701369520151401163024949534992696593660347020405686337633776740535227394934346526621307361372440217509862846760418575691405273772959088754598314277460169572274712841315914171790155176719164747959657746807688258483952788100810991550390128811163652029237043805325659559668423913348589127458865417087130037975737369280134622470863309468256297657696576906073007572293866977651508208239337967797841807853747138054500411868742669322248925454054870699692168123726272438930836127361664727871244413766818289058905213826725636251891243815242794347519355531870050359011134322180437939404420347585844866047465232536204245897505365731224759536096686224406129586448422289992936884398613521078080876794551724983700751572302231197942674753344157588048532301528034625070717518175404903247315940637784588813963164410598870698212060087294891524802696781071604970685341353299649937968666605276246794599453168879871941056474294285873827001128884167317752236607071289618825852646087645962256291075143486979205074518393916439240916032536147863518710319013849662589422966296243176792612396762337227138791747675190225793428935354896199017578194278179335931617445953606656383328479183929276599550664956419246414410939073025193845769266543073562518501848753318661101709433186275586982354130759977237874514618763798619915239213194693027376457961311319025389707900611143267879431184114654331731229413999141714440692112557692351553864108607369315997200059332897210896725948709188207844989762684900016369975037085951665262647179064358804916319635747613967469800846833393518496194229716812568354350963260118487894802320324929980907244256512327547751318045377354837471483934678449606706639597420505594014051169785051433543512975718645056378506056705948282573527032043729211692823936778938800384893111798803612692679757943258204370483097834330767245671263948496811983672227502834686253091694792560137393558581905011862637938941020858012311507411008563819499711132162697006277413164174643265046541119742383839946155199785815135091450898904916021881529835329391072476635964888570931839951150152464261899852875064220063880289819057237478049250053967674794088948552510222039678107105652547197176293799644881929290813945278681104465774824355194392707504083870966048133148923315167776424239793975257253333819395277170171649364294678205998288595510764683066364502673079733009221244722782082896710310334362091704477936479068458547960025057894409326480472898875116394977990294217548401078805559392070956294433169090005376326638451738659735539086813998489990688603400738333268608326367301889724134823065237538461772025353774079308010610761105860758441564698924093247330175323418325756634998923990525170167671398518768036917919996325611029217193967394740497647491949708699896664336121623543566491311588050025836928884932780346485652143783412329788541515691244730697541979270801821906062246877948964825956846238191776636727043584385143831204755000990738498192321045176128161080825346606587072288868630579455463399796266126933711056372070478783015323433137216886895853073941318209254968574720825263743249514980850426248710112076812592265532298334314338704406418599809686168882562846015692196955407037667442408072124154491105352336271543210069110751888302060900383018323408761739103404655724924506795696772020130152712551548435320319761034711216824631341531856571945572596562810959769167816624927602017451730162101718990805187909380744866155869768548658726340491763168556468951862245247044484524944624425477392543078633062353685541492431770701486153027471751219622092337997860208048746964072106591229189099478643846595943790400597553138859648572757227205664169384270473354984426422262646387823528902013404906297615990225490277781236807718908066732840151863591006792511841852415292908627640735706912751975663156643052849470176372181145986047163317616840595090225495149398348262136323326127701406007469598792938263820629690787080816198649630593701458764794593711959551519171598259837229532287339232066594573475824682563283812165424161601158293292074761500071353580183377324065220772207410140014158536376435281239235322606929941783536168347424299455011190043176120629909511526622059111163417002145534105753448234910435045788758304735920640088482617915123189702950492667572157795153776207479073178713050284167709483437175932506585178385409609370429369273190095809291925239727063852207093762838322568315396083545045235091178044274893925699640559198906839122940440829793397041577438792438102215392339540583550411362176865601288299224357609529812122092637298517565708139921220936946906947150523280774592298642288028266916637320383930917354602390031760181054967523025888820313535145538901637551381616697822505648077006219599428694169527868298874787531402121399984738831197863935778745917724868603126716282680836000276695524329912284402074463735314633853118096022956431527964695939311533104611262529118804884364527166249016929313138436405555280552202159386298250676797384467469971604621173017884650369213820100724823218523043968864072666243434631755499366807253268764657074312960546496574201478885872464234306849180499086878912627432268309834495641930226894641879150828608492985935465320134242791748747149258274784759251839176052615061659766176741020708002221062310735714553065540164456893347643475192817917984706313839149820386854142043657463743859263882791173306390417782189041685572327219536040436595847250344675659380775634961273078051791195319448925976507128794316311941385059929943239178235272587656901074515386241937598423274818219863974315598107660944793943855098571501834275086321598111070888946144810631588219439486221058139749766406334645423878564061388327860462770334526070574259967339212741363648488776186438203956831677247109098115507209884870092804790828862807240145629435713406991467809537984123038953258771447224354824472802121156490226452922692733335055080193645139091235346417682294865812711634148844648713894043838379631155984896408787247929419678960170488282046821676618349982480725938518535627485437100453613753580754759373609844048299825137461498574343204969481539083188652625553013727808553226529682543306103291169157122618809213492987910354512839929731739361687242090137410537944219613792562733725128519880025600656390652668632789404569022836485180615425947249612536895488434695580350377582906839779225346658955052961264027864814426404291414376637711249861338391637503555194796924967641838607628885406042344491779472669851516308534710232888983374460127795782412584491834593928347169265307622825604891699935904426874610143010900260568710375619958091631916687073513312655551709516518099938395244378881797069600830785030680388462621265992578077126077588088003439783461330997259005960318347627815053393335008865242800415285298544430803953337450132071739893495167635276632689512196159730310831957476102749874276257874812488567710957900592750249125921078341287530279005513745247607463393538609590922244331024449820529832353217211837971909166289061093905004026233485856816505273438218546798564259468980299242578914849898031702957320265031428238936771651311428225406800342889510426527237363436327043974713859929557191427410041772166514787864806235786095198757165264350673599768531817026536271897216064812956543255780841609191199586106598379839906828921815633766300414496379518772181497754460656741512259061168841693645807319848617450164353491704003767367703282339817242787641863756003199001521726127959422377791151153872534748019892958076662795090705642519676967452131089086547914473182218421069455481777570442946865351605123203642820288539716842931782850510041759907372745740296984221711084119710170795111922643843072817024975273651155030905669860202871615617910147902158628559745993928794208178934508872981175579247329676942683585199304164996729022318615637788929649449115734862814477723127202692621186149838937817470626354694173222422816015319757146885533485406721211391333621919638585559445669434487492837730460747918788271139283493151635521021154616782929011988481625595829761615193054472850510333374151147662706878119810924586600307766117237265754996908922780108687324358788964095236664475180760795087874878456630271175092829135106672040865553916873806527994779872704403685680310190579525132472810774268278737087538852652742896724891252959605683983088711526501068467551331864007459154855298189914172568472931033297155171244619221937580068291749655694980416611800606616464183021434819849515433410228578600407557372222238268351687241541872612279353391594949844745132531193938886763837299514048230140846017143241234098266699602821942668774602035004440856123473844899148670537831106303374206323753840181604414950668570068602918124555728616694557231042861274115796768553677812820691896725651764175339883558926200047249897831017586848064161068770319053857416689621099578993119813635548462355616448959107906215750655224094061165808378122492852393444197072202397264214858448508938338169487532001102786055974904168835980821272209948898437879036421232640091237221369375013243249397480461757175731855614933696964757151450104101822114628193043231994877912406352433297838870214697558857035875533723043579421541476259481567781342894500795694092175275053910049791960226514967893653504178581648874766362889231645062157921244770538774859296836593400152643478845657191993324559344747610766923801393691187871716970381638032555734548073847310096280476653805764196281861646903149895890734516862554120703955650768180338003214253221309691462771351775020632499932798692285967842629892223273127399231512974400728690824045658370106295594598274543768728374587326205496052258545386919704724279552587010566654992761697912303802892425273634308378553387991228231787191445009537391142448942066246505204621332640292300772913090613314960019648548585268885040905245458238589668607420776816339540959709061513335189217283037426642612107953539208449765707588007000095596434977729583434296039999871266002124097868896277429934161333976076403628042380740795090911304861283108580230989940197766032520746293226652854423152310019772226581464219527121136849861051608049650790319832306790086301406419563194373136871401703250785327825122298468480476805350515330998641446625688042100729187467442563040546221798728087879880207052481262870753252185865713368444173839714169097599502956152112739516214002809051675453599113540600983565669403060724635737457613486804942537541670810663760134210758669077825519577011850491490032552386637367282042181212935257942452259304563670629610158896763695599769235175277540740639227552568933579899916376600628768132428070200197286316393839244333217631852747067883530766205606055392721860888792698019415538044327113032983994800933219991935009539701205400399221178090680151631953897296930294266511051546471845408357660135323206922894752600757953871400188580115006871345631406727726358182041086620344865059283569072215718916968178387535089980681884077454181584832874974945261774253232726567168802243584886673830900090954141764274617441401881599833260656922812248536053406121367821895038208833436964566820512114569821742618691084916111435009659495669250245317287045960227981926588355857776578508629064108719323151674050884832933715755136229930339434272225484301560498868557913269016068721438154484089772972086025026287017472769742836856490287058979729667012402784458986797106640955903579435262134587318417146385529580042626309914691082534478206093226215162273564513309373060626591799752814265675041617628438777710600035986044761482410214670065190370909738389241809789477984617571880179877902848405954326029301908031329763363945563322585587703513679234347827992634601822624383701029675489134358093606233809027551144983894780024270101651833329579610918437345244868076313021882867888433412710740497265140056178549162245793797418390987911081301238505664894216292801755277943558878080003866016318520930817830822740781385721164704821320660069217504892417527763226411848374134191295979162444986378974398940164707382030954896305767087829908094012461898623941930802589710367874091957320903299929093142327399575356974860497791462328685725598107021068695816179923900827261584828492839573621592973338475260154408003737439887637911206631275526020921817203978914229378793154891606422672215120291100698620819350083636863345655760717365997252197384893542615136077959707065149047319827038386927797343587333804325873386282753225043034668414896184489321219852949532112741285206909521313180869245705792810273026158717325151915194717333223507391938945039697866527549058555761292646899910990498434261645482293980621369257843058257121349469881009567470912361498542175780247246278538807465764208842728497428085419466201124346030589559361562636338719239495603505577593311021157802589881054233948104209761736203322153307460489869065690499682639912011225824195275128269301395120553870167777198270807911851979161977076097031149425459247585112710243419875079261564009690508213822674563549899717853421930384461189444069291214944256137936172759759900326006769147950634254716541597925007367628707968543152652597903476252070731686348439185938366636060406372416634905548901704187435915713071844279142536795931956563313724548071722153084057757804464223382873448422085862633049666472793057332730659243630131581099000422326477290422370486743909228529218262136320001001840637174797608036093871980499491507473068621082555628422277780367581907354802742247169247235923759231465448195855276023759803846663695709292509417938718672861911143531276496979233730028775701855441886825358506995176447927768076836814287141723735830228305585571163939919200688647080771840626784839758850460492198954780164426226546737109936302731450116690468437937572638980851310034957249440503024551687685847971266820038105376655284793477836665813572062164333468537978008529043020405768089887270168070684968601451186109018358553132730100500476823995529364297491246502949875505931108681457883241349093768096656245279182694672372784640043725988041219888162355412879900436330951028796343314073340047530001797012546014836504930084949012009698651652400288196322969266305841587840854790244282640323372815448852483352838187434662040810896103416041154012656775527290485832775097995309928791749901204492676907327096943786520361937334528969208310216965980613924995630158389394923727247010230340430898774003634833908282847901608184813796962882471271751660940716499169208802063738339059135480255285390053569573885985433797474353562872780760853120066584417375415216860445998861175864329899650341844303018703349382031361911078934667914463271527381546497077364262817926532681746783061408194314703987386565984315558765304107218895654296648066830853279354032877806577643750564723748284963016518596334573139733242390351626197581795562374869471563347956259403422283377567812573978943357019553535165144127193566180087786976117768837525713499225917142865858065105900538326701547125302840545979150977966903989418574325290108698626698251070518876150269970134113597306375196745853253331648435525689265019556258796314548901392924986328870472908881825715848253055741618582350709844095211456672406411481669866514683352054497921779032764067167286850445421637291765788946029902307136811290756626465219990928149207992080731230180370740553323235863550272165019659151921780272977338681621146084676438535577068620550678200675817482142232489302642056710755748867762071550350223919810699019305431956099866910109822723363475936293623584080064780816537602190022502735454963913006970015002378216390608624434973361171048458372939711554157577086112587825318342571922540009138236022461174689543242607605675283015779826935296220419187241425046443241659798658767261333443498582102485081331929969516252995158165485270964284137012899456914441496204400801666048964056758789908073280017604114929605871810166541045452490359863887482074055355316464979663076550392262731345677154648460052655437483305996589801199723369278819190233312987193502383345712557531252540960267878085189071932686300833275340611367418019952070094046265889783893502175792028600763366109455421273478064641742638168163083334433104251477344562255525614463936020047863927209686550047878502578689847131511644853110596778686942589887468080494249617365746155955043994494638127647429479166769217549958892296949342213278730558709091795988209815191440638203795591860862538757726110170076542392124428319231457105523288696011763143927369997732438620742064307332753979454517357903014289875553199135021422991982856227519828506511116128738221861653122528879395223305148805414945646322218789454398893939038130770008795982579214310802374564601746811579235874820523473447468610252585226569572566577806221300060214458177042899176948418439624696711560047622359339476088063292144803553822871008453338077632412020852274361965715417193529525735719105177406318209640557913846086882433911146408607791290183798055984867668483554613332713386353213696471019423746033729982346618979923294347193141692994343074355923149645410232057585073476880979384285593113848419744680632848829075970428196305730357592224951276029687839673382571532329215137496187738640445550811548595757310290108184490993018326440549643426712346876230073576466620711149010518364521178753943830983243267693051797605187943676059893019578524245279745279568141896011989064332178305883508796772323729589202637331977345094174968721426752340758238638776802946105647166464991515254876661050311232275099506015729264229414785513683887261511314334406389846223725449142124048622183601203034615046146158787920835182211743068110171233326284677712357112582946087381927816458478194147955481015549798528342745926810009562002121448064391410229044479547805803664567078121164079691852319456512509823964942762607148125756718120833161602099011358352073707313528977934181031995360306839269056102209758538599925254834149497778592712960411046848601500363406416240206348429842585408021947113215683183896697369862782621801392837643163048198551345056909603125833735972671116056593575656031681375520355047073034225206388899960133029551998559483852646621955218669348527651434906877982301109193403919091376165914490651209160778975769924444919011897925958242345383565380898543441470932975424301470023912588264973626597391171236358616882326225658844699701768584701472034782214939295632448316804446422372186674339668102814854626433197669803911310728635423242754868341451508645330767690069130662648575539689184252531936102543359388467862479086674684400848537161093975280377829027094097760673978126551039032603322410412536860603686449501782730377835274973192049959917338164465086080484916111436856930214213380271282650960699314907641065051828633150135541585768718728131166522054958671625993307431823052007093522037318928975969120328138997000327531408383020499700794043461745771341028771830864939025670480566091833011820395852793798284904220677767676531345390715837073520876972849557764871683949940404310108517885008703402729570183083968537750519146503338843566072591240106618403594014046088136952349035377743629174460787742543770024544526636624745864605215219326398476506199488192692578668507522372670378209214088684013293628940118970904731733590858398244633492906655168232068477450851227916530119164041266009020427025033517457965398249947992819754885789202080571821982769707168447845444036806712949549061097159858550186808320601351114286440635030181034956650385428062919501241290834462644940504569365166609556256477592684857374758060600045835476011741644759039886003974617716145905140920696988905962384379868694894789010544332885920382610390048957554694065194391064136354225579156178945337060499054337224745324493487810243773925575045310017605609484890306826170471946523799401222225080732209132478441525028498809805937206565504098573173406830131589718069963560358721339439115956062962073040168750518028259047816120688764667603373828041532946077234648746351221637321302709895034899909304100515016296589995500470144136327390957261939748099814261056401324497926937614148865753989371942681621343609978174297165216480357233044015960662180926451918307231207864945255978093277890329665036973498741760326451690437114693231447787666268627645076535866819990254146120334621054577053255258736107170449994246508444811897094359428728168581832097170629841154012788029784063743671713762078738331939954130687023236322196360859157862813666868582967976989313636458631659596833484545666317164298377085115000377238609590323319033956228203319221246745252447109390308073336228314073093603902940799274199316079266390158547202742629950730641663334117512952718895042181144088935467546037212125300288337722982815446228945442810166849599895536252636679173906802736254740965403857656296724738752603833463902167565953550511535872552514517314380534776975025070331128081737632119325474334076036381065206863217481975386171583705854534667856734113514823777677753458769667513289471002917380866072169294685531145827051359838688162644380600181419262635420471903104558938953430701977913013380207429371121155464013046062053658655533182826646578076561722584746195635741765831068625594801286775290182436173971209744450927330923915752077585758163623767147438082137791747466050014700553310287838847593012386340591863760340469656867209701512919026035514856297693378850993408045314332624166203414013820428152794938645075484887646327294128667171717807175243224855628077764318683830596675419179996868079612473587864189860683038641952296314380248900073339704798582062532889281113154902621011771030766042208793487164322810163762940686142770708401236669672270301200442265165842628303833786123581474560686749041945657757220434593534980703165221058415521232077811425478821878184933729394396789647334893378705292369188199880477223442149867426212892590262128094242674704084932479621723999675952311825375465182170059399039694565854663783234479518525649488411976168759887147061488036959418095148129858408255143792526552856284266228737298825856268116393610221772782309294496191054935576245809356136886197636638284930911282945191624570248264516442792185648736001686848379525725682896657133667318550513732908418553667017771523949574240605083837825193664682193110985520263923894735355481048784071767856510629864905218781319385521045459263398631787343026246791607380495105701388783237092633781164309368725714886993606622896170870217910089075094433158909846982263535583482614953277119374514201759525373471222532914991616663313750255618247895311585688552639299604647550504090581574408695919188263160026233203934671997837055906176525992067150711798165431976525476136142353974112972903946791092627881874839024882613657952503348893634824804359541630346892260401400066451223624731005813745168090699780731713002073675923225803189298606134537925890696407975649874874596863468784774334568899602160615840212500644114454288718785269643849441031653457828902343441925863346504782020080745081568451565991522482692900533292923953496734110158429734578064721022192170880852163801855589329810425948761599076268531814223224241976793721259517136461050516449306728705146417591244542908913400133651449368475423167659707447178333865054522545897054335109699775163895999794743176651432708568304191302498695212808539663493189820649790888430492650068564860346959175766088427759679871076571726668797457472136062785081190450641754276783132237143357131340672459995636188462984220564877341462284602521472643335540948728044749719014128648121378370381731224587873095599885548934623230681663692250503312981881892877502000644962540213297455708835421119801865166571013095350107296003060944385988219821250578189703314091081707575413346194572567201345659000494633233510425550867452355894144728550532212547662551608579046708561006656099135283091614234027994069863000017853382840416919318216441720124063527263799030013107846632009951468762482106786639482750018502533977757717135518484739274394136932006389800617354855375283925119663428020615391110611047850089912461355419588821321551647141197911288091767466936391563956642577836005220429840115725168180045749531870320251535713668913299468716898619399879384053600907730983005996642817705758855098579695928575309457450144260481848362742876061230098425165229836968644565425520453557156663739299168424487304100772406394383998131524101619025017703334520861029743340883017727947529812737485624241851439694041939370434956122646678736560809978650367287085407339872420489636671467424180274042250813946757005551443754705732586140736270081341784887956798847061916256345299106399099301967352549850314582781790737902477584579034936425621462955323986217045867586053401356856708424925099456721343890893474338161422368401956302389415092932393981119784797479229334800551007935807637407384064431674564671205721848390691118459393431994334062207340779576923547061798389570630990435417761938595655652294163419610840371532065235902634471936512287915039483128392342767524425381744032160477970114387459763809753640498418678317275734788161132389255772938903891942543974334698534099894408245813623260578534552357517007833828432294294789166904049093022912852548491045182556561712259097095635639780629949418520144746522434181295595359500827692606159129638156254602487346905435987189266417721064407330613056501959627748650771759957272646154812356402917657152003422459607019274420762235160196430953739717984166435845756142801556112704494837349949264826557458603648522245698978932760710458821066668460470617230422234424268397253097798236367161558014977857905845069692077484218936035924634801334824676237491153598681974521486102787652536041121844938203719098599317758804350858767732430728582539453001437209547616826282223029743031236179554639584373404605888260656229786096198695359473482633869577316400021140990321652533756138490979478066856702584241803277547652305151856671962569166679138568921322757012141435995653586212351168023205317426093522280194418408248553987067067405760496691482640248464551309870773217462146007328659983400665816325247673878932400060515066012663320440652211950784147841714305049856970966496409184470948005279137260269233828701198656516847865427700062453136143954414422113983801170597979851901314845437624646811231765273689531620131259920410938521481998814890978995643369947781372601481267795650499933508915978064010191236373344129659753132648828603502585443444474174989499701086552420124155686372268410018852261183695489374576057202935955493841498029168149044978844566500379953672046475046287189384191235597835943670119360524510058143073555659292253545475698098688198824462758527331070043988198755346999097772376053338498944834242368748630937573868508286223036719213046235665477977030531421977942646282564224888727150664385939529924335702069804653958102250668903157414660699143760195033419465731701300708628647287849291492546362490941602172219733051256507655405552532461902132177519261382098031008578432253876307087000542204003583659249922707424858598000794977649782160177496682880189579719217882731864062233979888239201621194017680717650514774782688091282676127419173575198566718589492270123837280650322890487952869019215190726904684186008648206780893026286856803966399021610857151446958746630694538653852668141975215651623121574007124557122497151212784851979907854395977841582506554964942914708945178695354957369638169277298394787184737198986571754085712976701696591775010946759123844315239961410623787564002037112128177368209043601791426966442658524858571646450393930642903156729619578817148263714571645102404330058668558051882099352699389379380307645577729218112546290393149775557159888074000149073456263841804176696161645593241146556214460223087883405348228148903333296490807194378538851576242813590288990283682748383440345443266131251093750731880218151995883256480077550388930259823188017983892399216238968912226344663992849972722580159819264954647629190627301715210791572814054994135464005273162446133249021640620587639950788290884980289077797690813684015133000202958148940500395387078495292294212048706508505115681751886469372758404091776303646902097647570906736461001851838209860860524352716074114872617124485973252379375540523322847382574160630664692681192335459073159949615230406803366230765636018027247624383291143368558475934095292445495374540012140474796704901245585992870794052362635717641569370765701735698756451017987640788656208855462527369954806303542569572517455405019012272701085028258303654577491963850961267541769915824040844161929435097391050185923493450874013403764399368739365652805803837253031482753866145251411307286527609298148697832346319390849607008568914620720433855926003811702679155546475632450962536491886389480694859986211006989909576107311577710030924999551134755548663647589268995292663275309195393293469316544505275298547815881412869134927586826049461224344676203690978185033724214510904059674397811514029685332698714754595994733495275146163279448112084724168813920587604222699236007002788373363198235996465748760764106568455012709596122961468743095636781382936302499937515358069003029055507756543074628683117770818212641052885651965827934235892290447820190306604706813904683719637504124207839239175783187414333519098005949898250529581801491838090863317376154698391600230404328695363463936267593955817012933343078758177461109552371547499791556336612389455047970227486291075379523891095752749741525925167613404083235526694496929849757969696460470224316528133532428622748014628798011403696757860927319207143317978459251435117324680830283904313685038141224519229499694290550950052212212084528520827574519115068674560079803672525023173645680129671636299371656185403462513341772768602888800941900542870085198287924752442565344391388217621734721878194679289118269733436330306417865037548635858534155258863315852968226595672490859372169235075057735654436673797098046665423843601854419720474053211925876526230789738904540456258312882023460710321119986614514953661907817618059099079796205310453800861437290416069050659378158226743888914822717146241556305510982578473427397329338649629577769836074228829755026240396661321972937043383529589318660853890349625889302402093368330212627566255395882631523492916906364045636328173340626807931561528170261198214534374704915259479601554010445937958236080897537430019012218951912525141568944456837340401878322412247265002424685632893202844961436395894833495046457697802344340999820360219967231980882206702351791307806000395107286153541395080465016012436507793314471509591364973121200414036430830655338569612816076922562418196705348499386302316012084371488073844430028700769810898214821351237660589316512501307423420475353268348527514730090282837658388856885391578298958837227176947339491785132480720520661084574214709852702881526838224338091831797944616119135648119207760532390161008355989798592357630269081249997947460478704271958525295795387493800519443052861072854870028640702156998460050413042888652017285938528371896577405730670123793675721415587323819741651735397787661184202586869153689396348602634625322418100195009042985226349854916966418510998583116123984986042420172975929869056249264818129936917731754862253658551239388955677686311771477709934463497639591102825618888482800461477901573065826954869501135623354397878529494650189683132665795017929391079070393161888104519406245545262403028387304604836783334799102894789075359688174378074856423245998489563953429579799382544124608150655729225124941691212746054749611565820700645757506362207266379857847490086200312061885919904875810904853494194250476185826370656349949931194070540550302775205758757903749338453015070866349856440422578623223561925600939525837404919770569409830018397654080050084550223533680737717572445953300728628386219050647411784995993094476412108735056573897900186127390131055223871863144415390635039693880588692658110968799791655972346660854735958445892959466443823447011509024644598377309758624819178301453403545292408387257474202719225138997658964976309573977113172363409513287260110219410569040476883192805455610847367485521450143905064216920646040861783251711369275016786067275677739419940353910688455838434347011267543795690427828636625701834859286684638841293074618509391956934200892014381057621453042525670165835626878979021145507559931827570215257341281276346717910022991337032683937875246692081894878663043328974469405907224224474807829488136011601120098801970660145419826925876524647187375032890335130560808991085377472971390993310691174435011770702230787771476484742865090866141993639249611796605251989257927746311579647821951623720770051595187869694380966921790964014080788359884435582661183056093835501477187451602224091845646250683730848596747335414763879671862614024489893543923110719469578059926573810874500734375400162959947170341120971648844169452130020558812200012140884508509317113424636682133795176132185132229150777006616463208935288945947253383339478200385172811828029052882909344140988682533433485515436723269135450742814420178249933794831741748092196658162946570414464789367527066773380297316385973098386216717059673866749926805885923186318994595400046604201040507885026735271986737895812404840493991514141224724600781487900917854589157336373675174072334618487943180070023235971874349650645236732140719510207918349412382591078826015981624963446735984317035245363140821192982323983054796991037412438788433695791734892743660348731227993654565925979488044432051542467511391290458221905298438497172956110839822850890992400271260329765022451543518557158444688885272140472407862029956875487468241146979869117031377304409152219893199641264068421384082592530408821041735855111398112235084586539619595387846160360586702524837097251321593464179940201625341956236450936507649571166523163999242131030124847391237636550152293540639445055504763041776850999426460760338186864163388965466455302156839306232717808636104065808974618396598691316247025932625871635640490108937237595578075483171928497180261119804639411842180689969126811794300445056319381041421157541470964842968952328762145057258451489910420649694653277910266421477100924463779458875662027977811884839185139349582803780818211522830530659097088458648804672007254174162314200506512787585941722494557751562177614940010278394716417686434605616007816037578941164525364880854607372183665073414069106936423446354137561514804361758575670587606104380212888081122575976505453082421272111664317031538613957579524722536982783999785273044080645562203370896759402981324672920993526030605826769946042608810206069796099401682605545653693401361960057276968379419536031653317518218727171727103063774358645451235531341024968370726497428768742732175747446322386112448686118714781789592516862625845189096755674924753598534085760624407534227786371244436828059005968043193185213497578390196601993323442480949903878450810075641894869573180982346791267204068035959698264226344063680716848710373915053397973868947502423327036034864260430464396024465541905125802108178687337320096840483744822074669211538360923877652631337533874451248119307722940680305157108097223453117844905169073170238863513155208504737675269304118622822090174402725368178234397535825927269520443746473326395199434797160252674768155900638026620083393524381511763502477597737309844101987728237249818845821897715934814200985910859791655061198855084449145011284955548829519282710380747539009529749412986431965666508788855550539533335651848275101333968972778976780061392469534473897707791149540257273407498772067634471598713251678140507942498264366081402730150666774503924254631076833190846925096733331594695747603387038344400812064593076601405858774679439451851611213578710000309263328483985497610065571969012434689022097005669182909027219847090309160070291018062297275769009639179359881511408154779739508151481765785564321803800113478559084016549283618131705626721874872669745068868139510643743697801737247624030613051660659457750263645672864352759075526795097375215749363190739092985627175991319976798873349538225856541330108783044596146897331324597465760088093811373889510456801967340133408115421317495732048321216497654566022854183027108410822782232625180468417861192242937109560743559137186344501373669644193719410295178890756125796242729719415044891227478153922886481930591849155573711784999413602497195797295312231348890044086959241552825495055914368025431719206373165276243960353390376943091651267376103382799441777769616783899385378865438380008355884992806871779200718440763291175663152422254703269855821710255780641366609134689675504730031565503047495649119680710337865117870697409184733936602772756554680481769626758506496889691708735153493786111610528634353756758749467652753710657848360877345906470985628052075723177949480520242780141118407282043428213467380690429601065132742543152847532380980050120906255438813860772075618318575305164928072638070221097135385726383328012987353093427650500319193903518256399653002494047894915597045974063894590885754283951407354954463453329014840343423705742564297241139418937287835423451902285128791409335441307362976479123359616617862153594829504113863255582100172656790425776296148657364841040770475926134545014166516541153924646415725476270434049343706679117669183482922828494275037720915420927539257447454285530221608231369493449549051263408958951654319807165472607212708071319144818369193305156382006060442980956228954266721287159326188706868103946244691205296668557826317989206384629311808625896726320223796798811064971980948311077477567919627916987661771226338312361734129593887518287460377071895334587462719950910040024576896905565186968016402036135007562669962567742166489796492872142665962438042091306671303836495226517242775021975721039724373380845252079238100558704723380063648283254308332634696875606268747900001664615251561623375085381016768889909526746603651644109774433695815791851529281129666851828511787089663339753123071652911357434476701920760560387357100098927119755980651623231845680822694203906660547899777711269842687199786264586605571288495871185996938493905757365682900783732853847796832214845109248150109063568044554682566382850659717567991503448935237850473575559596244099620411341074622086312443464421519489290128258210942091728330065950885959488796213563233809538851671166949415778896210112080489336478153619409861901252942021235516295296438887444226432582723153597119819980989534438107962383119165022890246692963844089222267345425177470964691886612190693025012134573388508305670909065217669635553849610626393322277007560868635035679407590612027577822565525232607799561283155306668364582194066103613153488681015471545384752510745109732341151963351920681827866593378413448502964088154591272993196113091339902038456132483546714050981407904508163493242205344876897238305873448276588251986610309371093511336045087186254302091747181685678520533367656591849326410538017353375935629827675576245632053862193016383553465798793043335903137070861426576516024482844412929036482993067495757132254490606762854697936466488986069159388404187409669845028359846739257841306768202453005876339574299207210587322503138176028673982598421200455161192992078922044876398215197762111867177180360228425716122911809760929996275765246290261133913810932918568078082868883475292172195876203042483832979970369383395955405172301423300619090076043198521462328766001211983978394565311867410093478255950524688945682339574961745822022669678612933525906351541754633294659572299287548175201995748735636230296578621214021210965123780124405801111202130922689826563152363031251172451444584781941509339093644516758735149222709723380567945358364442844937025933107620914650374583658331118997275441515115956638606224572616018150972628014514132505857761759968923299761608459989864699407887998671790626652264618646775611964224212602525715838936432166738767358523508629233458358411452579193594774435355020388311279899287837526596792972529702973282914754935448801733680549204205404174152173613003674247925641392444606520508419004800311344567829777398024270368813138294800530168651089709819550298227591160063487612160485791134812744929048001898359101547380148115835291883748340861453509298066784326472080672184161612202326033048545949762048571065873162226704583739403164860704762958556145798694780228401918512934617251677642638967983913147980129701088875614962853392290663277996413748354979767423020136254600360725226452732884030657793758552625013661672235809802367672688684324381968557874856540375636747360630351537721572266608274542506212942235206224627455447212014646825390465900624378386203159976593592718741863046885495695437606571214616185115138773096261024196372385847086328290447531043665351864366691608384831908229573170060394299943157699782805328138395990470257919853818710463909174430361070724966931620600040736673070047783789520346280010098079108663799426166021317617750979313240367413198739699766469454149221001085869151483317903723585357588668959069277656028103490830723436821250223807574049575714298405404165036309944104893439283681908369195872818635803488203778928103630517009416925354181881906742737432923450502447638087128723996307481527190224224030718067673785697963061388480234723092461273425279098266786654436529281242121795440584428227166352624957826843374182384563829909616240055746116352972246107523675874167159781452343682999274143742226024093431241951314391271912694091466844422252615259617040906314773879028222156423763112755345264069780269871980476124884928163359674270424458809773932499180802969081443437947468222205426710579209701036770182390162283296764089188042033526834843441313122533089757819930867263037124130144358508224915131736720939672328062628134102811721134283708079728770311367357561134676928325897764813073792793986023515561352807695459317655664514227653044828120000526393788918535023589104351038337500912682981316991639302386456843927826101973072801293184152499836961749154590528900431285980978621102821806283365271514159597621983948074191057991914381000264382908075710994161800408035200770429821881805289097635380063129903013338454755365632645746353744873274181157999400260610613237140308720000117945613540186619689848987244846297110949549533535488217085588617443686809232815015956488190199838495001526886329316872720613423208855576090093728812161008107272527729005826704310788254292389706905541713389707027738397352370968745020620189838382353687316966416432532909946106204392189217846220121027898614154623287977966463069483576905399905236958607319997363811058083393553266383152782586361861651256226011264840833400724841255033387867394842367978513230810810535084458267604886805866727990692544639422270638780634838573502317058526828187048190634521843019386098878644543141534523352873620554664617406730151855734219750468397807287574621738883454720195979212567890958615153433778898545416897990260390387893950807427757090701982326866751168502971475214073787502742078350967528276531388084501837824499169384390748277637029823325324951489178470260150569243810165973004180044786789446993716017411114414229839340501370398629385001198867690634525558585729823110214745896121135719988325844787417227820195533857853337625552165310116029096254784935194858591049987556090394306965600309131655073060356619312182859514224595541406261563493347406949692765663995297354942871703485253269390198573056238353465137190067729020484112131030705142687076823793265417544606645801208835858929766670075996302761515830714230197327048123745609667220705011044971120205574127163555303072019454679673017435298519581606362168672854508853905912263558008130791451999047873347114243464836979229945098261914562076754812259056434805971743893452662763917829980158025337029381829535945376108806882895076982133901366918234132404794490751617727121047523752283302411652344454280479221977895386755345717642875443653143973573303187043356781752033031443117426671041273839649505414269960230422846000840607399173126586304411124323980317193881643610554644583807555274640984794525409361673991081677283380935630826052887419673149480059064660929215743650542132227175295143424093637895792525670904030214961520285205512136099228872175593443589506657980375240193965941018710128853824459972990716892954327886095391131432289976586663545842306896764160751572297461493510958621193609761133821907660837887136343450187239444715738035644778323148480877010487839552306792617061403184110943085594242184353727203963324311406995621147261601064048535538780791135369476015357426410833674663758880247170393657544484420297963513518509904996063222018156012374836722611679072821001651437882943121800461834478335475329045360954220025937902164626910173997094380399232365602132508807848099772061169933936951475593640143139879389558423753962786225940596848448343638672754317324471956085392469339215476548423292352681447605646124840072282259984431245134630809003713182965889816368421646714371371196701225523797905175304673919597933301582944701938848722627602865828121275832716737519155244998344548641174503686994615833248382482173527456145996223875513596512659192824132824055537355666291081803311811668612376188976382919219607166202338659866966303381232336653956673458956218269340801043884590584852637518733555850827964200835337788725574783228368513684848040775334331273021735102467063371727471064870897499700086854987090421831072054441097596017435650434542990424353487171733865727195420023505261038340276689889456153867195477459490109814311565745443430495828092087060558208525615665589252703951122028075064316226079416296121400791318102016166097141477105727078769786359004666239497711190071314461693893000920146641318508298283564038184972689379266065655598348338056716795316953684519105359733079955353648021851095573860093087292581586867479917408561737798178893649713611907108982259367035379823031447732091228909778150606488234220964674098873834586848399314999011835388945846149805879360351346226284950937968268016416856339667839581551634660918121310573328911639035527470007428037729968406231596401688464559421935461581448320667714635405026203973856660769163225726114141884615571726397321316922932229668433424989974451552041367640253759745391801085500702138379062151754359484509433484060910851962135706348678680893431548236483220996892069313018373039420321358464869470958107413002085441882015921168829354345391888858042181148977453523697392685117531448487761526276844635898270864110075023091266839953092387328144664503092891567399284216679692784139687226634057653863014691557700118090874863383084557082723681428844010187907956450621977188218162425871930772797121470208406292648258688047267536374876676408435711828608856388944749498581086564788399891866148104388200499482735078291599273593256861534784242339553476907954476553379192443832444335505205587802878120029836869850158229411480915654678195640904348397355285605786466894249022651202759844381148967968180069592747085744644812766342843063341371808240016388517653547930819877077918536623828454888867431937856726083596254534334999477318535856082569032150595385147760573906805238760912315163559898050921686595747572514287478114495059387866096877005437141963463063342079744960963732961485339068124287400193265231731383663360118356929518397960609658699770538280309649130305932868611977697966518312847851350230713317316950740510157995243864601617933746263100041427402050544876822781424236748478155866651690992545145520006742022040855390348642488275287219862928546633281587585756077339476502470944038950902241231607972412540082717572875322222914523250005081273001429329981619482367764471136886299805236409220690530406073207694299272961839194051652004323787071048768758754714993799267919978821907934568467495667493741820768125635368825052761568361731182513336890491184115396245765679876528168518521080724285313235951981025914760870063259880307352211332919978827429062147527118254071966981515426172279389787073182262306517653581447972412547444608397408785002441146895688730764047596013550711435056599602212792525678539974748029796318716859120687025785067954626482158527617767304150103318609789637413547462208033076958505376386192224310912311873449127974867907067418532172926837409328308522631611682976083735417870816850633826342296651134688845106359899857544948079525001003333558600684594076770146396804144641070133605733859485861982631204279925409650675522796352018501281923854507152346639293264135588552345213493460131620670930627290769652977701089574620830326663314827391091550968792247944885798258282057321825657819152813249567531677098426542718247761151018668209590112305176746514217819080844476308160208361908809119834495288437632808311435025836955988202656570241982841082208892722408419743474013997583590318634566716089829117108315269505554347413316285862945405029123330370664818550072033386697336379810769742538944410761687323946487922688955866319431692677987558485587382868732695424794563971747034512532220018456844732252326015388711988024614190623339974968906170743311389600163434411072801875301144401688327774249759583794039477788351566467512708571626018770056594134977094155428888300935513038281873668387754631274822233003130523267664668427195070331479856221208009704469726550237797696136504737539499394830774569265421018456762670674213042167721669638442247156368934616762710910015291632642834135538176639496546956195504592022242923228278781135823156729254736102073288420508545705577672445904448817572646486496010317038491840938192202683546284779744968652980453604792286701620527475615294355211008095008451985784644075171933013741407730942584749986848929954368451551529192760522502840257099743785120624911922804592626070332497929537966572621524071598827844655346331582666626192677910810203320093286622735783781559013652191880806013852791762407815827551865362711914658274802330877598263860461614522140016832295743387742408335595494529508986854097245417591070272932648882342833584693483504351982068983999138251101546133344732533926936225316378369448846109298998466852125783657932758939096285939402124476121649888055049586981118033871290642567191170082927132031695702765096628145465602724306259609967349944183288644613903042961792534801609582731781094013454418307404232723830527832740874588405868260761233597045481252865936739072276323535586389477027185089575567621047449681588076273628141907023418279801904275387322997905820325427909524145263973432456828466520132218980148840107007698073184724714474949924600923515178126679872928365909417200548017490828000840994193565060443335553954489807317214005908803209935245982123215301078317563528919402986322889400239083273121830557518770945783444812745423718285811859840440410572212099920554649043855101910830694247751429933635728223776790659840980465157631137716809808534481893294634051286256258109151866313678040655357889779944175442904617076559091961723352812806438623186279536593995754274385153076533040136073669293645524343393991485713482001350334457098262321116069773455602747608830387230305065814376328308736827315941753937200071300563642153913531662915037135439678162762774913199767753083612438917970325393254679383137769891416171583529439193517901150816946272733056150475612699907746580620250230413585523106802230742484269152128165855955374193872715948355993220490447746665575819457904887251448087318077069239447474319310413604590506453063017481114154565069453248360102662962124547761420857400560965274643768994984071605243251365027877891113553819422980055429593217828390532087550897673212370874502831259148690835044850093206128864902513234917999203105902792251168372768999084224497830169355591227493082812565434448234987688537353075617030219643328757100733805949551789286619013237739313306090357107449818348713325054530996041323177199846726691908129809373517628513331780688798975722555266327953330256354382017708327288338505300367672159855025510606680247226095380442016895788118686101562078822021019479640477680810808711172509225636048795104871753389493816171111281103087739784968427906150494313577869720103935768009761442102953274158774348644945960760428348780475269937192946736389428184230145819047321742013542599392452307146544479407837432370144922680945815255892834344139420530832844352953630455631524802287354801317282242324760831220241477096175701490368677105271831367133080963859510920632048509572605835905174839781251211379204482431600167810711734685363080457463593184309699698388196231042406158729675953574394928648330877912070172872575058025787249527063615277274471374391289792321849530456286321102698632760230295782128937953950498975856296255662899740580614322876368596217994654690978227688296695207820571039590687274621904342094942970991111341189526692967943759962258709718814641726980310288004759879084459230919445928664065832612217821688777470716692265484349701314698808700566204877659277461244108716946136794990024908138865289073828741483188064374347579162862997222020069184944705602594992989380731976147781895515669415919959664249754374979538383487313513916452872425102535185063991991573075505893131622875132336178038069717668330918257566857082027894859163943515425133150280220305902991056059301863720511844588337882990272565353126861605145715321058950141452728037887122059494461990977130504840159543440159649407499052972600607178115518098635893693757545741905165262661815836667731930906188527826291362690840685043697818118289061679534109995276115693181169393595225135761083027614232635279645550759710485365661722018268002594390493445033314057304353045143779608414934493026978184992124014252494332300399598979416406715338861197619681722528564650325622832742180052718846231837630351859369604941869078159771215719394163195777096801856455493544520136678026628113953934104080698998669876353241580969525703787311936124986750326757359836258984318988959883905628692118593336254409937416172401954277655813167088043704320114522899317547747531446823722273131591473092574710433383864114097079826290838527885228563908719392049030113994659573127460515907989578332107453167427099485411407187333974522118875342686005992986508504878794691090779434720077784430283066110423887448846100826538280298402160683317092593579856802588016139930951068122797072755584999812967113165426304136471072504527535805753066071120130582548217257007651929243744400593256781106173556636215856102999234911659879516786088053162812875555203208650161816990237289572812977421264736618081167223292554737507025667986765700748478727015286578552847016984826859595550484090446073001966648497006526588566008707679363446922000266955536810408781018677036100786131540398749986825878813583150829481319593876049866291302151303141647717475427757967435763424183780069415715533806374316557128823714059287152078039464309252975298825239242625833216646495035164128008015881668852368122215238625867591608878935076590089551615927415712099115671995679696022070664403751954933351231614842804643536756179311324930634961484107073313554368153642466042222033848758900275184254683081141860834096856625495591462228810235282768977537225446871284696620205298269642528232825345360253401757892761692429742488252145751426032773396050285179984333409687346914469761899356405887561198475109109988525346730550596270116319141467230525151396188551640550912251827089874351344599427644754095365483197626212866076107798306023828066566641846115061216812555035522512701954522563036423277326580015162475992556522382546881259405363611573395586751347109495268837032114941192927984009862662559422613517276101668037600652467752018168584011722206267422696624162009037340981808351433708815219355071512749426339558691372926858971814854331443138020049036832999281031543801503748177261771497522310864584833149594634893777457300357510097530056578519251476325940927323126152639753723968758892185595079508269133504646086350464559490105979587526905991066074667381249499306969527716248599192742600800884497897697839664654163778476423136923277269680533796523457659629499427639681103170275784244839838773490305546758288210487350331797818928107459280297461914869367841131976222136403672022155683558262105804393150620009396508098033432017107654030590514054734483208336433194077793553777404176469964474972020550145036184808065279820063890554987803473676657650711533738938040696735752854219442877398476604572905918429977002502898655274319444934554573105212658298222489031453170106520788934472624579243922883291776710044061955446702387918111925073816381246397386492436466013019416149863645175498021596962372670291072028308286275212488589407968007751362970762673307598346224579242913292221651663467320706161723306331412417882797717601268483860969371354889024776486817709883530711785212665020276833483573049020221502572643059392324371258991530437786297061009838906863897163763472867597841854909289237825275285463136089418776044751949965788530709279506576807876792527819299085342860823183766475925958163911157531020476151725053012776040380143917266949050161005628570784053842677849122735551603547107573668075218981552741526644123459330365867098704168688024634411096313201902819927068074244142796994875808906181682429371289969099221903938981827726274991955281812302338253597699633007137024366961832562319716723911788559200336693899012942279966989617379190554031673279026535062412956067175527159587745858527002304635694171412136996999379048038178645689765633859027537748113342722867808033134878138993848520661511701976189265809704792991927904490750740082257432351849018918250555436226353773187247046405106562858457198973018048989280022316053128688369888476640923945344037239944556861975065488963746581290965386986535098553069642060792728654825441365821504802418533659366460891509485294302792507985766995823230684992077949603040198861884235981822287645410823120738906798964992220872013472333712685689271335315508729743561819612694389382398307579703292416521002509155430888978031021934632323481908394082008702497817355505869529220063851153679755611770796732354380674125144184944889328498359258596524499342822202486701122393248667845212949375257468394747133603075104277608234194812108993645339503848027927545876216819433456216960595398111012562561927511869354582794447258629677221528101223091260723153833847519580262721608275787842953230787052737663599121587528043164856830081334513489630987880833508535608530827399647041364408204136027171940537419478930041727770633617610415812241965269122183164082941827782381863462196787148768190468720361462340334635525946249014917438061277355812417562727562567852701012817391225267837431318694370859839164319711442687321669547681434359947828090946435638906701352905176938026528396540934017873038199520091189036940448909073740610281733090727045165512729595658458613958923505520254956174311416790565911445400406182170491945169329048738281614891929070015853066777959253189314549905326856617530967854334609911364926929179919518780613290480707442983000767406749875030212352232952639878433157069288041357811814140359497993195379941746956181323138283553512737633892794242369918709556782996706462116028343387062735361161377285109395704695053166991449200302620307011157334602216118111409621102326127945079752952506724048964205994999818531119223520670987648904744483203584793797770898817055805515856590035757109130108383039520484895367538979395910914568521244267463466068325598830188550072884494577342975374829014673060729686219599500150779804318741286874197266723246803822926646787312051339804498716040748349306611669534406377025864857251904297816167421388462904772264551017906219901010647239911662451789963068413767476142907736139105998905164791314029901298740018511556673290090595981684864230242813885518204509249413494256451617644380248319816447824417536959040892625408967132931376724179711844978818866412085005385012966580735859114455602349723941104011456155242760814180370069252822081683276411051436401535749729948937422316072979328466885968907795294790496227741849314074682455309100248075461197112074978405621232584567360680545986809266526757294228814064509934683589281985509730099910356263104619407303560610097865893594862914833338908523490352260161162673114461448858248543699354752553546859709700120059810561674950302371946030798849057134796665261835243103296053486605542764445046878694985319344530621797685919891905272509139750873049472253288263928613381312430816336100449891403571516001087599959962032762399737560066893262166320412715644147185539921637451325717875699200453317937342153925549573014221891444451488176590034880849468144676451877069600972118126011319360798837610875061995832980675053438664385603422791492104780856708712126861104994755123641968621590053551892089604549118018370873512133021139279479494981571606892544392839350662319542583022259939046461084191269772839116253297008999936049835442055892507636851612052268737928360104538637051693968334647022681621080477043175889166509096907978462151211534058501675274330489578317283195509112549139599674348043074937242320935634159516285242965001436313754935532632006427338194540360350164712920951006203002910359169238771153416402571309033237480118296481530488609115253951995822742011152881786371824615459101415350732237989081025852079131232618337836639730867253489558808265663959046984945866453279436513530413296233538264625981033723618529193487420870874055316742612126337318829376872216368034923563520054503815608943844047969180336520233514029767557468614333330502083878381115412689251511661169302742960004261136710575930075303398632119503080339239357940874168705324501536705729233743466177299911934851931531955739995376912636971633673311797647711879701069815948528189172690696891852290605028823419661258449115966235043053643601403444358699351052088422156557911172541309374041610698894316863165155788868474257114352930784573782683819136692374718737650361140199312747889556131427203622506799696667273763731952246451656715554034069412849594237845120976737590174368585467155603857080690067979160995748908559800862916521617866794052198752526879742308770547496304230282930352584276127652983737252062525021985357005840248824728815714393333196937868950137675349514727482483571705911033051641065493414482962562590530536504401903800402021196849436426185495718975382002901572985364741419222681665908193742689302771184240177491348446910164892503872372004834650012019709014512909489591113377755583254859717787355507367604154227820885320650056773329734212647366591449084261444992089396257660866750348094358906903489456244972985236236316711798113182181189834911091443243547099715757487618333868083927582421882583179728733764265847384199594290634608650256419207290189229393768844542251601149517129857695145091919636358890054021626816225633513873217915400557062003445490474669434943571833948557086158279042607302456731261204807743703522838234599595601698227400702221585367923961094608755972262703515716182166452162248859586412049044584190568648016543560112432061266522459161238417808079978248435522461794058534783446421569310942369634658465099370073490263569899163711999389403666721270248663051738779437139024264230675404649691081528295097880107600201238344341445013567619759356345901239115933752768286528785892443292513050949899435064882960966658352471770631415297602166688289677562461782653766971313719990062070211321316863447932328505352679495600659468491130931809852733082698303276048808881796616192172959089339113501112071157457687013575617067849122869584070240188924198398469479478601862945180045807987306706297940170571893004393865982224951204419084700746960247815530505341939852891992612019009104156341410998947042439692028661610299733216092450783477969307478269780705444627475882713147692396714419374960529364275469800774180052184580002796546503000240606316883051850766400807180474322037039004058264465937753808171475538026007964944623821056635232157330073671425259848176823673502108908629040361491383642745033285748341564064320668919449674827894036334741041112974044886987721765510314807624870635067815466504456416612238665872967793912880850092723053096371018865321621056971804696966053423537994453606336869506914770886213147410582725953436588513964591927691068819678678592668980544642257052038248701262203485048705066301106195662288121946986483694719553755339636021121200306697816706770964723578114612518917013239821079972843795136436865611713737584430076143712286767800035700860205762013768896304941469969474083979117358615658151638542163627906801022586618713603919701731143385931292749671436144679780199513914822063182602211868907601089695652912998687574621404998407140475405677905688688647817245283266618259818225201473162640328919285112823898120554221597993719048621437563728845520994683343733784176694780514000079764225117202018573169058973921501238133588118362277534810273710364932084920594178387318394578122086847282277565998008217351759671199399592664407439438611325411622372676849770169815079483157455109653310728700625522344138768522983682654195870634308175745439164027571249759425939958823909567069844730999305955174361591154009315919492249564717918932253982959632649193221865772986767730415780179520931413846965300343207270542000595666846770913738070933435023102216076558454308487295131047228710996338635096994830849560532987145656564092318238133218788085008471470473598521265605828508944509247647617091106123837563268901581689980806155480139586024510750001223815736846656715291144287491174250629413212630365604954490455709277861588161566830209905625847691136802765226060649040913467529997033185560476582751312292402191696518785907719073829300623598679826674482038270534062960102609718108685089761367962408002450553817723429170135188042638926171461289072010259076042116609292228701996607518850720219248721893716229193319271712353180924995922901192295096419611537900591880045009041450255709467171752580936545856936224585663546619152200593937618686218214660238980041840528348147511605529053791581334223054374333883189960419679081119392198891347151801832111774780474469809257695390740387535896059099107942993527566541237662932003362401288618657217641114861471092870356109986792261971393492057987026666118523753009195923615354652460704686749202124764675237599517156181521854437639984560635288908366139229863070503685297125851698633144238598062127569234498852917259630077250865418849929838683792451173779522606687743092259125029143791856528769124110571365532855279265332835073160973587945948125634819935146918700888521431863365740787440956271390348180717794129540814832277470271245601371324980149016916116296736376342107934821777793474382590479958319715880262013993788120006159107630650200838268004404336626304246583889484798104708608816631844890189808711549500533466465482843491840904475667929813611150475264242392968631813616980132588819439993210842579916173069942903039971526043166947985867705352435878168264429653404690945159453888459920975625516038815916931656646819431895223565378600342588654838782224253016164831212348563162604574574479919412589925231499410340028203755723585118338568177510195307826980484544114037013241187589987806418323792737413827292800043184217070171368634064611032745747396799931435363513593977135947146210907219121055890308224470508796819271439941332275668572966831118885448347586778323234753755474175340081050352363571540048000276055382174103074558902998729472170771951165967762671649103505670737998233980937584860808525785380588716180013763260840151420016659197591559855161156432249636971610232015439245778410930840142487666704772241120532075597790544955882575957815705876544333341729663693118388086691641836589628003823065173172027256657887306730547714590104963012916483881832716351422899830412480643860570873277797636794984448056106688129005501327886047499465992178967865322463786920743009274664119565132865527410689264535287970432290608980899346185812290542975063008754354851756221851856390051984501949666770786659460018771676589622478442796855792924178545808906250563633485687063304684057132525154058300820506364150151722566366387352243636275974681799746274291711960186216187422746333695101851479720293519591311026246612966336658336043115679807500204107398356941643638789014664311899162907027183524788322994474808288082142012209328738457458021827257092445656873815989656934819715065611105852340717662005463133871634358175578548515171269355790187529814444877818386510196147537951313173854855241856141555036483433467554627735431341641637527101352057735283621006290527007178570501601175909342079423978043578816110011339035328354232798768480986769792142956398542570374870885134903653510265162623898267346904862537709102717188687480399038216113064153409720024204447862482487969346281689064257424301427927471119667514370936550654375464695592853671784361516330821674589086848973834011929218270034979374968265662635996939236290420059701346477824818216741757146622452106143692790223054364748522778253118977548255577700282959990655236086556328792175074705216024764257288446600245590158652930419881049851680449866103034712788372757241790020774595938303601112745003549644632375402979312639141596209281563349075715562463765525563752233563459002783615588938679804011876211077465058628373071615023932619245933041217902216959227426875524359429261780244424898126940443276913755813664686624281946944181357322024090773078187959524816908038323709483343046164569627705508644267061164306103156214215165708154243512071965173547455618755482137247149869554903457085895053511432394021582462373179918552318749680683707121469217975229527765496855904282487680820504383454436761380315223777505023893408898888176380547193918917368390549117035241713907428198953496019307209748054434747336414898546993266910483005198534414859328350139417445761472321193035673516795279651808809212447277537320225205325479639953602596799646422998460643275461300472320428319136575898090629884651088063978772136281586946906446637709059991166556720577545205312655215945252856093050834200984975785933726471757737222554577493056737322675994547423092454280531965388848263111006601970480143683358607977270427143244101918596247937428199108107646741156645852669096974672371970082211478899498225050495065962096324623162602588340771283899196083119801398252927316814808346717602224727913127914975549582470411000628072515848247625179837368358886765101313189469685489077951472474164532459020729886518696550927776924292199661353104048087739439563756387177300689058980462020283427661504434311928581884257353550708037922867781520000347001739755791472630932078727070832281626781492610376277650037037939641990477124122525343068517075691123610546586921448457862637590609807988652926828464980090413512656417860018872927015038174283187137586592654274730054724720857382664639920533749403996355445028721624010184184325452614504979432962002087201782575427769000056668128331687727441937700516295116386048758318237549131641403981246864700943821876443121389237939296349015970042250369644899205755834348198896493977398056279976728299816707061439856639145113345239761167205780188989534450690953850517607639437966600185732608911712837055912519200832211049553238652831066348481108278056662596061959186542470162512017013181749677241815842906240116076747509223165940884273500977129685035860543207495195758116118555389127067860363928285636957219434773389466127632991488961139409524522733965166444399561764463800359924230737648590182772338070147910565712633827270702618103745988957619840029870168680163746592595880895765706208118080157882452354705123194934030108978607786035580162564749636689522666442970347509737572936552159572050183800113006424836952749789804886699463126483707126201758352889834706456329879625278124238149723402699238622455537994852275661641820942972849381526615531003824764589410106310667915593880787315542251480993563470400838525633387137340057896651182826484175222043033506885676734567034955537832912845721408743418446629661934532393401021866025172258202443696982868925944822925695805014738420322345527491624205369915318642518351323931232499261711020906792087770812973318787032543589458192991579228059096293136158045475250826346599879582928214039606717154918415797327766696040067614321613729799628796942955864709623896998461528839451193998666805294785625200479266480255311043344821822253753554131431987898424440809372626409718663225963964514091086382683649122833338732042389245855659612314671573236645761664078569258157301770641632627734084913656080125741384318295152503156881916143121016380476682162371403175562710058297676559739934984565116427125479068844684230626170547284444763299637106512941354276501422637674697422126766319345148201174517293668195123484548101848280703897997661643326259670715576412034853575450673922520780786084588530993043907568223099413637222188106574747344077183657470787294973062888484686858855098927826986686731931150493823775320580981943158354269830403750688991370501669889268405355192456474082926792465855802189263999436331691565919909684854443539972009927698107047373664218690257121269608457860292458927142634405548617343956352245226657966744084913628165235835075836931646828954041678369725524738575238764987591524330562429079161616979237472602777568209675818337606821487688898873559006598178088586527324699112682465789404978434236058899107928776804942597133685820319686198685047500405134730067932234329268379549846423335052472634600826900682561505805874164976366455609016970383544648985789713781763429747669438363932422042572383796523589378332659937329444253385444311368521051458321850853442274975073755215854798864965270467509785696343799859285669576062379082553740659939187334889006837077461554897266169303917419580385254202363162799490813634006527742486261389445506735903883620494354274153197511263405755922081128922451794358780609409089122408772146002645165757348863518404936364145628514120765870211986164147222255411192321744747988991749123962829692299040386285417018084674756563754972883526419391683522650919117163879656969755294016175708741289818804165449744244326507976862191652532067812326776948374296642744228771985706253177890091638126251492685988356833978058688528996075726123240590821010327684685282891638928869622912196158302195221405909522052289723776268781395974053809512198959527275023004951020591213775174973655407304075918874005399847807615851342188071927586023836014711098435611369618313732686375727442071895095496356407369059922602494090201514634956140642902214656561208946805217082558297518580961810337092578586008078387240534856379978243205094766093375763517810817717219203883917684775386569293099536828283877169962566936724965836371643978420741605497099606643322217428299850996550566674945946019138686726544431733979183833594902664810591023403435997903104422189042263646860675108082269025466751984474589590685666369941568467338458475850956368707796359312307659404374982218942447502815180939598198746557318690324097948915874469138199803886815819186712304483775685808294912209528247415139476071566273098982365410801446919541823312281970466955596115585555583158068261025452643097732306275839220032377860264538472802598780241198322862035809168753881154448274895472700159573345864009591764576898444177005799123317881265216251965974942027912802071502198068826648210630301901682411919582490155134119691791823951450524667457930173463247036283584809990854643293434708610295462075784993274796806556038152665842415524140201003280593124235380097868194597048723087836886309617020651519710643599949209993665076698458740987820498064009274674583431410422316082185344062345981590870817785048888618807693534761918960214338837863174046297492274116279823919491769873623616205479763569446243760083169956641189572553240402559336325525684014023122314641776166223261074658227719403050475318290052567828611980046778636179694400977401713533504506350879322620087430822169964665867691295281662918523716125324226352527692470841795197809776681533273342852292321658102026485681798446547694013700247743684638349538381367472141674280431364688152437071067045007048764992777193608840262457483254432963055334917746755123575084358573650502760376374993394774118023482965515737324143211152775517599571945692480028121425765222409490512395370589827541928616206449769008005167281055204348552269550275953541401080325760779475521738299916394418838716094379945456936815211876889445377895821060642769060412999359170591337426401884312751883293481066332939226790939499947758880724447902979253590546317401038149397079763484126615738356670934525792427457896076247214222832350919705400004462507764849278513898835718835098201305534259037919353631522354888586632476676428807777930888797723043436403610068751642774122022613966832807789319278283180801730773506074815248424918672426616492049229182259713824022459552324814911576860777074546951929679378789115574684501197426291666679337849464115603827434555890070055022256051590275816164876532958319571813576943572039929980822147377830620184608926172107447282862219859098571693893360982902242824243968962117442874527833313262376886643582068565266253860676996670809752449142942726545975506609267703156496396440114683251688606998784998410765252727812852158979590895659781558399737551505117178519055843111580072980498674333934540991169028706843467741833774298176302122081622769219744810758297363321854361392455932652347179070581047468735482455297776985689207956294522045382866274192045745535975378339953045482259204351819726714926484760220484397369483369223026390200315947117057405739637380512700441990451123150637458810266134857876200902286540992824128377236767233587775864494869852072486051205986066681372363597790058054266407840464751704853414818275913624943526353490294608819765906001658713759617540519796900885572069372361348139424720811740904386265683640389657451270587491244995424086329427955168660651286636889570569502220401057030796855422370247032343864425953187284742972214717252399699923595580824067868172440365832231967271030072370018847512832685338460583427851027264740562482364063347667757082830068336295517935813817405505469328324261603421653933374784223629619312482017383644425496521313316188261300663745974991373785763287414079784479345887958946498945527419728749102956363247304795669308578964807907631368804345887578116171733473231499580443388225316886242930729934855137932734973718510025779679832167829101049315421662936139214099388525320325108327629732608404138570629413113301333209721223667560721383267696875933712143628493247254061399143739001790965561695052452366439992289157564829869235815373723256517362932697234236700843616179673878541233833660562547331853181529470025922764281748071868612483282936445120486288621476818475140068747632695345914461369426427003268312236192614479106380589640772243020615082642593745303371724176437735031242914801975239095719744748944715330799740130349506827920981083586398634299734639304689609244725738517399368720682149804265531243650717309186122252320562716004026557002787277438174192435155205519671172809285051412070345909500698421395679969363264515972383351624109218153159708642847364817952599105095547188042776921947045917617675037164381908669723395194354140886807622930254239458832279656767743630406787929441276066812125352220231185486206504439539450833175103658367032803394835881218453132651779502565182899807604331144860120506527501540045683704621915406679880424209957604993192548547890849653505348540038430317566882610555549595184878573417655392948204113753751597281622266633434816940236848023124933566086092419883991821661758925301057140166068131269430603496736283029156823755781927794432895691980245949745194643123273619495747664883413246254399720150759828434723393195794482068089060589113398531227108018656772781594119854048977546054891976387285609663804954008611147084442647892365883163783566392487897695072026627030579402305140222409719203289061898221928097857263451648563000766202421282043485563090852178887477117783462160461605514307637870592264690086715875974449437834848271611487428699148321647846746304361522565393829797467078118373078230311824234083865215765347520354241375279124239825175624825448300466535940083123454052896778741051361501236402590045655313310247751868615909953062022150366769185682203834701129318581560872733295266035265501123249926593256900325152931753166959614662238114574247456207283034325534870275769877110872911354959347219583833563282658354811844963977592237887888044369846851536747513650489625629311270227995428849899696375904623678882643167426310063017945254606332681225792017818304966353345160316773670174468426526716737165258229639347748433205952363026627220687702437203077632734951998156829182790502473704817352186873667824857650606668950715894495623227418565601968057543651454521634996021744129171054220929178018615245622450723505714414671304030393589522073463519978648849013641460994707131941738727855807641019167308535615166197245465452756848874489773850727601442870811493832497188533540158612548564286094345601016500901599340478876270963039811024225203967665739926543992037696711094917330844645580743403434978257554277100373477393534002252784380319732401629908160435132115777354542834812321491096307125465942691005587832958708889469024636326630583367259869122724313037458052337766924421760246147354410972366959808021132453631832229437556273116821874436271671568659024017959329283203307853408143765674914085886036973672844579434581358986501596790588272538795372313696500733563846475607013952349700381108328105109285256996988522919911584619456535079604802326666306886086339872208359918899312378789499452526397184382184626303880670810322114893189364608979962335791865826204890423726261323456705428653867823819492681228961045233873987881048931502769169787482927879754828802622279777417352025387198748171212215589659487971126263246628190034028832065547568113173760802498917887244251388229086376054970123486360204851096235278893601831708339435562284479008586586575243045302366527745831445139746334117427998586754191829328607139747541829030931828816007768134106557371165322917705598105601445582910803925853795418431511810045848990282610189618735389026251648943347434542541105190980882584437975016061458189837750779272396402077146335945892643696214620948209257428159045602692056934987744649556680295756506363450266711230366405371363792146825390543069300048424148998294855053797974188920921874739716093646056337794441752124271773226867782951487545573011025392015509164821845483015136874439987456101032369326173482583612112962457351727796774462477060826032694470833564098087130649891106197187716903131216403967000143144656997655687194003813590774819834584880695482639434821567823596330506948897407239252382767606429887608677819957219847372279786041504250884714178943662569140806583482690719440742749984151089122811191305192124851977960470051205567318877660655922581814317849950103406982422699338303630725899280933634132908150773576755442754272921787845676631045368182013262758243072394273088578446667118531485703726387614504434861046930457582263158097117040798411756554410132429910821096372498419714996800266112222411627654784652915212561575249190641718122785326384166606378963454813913732507433334932955208792550600816630104729111173217413434470781720850769160649853641681946909329411556258063674831149005034552169570403376792810481491867804949522855368224315273841907653307472556479841946538691998760762298656753537550112691129418735974109824030510196277379107858485288302867865773965726021805277007363174670327341914389088725769303417274351675871220562305040774970005985401383012282415830945048270458113705762083436166356803525303591679096364635737449892093079594664706434378705119711135476651047196248719976522180212032436360552826775086567225502496127629156726493403603008861377930383929846716416489579488318065478362585224371184607435896594532850844025007063152319439322570570843838480860847638666083129044921942701551557202047438765522812521067258028872378353516790737504820421646968848385273970332448486614200670309698669312732739408701914957907335607884443759316810927104473376190517167994194272434899999185800797717019214714516728325421693706238292023784831018312180368392385300272093929380046367845219553744437335918195293510339234188363467182012275749517605902586857937581469684328052733987145139420083146474738663417013319616310226035264260276997130153799810893166441152384485344748952291622690657249069698253574060080989374554254577790154983468653583701360571082540844756238918313800795420469206625270898219317009169090727485969825754617575499149518372366424535263757716124661815975240716700394012764052654196207653579568198464121712717213496780050695724242270423461355737612051130500028600623319658976344020079418092505566013594610679654763882671693840917637986748068881672301651224035326870341296838588030431636797141697764690884964925186326619268591180822955482147562935296574161245031929512494487074275148167336023032000044550571665918474560664157354343100659668155381470814288426255251445265942387566188509938359824723546002667897548291349034492964879853003825625245656122403458073519193241049256885530198519936587460251292075604715527804249973643853625123837505139962066723982725049942735651643310921578194708211735465984446363850183844217385318968173250707498941286446645627833018858866846722891553357371786834665540805979509123550839391770627765675290414664813991111455908505374671018603253138842315776138822207396155352440285045880729536438207464133491945339107175026541072414391771558556437702870090096055190569551238343860086542896430499524187245422137029233789335850124750754636322055183980391580018756549748460340546829537543210527463467025064988757478463846259812624029303666021729082334668220216863300462928431012001548886389956510305458151264885171704042026354946457685237540198744587664604439267067363026742683835238281547866960018703286109803203714309296852602123388841893241314390178865148972948510053826103399072492225697267155022131197150157960576058822428532750813495343802529556524012489621643938806157633764802703644020310318993813503292271315782228052884490075472056133192888828803014279339989326803600338663534172241390925557258851397467393791628216102164450629590369524745302822355476931054914819701890239309520713248153648723430439342435631099433019840100502550758530041244026424404238852222961599880856377431052505561793050579151058220098855971504054512479560760526065239625626403320783976706326971766751939183220087628503005281370336304047346934863287370120644040024706115757563633464623420853885742508683124515921662253906650358139974030963612615594551042278559045530973039515490936081514712383830792369123398753158274112833101190030245140999704653465099243833164545553507470392604605420891679058896372202895689938469660378116652604910479215974103839335746861356601484496800854923767707389405633706485266640835053035097500300002323480752684936297327429055905074046548621141241993097114343923825086638683773884446649889153390677422103442500858291195555674136959664247133857088717736420668105656460683440456891341897683042820378672595329790210932878884230294478605150348615654650970837114357976522543012008451452657191301406323947751158789949277034996344818127462233913944985799843820216513074765123255158161058565389111275241653391801717517014033651096508761597763642668327681138520946677832207600159909731640949142678571043429114283672657133251116203355968957712254794958001582517198643244507786834358999521566560895963241705461238602956978680793633944069287203768863949294300934671942371129994267158280626971602203159565019935504561434619803624048990192979168386176126998484838628252198346256275274390774169131152435081838154849991349988491189086713357234148215135187097534333293341178641254771834288436111923611186015725347773037717904201450524425002653045337467472742472413075436868273521695777823663622857222125742614064697169070236318552652533139488446944411322135921025759174425764441626100891858195909328968312412502281656872304749705585482699942850453426058864364677432077403855756160219264817841893486849667558465884268310564430523302220591823221520645554416923560702650216283124234643899289780486009690826990532798188438351629311895262109657615269172614833185180796485478783773295410284546353446241049682560473655111032118952617075789340758395423445021898624055801355238753923696299742956800224591566858667351165779371866531368845987571726520584750123673163137140392082735198641112227504017796871892584157224785370265694349759446093219906449091937611575613021521119194850223474149063139079303528696811367805551681874612281664028779613436398250352820548242362969512825648715148087622709547164662220901800284793518327192914695221132475168034553536555168033055354152053422685098502390790362559614601253411866200231756891114041586880622801000654576727186513073055339668717340252745573823771842991735322910040183643044031055399358073009961291987387901736769610390068758224736620529732950512662216455151605078683988039685511874356729013543397350812600929168889393609943527192634699775613734243139599395682025428440371930245912456588704109951862494812787883200006405196751286525871448323534299171591734898129443329766199023020158296631068484051156346096104296096639578877063027381894640902926687777487307741870188360379423396012371771371110896202076944701660376481203688851183730525079318712736074298348906591002461659874424067739853851230458056493671460877418306957653593760600701405635399651129773279281430471924085252840830551490527623909023876073058090834143628410054733690329113711859109617200621405153620322833927224115631615663121491405709907816731408865621123091337935931525613541120166038540685376942099292820072796490868719077093336107591941443578054336487449483040157330648214427933120430414025454933498139510840931015811871781331903053515912151518716601708285899904428774991247991837697099568199407018487375441797547894567749958631123012186566915860334476882196620755196200828995598916466508795736880049726123830793082338002998823921128540920965326246885738673716673772504031175336365712819825305659909805063112026871905139268703588449945220215499405573423578010660856207718047955407563648261674546200402726356254734043094096008924695912129158873000346884594347480671298445648009014955859333490983717144505405669412461616134442516436500412273853871133428431524111109047671573634588403945115531812199992879094517215954731134899438273703013800156494851963444988681806564309720227728193657599018911956702868256522429818079385632268736586753156491825707075051501412915978208833453802443642700165114775914828052863380883972740229134141961698814371289150621056544125119821190834421195089268806453263536189488793807169659829278147058734141812555891155500478421545938163260901140931901076984947509647869105138219525334921229184344085931942565744687826050402030400309222340165473482035879396111985973955680596225898508740555742324282534671356774083194153317703958811230072119843345421760260097604200378728800459713805966901679545857639661127550385352845316514067654013038407617096256485505985891619146761757324572469201041041065851200474287684161759657547715265094976752455612555545051235821806940363064065747440273395823645427597954352377271250597127683848445960594182808947458150121997261837528851267232385185863249963473438103510800083188520649733049817470776775412385334130995935884288415875930140990432911128228440253179418495873722622836748428631280189104315500932610066113129197204334950999623804188091585368226945176000122291267758946648087598375009614588965407571016705493735522319404512385707715996100064652086243427133070170680596371842342524029821212312904945859666684608019769972775272392438883052007707845984092170120817759072476198408867146778599969312163140944033144691597871039102584860272811071721579266317530421148494341336019309934307256841825441958907531859441945868781290695399968355739841358405575533897147626545690390998797678149653224958079865257885404811778708505875308526706434726155986137991784617755855199953889066485938693122754314684637214344502743848547045371071570429844589389795774925212105529129799660169170873035387033053739471580450509889224885896156574770327203221252601245834379306106529366230400119243031657721463708645357304933947540573918691422318192791590273256611555477509790490583103778938577212125282106409182837252073670930918128093520367031010893678711428951658930386122807508694551260224477765241015129543149753495247855456799175726592637194197468497232224840655414619962436246319300902968832839402512952271976431896328258326791008565624698976302482368533815362639415880757778523255185218506182984431709490110012154054518684462670305157443294459626276527810832333067900253549913176647627358575911164437335402155247207908084596542578524618119647095762048910010760689779616066067808878273846459522294658238567967914679528365322208872772765002364746239466777432360025874812745828607798783671599693309632751208644649310411989092592839356915170156428218300714471140630875384642145490779739928374575418472826829221215846258752919261432811574092883864434437428063860599275328495734009681328839506608447814898971506719787598639535216163749766961168422687005373529620665043779416170019545143572648489174993965286055550645012638057910849665021790963244871059335985888892094994413999111842605240478408240015041720825944396496304050422432334423412231898366259071657411322119024917339873698979087191906692587929184368375037768708134990084596374623095803562595310651551231093349921946547070691747261511176249697840416431496347149156813881662405609098234901645504865834821322106776934780797466687398105150897237571460947381775184673851619229096048670992721505135742014713465416808025570378438242131536081317049732945431018124163067091523053094743153024091305078799773686670972046702989465347814381925716664021546080674579733385844781305655662386139896418584866505567678593805952642555221689269692525176956472300076002396451618096632359260925838951779384039905267651750467768558668930723376762288726582289415350117696979596156241813580090718922442177232872003875171060365146482983303305372249564574479816229230358996291677314090475184006580417040308198343943816548910682882063274621198248333338985669895292902835067457738694555924493084471082960111588504394025806950398954693995075967060331038807206468560963210090329813694337119066353168279711311263815573984743633410544245921492844816607897224222569223936776987105775043118705183040841330039336437281082996533734411843544054805618815315190791177900594720713732256556890176317136905300394498671178677657606161354194820269956487696791902535274151051805318047904833229952470738710583669162523514973795883812907822441718184814192014021115123662575729733015244239581286386993986566596722570847471629822596727067005302783891661513453538680049477491872956611414023828964951927673145521410419075872805809654542738818448510164672164841286081811884855542812565319604168846641177600469619279846953850848910100959577608489581100877809318334200114711075366451782495401231276452531676859891101361387098255505779044828323184614801238679941464979419983198656430124212242009759258432996544368400132921753439548318530211210047161890806925649216483152394616466501537578187636285721141963760634590380804485144448268896301485547363567177636112665520430458032861508783195079881006470656106905920925696551084700855434217568242624467739983958643953096218576016685023513457339696192916600677121304593927898088510746478370676439446009432290240467283764687747067208984224155797931820852699024220508528714136579411897819785504587389757252874600365227032362527644841776506081179839508952757538706673058464281051722442379835925436488986759190110848908531258565256849093459137873410967007559078717216941505715952074434206547730785720149490965505911230715608365355174411382300982288148106012175954828424074282604636970643405576271180674187884886305881954050094623354931598350794951233441213572825926780315452329051660143981142902824654494029523710575220410408719852639985642562637879054893209384738109277312745761673514839306932765056656216510271885039240621199732384491744898198451671836974498021578014537918841419203669268865841251760108777421861457740409016994907180539710867021896549013771064734514113106185153490595314547451367557354141683472166332112542241507184695989545013350691631304662536485450402893329655830311197227044692712768445187936986647962370897083791325104578842326704877073426002470128939973636738197291834119862214376692896693353279645140506039664013467406763717868287393048276432252090231302919414755942393487176956896303242017126782671993250398151667836940800966020396142600876263161771576560678605542088477315621474647508369308685473326069773361088070161145554162831138340683635597954777594929953511691429683515415906531174851453049638023821127319513900885682425770076130904374910970801102693328707280843897428148571623498332863755675513226515384940228560697895043137447601216535598183368946742757422540139789594921292535499754244350393113660773385319495920506535804086623698886835741773118120204487114491206080091414041788555004062600514238980998588060625998593878167626604123664222145716678870393861741585904246386451079530432107075752610454004327624195871577617842744430767390248190189460719058147553505810236668628209881050861453317981521036092562555849947227097303806193235909114715979964546453672331695861621557701291316057096724507588063294889700033601732003149633967031283239940699152200059759581699408488928790287870957148779104899687207013326691020490833378624454127436386003821688457435357348569542376006133559198136987649211296354545802945038845082300601904759169844999749285356787888774055789934978442999037941842816192291664881251892815947864416565586115774593040323582606542663128269069150646614399822782040111367023605190530930620673903027388120691661208677753644625729204191297007926545074607753128883188325309617839619976095544128713730709131929297474923988857945269066393153737183766058626386851040743922546146929987675748887570048359865472133548351942068203056630757241848187405753097137190801667442371350489590528689763169365100418441841929310641217624349642807246220795077792707775940850184783641036810814303717300047893228768691588740232752954812243787785994434661532103076203193244832730028661543436125006078980064933067707551723849745218389985563254644198317277638544589402036258928886700741919812629633704564459022096778867130780728851177956255457236175317918344958866223470113919646489934196257032419095545535429631166351171922664204771691513008825332423423185330638239307999728026830156448174462806677078649241502501406976087151060958026576018636858767595225548486795930916027719056171831102100078722860230717868791671907153620932990534336850969225074549573359857226911277559013741008525376269032264904762459823903709196087975491852306887396856358873495848827637613568436402782134965320221620253900156466223865132120426626370651407902029875583269543604100466557213392831449323695411323766206922383077364896405814413329795519439965060432690833736648864366002864911095590720327738217854893016167919135899344261282022544397548225777539028780812390065881804375509744776027130929007956101760871082136862656685640334033271152619979995460671735858910215594898711891888924143102785122441590804005135088116050053100242120192777976866867663927803620821921365378905531498926604922873241925739059632046527108073528121647193134510770658201261462023871186147015002970740207146696289440809668154630119720058921390934865749865579420051455738231945060464183498439163441493368749740838434704098434929055163356365173643739763721825334215539774136727654626382608507455580467103076548575617245620751135488719795621157128164594677972405198473402944351218101861013460103771345179196670298539150512262354271241001366659627482565857238177581726177435766961985599318320681732839544831205545925380257061533048083416583394803910214389979264690473919294374301016779488224785099582481810328094072185262294280994856309650414603144450487814733274789207249662717102041050985926397189440193288255513012341798874437616813651218235312557312339589492030054020126719851574127561201530177429127207742739435965040939541993645401412340996021394202244840851848483321984259084253909879852102959002940772441410166546548734692735597546154341076423816392065403660153009385025111155626489319997534489065476148158125225125605625886990827064474097271117372916307606223851737082148659800554922417755437038941183006542088767922517738897018732255934931962045405433017577472139657594054172904813040271241611386805480850028817869410920377203379813160679107434331915770046566787945928001716592357071526413980926534648279061662369076535697062151115043038267854399835020231311367390698206703166068447353073948048087965245153533484884352783030233914751516292794080379983346314666606140654904594593886078265474572932360871022583835836244876400963703453020958641673047970510701884288202908196783745946530415124187771377019357134259435585387366015956844885066815524210453098215486732732789692401309334246023357995907731208939936362696523049116540323035307932945940864919964386855628554111227930333107987017136961785686357679197295505489779400331138138617295212007199283677671612152012623032805942805581757170472134139981826784048102936333173442949569290325608811745705769233818816845583457547605448550338669922566660302413236162685074951275396535601036177878903245506791357374807094315971141950708922539420848610779897880214369338173940133702901409943350342425677628449735643300402912358587122032530991703381390928293103393538601830156819777607640223037608800979903609249979059140293155436029472797168567477778308820780172716942800766581423156748192285330918852939746666658959310851845302819689261620173954458676532104676267414386071802478312355733768033017154053154804284034047879603214845492502954675674812273494408034755889424311433730437061424614024112120995161790531576878731406257166110350896957258720122629621683957084095176567350523480854456168728475408957733105231858856540529100558854046202512691178400663228879374938386754446911884085719933725384884399659233482026629003669894848995408013344749062364815771907478619425273030742149590864310664652561932394219659142423666350166349986935941268663692222224827725469354252010387549076660458056656897349950352176220465912906198026582683340879524389498285174949034001604693403583368158598776387302199580482154256615906562179358709040805799605868446261471427058417190467978522512872348803659952040136468522311454511205362033785585608648993524643643229371276056743912798314340552056104001055014300541533757489707373780058526980187771523332672017006064142380990427174834776488374537869165787675184569495029039608654531316515567908756307795999737028184455226482416600072979441770406434599022260691812524310428293450141198954416302540016128147305736588358769541929229595815935191172299796239197590416594807001069476333244683870445963029144955868865901797887657836953473639202042909973352794419339021905809093823072881757173051044979523845751654715290287859098949235082657004759468558577683119668308208489826266791267389571313463253340529035295488675633491080498931253099546845700812109152164694148614901539950772433781005741899006066933258350473810468093694144533014239473775182131798068930515519628932615305097469581274172084024097194589995277496683823725634441482190580449971435508295324882257161225830156720827615406682871300503271418439135350047797225155373592447287325741537530349917641588099643039159773153631700146666263882938532966811592603070743783494931725729381807150623573275372182626993638271866761017174728594954695719845438378042883998731513474057817584777889298284859134533950152322698049341443424229707915019552366308550328927441666467452652317447590828312483577143954428904532431987332850987071100756793105040662004523488769620983602725715304892236434118494277320558432615828460215727004191183454600008218158927595560313867474320763757021191989063352261090593819353869627872134058946430993109316722925942093032015451201207635635057394244009309966711752279492480116181988714567156951356640542087767976206246926414995030817302204782632645164677876902798939357751807306620325663813100246392657038561776205232789568029767476685134444751764472452583129709100154195216226040379556424855353764021966331913033768139944267100331757430669996593832392101679961081366332851590702432247547582908576483937651783609911233439594683379600989713682280659452977464454344916431737490899861343656825724887515132149612382021666349967246543362852294833250078830637955213552008598514202463098711936117760950118172338005459624071636658868775798018760432819204020502538526435184920291579689226630045685817661879613930235455990846742169065660651940056752229851959087038956653913059940991223875868492515351093220095867655115396149269453494535531114874187030670730737628232387402581070679118703896549940483831789029974202474674985039918199544606085748783358665247064623208484548989714550203211614659551898443574288779195317099896186451432729001860331206528788633392565033738888358090858245056439466717126311273652227651794148341431683944945826448250562280695013721678705788025318850050589608742956731274253828934141135141098363279885415051496790024857242386726736918058755615320397955672635431702530253566306637397762087419686706199317536715988122211214420882370381070767771375956282905938062165832168690076681541334530361173846833939551779377539946279601602292963312741139503528382816358913277725561093159819764425527987872558964576619709632378230533759454200820770556290904423772528375735081104040056311832194854757861095056313507147196145871051697618529586393575770924541150199343094888484589573879586316249741785278593149275065171741859749511251911713290255344624004965947812113348354003061893047922430015246938352141367278458266513849129033205031357201256181400673754004396882899439694542042456550896555230524867478530941819467440938190146280420074981220322183741005297862394021234827490958027699427779805237492113595524682188963910586447766346582065405519641259771066818954786286963098095141727384635092862021001792923470894491824574568846622850013826861774685766300597276710809819178413466898307819657268133250223501281526644637465367163315097704977903901822917557745073795576006464722139120920429303506522735961180822367305845990048468230458124921692957959791204025686575985372789511937867097557630400947046133353731373281076441153226952372310537574313398942800681094128348693851117006426317179262491664815198874375304047530512293034123137715337800449968811325025434238297692571017128053106293291354776056145565555772952963108335871135742185219625463057900974503017913953385372028383832396502719824022022884685171939123593896573534344438196798688191897213800280843243659039798982997552552656151002207915613066145621544621712140571590041612904438622207083413102706042075003529375869076960600532957789936767372835297888969757373904163005810514742965680954465848708713707448036295749416226085248675748710079006465984760662214650867855537481832123673241724737332984812145276181417059642595559755947696069959211536876920249472089302056587706135344412448096631753489802569354414671106866553104038857389426991581587567633138194168695268375280398679841465245046647913728789046887026212586713260160127363828580923956845236045378816772821277339390359398455116240587860159727624853204816690533247955017661564398296958442285154072003535584801702725360006273507972562630344246953077804140012329308810607561069801246271586751089223975778746080074596063396727335318329118983744315701664930314966267274926175195315160387552458689189748859873436286940952029476404371520862272076350506611944748882642018124603004877166958462339883734130617610160974878668282961138233029729515633892474509207360352132241652094478776141712244064242361546423707208787346624263238291525034318139611011640149504263829812912083488807080898160219911242102083886913441318977669108314228197116843172560029147442335823692708228226441230143076369957577321323149456341257717628391775306728219315023160600472427232495923109165879629004042071368467893678744027995128777860096099553589405852963624069249775105866433317119466476759638552563890943048830563537376716578857872376017771989073566254571257054044195671563789772606987996106478825378409303860362878750442154237100961631662476536285416108089051687240655080319023004041780394339632294478524922990073359457166388036626307332191843047872276556374767829101404228930769658922062714378003491561931389434970664224087193804649874424878175789870896791652343317003235628777376975706758135541692528005966660700815499179033682455036523926503690661600004986430557101489075862233709869771895352604209693805434690860945572718222974201056209631212417998433253350080773335081340648685064098501060892082205312991847033564337148517720316980516328993232563778793701866982776152769700189951708357432247113589095736559676296809395970792556532255367128056912943939710104057585778405302147451695743656825236320427654521423489767299743982141147065413668457518406114593883468727776916338368364828240034819634333502303350046385346467526391622863105308737828765942281496885544264047469196867736230995635346116572085424716682164848741548106463624328493595293671451925056735938030474246491235109060718032012356841145802495111551262196379701247539056255132556069173865682381435018941142407329934343965756983382046406331037604619219591893449081342746353965239126349900379072770134602061600022669578910549648524589985673668794992427520299821069918586796858165445669284858571728584172109200878562346976593793839257070201992647539089288901373345219956462150575326089043846379470673139149549782883293777800278576800295280766355761114227588057075015484340897867264522297823407917124141938176376292868763080809944465439939360369987482434626360594639685575686610337241933111441532021085369611322014756447306956442374670724536707391218310819511667862204081085179478020073509370776344733603387594617572630152694297931636302255271423148318674817097358513629470928612074788386196934879666475838996247720010299513214602715854602444896642122101800904632771140798330880679637204994129204586274300375204667245809480032505254733601602697521230248708108428171234958001887283233002236597348199466333151408428544130554434756724048620219546746071304971853183940581503015385795009029557344010535925696786274225651902435862432074342640231303747302913193487648680219135750436641789006441962851665656899233969294655206618605565845313366827293081192203679011994219867227166438690600985862034605435084156335138798660338115486903250365543037193804707383770220733230765373343773873356071527674857806445737711389082097525291149930162467204701789860207371167831290200044227456594766902017046969029500364987713448055465696869395668298466171507861005592900542686643343204806863885124220675615695633769387324768692583655840753230208909274264608296049774016146530032642966339538180134962267897617063146133237625710559307841486679579074422353520639688867937028420174426959438993171348591863892348172891718378647336306730961420906240501478672201875275544363616876468477223289955163246148375550362657162296928966899419803072111472606042899396713844360747315916122197862786574976093570006292302062583040956452003508273748226525114998759644480637103807014763988945616061465792350588366292205543479800932405650821044536668528041491173634601390768614554448015585671291054418545528712548816633470323576142354242551589488414132463366926015050045315473100817938420558068464966794526369229971497574147314660860381134587775316145025815724692065260439977565386381208251150119156996007401783340239615365791870306225346216236776665135691805166188061852097943819395513445118716798388904916784564425245520987087327068570217008010126908683359886452191846344645390498479553308482430589383526144768284256515807283556692643952533876531582628940279094242816449705249541804344430490068341034496715255696855507277263963719474892068051296707389159229251906250237923903309294050220198024518773827857577281411770873984791612423520642139268955500308183494449173370446466483615754081411839832086645874855841698668921400657264225242633718815311473504625277314754781724190800528833457422585535354917204875549761618816396776827534439299716222489592387563243584679686559067084858472110828111435702207899316474538375788049729062784708277397012933441759707211281271380262311101340074980685079779954527076250766768713620249259483246374010833088046106465829075952602879092382995126609609234430235371553309753691439628958987112821922588343134646083183961844274120513483745977987450502403246952456182487115861295369102883322660585506582236847266606831961433412222876562013032481524677997904736378221255511419201493159140119624129005949868713528807571016493295039649014910578536805607315385089888991258086250425214484123590673034146862361037338757708275212429454024033884819551491786220918988187883923814805536706147116727449895915775608090646203515539187703063816834058867532342855251472855827417014510414648678933323119538057813134146292989652624339249951482488388593947211198073566334324692800622873266244571165758684626659973651965916863034344630094909192350727647191817174248442398217393717554981340650276640994312358395871435741889367232432793536675506637984963729963407370936814096554668352708630376475632677541996337559240566476566871161482274319838332632507929911853567235118452469189299241220397238482327263605033104957842151499995312837290323832673228849045582918453772100950047499808971236795643635644505395861012137515650479786429442907109414554375452833242370666007318123128283950501027324422173821796544660488134197310165309257728086232112594444665127964273060625756573052884432698616226909325544992601830227042810266650598915702548740923532102487237327890197505655851889911624061807841174020339581400814609756976193140684462083689548037050578729659649191587871267384470065723786284849420231434353137267519263974074707725852870108830976907433427878829586905865591811597963362661069354863617445279567940253573376014551832086649803327464738124969886881198344147067440247998802701160974043071879701231477105491478166218577107259941633541942922261787183504244235248970488604115042142803069993963804838603675101116021218330377935641295137135735903258461379381060890245540957818605639876190153911667054452313597299576583117085266715167716397916287149800110908971416862159526393520415574000265381398184167858948324243709045129049421601358864370560272628974833970145659227288685308253575524984667181365247936604478959729959120717721578001801281461891970291441208863660495621249143128934258538092074129315490414638590480062793150388045386058780268318423593676663224990091080222693826762173018739690777565748073277261051342631230981100465725174693817255831116921208850824638553497026665378956163225679114549558909030172915302025793795171093657443515422800402268093215763959906703411900989267243479546117702703242316154708433940773544498252965897856954857423993229785467053443927474104541336068961857719379989988901747347917270234540082727371276217732403952141438269845960136528978185003100331470756261210808812894919372334196392038623030844359259003991277165790190380549759705094612427155361164545052996540698502041446591981253881862879714909853502149135842843118369550336473529420056787884896987985071646260525382054829731484516412301020132722588272021537457918556711162036517743911689797628853212454439877890528345874422123579274043732512601781502053039994939946666370477315471860612717098673036047044170127261223148121307198164238757687584504162192888238867404361199366388654956979459889735051549405322224217932626503162461307507736600436988720066955459644811967606290822504338443298426986372616108849150888088588509491411690824083920330532908292398653975696128627160482372190718955984823619728711958592920774925427716297668175663712197817462176472430278202671309822848729710185715888167866441382607011577139526182556778558619825516246546570064679941562509615324107055704348803133654166343650041964004134265062508572198088539724165046397901420210763658317164621446290645114590485322504749277513529768710252255802118064846582593764019823094270380049966098820343485662091196392078139850672907310845077432026600097472629025370711171798207427149261179225743826866699155144539523972247634905602678584998472907965729070571140378383127854312513671374084851499337495650363118482188429922632299835999605662327903795413470460437236985084740547649623585344559856772996384314206492312493455847626920201565308902507724690688305411156231937468182785208535157236397467910236021075907702991903188932543786286125837290523394070243669604208790087678604205689890110859736300587024970506829607779442949104614135516969020390240827117100716248668237515431510131705413491198414340834761877636137913793615527722957441928704303996042268861899787460231077219717087851121279441306123057253857971766898607158168098742585425969911649339223403310604804588073733933954809392918411327756135501686207373776427247274589982411260075336154536144605140583894260733337565224450066772360712856636223808248771997324916054463113233025323881342786713072988549540614461613375930777960833976521737072427141829448723064154151341957108308183038318870918555515241467392700923619546593034587310617324603077245382786501051225434532995059370994530292190918046046268388845992868820968165078952545464950719978663372560907680552351095400468250560850948846986705133904256396784653388242591111170616777138336896687541449842880235854273391316685543529425185488572689338707235659637204663885865993264051592229461484171484109679720752883062854205137113784560362778347533579167961730042943035383086450198220877062642225807935392633461244326924074350914140304338565644050988728721287288403097025999363740176640352644234524392713486524927119826491893029759790975329366568284393558207006486066209725977926669503237653324116304800737841111144452455339015712695780517202928783702357177196796465080045004132782370015919250107469992015332665040692431649419398982826767959706347143004422309608982632612173340183278004633781585119956558588764428184350435951084388524685313781811108180486951972274038302451080121850342799993774077727280865721841422787296771531330741239057242640642161363228162050382193853943363787604787458076214222584812334666452635352973896988279459843555314339934024525495575194748082158317081766252784833804069738823630758642896145303040415528854016186911441547658712893000558002304130956206541768032533324729345917000653300455668469690982465259775938501820485312323360715464364092991036544117380563730926372566020771119610680213821967281620180891166299417668432796474231211963264422522017915447768149764603573060947005195720960958698119801245809817717181159531714048405539359251053725735229480624268469970758886962096659936956977359181008606451993513696012324388647424166800259767751944088684136799395738327629658662303396724024854099257389780716572146554689631634489297194590941004767999829230773029995823268455668276169904188864241947666437205355799534656956077114107279285501044186277488779158632676818878087514618388934985879371875150286766750128489423187941030022577566030863558783334224944832197225700201380804675407216417419169738055789875545422600954986910767510975652319584528549512545331379715934239218162807392832398726881069108361160588423794030554315815847424663043827765680695354273870974401237276339997585657026193680195313365582446641407250129126124824695159357176318029509069787372901058225147285182748872051998234883207466760106498498803649947973770952737802919248419025893985960104301790984198511648502709307065162838786248293782141175812916057837090459645027976306803955865158121535637729511927668696009789677912173027539508825403318384445907418437587201397711138965019524407839778050299150489412868624879372646856577321639369300638029428289279151456897951815299154710578008783740522496260747632278544519638393540662814095762888380209244185363773827843956930869314937729154826390287470873056997232884757315585722375707191709456420381577566930535443912875082219938010524502985917530998926154594251797285860548829180195604957689426840661731618615504587189580059872360802356235521335203430600689034889159015266976281545776193661908967858606593842454365133602026886389162768606445493940734015411333962458207824064085818844320257814103358947309926667282419283288842425364450357097268944922750404509417268870899182723504312730520788276232411878447241182601333232288421229405962297362187453476703410017065600666043788759178221869153571046489615822580449401054309008872004604184588051159928910734989470362097715208320277002628180480517418419990613878104880648872430853692127443733802242065889850656980679455639256732622441119524073018436558218186256264658065663796238009033845412060058001399808632357525444119337804003992674563942102720869588152306688024267428813295082032224777172177852759826928706943861220740191547865243029598103841211549004895505982974859749124757621940904264399032764023591608836084715204511008517876039466642907883059144247538187777136611237022815195019535809044347790381411473276148049760417852192502624108918079471331187469866769175207320205388526090297527813486247787085534448656403467290229444472816674651876313398809142471526342484140000488049439118301112995015639216891390675947178395292364208623617806459085909544466009380271459433817040697404442452838648012863629193652810222431504475900468208817765517111242985822107313261019653017707872891690931952338927147613045235293628069049611659261993486881805523424633187998291727833947159953512695217922380786953036489405890313149558633596990411500660949498310215968183667963910678073626110874524854547834609770123473251814273636610498629086924561976345489390880033147694682115427033828273904950789487874767376255345831047545596351585102929267416345704987022346669152530432753737696533218072209325127225198880004317718239621993725376555033992576206346327237261339082659126868338243452898522515377241988803786775317105977968106657265880789874157418414712279538767060558011775846184172069301403986338505157874018079268474554664290122904407392178965553015594950186295216910484359722737043471213678771809073374030392067708935305120403257527000459896120274065921494820496775169083040860707879055299451698442436197922876917515934501147932499288390973138396382880263017921579534208201088199105223205096038333545054014154276371388385226101145726267004386790663434736008400633810977044514424099382961409265978372716831829502560992023572900109033191612048014958451798862479046760728939394048287104820665807169379792356685259227862260511032216859152465789733600637335182773686645059739078047772573000659984341524332045485162843777754020284570232396468579187983763384866546155760956692484840214405416273309812341755074353044344164299793452875343936205493801402907235024582977011362652358338910066166899846009607126390358935292720015827215743120651915979773748146653140158520527088640124612262246251527050752520922264219715388037965703948697624810925865962396536737302878629948384289904767279718774339113368341916711775676896276026071648439116077390902617788823037949599070881064762767535397592252525478364759670857921349916974599182100060787747424936976839296615803451105831551270740870214533136192819542610033540479482061758461491449031234370054261375112478437857846560784054553519921185811125554281495523559416014047453665968699110784316203953312860530983065036748507376000110734862170270696950247617092976076136484769840666851334137045710227107744827395652726435961791706841034298564958850898934116872563840435254239157160866324825933746708836750765070208734145499445399093321271300890642014936095221299932855592397041067254185026236835323145927321502084083345935710101453013089100088189471480812926937199981598431881846803762833155764422716655172157190799534681789207454275520149650121392088985158298334515780940525076296698972944567899106982726348054365310012250052401244614157551302927413786279663462470467200545050893224350612963230306220518475238856984708927449532235961503292091852660654514225148922981433818827421087221657266956755382403064675826404447076181397595816124866383433035739457733909340210971628921514648878234074729562911907310511183157615352185647800366717491885616269323856253138879622383488636499109965418773823984078031324045634606287315849521088531350762228750283816787613180668037068157902333667910737762541453115957112775606951920943294382645966087386908847329198312483014600117955318202548459686387906229212442018802291178366727460722887307344542778115571313880387188799913191795723041190503830941597720436142319557612632910089569114879706653682338062829821281855987389162883455730009062463326830801514652989062356586272280367266796327839293887319711538389377690645486030578472642180284927695034935090266848797711532014020763484138173432339597833752484246743654214773678135654959022265680055018561618535553675694834490513725227609411013517329507434107459693950799883000803743528949811276097042430568556082107848520928042914594917188190600620472660763400257291805412861650371010234941795217078075824351211544377132971301538792283777835196201702123781937186522089561606473469927978308363306182071230689276598910645420604331327127885498738752911802439779450423200807785415056429324804855096701105273832501284110977087559301367059007392716137979729493175492289862540664074366001662307046103223023536917608924237224384016230197369593134589863519036674900082805480747785340184297173087323760195143122624839360304421973512443640970536673464665666117137026742683172277286424527159047235873931787656973223053017093357182896201613429084925661521806704346503043675308218912723447457399443769376692722008688390765609327050616009750538087760456743469521080780162261645540611406149655305843710795893211129475010978881095051820178593329963548881367871730902144039792060217441872844673592383452633131113906679567473120176952790493059841959920991177965255051051194902784878908563812255274899667495631111997626907274248478173088052289182859823474681021989033891759867693003145374608089828128532641027868553715241656748610767737831103471386233134867473331245525651213646602657119837646178300876655761375461531437624386169310986427682509706195713777434549037187958820651919451461284387278729047885960408998906569359874860088359234962918222865842762123762894671839077999359015649869204375610504118064442933078461806593023414990994255265448017384331877581869691743690824004773842376520311906770612041380654350021991552846223263746968134864274525330050151754441820474701879598548253302632855248742016997783968509123861701138409018631791447740593970359472562734578001691239412504525452202318111832334845281060299276228865826325925084630963637712771218443608406649347328567745936081464289799608085994452667289673439269411884259121336748327351514282798733433741999566135885825447179873494623714597032325601329265871597302537879518145120034192320792099357767016481776166194315837304189113068862660084956223962830364011859208039012952302005079550373678281466137467599972543874339034814129143304875831827953070685108229553346885603151964871415633662051807302736820213825873991739268910972571917238826128506089061751110458289343930729021036957526388146737099681744170766510235978700449218349693944487699204758828886421395540302170444117236594070747346881460574921351572021926791595835436373417810110089870276312058077417553875145972326446735485020908012320432815238329826538254259694450172572051342243236919994086010555741556662160239949854631873757187767605589673612236110815516111195897269636475769230606328345133793782396905564593576948839226012469503481491979962405698063240526421224997618346864612894519177112888778597424989104516223396389343893101053370991531351778836400075588808672624998057820735243001493605410969774043227861211403881149796871476185343277375319755508409095375423528561982800945167399782102364730346236012261150015413851935181485712855101809568220443585355123256961428682162663279778083963407420464378429093020446810170703146038602341655545847069460697822128802168675021117889311328502144563530416603785837802906787768162863519006302516196143755945696370052007340591063439103958150488780806737813632943377715808520909663240810776807876772325328599783801889291156160283335039168176007142027790930640081037307608727878870329609732736992016893647484064225848619709699251690375538603445610455863106066289572471042350570053191787068475885126355787121599738027315610510571025254826080003466945572756338802458826440739111145401824452274568961670888448357255398595757907709069237467784369245538883005139989126224564333484057281474316020417595620597509060641158597864752201620433718804095329078653989033900094479298089625426102158271133939469836272763946882951106889683043105360959985146007110039699251101727311512113832701595930925553911396926226684889684586077183867224612806429846599499131992277790300780557956805255831318808337943666489561938428217367157836561278403116508856090638422434273857340831960561003039564349723147706660328376257908870866800562878589986948531899089064390557906027292442874166220878811134324117507757698623698694809438280473538367478576072554717760818930312280456370188456948833016225690994577190981072321371622357677196095490007603379409317647453417545774768667579544394280666771591211660599827949865361678359482788970773349838223420316726980011060586606821509561881907209510388915617030344962780511630433244752671048522847069333170399994841473686126770712282134712195296535479055402081133448467692910784909588995047144498686449324443691784165445531390759313700634600065111694993553942027315218487180961736235428201288124877130381805786995924604366154102191361279231661572522261315032318452932032652029985889040051342031155604924251212196492477997283188532532865276205310085951940961671532970765627168296648065369250553043095762684962420421369066620728688365993459795467766821236276975722298268858251683997335753187665447972538701606335514433729648443987333020281453698055618357991184354452392060178295184186415704672533198012560815448841893814029291658786534991370106405079644348420133718991034668286856736394145899136748611981883553476610123016911621381959826259688262089224235714620889839375284148128130301404628884641235263571044262892648958683858798358892674002246954575331254923639745757797695015926123909599917784008491014551210272499752196875448626794621915821761487900970468193609226071031618969250204788983950155232195366177682496065448424612131844328895099262925692310601719816302517866846403937439308614009221555827090182535864423818702265297054147744639478094764705379667626248463598803110192584723395453670305717959425302460715416632894952399236440482910853683226430921718092271107330615516940686953516926028642984111214746758016986992063851386020602351446661019550639467083092095553266537942634592552485054982848937737753446318418369282336297901493715370360583791544124022875817551560234030820749066226021026532260199170840335756439732216212906229874861347430881978582919467948986453602645517692515768484480499558686525757809783527032118045981195330021348636447616323154194798337780232622788711662326983565081184064018063366118055049009559225083541921724644146775236750637155328940537149781261834603234381943438857798770605378474121477072833264234862223288172717264797503212504182758853139541965836000518492224367534045445165784966206537538184768159918067434650179160058409078997743311260833492791455264043149855751136637204313267929220013397086230273017078861742590671321205806837362592099126805348556671270147232586179670417923056818119402948015297490403242486118747069672686020716626927527562434155531479235718423267476645788543469782588267265802005970821251182452112214249169755094098825464928153227826898221841889304828486698906722041212254579873483504674123403719581402574335274799582450761577855334791133160079655910878923922832100001314583960035749311312101565369511531882483186445117233965302116174601907786831088708013571847368867067708574776727694598342719244173584579274619034695371278891924429081513658537142811730159437859568736726537743335958702699922062849699813460184395463552993513272028599202358642989657702630111705691506177731878180988280137972240385087894963645219372235279477349651304771171380844357710827015483286911519326602664418892923321412736061835216262561251916469260855231954161522300720705533735441347903770229247733045869734419858320275560938982780552072580467316890666481510171699150423776860750390454077607664838451603348801604668317879582051097995608725551612865987321522681253819657542541279326169958780148812918069080874886255982356059494098469166868981108108444119843718408700001812469809200471177439274405616033843950881835959658740170664126207167672087583026182348638630426942352342702351040424501423041251403976501049982865782620980886773267229071465209265661690219167765722842460304584842767021991648442558078606043496365651061611950698850209470723969107010677258579939671898255838158118692119936182456565667586871062247543369363772966359854595050685197293418309486766550081228338945788419597844456593209705024335836921264422160235373089586093076548571070992300093431204662884913174143731628604568295289788829856331667873814442469186244785510524497953557195650462046443534713501998363167173395865951710619975755667086546524204343386453616989138195999050507961350465570207276130944294186667230482838811731292603831121674378557877045643257442888492108025224228161603304083418266278130747106059951857579582046551922591962124897614716209286677043061789080892959495920337197542975624178546401274979775018171802360434920825658855768227245300450919409726812594249613437989962607518841597872747354752462924318167740214692611665730548964936296028422783056237021315909217316688556629983810200365462550731376754430002014691681551421494158400057968997724027986881115100032716436042047723049275997419364961436809257846758882440919135533254867186607342593522282883484138605493673665077719397225322944238718288176240607148274299861585108493520134477242916220777236638203794131977226353053589239116299980385419071245897442964382849427767372377697463304374597462430638086823995850939771703815254640563186682585962521207785121040976692021840748832966543991295978307560741723127764813594235336387307387750750468404267726122029285571570125545565039082701858571184717093230355974794186562617978799161985358000964707178449532957550680442502983540503455852914406414661253839469941510749529421477565607764909394028170426194118620017638317371067855421709658533827108816661280182422561379902840262042169914165246335574628426625220371009013181937732993017108792563767336552996737338395872823770310299415435349347852026194004232830188168907693976661613514161955821268731557082985898118326571222998927035631811314690622159529041642513044295696680567934356266796212273870005074632839457516982615473757916432239834499813431510538002552216190808003231031412523358469953012372064128101183298724309562248253148307497005993319951940320534229429440213415004359506366157224120479528823836374734774693741356051546956189382359907597800061217017012139680227738914426146077478512377758969921730970789567736974639904515130020299283621115416870506282753454027161185906662633228447614780591794210264317526185721084702277014000828184755011475795668789267411090782755751526047478564726260082135508810103714902614973170473765707628188925237368519420403636496306930546523550062054395816432236612490592948946314061455545224704729975764688257159390988601575979240373668794730530219206765819311089961971064051960551893186554029194045862995577829091453119827481689651501182053076927704010345432290970970087414368590489575812075640394128218160371266278888243693317732335971730726622272483741358098799910215553373274037047531489686865400430322432557316380280018237108755609037533617138220877700580585463213772964762793303282849264504903062801498276927325948286453030855105736642134962086255095474523648617229099931314449570685236410739978504675342384678010644003366388293021334039019095929525099211953987540668615659994104631996428331123244650807024212049479572121422570677799403794790198168765591965628550311613626877188910357583392402523435045720916690343368301404917466707757145741811533781016322883168657674634884407537273340144903508729797607268833064939369109413949972505146633251181649274327447889302298416996262692565190271209360895219839141481638024519355628081066460994270889519376871593057413078577550803489226539821555821614097192184890697934995250296167343012959433848833833644469099046860450015548163457983556995725828319396095469285899479965104095093803985317817876028599009950270258583229089570804071566945460184937455434363606288361773168500775443055432918503787837516173062094064436120251944602638460824306539567840738963437566639916455814556307803183574769741140177286499269195392344829586395513795036813410254178176352300269610550779108802339545287089812373287068564093189764435127498650858118692307593158503308469048622117918726590936148709125638484225341087726962519470551275789850452947521554310251432376317451579093805157019125473588003346839473745449181840285340137217800776862599908737905214570441338021976874426577646223240237766723769858750598482209286693375405204323440592606162581380973535290278726166664258630022136420875386458215326769283991857220083329283637511623003412955688714339241142305525825649671606361322517316340725983875499923972772596447226573595916633399407008294884332378858010136369717134369772809340109689965811688500404153463914791107313266588424163553984821646331597075530948124676429882694989702195015249196673127092161403572958431471452741650004636316598551161587104467184047068918090049670237614457087269928100869952652789487069896390909696572225824520233811514116412863946949573807635512714556293752383493811472575272323739677495420160640148239388833345733666043688334869502615607861140991211117132749365990691774663968459879433762487879212090461214241124058467240091092937225020761556576354448498902781192518130739532971967998247227840864596312675532462425645771645577934909507159446637688202373573694027410193812410925631747019252881457996303460376685426419506076682836990036948141355848686704179649151327264540140614173817619517118525494797810022012817437835814788641734422792986081658268633143146878604244099166876817349795457764436126018148913458601777126906894745899405505826423655664580356458267557029358126957113541451492795555504233454079418738364232638871896749775445136550660124780250620002694686510360390779520068350932494526456587562688452994686184581527597541740643196391046656052105972011862680009441318327639609622566095909846090639835126327776890824633306455495962231768687117033866188947701455358405792499041802118109768138853311438425212508002352886256490280429752734767619267982765862269649547745161226214815379656416481026625502074822348461255542684029580969701146037661246138329284583717266469005891886448447614816925448792643909552683627265467106475253023660787526927603897043873412270262988756728044929562066152098959622958945634453124545509876916108028753158825879722979855834558632837617921487850625751919182596794336889302879909930057181755096498350945670711796449939752503365848490155275875933443362486423865255613877224934169843720827444696894828685582010803364174420274791730682064712410436692418677416832197947451556581900436875458583168492438101534248056565467753151522215503399266852638122109133591269123886222556592982891188889559161879196184851049881414725489936429215390152576670944769795831510316577233466919032333261306735109706793485860239597515074497568628455004806037730500067749612770015724751743075250992230488967607499963251391957629461922663706201643452493275807719678885805527729708124648098991741883956727454669982688683253804762045136303358753848717299121980533531195095053621032231738105565201056361260390363544531155703433695290514679609408295794274645409493452181366140905155336093746071316624803571798739659978022085656181903148666284877735656176277522870246588124688888533572739471093791954304833454138209484750630911443462115499343659222181979220144561738298914065493272542967567159815530123127039946086746631406401287051959466887547154991402471864285498978226644647958002890971612789266958512756483085705755765970058599042451191926413270779908268236142691567885126513808128255074834006766940482407285545034027439536516827339075616290854353089952661300801921882475078299033001797893202670482623114887144422377688827416691560662892842433577866243862034111915639093925503395416515352094980754033138194948428697863692382780638022585688067765352100622799348847400359649326911041267328459500337602488122077022772884086496429436687661098660406220409794067865328291726514264137166988237966396669592493152608254080695306570054236730983745893600056107269761678565629727027692229574476306571657457792753070532352842347647095215165300828298448413578468089906611586513730647388460155638375957056632851577550370784359909748592909813324500144080545220349530865417130877259880734689736880654166300131371994917117908542692503017734325033672073605147109615259133836568000388671803272663289056625371258692834262023275229550981572969547705797767187391559591281744529860114295739457970800088483573475889575092628174515513337829293841451370800913445109843148986709800021760531123860367847455962997953494242855236476539826083973725417016865117310836013700690240507199397885157587630083604569277209441191006446175159550604398507333132962363797988516900809249368238337166540747599637438684503783804080217564767563813135030029785695144165494955402720000670807890781503595110485797931305264573268881456146375419158226603190117866590462215718360193314396700652785128764933920898308417408584644434377814944746526252380159770941858225541893944845480349611729832901837919871997468782816864006666321567516952371732676628139172135930475968578228690868979379038286713040041820399253674064832399192481484571056434068845483572394765374157085355427109570147101034820849465071932994933118658277641981823825342021207145307443846907338185935852456932546990992097151374748746299607265122721141650014501161952243825521658188087027168083863996524502991531623457030308822680483248205944285407128477214161662732206425049023189306884179310277059014103690104314480816085514809123871485965303879988097130459251598727389269294075707109151636668466796875023208640541165126206001921791848941526940574046682948251713132790356261894208322449102636964311106901205792903009653128860505010013222839389149285300806365008490348752321682662006197398779331670967650911032142779053072594102371884832847739379739675840174067843001724496697832822824335348845447778531465145067762935538743700843171080989995392736957296973376438358818757311111123225372804951433940526078324364920832327444295870040722947362803748929824936066097966702666581200302368825731748844791563104728134298924081893575987680675348139349875842435670340346454015989225912660388802159112985778908525940465888097184892144560084751114189333299682825445739024852430149250055073929083674708339000430642634036831938348495886064832143693605242857291143725737076862101301015187810772679227758051791911964112748450176768671126319014920601359140893298302941522120338758231343384765364643017426317454347116903215007547232811214259821465967324442427571542960436637366859160529250875838536678438493633522427921985679158057398946449824766518247649536686905241790743430061662232013561310474403901331067559888062988183612949753224442513893407854702680225770452995242411237285080500259045094600676891344813106627930791249233417639116447384426930105034757918050092675114440166114514159524982865374427121325811233779948629752714698798580716199469002990954065170101631463599559271019014525369292542665718890422294187127954798458491538564378371562880929303328281683777195543829275410670399589836820925541301937017306842022925519773682841764050553617957577382711816758447793638770124430869946301444104002336031932625621687384429563044781550586787908182725315981715980951017478614448121968751568832362134006274611269240195211728934883270529564764164665631800118323274666010380205833632098644917034260976261899623628063689284203872599711569123943479449737645729736113961721329084334789580824856724796438647514811539453994938986847231907782229803059828510513995398847371521978200446221088583309540520602502052287984635446920563850818226306194823938787495007560133208806783094303233364812938367618960636849712466876301327206121099765154168031172694172255391771942293060774570567916980026595138725765198344675049314795146515088688609735162813810974737188702042871820618373493248338665785189343296396006423370568242741740091393812460959814845066659962894368543638586358822006848154089758703819165464776907834425843765425090322214273671818253164829660571958165888913392546026614204955761840655945094268630387462593780260767044298561671860594119224495469164155097286028859725512884330768625564038831956942637224030418227139574741134166846417574637908600626494919867687550712154736405806858718480359430049956604208706067448976123874892471569097481098228377462383822757169760542783834754613546655767216549292918772877660791923084818730095505913526546662998443637103734018935671106446803610697969697867149507070441590760197412351925529279358486604856089574861494283524533724502893104281100070398632567133185267802618960566782598627663090831010507151249620683308144637072312976926925883545145035007932338281185436937372622815631111899700617469988033273528559793780879512580127778610072484812723605731962670019109971341009434092140766032203811324780413260894801944034885884408362700984905736444049972232081653526648233243852316208490212597737767946913746745167056429409676093770606334508979770101325454336043505503493385312125181894029817350565184849108181205273450295940478222374747269765641401540766340549681547586652173461354575736407331991694291612258915162135945961925621841336041803542614988226301658131394768955972056576654190972754021129455196033347572791345753431625167424347041568013848180821261985816526731631614718132362892392972474123898965037941786844602209380744300004628001899719808130188737937981171087670996486339555120330754130656817138843792139073041007666015172127971855685401967282633589710572214434926668151937564657597890939467894685035216177032450319596436905122231666498416659285285638761102239016985421641280674475841625977944178358242606241741233168404499588836851077976915834646546161571095893883830932915846677425482129115159777499041260625092378455296239317647747962325502157760766227159574662736682093351979498423281250634625804723591955168027951304329673532675754624693485050373543659422290063312606313933935146991193801673912321148654512567167118489055911944918779687979302376105017735378917975397054938715337876559578216535998673083416052082693425809825716642781392119281877143359869737069054797612276680768091086819681500795883892674733294866292859538591959872041693540750485427074519684308626846390202740819471538737762368732099403973379116651232134459425423254639539093946301756337000727312412341977952378119648331503469285781237548328588952230089523785769916926969395702002460071030846840540786523268102071833211435842102674952179730152448119699808375116351351948483804752682291380520265600039157808440902029571404934495883664884219203748980865649954206108232916947411287904038235427177269882330694258169931560889365290035470057064339139315905695775578714766426296552628439276692014160409763796683016799224192656271028598149102369528404375225278138413334073241471616040660672940744159868793564088933339044248710553645460393377957064934633595778669004294053154750285782577029166652205543962387036502887084883222429584206312497323448043686446980140572131210124723401985197242784817097714459701276587444318537212412250840909913393374495535852528164719790651593717762931696671156804001930290232135909749123553934560253831906442829396270496491347748402685071922638057209132622135482780119793760697264716244038587585234890728751804382018817508249147732951753898983007781892892674352757489761616604903747873546297143128701014399228706501440759609699032917243929728812079883874222681457937228049446491021891612951272544735983305525810195358422076217966520414181843681660244518333691283635946728081825950600516603868033622724325159621215343796124671569565640498354301193198629002403458418518384392257989368724652764091014903116231646696751942148025211055937498347200694623127384343472253860713828671424422402256584618022177261305484493396004047783655005640181708755577841359278201812220670003806609103567360408174861976084928301194933631941637421817881291547538583769275717764118364725934309026307546518085182409059854047454822911987922572128140457249050285691948246665097790415996698847137143012716673179206568517920655557364212320422303478492915169599438105973430714834283037921571755006702643184434700364213751487898334446379393152028715680014892615756665973505879766596700874854251679582632582439346609872036300476421700287013810785438852199178394632058822155374425325487374708922809957410724239634080154889031049056721367774502280951489139599825985287649226708817481259044338044507406387874472403020122942509279917410996269640655656359424258284614530604025515819062079326015106431748242224084806939203115491947634845816903302351956458041549948641226303409353407160171506337260555340895162428103808994690695961849309852995012274374496423277511873856293199024145843353413687136106150330339850350392793287351181769811481587804941137085036811430443693739906138514748789753365585610490822998256893107042692380423543650430711459654287702603150597871471429171692029445298526968880920525788165257234072179663124925710554714486720848068563545697175965982030649380338897576464228628626308741661929787557396848123901985644052610113566040901781242667244191977131532922463612316602940317844056018301633149363554424322772477365268836965937555036939278042638456089255665101345122055234908550755240664357568751738490029860121079635993116845769809753710792978794616248609816314544001899106095272580122491594408608606493791813224709859392681429941547937590651379973126087963292782284643858268298295439457797286787475858157269556756077944971005840831467222306457327526027537049501267510052345286259392701977265865266749991501014685484642777289003938267809757930552072483313983541003674408357410128586451056457206319336287393190944582495915552931742257528868489767397513904914424402462034091981169197287463231502371649972309572347477623259117006809870592852023626524502322800478071051581325560016512400430510910973828343321680305011966298090039658459142238226029330337358986612596019301135522692401881331653228601477338286194890020879585874775155358625017576140167051281666568181224266561198111246745985292595711065120649272560074825833802411220362285873580281797990730786186766807892811186190399023620895605279335269809344790294139689213578169304485523704318302862322634598192539770909442778299402809767173807896282160369311903844231127873746364902542407935314253221963469895234339288166315554749886344548377198375594478695595601771877590908800556324369066949090226829392842060882860935860003186032981246124296753586842776621184689964090761888939129177713138877153089762783343556393593875110160411344098722901326114417294977897968965815506260488231617724047760755181143246594584232843485809760069176206840318317896463077673144708929084677462409428969338337339022107205892468826720175760832341683207818628467028967121893628350277438089994107803440113601603915813865122055978771894960374815672916367289835115121234658724158459162638400929924498193253707957766253805604193425997139037392583268521048979924755752477035084303047934151957753254292152227237232679829441438506112834466492430758486029780878465228728012191293489385377227915968557954002939569352305926321159234380417692869994250247833106270759451981211354495589859631656472782243449466776218269465489389750127419692532300455515606492761203669867071776298420905993824280251331262547797167100638752631589461765772563102929026692758064729425512727492657664719254831491532071700067919379416769516494389084647173338901166371554120504160845457192648348887856084248399516657732274792135921197002288902200765976823615692635708760720214175800591888842157826806576849706049186167925870291284767513404069540497413033162042693886516681307150307755777295085914727958885685949890839999005203119991341599907605167279630474432654575838379953798553757719330198932069744973298239837555211235774666358791638951252617003655024486973692118973004697552615388362631738107985576015492713455117278974821043641920607385764932303429162000714146168196947357999888441650330121102645563222663768821273862535268241946464848466252195228319979257462507409782136379293403168451480761764001231843019697637757058243709246609876278334737946302259236284034819240956149010811541628574674816787465142395639052909875778418655581093674488484690166303878828287779997479010325408327986909970383246047592275440968543956915475263437786622022229608861470627782846911595790612458091167453894416903679533387025064713192738784853283883600522184181249266455209894261380528652189927365284689866395423008317139705077157368691407628066714897285788795499623126939761553470409126042928611519740472721396282568514220090449010930294091671908932590602061595031658943340956071280507642964093666679764580230396640452753605294036208064469849854622087926347292480895187599069473987890329927710470382724716485172242246088725496448752959776525867519140458179211275449050321804532131907907934310391015828049108908386498596822337062607529793535489786634554461415132678320449848902657783460607970616842641360419714956767293947964391731442930521335255779906455347404702898412781945372807491357044159766266167417220044002136774434381136412232747058852005545187112264393379404616479412296771139321468587163377919165144204102536867957708244231600407191924422664883510360734667385772579585800659960167611352046980144014086086890758239417680909973824935304669351348316091975076466824552886529168242938706721748920536631160261369760389436088536225532281240542616539150057287727432204143978189298282825009707197708111758464463313289798366793812144790001510510210855347659897657604589124106687157089588320572724643983531871489602897814326558896750950407921342113708326709206601154520279469733848898075909279529576005809477616813014205955827445296298597945056397705232540658188976749993914521067799589118138883635599389540774053280131028662545842106660985404873841066447100729938935862214634659838276162524280423977011841919377951568228456772296884876241242006007825033700548617282952063721058984184790209255101720269990424349935321065354816785230782501047213120648922376089007877808260354591057164073437846205583143224754191068547563155371437635332008021769522668290358552001242183428532573652205275773205983318820298481110587863308101339927737011070807066701910555760930312788590559319751947362825586095778134792355078871639974468080770299026784482814344302687300422796566791707576928379562077547081379111211761904730234613470848929090479611885562506957726206079721730412678537405889874606542323317270342310405066109305132694547146576137195755023028395874692998743213832526555796732035174100943713423499519842020802932688119206390178751063691003437723792372996108649565368536555365489723890973076431863072453316727831731091919821709574372265073448414275719286183942140005081616012632544774033539050485893193597429844835331706443624214576849624941314367233535163191656643946699252873856881464075314678813603712452350880317968864901283131987210011622587637631233579238229155964028392155202029187347224958276126067468736911456337325118412620584344965986524391331292965545933454281985011727138857702095798721309509314362018271291555368352757717182614263707156010449245866129322322599209821397632679114559866231493546667485716233103996675307167268022739685162962913012499873712391398748403950122467672396616753850946035834022693516227297818106764867921016675659355473506578333896014225006145469807330934781420457579589580694718428738256078552921005711349757079430114496392000355649415656609404536039645766292513140051064488223604318486022437096279600494457323823510233259025109984684353993638965520426609765253522315635674766395362187001680168904056437966476545569679920242518794369389892701300460631182095884486205671093399633169226221986551857822311869440892694736082403473221416381856907024559601206560850221988199005343100487112335762680449382466961272794503562065123668498762048757178579926908668430425041487467583641795614049465032159563839150790289551953084457385589208379625287213159095277595935317017394922512528413072894575610341138085172692731241373398534165858192470013937501629150382651874598719689996286828401870010832536612273928252915096259840851559674646515997048175584865706474707860520343916277416487938567517389648557818220442849377180061760850525978991277075399537407764240303729121571826163024932942446984349490402776858690700687257758284678920957606721657773361810697065074379320911993402225841333034367599360859927553004968012886120263010641843616009634331173054228879959331830498425030846516465599792836864656919047898896765298219320486754468296671615962016874375798527152125818518461211285779921681533609978058207535545070588119274518661796543886481649224779636286856480524242204320582626352891747471300908249482062636746988241137260270085841177212709041152082600959411994278496556521344561840334342480735982876585864481390549551195453265599740508695987379528548631275773944924443551839491399936136929692685286851508384040638327193999178394718448734007646742873798393172181652717653223134210384201928499013991280476518999395764021776703534923445232321594435600142024262232789426071440786386482306734659404603312783005133941686969862642425524597350573065997701997412208844195682445311227413572049446915217615318819431071558232072367646577185758508769052309124484510538543438295619838111978169129220185889730749068009255056073726120434747683943460910923024183866168056091277201691696709557582736268001570553795921164355578269426259032244378372466219863980958563982600975517176176420400949720960180972509084786051998936292984814831058677308552926267850508231848190272093838450192426524599149403991030294927792032662507230855679590881651956458685417503041341115641322977752479635866869028660786131164406492660612090490501285185082753586842528335000915873632653389302327303671667672247637762271847566905503289163020791937882717759396899590479136918898647873899535893953746220840529407068591654765536490500622119314232743868990565906889568690467635218935985446295147402198372727282014587152010228289117602521782146376406150038237093229829927812940632916968279735414840263313429860504674540511358843741236253181141725183822774455085263119460834725932090109198479396916980203821568702691630255266438382793131812211333525622015850775646110455655773591932092130688245217956289162140638756061120548514223576598522118008769883911641510705675877718751924040650063964904059124290005531036820751862716389795568102582760948588267811126251479230337206335225454020479927295671637240894365418064477632743450774499868308745840410622656732103834547841079939613953708559476790310882625624450280137134466092190161299228323920771334476520601052237997198526956754837817116642624247523119511158609985794203093595632506596686134619206695935942624475350450690912041844563503992709605946875681767305832080781454726009756772777978321551171466629765614099904989830323717963259920062489655210969589314080808239245693257262614455888469271127747177912542717360379318853374126322754806321897423944190197557505154422220343525380012975067082230242169338888023419388893955549669498541445211723636063087494851348193592883389384584295557706143200293963986536262754821660925437386068273652558731343882153941468668177414567055737746517889481582118917019418185611363462010038671768649695214818625390604008632187299090476056628269058837938015807515044038790073167208039963216275149665461040147920040404784200382359761635308637930187666367598573205514846347475607089988114910368751549897681584415831726965963029404718801881704654064265482321187809896005193222096473050684739682723735409888192155108627443264572778055050642055163893703492951805759204700056184722238314364068695738495397485321925483199682992502977490824424866922236708798156926533642908485485693426805968807086283290832280506171208084751226632052461500728682842899491474528775485708776003137549835046337117630199580724342529947617386074672820201710430176816168177372816515429848884606499627138785677833098737055775869202297410522515242177925365671859886584323481769803656167630667182319623833093802402783254128298456667564495145375510167218824262357452790036170580518456412510160829077956514146511697515124634395196002740486241111798237102145866385469790034907589693753422513240128395553910639295047198947275194383158499500887065404812623375699363407138336295967537653483396498694569801737770331943373122824489199703873950473040134440182474968753585060066136921200036279401953471922642388681726858910203942896800160627386338123439711141445823448187999084210750211919730836782946805153541881959216593986906911782322508014742760955362597665778963420478813857165590129609615058671467234067079102749273998349937385527568800176807783497956012837011685663259208382832234058305089380972631881377039424675049151703694640738302950480046057592697645979330776076549064755331678428122504811425071830809073650890209599672671155793624461303190544168800838030471813216949550381890724080063083791912719564366006866653142412673027446100933310870136203164003627415079953611244246912949286479730169624728179999734009063705515967356891982501461129854220945851285119928986000359474008986122108191310324642748524555462799116278073202075648361383171119725638157911829123105520510642067500205318393624648980341586479502773489226633806016698330896479809601026201620998967031723002554306660880701225473821466909751578023207673190042869332541989427117214290111116266112918849710346779613358156483275789952124907348024340649941942371924440806583103340508013480110830365447897057521666846404625444118228067153887675715535118140991985958104031117661382712471005850363835881959776330449224439659101737622155780696350281704822268233708117863351877440747722878780286865977312149907502758718219550060499198220718066410033489432639082720172951871597517680973507696511940235736148832578705196354500531102473550440791778440628690771319877812103124773047989321360482281096806060717411817829957875892717846485744860231884632250485431236810869140569868783560507870408067723596079574578831752404559978046907762556549054428973355994763859065962311790645743043739027537900915378537373170227840569083788120853097383387550562757509204831819587693391144019832382940903821297269445867965025855674672337862976238687983847544337676551611059750723845248272490244441774965662990413957359364358537549804551003352740679183505694810391337015218745742606841507132300095200348502263845112121135869524085560223915495363511622300857890536245690042077221786754228273644472206014055288665884856295760334401038155998612472819615500229816476003349701676576116825395088355257926342034861271118389290715661903964668487290755641208160188049046991267200589941938097565229651105366057465504583978154424908986577007197609779158780961587899785185220696455503256699852564154674555021483159398261760948605894811732729937400445235642133544598343688771822283610425848767985822307275466128302086709242371580530678596840034205899677191540116217498722640420564609209375757628072374636047337613332174900365893927707059709923598923537437450115697174611886273754500480074092640875616182959580780376813691396554265283588252714500465382217670409047993290469249794550002818468983547370089219993417896956652250033369974997993623477270993492099136578232371127330700378056959375644463105156327695719726132732452404548783646080726110708096914948461368202905095373550889875548575801676845229224039515056761796004471003005343629371249458524383851872686565146482391490288444588600453544077468070539480315332360212831923147864274320297022275290425501061594621064571292775580109874953493131762637901245948043967342155048901170596263336480987193774485199376879653229689596920495012772733594846114562914297573378114870694459312987793913092675949122525218012194785346087097362428365468959473693055913371487695737261988834978768941681913840234298112506080711051754245371039658682466932657690066947224006011727486543817094410153559697928057024405049721884087210571489125493087358828752836375794740913791967121706075844639397143973210974361908557148320152240213063153228195023641432850815261525827105754024285734318223567334560844866864360240279934158988178550208734439205407441812802910900272412667310224433132964430431232224758120106567330080418404412890737730422513735540351541823604713150133114919247105383514884095765911443924510536392452102533775571478070311532253256248254340825597142211304510392309692244031001953483585441757117882538489476555835625853635248554374068456329861165367961312274095225331098524093540031930408956754480437445738980732595356065720667224609735003181935399504732477911929387695770294415045261528862791980032306152866567069575862611860578608960264008896981803421624712926490268637213949452038793638100290428103610643599193917084607295295662138193562520328667691915269830918789933022233122717946207848991738661869356518079733228003286063384251142819687008650889067750993714844740092196804182680846850725967829666727514210676982888047653303173001281816288261836926014276850939805864957170258867888153305038252364594933002754391849728597317816385177181705728254311432402718991932577861393705348116162067891378250707948094833898213041271055914948123145545252986172966440201361893068588155922573860289962589923894269381511391424091808872638631598047005993169840261989397263967689779036596785458795274714147416396998496640789701871764001230582459037925570375109317066895441394243511487683602714141003840609675558690733075079557935210006109477825877149356715054071057428746760638012604850318489738878914906249088237094526737632554596105720344742743804290649836625084633409982142828069418737479514859604127778995422631506461504878657806698661068367175005890531056335062820018226509596897567910419837633138867927006195981993691441313445150127794716754629557008954878269932813923819916132687420357181104966920367674601894696472848328406673160268220897870537444259794579337549977929426186336737921542472029893486170790201809817299079945379570917521421887054236713032917237085094850997203659413661312385777421174945904101375133174048754204163314252955595831321849300500953845549848373776737282947432885277995736110426882674890448553505888392889254055399646831165300931088673407061467487700134304538733346028833545628490879354479045925029235044144318496621550694416958545292257919735082992948451682928908476331516832168021744815598059850870316856254270236096067398906103112876558787607230730230455196968432227229106623950763197118413924963651468216877095682771489190885380802144638697066540143976064626580203859095477026672852485275768440832568206813507562325911447315356082471135168013372469723154502202644198333900205194501485653256628112973628478440506675837063584008498497354138826702234367455251953921867263581398669587211992841992992445341421205845260561484823761377691186102335854824745881864255696913323151498808482746782468661422031776279909672435796041834297217032290605568657106005037455752376991420663302465790393623610824147802618522538009012177852379594751647227245023517475396274420732183075216330562231971923787324542781615591900272939087363072204928758847978862049029101426510116073617040142888488986537745870852025733672696027197207297301356022152569443298640758906950673852612841083556535521106113518744647111644268887493916490207175420648334131923527897755099301734000781320138654514219325386017601495544507770992620203063582308646978325537205205595314088938913233651024609143829889551249781908729681894323698382181257192817574174679260979925352461459163589588570564877272499532449055934362125654555077892478102442867225171988244067080798441279054038099925992672706317492739884128211342899139986635981995885032002641830205764569725381518906292774342584675244092605365605814815316332648696131942318245720919539956644954606472749335018382901879950858987352879980827901992577718109810568139517250782263127960800023332658246405878213027969780180629664045189225340730684128159161261928044721517088547595757445292336506500243682213163897653758061983696051713850974185977162094136834060673767209746990351635899262880393716026990348903336374302688408225901784281988989959442821172556141144934247898495396161443424125597966865994654786132339703534197673854560182586898194983313552678667166352766254646934969365258311468565392852456930132040516119230353408185912183406806895580759387596018774076094733172876361253831038103037133142095495488225235122334490986345074519272852136888496089024505119290948682933409943546199568522856736640532959848722793147737838903183230683220413255998725167075082506059619426570291213434005997466175700688203836677754032939925601259112106243327154974949392424456362027228290377688057800377756385494559313305045819416642072601370597781678356984162802243412514897057699909195770373277525586941200235662279036546458675941355020559718301566937215272882718790050913950310296564859115667362902978661714088056831914832030715449297439167177699544622708190270597960895858859691857095875289378325160693679483365346285629371668509125319380716134168527675611643497364558299487144335374729790170593835438111531802709641828014389224054256837325263601196644577387689372473554319831872632173307300466357318339344253555712623522618559148844544355547780871646451246430634835323251669225279474933513914371392196530105320752484407933974986526216440980970806314987582275548989258489470478071761887652798718007947852911987719269529480020880759380377289318476706932991638563067620947083095029429908445848056575089272432555583568517052088794149609513568582758956015597532566901568578358890967938808701050003124460034849854392741246550681364366624625487772045010330581710996618745759935439529514882301179026326824056957497832719285138639428214539754044560091235670649579621033307676762679639129021062462847490200736850440807454353295541517564734431465235007205011811904347514323246426051113453799514274870837820007552731141998607821273137776612456541375310669227810324442260217669696983160523531860483867919392201477598099469032678820253221562480835749937592594295750130717580571398495664363910922845713327730467275575813375720383552572573822425585374887380720292394806221839975114442473349493161699753673088053116480700539171036846446901561600737402738728073725675072196082495348234110490477639154751360799127071821203720726575535466895610529794359362107911885458660960024700062212657010283190960891241932327364935142637800972016160208100195378555787919672668427829904801478754694497890613798584979474246121169457346513754800609466459490720737270824300813584142744259303146169868427080755813440209100579707530109606124219652214063265709140811210013042274300299466807357837029215274184976047824663543414804070525792337468323783313237587753194798022505009332004229382333854113009802852248035214488353715261733847953507475857478002490895085272961042940171473548979944090831312524654034181415426926170414886446002562918914923030275823373301191284525025193144934191945928932473826212723106136334430569080134087325391939001541439589371612334805792468049370151641069862972898990690557636571480938834819540637274381534189374455080677392097823724891957396692068956780555889740064072959217689113177117106607316747006015704495521516962681680132255905239129398351505187498816603782395091905123594495672495338864217501871529546642471168919726368881369488950207557696768029576772456766114698635065144277839800362698677290157017812187438526566618711101402705506725131764009128462960717498788715272196311119231012726069068066275674796296031231849661051494676742490005336833767889936069198884417580767597470796238808054685902423744239774334310438722494780235504905965270201927447091878395838440731709449709817860309258775250327142196743967024713838629086631409395772069824251586682147572097274775683028401699998807301738428933564868270045341930282544697436115952077160730976771137783317598018044183098040143092980784073634194927185293682737227304929374171852007238066123948185676908306053117714577712400089321380210608620277664669269009827939950301108440646067019403804842261156187551639445647657312892571404820008040322911273791410641993007910923224015455204427122167869696911584473210663184825722114659227628747626088574330502528077856513684320752283632245036822553636151212253414551533212802650504796564914624648494714905558193361055744579951794649638195395952333768768536052025208382598473916608504542629519371947774175567069768808801763176014559967604322226201024494205057187276722362381420253850083154411106583333785745523415154754207345973858301934785993006788634663954612733356297021979582580491405924053695193972705777158470535798979154802603193565159602629155680293217511837164564386870368972113866046498096130145637439504490562382245208086178475762406716297989083342966727499936970751130670939483277243268512588981960565512951108711160915136302364073149348078476203543100731015411807432244693016138868870537113363975717174934729105627516361539657397683098371283762922299516798130436418197892792991606353345909398802495936221951028780839197165099975685201450881496189283450599509443478413203797027019072895676898300301690936773050235983300151412282764025316848898441447867617981718903815985732490040772466952763048551262231948351369161006013596402101411994305256520128642446509221645751058505938154978944557281154534483144150097523861717504947188354665086385113287931570891058513644429909288834533124476734200035433886299447039287092411221835990162563411440112054539140945534668140025041732871630926233345575488471469803564551464818479942941212740799660413213442902283136003383137537731331507320372534862944204731607056979295650641788748881688765286359035973875576180728132393376863617266555288819509973593754610622005391517423847764499573356958329319204001820937849348997943206024127868385022444946438843048638073452528019273337745377877649732202354132480168353691451219859607250708007123984350700173680506586046594130363028525673620321409996280061373881575611721608745313930463784205962968929566635534663064753966220791270076747580600194685603980683109398057950898408509790388538110606319198311322337692765347126907561702445546986688778253181216060967296404650382679758548404925876038418212732474506306418477567916839008354726516037403370439580524205913348891278506004412932227491926750364708353965297789649131042055176988409551330815081402215515319734816516989704542484748568972210754421494631320664325200645044288987959904215092246160123314665150121141226588670553159517176902442931884558480838813884244948795786804236425854049964618807137484531025851986160021242097978853619065545527220967882306862389990434299613200106287767914491162187891782463587896527005958220525211749567102855141619078876845872361737231718273748815104509847056270603780016359442169613425860516310922514707056628267260836195403479382700564505994323475890764945732206851666159140542300373841897443655343894951869716316171807204541675435810011459431753425689651949866430645627125412283874967234693356319470539289919028635858815636304987985381840766015914278276931933502835618281132731324504798551776888727972414805555657290580491829313008848842596509503702980967461765492899004171976730328181923665264158617058808343088393224900698617030736635163873651927260850863654888688111021733684309527991824874988549001321496126391399609079778948567181926698858669722405228967824900124848744553865988233021708004882829534661529472099474854667284976384344866074989634905744355977958504517251161605180982966289104450547700593459363070426806457493012679876490007525377261859636356507338130815001269495975375057688894826056035609543951768609736675265901568059206488932064239038651260407893518715909983794420312171108509816309099537004758289248012807724952208970037287371032695091883865429351344189319087730885996727241542489035014083108752219462901330347004351103418673121852473250240351332547996139202997005516455547049196633103146333090772390795448205428756928581573058869063912672731323684721013892553247298489408360707523879948782445811294379150465822023475925850032875126418191024634263915946794438762828316548610214092829518191761166432975628780660653283225934906951293044734496863084133761938283869957782596532617741381228898416556468868199227346804906591798718798055156788263713486732369179474218034939242745448663133122381242267155206294068995350529831151870264896173619249614004146687575429449503314361374813340401487411543336274189733987418137144091372118584922384692719734419795953679381153912346986416078123627260232017296135830261934914216867979359441680771587060302904788710788729142941322794862989946595814534916898781239222996670224879172699122863015956760451151201725951725598996795956001294022092620992897129584638202288820250933771799776229410906022007102320848298730213865215270117201608246909168561235946178194450889219318730500674002537299952579445681958952956756414771853418418529220435160071618770797295906375291723806044678848037932549093278704525630587747927570395044477140127794136733418191410153264138297612088457075015351585339365752474850999687304772407692929269330485876073181355388584986246472484564948069768488506760384700871326236089020407034686651132772919172792306717827708987161624018845173646880727337848458478988653905560908199810073198325588432622622566381188582180434810222587320381305022637693987238987929391234266462212260364951637135441148021705404992073681954164876147910216305906484943408698650615188184054032367581283507943377576643586385677183351319253871598874126509492562630194358633577449922441972709769966527430896880759241410862449097228649267449034577478107779694452800666705163324846382324448035961895960123117294800574454803992172658283834057182644646922547975957725910207946065966202879464826557009605684764176976767875984424111919750160720764349247399118947821794234708038832274475788504845984147467677986766184856671560650938412836710383542534098304070688719709015189178824236904541563176511774522612656614969646126158884446045836558227757820404352670286126657283911973701373396773928624440311409415338130014652105831184739617415210157824690761766717432688560156064985235407321681200624974109692585606230766654140647381368436128670895357785764220904740794691606343710368312766523062128509299661532565110197091585335288759740969447477698227438817703024031296617334677588102981843129394723890015290527729094891329028813818252143994928036720671544520564852334219887557578202430691993693691736118680844237821751983419384391720774708074310301349550381693042654294315697628333521816628143094333453793414792844314532628486826174840859177256722087679162915362384823295185818908236019933151499172317948655076811759379578689968071126411369581941829159528262963489134285640414528731821845944736481454764684229882056868505400055194024451480269063153619618393121039222641217411100029230511042789600511659949112689782467142391287203792339312354133880770820148829060598770408263309167296252432166804869481470959441857956615759015800874086683202145808126797813568595355184465568286520149064830623466241722699853622482839124669231827768443105776300661312261796679989884305306175922738331094898156329479887341143817531161611721734539153482235187800732027288085250821584769692536257871213508136187681784748542829720346934847138545696074272343355977297976552639616220607763105370532722984060510972736033678195256635889262909275540208436605254485716979374945060378307348925602496784961939035483609505196793623882384421860980286201940652116724191148973626415637666893788643405108094832142851990091101475167958297268645644472126957437769442776815246765444152506617992045808703343116603767472908801941457538524604110213440944389565609421567674811860768741861639109392861480431595958817222654363731967835501289791420526179758453404243452970475520850193306851672045930571385367308079602361874332203353998951714879031538899726532034756943882068685954038927296863186078115770889740758956298806472961475569871718950662878754835177630005471722052555588422973941591530189045184280715009445566336676350164150565004198687802254827447937264999600528728908078508708851603290611826720736052105957644695968929417226898666183077923526641109168442571326014558346224372068550052561414998593848476850979677969436599983393955885868871378549234436557009147689295026742744840342716856609714629703037320982047257209776741125302405381226124920137557387130671608385807769387019355032941089631242637747500464376005817231959450540185129651634301348555303891406902722141406416288021866616135805457997220824039533830125545155607454282366414887065002069516144552890387875268207452047895034353094113395188416920559891431222240332003661362508738146504412073261875895889695984006992243251145617477600815657836184407647553319107268324242438683827410325376443643832028168906058224299762342636814601295870274978269943959849720228578714655075693981157893903061080308220741097825926866643653555712840853860350822483119770073907621059544941404658936293358450305968964200105817413450459192586921326525506927449721738756343035314225945688582763502167763959902896809132812136481380003287246114520875246896964783887209148437071655096383244154870612565484980392236722138121170888034169871327767353164834981087021645365132107488978432513076965447841247190563932019109523906782095956293182376012127539173400357213019696041545837553933165466988742044017436720824736459429000794317842940128734020262567174992236069489997590748191458952132652854349506083755323928331587368398048599136257159434597606247086369249370581663530603115525673459539610819579768494907751850489800237451655232467906681829032829045994228722362627273484319081426473433697991568674662837653508859648353439556058172878532711502591850325115270185922481845169931668240248137199327682258568391155031819267092616443842235595598950695592147305458065652780809646849692527144435785972484289034840974054201490369987144866996648889796510620312966230972756694612092755580530482454401042033485197113130664894182916063661319850509053710749218583651148164249258651392820685081996194862394513415567563122102518119953542854944127075216990309875500462446982495461427884027250452496579869939778677789086063365503484652899486514823226270664312084607191854217963849047282200189318824240013804964595354647698790613884607699281661734896605697942852185072095972657149051097452208316548169778953546447223568144829422093421615890773562264013324998736199205833079764297914132478402933515120330912667256322189986373523363754385318087581964450899504101970269795248091613182993549259907897622728403833360475996150438644768076912936649974711139630520854386770802032724506217899063524891559993959874456472182613906121489173196418561574091026024869406218381600188148132895006488331893302264106544554891606455627669115735919870991322503508336063423501393119248824898390517422845545353486008977368379772422478602503774441001876172487146750309424335180653438198192007039219490711602731906532329455686739629602907990329480406470128107733381961356416241161836657403320639688186893770965294213345217137280941808032404374167127359092569274498331507070035093008895894240483968728985801409601451454689337647395869376457360092072822229975205122272761226174121003828673146416964972898920353376270048374980064816047881339679638101208825014511743721264258316906840342709980890461524188349473902853229860333087659460845167407278751147828357343802379325923857043329863366031613315406044591522151318596197340460106629121358343641227455303231884866487891020096039525416955677418000114461966970523727990683386664903999628051098990433825705599278902996135151950513693011332798680541486104981787854211361894922186057079929833843722513631305055025294972061648034061634093830817029643674983137133188597730716600439494240733547232742926404212189430742451059375616479239596808515948347132878073306302147639691611601152149720929429360782377246283648923410454272755977430455521968354919858314933253404985071218015444191064932772944380334951921061881057357171835422032545717183347630903995177802875781931240038169194015885135063492262092646817009868622583695146936825948647463999897844383138934968273963303892998775263931121783213467520477540551188512683220350820113539927508718420286290540061308763367457401910578558257803112227828991840723751624417696367873128309330739060291932079200989568710231234553890718169017263768678701299966676774368618747002925171701588153858983779948171863915176633369209029322288560774560528830052552521569824864665471284174704290226382818133315285534365342280497282638505244459343005354330891970300635687729612804417336179245177459204841392669851331906916677549340221337175101865379511032204241624988919019252989654358506125404067805919965646615010172410972748532374347492351590084327923657740576310725658963656609166055578175720704603168044869455215955918304217939268565492516517739023680710952181753877050629276545774727151511846522041527702012331505713648389060416063314945787739757395438629293103710410141844189596797032352108960872867437930307184938583348583378228617436156688471528909180394480576471365798172437290248893563871801712869385168805273109876169330569649798859485238812636635228096276250119822896546661223451021740313884928595082235945003826617180238796079365663484247314722294315188231657864799360230031313859612070825694973751822261824947100260907529740694307487699021004053782277316871364033580229267513716228217176455892888071860753133608711201498717818825674954438752069458304944936059286254872236695181943646342534237329602461681470708932202035201953866518445438090525799536598148282252855028486247307989194199580881287309369048631454826135358387317577532581485750254718863460986405936435895717842785315327220404106526424849436595675476031491769907505741827465694890373453866586961520268412930466597042335307373901381567476826613070731292005019740289649144476827927664818317258866200061286833502493790575409956526608130537759802351625082916146701453959393533280863420484797281191905492681876519905511263150112974721820487522901888914800344508684334718659125122021917298306624257864754117354262981267537701443089641220839304537251650230967464733937229898623711951780437679172113989146822380794881699913261137519013567000680224097448960286508231858690614493747979686671795776561001119230269813542714908481669297895622235141006940807138311383102451111640548007890908425349083787004768459160982430481033520475451618163959777286284183000679200175069343851527465617973942932313109576894950584122176048655505281997251735665438798465711135503146584814336798564662019049677133056532750986870655977602676097410866600425391850029858141541483272418229623521705956483608460285474551126388153575803119971827413703785803889576059321721646913262510126688426087501345322389344023937756722117108251732262030224457836728778709848078570628347018422667420804164944731243116832908560237160514446531391557981089671317776682111256717928869939264404738010532903789956537764841773534946598053211085440178849821144796060585447290001344480819937611309451895296763747021984398301303115509336490269246722303862240382309908535622077860795520002759664005267727338525247335953992579785531213990372501069803256418542144096107723124936873165803640614639389673109048012709246704762927466860847988738491315705583196301981137844809343191282938382553720739960780493239970729011824376440178143475091643543486992789283420509758618862232087248983195452182204700806561887272388383081379182514453813114548503480425249945742055401098940108014496377101689231111551660747209229743951420293925987706832239741623002152630017419641740870820385499144014663256606196800834347927101208948961389569927787827110092278989361242750349009953311544347390537075373076355673402559689541429156040925967617977813753507007054338830045554672942567439256097148707146519107343125539555115043885113312752067949006477666419742559062342752568085262991885333366303738235786697695022486720199851947332231556548336495862104504244199900858936522237832001195572681385187677592395796946613522872645195889294195155891346040991728840687958841280071821050756516244021778302755519536806304724048117554327241417578301547805722853379096747899528193883972317840971985345708568171810116459733308750509290307353305012244214344461615809954630655668676889764292509471061904232561827362677996603349386368608871595518127859794643719882539925568203753898818227861097681054096998292387546220778779088170181182884262353288613954223943950792395433554850363634881830072374963212493154920066245344679331726438990636670657925958149265182262004998917184181232749653736577296189135595671995304423077928958622732624255486595816925607115691470145731613484391986487968095632033745748201822761954041331941418187009644983251067226145034979450268889880780740709166650524582656525289181305967013171945374998570989187138053535440308754374466614215632641987570380002405453640924856260410084673301415738796790418834516489696386130947326935470542433462629839697855665643933199291082026635673208024005566853694894376556687950539883580053389947269560224991607199238037116942940010672328447626629029949678800286530397565866026774848724950863421825218402896880384693216649156162804651830949080732444555251127143601459988257597448998985998562687861950654916824628852411556607434396291185504984509859671842910284640824380536328792907700995389361089207756237467381755992623381559803677853713207605338259936509412258401659043591744567291017493331822938952485122539981160290617240726981557001636292769752001303810607575438380637604848727721572830178867548350336367600614461807691519288340532130163605292200728309943318713167038512844442314604100081278260924124561995704528123642604219842853479102094466160683694616225034635349325611787945571035098231453332277170409907157615835443960051585475616898748005938438349547645894891174100086122773545496865989045439030849803735777434908736553354233602735369014687159246499979668613439848922588498638478412287371646960825037601453680384234054370919592271118668344936442522449601960355238012695934480164551946263093205010095908220377468295108359205114912569979302420128588386029366943964260858017882770510458020896622868124869342332161471322299258705849310777449418981142342754759904382184630887311569770413149251896107566659679975550367307100122900638880324408715467469681182318213560146230892379675149446892682342573911010045048209651933746421974105805756772137907097003182238302014997761138733582376035591371366316001800392709862257180505907529991024402744811820493213036252127914658020245715221019981356128529212413454231760073026692048741408478764348627923968891449287516034946096403962638223535892958314534847406425421580111676394938563430541426433189477550974276087289278137599921160214913466419554283480330881057265311419873786256283519731244710320835643561065297367106428908218114680847533678456584602379640295408569263109482058606699759832525224846740887892424090452737035907584812408289243343947553715566346922973264652747891697926749271259308784505423563002987720549946488575630824184821733828101618698484216706581406072631705756349321575357286931375232018429436534295663283668965224146196816266703534474753452385145642514355320623502177850606124918119158186212142135996712651493874498134876225596951851917200341261502046761876410393592886699545127650665019656801959880266023381178009672968197980722735224780363700231723584424506047160151439932116079574919435290813157735647715931517689349334443823884624953763535146509593322843722490422341850712592377257966342359456220591720332049454859775724083381597160073096904110464532193346666063346669580789401488135635682838444970234920728293721980774168038707762204751455316990182632179267599019594107730904251314926486320941183791921605184515125043770289573970082731364186283163346499616933373448685582057592488217228517851099910233127162151698943123112689979198846954151422216011657453979104148901890636535593063673577918912095353804673876297404486121388029320007443616448504638158784080290481738728913306410753540882675855988660587531190353100703113657468331661824425660884505565969318914734739874171852107134551926812772485745836517341039248968141237646445765275522978789656965029774454194397902073287456022404100282557291304274735278014859825991431818421700483067003836604078831064465996231237298081637779800558997740164702652428471514459195153250373686615877063670904846828095065956097084212531222629796792676606796843707625607884406183076906101529305600315232450914414101726896494086538749458714483857745568354833578494571968742706131914967081469848219537970945719595636334793273959416225312027340729460317184863021099783808898441365660492031323193253618251182220385797053746402239303609618884016587494316167029198311782883444956074257405214917773494648595646391326932391100048828059661667391779717009490259512292331650293431683198099363863330536031120642655159402144899378491966473903673087031089874769392556836285977745014053752956771724147757480870374098043986870872026214686943269713839217289115942307981268595381375743009928154436492447901117546842768782543971103485784558596709075391677658124809087770795074733393155094283647198692402311246869041371240000420566188550176822317646989436136008771797620771977321799599078871865243532828824203040242860267900964768511357497194446868069548860699622765885110846816050620276665978057661696448937772996807182476624691921956241472861520839653386723166287673776332110763417379390283132210550939658506142398606442418809251180492010607010577617934253719468880904914465055044626704711560784923370873756715813359617475784832450103981401887681403569431835962401839165963226127567635281329215910387325316885657526951103184353611908784196524115657878890122199101006102483942290361679741331292572733889693579526454748564770638809882756589965258036395279275252372865460622294668167942898684774152882511341374048547282715136450459652466067627176487501723094577683755246145884218469006202114952057851873265995728854873987258895557159789114157790856059829094214162199239153978264186382813381381851562867602444700467389754338315788121756099258575335519746476091598361352908270370859395721829761679922251328166524268552523450619757091289520885222294038363149325857539889341659546034092130856554890725016524776922948062624257838951581995359525284482356835041273684611724742108566688237140801085669376393145399901045828961681472228129652877924278171180758686043188953741619690977475794192093770221672378408027850022089626840092587656884680514963812508249111129333645836155347967143855636493902849535289150538312590104951664057528646006346434217349809249947819330040477761502156382324442774706632221109314235477635610733345602354504641789987615562611245485117534686259269863136145186338456787206716698010518235768956023678012284374385693187008953478588555287008262120477571754367584935960750508937920836198925932662252353407793537055415808286883341047193735768843554388695492198538106798893591010238219621910016164823652722547946575517346167402912743875461095819173753850527272199712249295869792354727775063574962073961262567186711423756273112099060817445205314141221070583798533859553369696453253599811317038202884553396603196396177457329400692156124147772586843251925504629084558809261006712601191671377164075378187878295537817026216844161005859251494561844416932750504513297384088339725584253444533490238360474034321269213953710461704821307227415687603534374287954693378869587307058326010610418386377927789672450700891742107730821945068610807349173464930645307488443505321787645495792204018738710117043840728758810327066207466489153477721503275352244782369257874414884862207470795216859122498005198640826514425297187291991438633130728964544818893982180556028229825071331137332474971174828079480175588651455389373894721568402124716115288390502295239609958860608433038360872506335262741406233382817043129932184083898141510798542356905565782750905897080256007864523172854881669085506801029663090226557968172140979683178223854195473855855443381103068227307261431627236517319919919865644329941344011910145770399365787744532219764410485133922186032215989319749551511509871891663658464849786428622113236016710546787031002293675623202442024011020062203490414707012248257820569340904927081909221671016859033086248545250307542702693914782820972012234531181039395311293675445174249317242319180166679606044450726417544884838078544701334412460352569908040180018344390843837347035140051456114482799809977744732269660967511697069451692496422929555296608511247947907285357737091417466222498301429786572433207342646064408187027869629245928324614184529648720851757409139232031603030232735714623630833181997984545534726618690963497403842016760105625987133190279194110863213018004270699188035506471211495938649841875965302270307727467754840787543969463869332725631090209509734524711495621860285983403503464315489137394848115205349918287870651080730742537271250423647794733898516646153356489518818998768303302953487854677376639640339839646469196822759807786011333212958375337320555998923816705553155142434563074796472016150432487310432116929746032613429844274353991824611352195545056530899841539286300628171337847951607070371361267167976113438621731112916647966158051650886115671415535135285746363026170225701363205410110797906040136830067979394266157581136835572433395249402122397837115478631323874907476637276544105584485946444996952202005176629681674436687861689358986692854477478788472353601024219028059456087242999690437846612287553020040400696092323855074164489044896034647409253291876939394964018331124027287732051280616634453842173804929760980035283401253287281506289619506827517626369541047785930085969873456355487734360057148363621875083034172093793083576511205803902080860358592115328978896940726574802673430744611080417982354356907692060963046260853620877559444132690354877695487537820901018901521674253215030420624486245026611889618931251289395438437944685819163683068976849696044043144053718658678943990389384956018346582199768933119985552514602030281480341580757216232871286009309778665169456612237312449010683127952044231999938293140848160981455614721283102851687511807577027380915162482772926083569838312262549985994616580167544681037633006977104459989859156134678907926041252882377142005855243070226703663792983548109274362727034152341546958645304501582484905588919600157408076628517765645512630654763836517787555905587608770253817125027065321301644300553889166963945869407871595902497838435425224487784828121319870038791868195091486554888826153284362578290067639560933622057621466352075964704204722208392169125097868627816546074162412810547755561704332734946365929912085114732951852771682331387279863539907304385587209380652279237160161781573386837104207092148631928018451056094091054587018479083094798788352646075165527904640702365628266684649349609911044037013159098097490912395396975452057151953083869982707223452087152726662431936195855381066288828051950956183502296598783064887857259615001398776891570664373703295558139300832972607965619805497440038323864546264316731893269501318463197825917141660923811973073573458785382841217603904492521457136522893329858823284235616729576020451523309732519687220530808143625936896277599039828946728684109688400123794520072980481063268507381347581741907778592283027449245157175846776022085800534389661176703442963735016254092668663743072857310014283259092470348809938759432753979973492994820280640739847630073619159616346081658018605997084058268967794955333936818699789929835599598683869470870556841628589966659884058563734498428965751326103287337294077820501886859460067533981666538963845586238028762304450387029722865476367162917143493497378258299859029038908914986129474655324341609396053969009546444776183991365349381901846649926550900773221513651475898489150857157052693025252109350156992808936597642406394127659971035418664282343847287971257549555661097310698554016812416223380368178347862290044560532048960138899072928350493888348554783922371065927999753921014802244083678991260687698769605091162277842278315730934011975043125587957720006044487582691454981861892612529273499011349713329766736662471135271440403945143879092288114894067102885096792803423833941404801977539505737142578492374199129336067896118431708446506399866420928953529735781446406573283836668400645886846217157741904318041743593884231436896403860596752450770985095482915806746888547220562042331012190211504132968475841881365375577006802020771829554198748233022235579926649396688976069053877435406933661854128716032358440956935580946524600598966142664594128191869514023624480053607479177391447498712608609159921975945619761498853842681164958346032100658457346477432979318717489148444996959941773803475660682811061518483792119638975001030619109034856622417786665907569583547014840726698121114404317564989433111182740348987628372545749912131742576189429980406512152595172251867499180550838584113426334651746289675898155443981548433366242522530371629269320850510059297104756913847548608511180348877869816176533469449835486397014620559497684063882381240349914370900549165839612857805446966985675447368639056862631213660713494579103700515351764280572606663417073353681383416835820064091755073471356103354230966347895410097657496846518533095026139462853096177846295091202663822039539265361061864621540623735302643695751251064510938903797139225260362936345729067148481866856145249086742652170529774708416584640553388792220607068913218325435499175057419127605243533880449254917646607691792967190423595525800219264173767487003365512714451905741655663407129061242849719089283699197564972285953297550349714014544449397113385655832485224672783820044802698681451862098070960028358644402984659465686167738825379346068717746307920871012562723494803661720463767444447534229845030649571668040707899572318507879820442682938706877486514018432016224571344142318953511588790364124244588550976169482526573224714225543030240570053945934918522834938784564347172790246238869086052142958565436616757581038878538028864596833061860106598668984948607794003314380244409003979908608801477320524833063589540705381469563487861300296877972592280911915730993905565989037796544374724362934278713913542788616976239892020612854460707600964178757531001110727043027820236152225531790514640170395868762513693576948549799384695050321263574866070455028525284215571368878998573622883341480709574202438762603892146930213408121065368123872983136804014838174660073763484190368626384666540808880387026323013731995912093430583356926238555158127267689427452696211356362755145456559358947104973172224970594484048327145091920711961512921772685820461297284258534334332825190597228005451667527500015791411643573234086568929567966205247658449136823860030987533196228997739131551901226843020233025561419122481053264803207338742628897332858360769248930070061891919355931001022299369135468258194897089573310299127885689822740984486521338941382138229788119817776465791311396083721430868996306564946858536316650848965883391726594746995917028950371960053772262381792124571662608675072305870051373908600806700141940038741926755406887410908229504624088880750293385798388700953405971479742596886768520695379647892113584379161874413697533602511347593005180000335014954247181266205474757988740344272259384596625641786350113669001015260910660791502114548471872494623108092059948547847818489004117206915757977176646398032600163213836333866559783248953804616720031309475575855702854655059879215168884698207433747266046239286111135514959616641783922107135014260646703583167615260592172183258978338802140747013882131019358947175634650294384803126934542648386498489302280437684100541717126987019617998677037492955332176155752439328226886446826388685535745527128681430929028559034500754782664193059395754898597184706636235930434625244969171312408071587142651548279947148696599327063864701126441599789502910264116341853187281310400848921647642138373485342789581802200204024874985376387262937865677690510741004639418822832077852901157441132611669960706039595496370820685986150281617092238465053909444972655841014771348213986835056518986649768799647368147481126328647528695257188971720100874908038906576182916212106291908316793289867903926491945073767204512496728287380843375847412291445264689767462537978149992739486409580193926865134228438635970887802969341331168402923614244157402954543204438763847067436241250215093292384420619746478070513947557485399131097732847017133862227193119855056873891610963672198826964044443628478772916043519930741370262722941245893151339195249945323434649755219041644448381928172214228979366970603740932505473546808067470333609622664423224402201548916761241594849111436938637303599439906547227020432302591163739085144299826294938598380031425738202182446868575397856125584323327124877850938726677047388222449279234055330524097584296881647254531909150231499166744003692081457292970049700250402565264053395247845241534795642108829799123342976119963832366750519709931671075997203537625236925025193827717795329508719821858332695941522862456504952964927834977685149199501283227169134386645055156929541969925456045044975829630793852428376622211832309823329379114974296185045363954065300782505114849278981462071663929432118357561284136119307332072917529558203923281509872322985109014807137299651898572397448292533900552030429073034537164505382322882926956452948207483861740218519187988543521996462818462338879728201150519875850699170406891253994856679654076713734300929501312407064963542343495873399736907321628416249060364727886450123085795096719993793545572324999967272831405829798282971663586745749342211648189599705231736308426945650788333400344073530169841632883886509166331675801386287294645114399523931815826071127554120164858099550263281466930793633456971381049910386751395775753731735127990448217384284669140913289786436550015452430611938840631603123255510682174467298136205936895631495940346650827404780883958543475606552769843788996977563301628039581899432654861997023199504494977265628737801704649852475214626046700192086047645287921888411943944642043698777917534683238952334411236680917557057492523074506456231232522154180668593433734998759691943214665755659710806350351890727177127572216833279917709362173370355580752731573380193358155174479659491904643118716189903210294388300355410390123629018034915967121995888436299308841303159775031739587319798154513785042717348443467979301473959946800572317446827063856242369879967539398833604250078995208603264790746576688063100072339062013708530714846774515441447775312057483623535698950045900185687543458471890492907326475135592976995455266867715517212712303825131413155432480462900630110707942495757663683827127331885968222915792868787869470588285270046787955362932325668849811661507984630677862615131321122183044028246110693453482787675116224387214881296677870776989890576517050782769046662150087366091052272879980373249048689065765481881742223491719074850307041792229241642271498765339307404822275115767793487756407052076171676641319439567193560696994590362198900655301314178116245942448414979786014291736539949858422804377968044830290615343351363930973397779356365576511862599835931772280961287147153178916465350444999496315791125159758674419759184373356020134878663421661384929811303362437821820434108441523193654819749874050752082883684686906736197160001887241726462871755753595827970917494903536470474878821839093261425618362549259866320592747160254699405859526992424611660457901924900634295312960842928106246700702751657008977848066950337621120715959009057008469462321646215893211191508332922136247761602237656745475853127030013412067565710804847054855169108520324515431348998925588303756619223943089390175695836208588474208166187215640120793689069521658887553844535462201140119273549908602746369150197765318849626951644293669360172603427247540272813361026130324918093147073001633291934041913247796362108675757584639192642532796150464275721566306794590189882361981870800915603853042319909588484745786251285443910782125199629938886074456802876926062815995502285220437364935176216522081276927825141379471133047752121569168218276297310238476226495340109466665572676352732140204298444256927001091729450278633661806838047293396079412423811952971573952261579264629405333310397402992795835147943485836011473393558647636006015729652033884326628640616405043297683922576630415084830151731165458636801885918918920882103987267480936637902304432839723498832466538396026501550819523933574226655398942382364124529463156397545987676318667365833534528190608035605621423716403596593709935228073354865008216214519268552738244972518460544699281325820419449238757281707402737267506480945683716857012935896742601717983953371143427242435899087403689703234871012145756080262449965305408180214426866085437321220321340343135360244762621450833089407007284581455512272017784757246011878293093874186144990377708623151228840270731077583094225380242542259776869290034378318730289584468598110350762264714648357066659156374366751681340942823629299300623412204414502064424655532933212459013236416404296763553073989801114937541687862568314979376493862430879048592842983931481967104378200110035599681321939783123535737864794440458936501099108859606914146067074911463221961577352594535242809979751795791330506050721812691067736118882828188542646249431430394101174531493605254645053445378089306607085925127175122941037833554489070793303972762165526760057911177397969120069806274858880754143411432792920743494122031986872503323334583594086938384279667861702214692581564516625216632792299173769682047175580712927136843739035505988402905550561986658774411263410669633976449457041695946973874425161560475806594804862684463763895469652021425905359983137210659199897502626351006816708362740465591454045946971935138540058458887509886495445425604335227609872339101989401156538465679657377460156777211838042056111671702721233523952871987477622965513143146374164355570182137695984776363199063275196391135322191701742217416920307969693944451707038603163622647929419345293440802958289564752972695573033449455118059083530537755996098952893848462814990903797808270632400843901719292229275679954759820875262447015885268471434889512263030773193050290875692296107935564096580851856426713744157104611896331000047218041831405243399793760888611718895433470715840243161875709482911951070195920095960331800678218616908355168673069284014075605648553811092227103296655812882087856460848060176317468312120880544754788183476225213788294458760639947424825122756800623937936834232963652154172785640434793793375289766123851571455347095403730155311537356234360071243585495937390720186621811364768365206954495681677757178758772971703005656320946719312368647152355228468948987883000904738430419866755459436243683550340149878662448148707499730059129054380557681767685875665534170422731497903682381331581974729327211743005439199144971330213975606649611136925125402963077476761430757094000220640242969638567233024444246184380987196191324130310276978429321912414323879103777244854228494149384070395151517443282593813111610345101038993341520994154535542152023053086302790409407457279344011173760306599517139677606283288218488913495028143598689060692530042187791362025502880759640051762613908444766291413577541559270396378340082989808322139632728814610185198200311620563766612389091409151025907596174539092484357659966866714950684318786048778361586751722869139206036353007511132780551166568763166409784820857767845658718040055128524885855710694909086189073684534353328183325129600730223363632375074731356994615796227139539574120354812732666904489129317377001630641020006787200081033827632628247422189043700098518742834724395241107012895460827323461125683769495130947712570998211902205675496281346613664839557494543018135771715596862396144571307932593543954356370500843910690103736100554354558535028985757623846534334574310473852406327338171592474733291232838109042681508315276107861716293736307042565434812107669713270704534818755844924767222594952318022398553770498594120310426214371804350091560093797118297404449236565310323153189924737112497393193673545129844220944306503687770485279044267763927301803207523160392336560698865627376647572801958827516092060832944517234250021002421498734923161711862770769161569592855510860185840819397611773534171247535865271982046158822305202907007729198672594624791829354756270505983893883914314986069254105507761633191359742768724343700050855299733732888806502842536603488131226625149314444830894885296392167782788369376909054640152157920461878204313178403966630284719365503677857548528233558618847399540078259536787936511220746389425699673888156294505067078393872200253359676586052299630228555106265084899537891651672935255175480368496587856219868979264381570860924959005886346663562763226350759274805797229799890433243219925736146104011464504048785892983884140359403075007436628991783137953183954370534751223417454220818619134790199514164858509474543904235214770473020275127390123003302153662239182900584270582740606154099361253912813330249986686205463598326769215297374409733852396661224042521562533723549805440952249838752643250442492774783147123404330358826469672126823373016067009309427925693181662686840414916756850180631799264684768308557421552026374984874366852966460279257275511674303654711733999224046465624637338579774408496274123595958531420309180804465890171210016774716493785389040256486326851026536670454107946253478335782420434551148407966006837484097851793048667768258039328331869957215801776549245573087128482913192859382520817451995500238497028541598757630787736805377170275160482379821173343971036277099360494166410464618549952306962521567154658598313375107796173285048738937209390819353513271579563134326679948835731405964911983630400702517971706172194392428954817859371649945741988795813394493316592790425462349506970546473710619830427552967101477107082109700349376121631236920704554555517041832955799667440333664525896884549750136907025492209999542937043139248085869508970122266237666935946709949221175917411105217719818573539507732234952224525469204117157311958247342612067849698811956381969778624989296681826807146582020130664780519631824072559718184504022722433019365695834736185932277829960728584913671493612944897460810270821581022462576945082709104431458400731201425274058357589835870732290623328462617653989925999887305846787479095083024810280589632343782006848270032212634479865172132722908876170771700163941786585235411550331464776965703901128207378762440643653846922703373592081959895664370649462638323997579875130864793314448903768641623408792805390296742852193608630233453885397668233261169744681080689275900454599160247912497809160120022371129729939595343906669887785448636071177750323715213175380193944326207873958400513964844119861008278725635178749302066706194898005576149571225583141655330836190291801923098622439257746252364915062867277334830386269267243057313954044953886285409394796557490707193509241556046709506448290225710896029818298268847945309054524589562790086602414960068609321191006193487714137219120768833834186744184319898129592636595766448795770510960158230414466330283237203229648981427458404947111679256765912391854433020247729477094608194467283186964953244477983617344168656744500125335980652579424202470082390065678734058813894290823554328765452230857869969076067182402261045827308492997589551243480304822755128339380379894927795469774368438101782398531595258213806762204025354986852803644404688646519856845912556448212382402365699996497553465466735376970492876772509188015822826211041574723728522152475203531206323197102982372189535848035588541145627157738297635151214866627323519913168193756641288259648959609671024051377571847226579956937438332901884003003652254515943515977616265236567100896720328077276096109361209048381544254905291782484944933036540574185180295349802700074719606016791213116271236268325332109484737303927734701764511468857994753665536347676123250559515539899642846278896701459605178924760001821822423155641533149856102900019683975139515657709390829171678161806821531750397057754878125929638295165540113719277650116873477502991742378364715677397558786797197316994996328456118349582153564623496097272957456249408665501941812848420836900802622126699551236044250102875367488012271909243562017501198118107660707952080921394581879790736197094037612103037989791835963290873437504043030633056924237400479746945637233899694937176585824161527054833814106480503224259056776036381131036605910766922637744444165188710985725722772631472425740547630367727427046861236859227217902275927769120748296941662407358823359839115435287520937651003400960648222130817566376781426080573010075451062871813106898890937829776575403190207325352310025296242461762425588992275757342516095813863665277955127448834362973357364923822591300699065107120672810114681963623520650264204397958961478604021962173589562302345808305485917127686739731442589047888295430165983148041257553825659140699338672046635481329213601816251783070910329204087708434587299440877164998524433015324554799042023085497628444570048084253504880447948101250893248686468900780190801385788200807012021227553620997245847071347477175788785153525242804298125656334853498343452211353335598243026786251059458053367497986797791764191635535605099745334444155942363356542955069018261295684501923137641824367199704946853288128802873277300922930430241997678521193026208734478482545216695301263570431688695326109511495065139999475732605745994381658597637862627946549441911523064554412780420212555584852319822703069402532061563927130533457872267220769412312645170934854315774658794738686758770509784349662074001632281295122390509461683913714018409951968833539080151440194906691222995693135649963152425120247882387300721096967753699313976688861216153757235641927806628125510064516641988122337033178278646807743629006686717114797777308202368141996056966151220417216276420688811022432136470678484998019163358189922684131434301966270405603558974810311119651448529153573977861967659596179204467978374603524487875213386575762138335450442551602939235093645632301733908541224460908060533648381008866665089289257710346989480904352882890476239972041467157861612867434377475075780777276958506887142380341495686002180875182253672699157123431604942692844326343843652780372705777748631588247051986338518235869815459871654407091203398063919470090225697455807966883255499288449955470597471743127959469004652620967019546411114516317186311324241551563256734494685525277556694385891817247621503131627523794140003215462592760983297840189639836300640008987416892193585245285022799127259788529192966116479625572091440990667953209064359196910297141849584311396396106611190473240848316962048901074342130832717777767126698896582874700280035485084281958232441445233003703383425538372103321492811881763051760453133565007281496504884456338672452963853502287200029061558191245798950679556872824471086764082902217371930869425221856354102202137437272463151597250831054233278700418130958876897828528340854806233848411470520411561635790557682296245237299950873137505944138259103721284896385960549009928884513797051445351427696659651464155617784370009609708671678971298598287359618249736948433486084242330367318211047446052563207684332010522618073727618538849302711345442126493269014885888726963804851334186284046142167040328255597608416727809827445689534644601883205041549311211458041573126600573494986071855389209721538907404016804078688565148570135033587043915405919357479759885009618386503144186363448386631808924250784019278071636642121832918464342027290124904880254437214424193027495661236030591204888185209314313096555782491249601975877364628731313085959471912831707698492942797113766022302849516417899709674890179719131622837969156621737760402843991720600112855507375044407397962573490766567348571800056742667791414337426684707708209070492797705361315460643910878571166849502233115741457973527174673787422064049591313745908016709834874604441687468997726930918974226507588583935020257977659857662259549057458738021220248935252298080253679612492971776448165343746670545950559609783765695499896452092340494194978903324968341239684465553300058568770042771039592552212855691449168837245621505354222162441397729915648800780786955746426928249626098096744831770816592208321508275721223339218220730630808906999659644887099862030563162641514344945219605231168740882475490662108192921299191814891762578964090430002651485473232702055292404327718019633514381984996682789039405629078587562461519287431236915399358179014261320471079388917043162212493331513520800980085481243983581666948141064643624416123420805112500194485833334285946207588468459006887297859180134198489304289758783765801351333609389141444346752926801652922278787774619932736801251992862758103391640357636686649950093276263325740859683431661810923363954459122479798867009348731551361989733212745906135691519281174130126052963469910211565076514495502011168421036313969455768944282485250373907540754920600705974118535732090951117774765141429420442275396738573879406142127880802429483667896123985060987502223417573939006843964153019058243132520972826195380482199975910057282062692999920548264172341144868961130501402253984545316313459332893244034282855403664651930292915666508717636480523825347851824228172461703954209071710566010192178912004000022772808424281261409192801676409796999781471842126429666580047078329044268895742394096986724905251903949129787046469674207611691744477196852645336582515729984123545370848890883795122769802468281524362059410221099715240981815434917646519666480563715638045369146534437054842138859928254477285918836190632888697971836758383283697989881742143768736179836303962400591673797090324877352576902606287559275860644389126280233179069069138270439662728367872801610326449395663051734901461177944475188743475076748529489726601454110529100676616578456313098851712203310267657533116069659727893672026441949516392974902528377115567660194000433982476207924931710538053472124522780369479984432402993441920767092700459670340856029146514481164012360999114786736737009524814042144109543426933798942104457672396378219505447332855285917869812021462322116108835736758341890972068532805690514355148201525708226820926036537597364517294115750501064651096282107868952984339939190652429475780561948207610195250363048854013730600064682240385770819231395537181950485612128555265623750441700536728504149988378145376042374655411800867603834442248586760497211043599125354687661272844641216530483000215081902406241651164355987027100114684135737413675817078410123330072918306811379637218660293841942648753184758725998579781731831792819267770119419898583566171762963164625934287383552481616987823687457749291282730801013109981579539185901835507234416931080416952579699739665916432364546751948279075384879391364191677254776975716582185353983646077377300537746014872273128061410769820946545232606778157545802097248312303243631467873269197638291433131978633522077710145300915446195307538248362467769552079557471880240122021090175102500339921392433825091904275795031745226416207035001924652528122237045770768654878286278760325072361191904921408408000946144463889850644596204175976049941876449788461713925428875968537576195361002225061268797338139220458822041623546758921548969001326060352951208076339185614125389579387253027191349238313158385703647873010132395362684313964516564709646144500529720845194320439256151530366714747752215956125852990159434270814509570821069007681125432757172198685609786598302451871361702423399520972885649272594237669497179421500544317558766023434997764862172107335843131573211639471887088517401717372729638552279997468704838666889586563616444690547202274389288867636090179544231480752562653472784545846244426008393940256739861393989074493895279774782365681638900694957542299176585515287857394569506542309356655368567762790760168404043946031118910744150965421682884007057148086764249760506542843055543997084922814888586472620231454957270656790775159294259661298683905388813096079246835639448295093422235486085924188493682142896971058429476833786344676180659570071930733109300357300426726809046976216414561022911231171250642720530873715274698395451581575727364738703434910422297110377988861170487221151555324014983973907617823468768959433305825640626892126459782622790373428947812505100030315038390338219658936077871789054659293606950861736801237151402364529590281545937772366173204376455738772041847647332930070240150396006898258699091433050023898372623200942992747892114874123394993826876052009996074777476931241178564375468413593003874960799196148829336866234433986178229325295014508362539094940736016945964293777098744667223386552906493017186152102475628936895959065384058790975921404048078286807149823778777543938934875829555718238114985891369554616149842445473843261940111768384400797330584292718445090372920131397729573811022740346966555872138186779401536960728087343763325876478459645617135122734773850603915939218002124102598741860175380318237923304590632664927901972873919411203839061085360339056254545779941863034518148118972731871278607986194199822220272534417640929177904994880536946904802061748154151235724005512586243037772975130097129753817132795488810898900550564885956149732614470467847613419993953952378274624393961527741402303057698030360358019287404966081776625341741784632198313538206804482134573435242110929399021679639545902364658831503814634204240512362100301352124586476238585407499745833817337208693217309015732437058474208743104068514323098721718223941406815559383956228010685905093290977066871446485527971858610334721117006622414047051377040215450192493942504876195389509795782872782175917907117998344913777697953932524906055606105840516856921381763681664393846009943833929623758954510476238741876836129148019260186092806730653246407941502667479289564940190537144735388604462177297744083537357698433883345571408568873874950308633023530715018550269020224188751558107976028910748522665454885868144473387319529841588238484768964838971831862638338814886550544396991440971220698398695671762715983347646888832274162256669098179891387735169674179148383083382688226194963989571785110012550182777400409567820784372487008614603082077213272836813187357616045172913281488727823591920126674940922387667798411953536290032893319427978763869517868509978126964063942531764353821989795182703256650497013335767366693026975885835797807324350126863032218678435021237956969505854280441269802418136074929890434786406405348795776925423055809845734503317749084785230352313683155080846053741152726087072692171888401224159124143340269043302289314709379006500744619818065964378564262548777260500729067679857062054925618063572652497221506312378908938422187656419564130731807654721922861094590300766653744933670100001957878272492837542731048287015270112929271619784105026822396286107364128170191763065745528874995528779505022494309166778630644855415297615391501237917322427467826234030299498520519201569822365464241580515479653778458798137984801925284514115497545198765624039827794279541066521143667334665965405551356636745324735193931580578715498852895840622099292216746579179922498098827927163250558422647117071201726841051469798686549528037402507233619012793251825826980660697172533306024804410635406592714419259545581028258358989524773139649877970889434441096472268149673423406677540269305399254778290136759573961745057505790303267923371512844950081205989768059450044074427276382218276045167002008852506986637536018751404985159887536929023282483654988388594069097665390168599377021789557586649293075257077918055759757982446445591512840388061513606151341321992801927243754986831902547515831331039084483938295277876814271031186298766967836779425728398109821281449583206370451379843087607896014919506632203681767836731592064676647003658194779554524936038332356510830633686928579564149994560045849649788232610200773188011536961955357218742560242932287765049665515357838659430607934596698293487664346300536914363289274140966384306433964379687246849513277093146095630763316565707291730369185221947518261153332268508483431050715691161956237716057336989497506891991430162273501318666187236985842646837523483254311886606597288869036713452736713972505347601220110477768170753201302324341924030568056119531842550451349934089311416360880099610399758942973424152032173141161653968717623431581028917086399351545687002567955879375054787385983275438048203814503038652658675417470577036189508387844638950623956880299662427820431776715601138630090308138767043070590781194405948668502321638549263629604794700607029147144373810498615598957260210154340016898180391263383863556916875432807007431399102129933971836691198402798495399497927422685034989754766060759816514523496298157147325685908467880680467569189511630392491227693065452453843584091062940758336763354143957872735127457640696835966868017302922908035923233831021016388918865884769309244896041274160840532027912818043446823748770147393821542337337330915357470763887332666738774983034037728292942150725563406076454102118294404243389246816004166263770374839377143900061625663461036836264245670152293253560140742036104038690911044082060884923096044018095888715725387984546296195969856235887553308747787782693290426641824692612274851783430407801823202447371999628104119068162266606317503952574233894448855904667205289136020471538614514636381459664447598919672098545711930185072172823583632851862805522720129013332597421183510861106374498259612364364351949347396765850373366244224692633775519358748599145758743632003629550730898826386458993707695927193234951809230145757694005094593630115120594307948493763201558012290484956075799899842908566217618293969627865246294630599624012967362739166553846204880373564815581346087002056269988668607706404667153754153767935093392224212152891758705585800130496361142409456931493604148958897738497359441698676711828654969621744069201499982229188576183208531187241693657690133684212353756661168214651909017955695881060775888459860392814155180306048912323480588010559426409031137229393269893911950019257440238476238656746654237298037411917912920796615137407755696818600060369682555549144599216605205279054326096339822685299085998990522455966770248916640611001064012635435204131529202916663269291465645417906000228978135344333561949185736930104588600852164622000500076131004811617922757898713493872880073902122405056222671321378714343400345870353255617947124710595083753279857877450822347040739558594585477029997109005594682671696462885427920699447031827366851234997951940081325510456888591653390844310410220490210402024486619732808507435160073497022032091292151066714584257674816131365934667828069431170245198603131458792353951043529182139389436120765306574713624130928742119115123814328351949211598353542163329861338109779377562695997137049531528299834611051931178855715934506868649959819738568752706900167880828113770408120213161306948783121774107693334136820054264001315987857402360936296636154785768714928060068334511945913474703033857452290279954196952052886577225614200537180678489846383535222235798124585379808525767272954159906418083599804825992130659622466153830429789582094671316800705093100424158222793310440830584856936861842513847887868686462765858277273874303072125799188503874205332408972756967316186507703622117185565190161561726276408215371618286651928659611881096814013964456665705249198158129623159136382081046661818360144116817082618956921220263159736148894600955988114851477475725152011415856987432021633074813590092848920789954066110359624210797621057837189358036630187767407843890133105241148317340743268210535004857512532213663884269880367187076812175083726810355700265849037995349647304227380135005346253003651929502930732330136966737349016329872567278241871585368870456623754357129719902921142017972963579045124521620983888120112107302437747512119164071921428245382912155751038077084695673179037418628300058454077410087074736459249969834641390013511669367215881652692864492616712025109940475486194270935256069093775263683034719878922944319465074076418297311377065587964179975942056917102331060593854436137423258627891639348030681890596954057305699343229170081377440733129235077087661741220516040759224400319528821980188931896338925520892977721266296290130143289963573688356446479852300696353522804064508761667811568712029372225260323991935325107369848330729845072533251878068274403464535109071864996933871491204960806075874914757990251844754758018640227446996801227061920422958116624229918748092500390518770187620399102644116658476988725668420187675070063340329073183387941888631231606353899035668575112715279841944185315749582908293240550549685582760403362809220495094744811939034002135551752823912826757854097726785923321337871029898289263854516985420843612310693806826751530392041892142006941288833452186577151000199363714562581004696008481766326898472259944431371830184221443746322422791663165261528532577058436351854640076371193716132791700099847644293330864157678907005676255752009383877657376918168913331099278085102549100862212612111195571224927346907401577289763765915193236038877432281396764797639809612164623707390214713147915777242740421065402954733079325118875848590005992877468915815369745763459065404730368627574656132098939951652097925535510951442119265151591106868200340803718673672393847585188056210767305366675964682898920803444876134582824237462343744757609385366150835297249604446575963011001504937330355620176905692603891816268400793683953291888480662891130055559781665071301228018889452290667911009251100265255194370931682948118560009206092173002678857826856130294929801663897045130297903922905554368445454394939721483286549752447959649252044040731398886569194467506635264335984056279848956732176737608997407396279318116948798017885745236435805413409922867142887172453256525028064776861182192238122809202592584731759372667407336423813392593926078887486029446050507442928416113188034245883889200435920086418177249915618802892439070445169580135779943847363563845306623169524387425293810357275725764300484112412693311184948431623224604649158711655258253105084158868412086120373683024024954169861367249297547909976296246777958262248926818474803714409703854208799219358075898164687641674432814618758801017892965597967935461660012694439428394440747680254387590991361285568256654687855906237783383120639827956285390590190333694961179465929462616590359739748934500116203259183331636205172772175218131540725397199428600832702450922225866560161791014973212695607345979693791174223568408181221980724975998296539975207813392648396598206398456955225708113520748116236310342515925367435941139181371539850800877029407987858382780629605432367604699813247022278409555037928370067087217508479533087289403054180000388250239843852151505452297963487389215722684880956351931523348007195641101811783831996539508279428683710926253831957562596806603842720418799886944472603366589535520254397190168943633489255933463564660008139361584954692095737295068267985776145913713465474624097526037818237502711303763209782974977395347438160148099224681766156140235041555677466977521935759588226970211807091458054400413897709030575944366023705686286606035321194368200606699107432770053283784335472561066665490869215615871737298276248747884629258407178704735045011645069005115815711205186582780209512885397371232993843472485867564008903181814178802065112053356549742810790030319729545515576722946070488466196905341998099847609547272605389788563063265864774787324165676870144891293882357364771092446299584548456192887515734571102086486589445278634437777114608236802596993578895897372875220423520686737793456592170360543938816362450259788690033108200067486323742539759897006923876418906814019872946552080380561373833970953304075545268678385266825433912448142457373259534954974614191927875869724137920937181878878929760447657337939279684526989043437646902363801220134460883001166697251180886213001588744864819501600714414148535643840335927623802221259987850237457713991517629075476692005056344306504257423047710825691822971111236092116188192150047825036410721835607133751136710204278955944523749026584763220439658101580665530618267477032881629309224485629548616929677376706410343509987496288801102736797251157037703979376655111789748309702691153745894267774442958445907499585425078460414648791095987637338859434769362332955386916209763201350407361351235671562552842662804050587097106844690017421046056648483313009974311139883867692254599973911147059836164750998813719325460388168949813555374454214131672427122202907773558299838640960351393089583566463963170590616365201770426527472319400728233713794492967415858993024636895660051802561182560620536982856951107741314682525852868519567944293536032799560756126836191874344052971668325030957844998606150251260711658250977784367549264506966398371274264374370712248737161278707591200700456248713683573323314038867914932873685871238812763070993589499826378678005854776094942552718627368885566147299628708985169818454971368791271279513680334906791195014308410908579325802529186032898628027669971300364598901066241963099671180501221409945340926707351445898093385595685973820655738468153297046102754072467755125538097181712809383034048772352706904725139681930576375477377061770216515668266217652810291321397061648565329659827995656226636524907939644669005200376545479249204394996879305355700156252008282873809196969477786025795895598983507952869663426457312896143353359283050200998638601582129197500900581707139702196299775213221454349215927783597379519793337744996353476552849751719702338259032085746692311195463110326705909860242211743940733182581577398824476797584391106384435786208468770705781212570733925051820246689687324182192958362861652531277476538255299896681289976124093518052272550487438553056165246737960599943623468049817713569200428854169846782078392249691837515243102231938562519777343503145175540335329272702311943990792884830601106641911198656425649429836254973374228780353591623935920726461098933339328619545731750299867461298409612057890826930704832925434141973155714042830681415214755173020728472435122374239991729826909116453982096186552788607272280293487347089977544518564642758615207664482471681499649157283463349077575760157821539793136481161562266673697811493624381124026536146026468229664553765239009875738575942654506391341970272118759245710973092037890219047000941062344992948623823005344319649272207817689614194110440229553198867032138974139632288025143566781527331076615142042377784460479326880760383623901288907872451528659344362105222302314008994673335206917452740979953191752314181641512486269872733281055553430504576315170531064559859720144429775548426622860747816801234661393046592167865827905189687867130462499564490617368609476158271804030723143434578350671045179473153149876406485549718840706861396896524585103519650200757574276547800408432159992746800945858819125294423862822919995532267101978495998147442391922151044053455064300023422137578782868907742819953286336828220606681325769575549676292515832747054015232914734970087125463840144294117543490304260380524729821221250793344685935226434675940473923288618855360714991270450360205025151052375017060036958962667517005014755291059709150586335432046311997219761351362913045166492660131225824193552020219404135600889286144193354751523778134207066592131699851695737658199466381373498326442569198396828243688542603371553209469123213639405012888157483568850171359132281609365045666159233664973951810389265513844579340435604673116330260048551776307993622851606375659997447527644852164634173773292172264547885737771835604029773236557409523625179809120834340497966205378481624351774796445528389900413867228166236830878794762448139170867388264342620888880726175491809557147611843108379553240977411039891901019161084657044234019719987569944972097152727848329045235637192400552435548924958938045060023591640531506986097245230774200264671715226619031508757019990656826122374750755839221113570697556807273481876151419510134392710399766413150945897209752225073179294357531972550164115491031674927265751282484857116482619032124397230972917751476566276361056009408826685309791020384255287587760592878329248364323553053757404422665950289335694820360832656129647656312283337709129851684642099811643984490901219821304533609786852716544535648440197064438424517876195159182179612531870109680485426137899323787846288378435263239073638035722735839261853093155267771840339511316542609515635980491355006274711746033712311184758075365704938251820343884668811804722008369108619659026173847160716947938081082404649793712171490803738808606655271940194463996894365292418851295096904162572759558685730031871122109022594078621831222364635765691892586531274621699486515217003143266661726445117286730943500448323455653925227555392240290458245605302524450970564075115655520335508762692444781126953108818542222525506787046079369960788592135296667009180661232746813825636863233015643992700966639973860759886141193086163806846160428326549264369101470704199190298909465199276338931410198955712902102304987726700038747993657060300488298206805930967385274884741249381618837165393919209589720298733827264982795709993467310480758647621775312585999624251932188396036986226565066978244398506981415240084306797741821608836382776313794970648009910610284806569885261408100126622698927396717442545426933283271780300387090584494411101858684579537953211077780093376133982393505231423322678615027938521846849488313633055728317169597465725120049449161289626622559316107904514875890869013166498427346922316868205840214660606438340831848033285125319121720665690283104752150827521872875899859290175842813105926323908962884035863646716468162766694216433571854523168354482481816924469184566092093835854555358803445663756201668023866880377502450677268041633410578972318236221623078424262487415662044386744351925825867291779816429853824258590393724747388658076478834842174976303880924081875239811212680165421092265508646406319810265951040466664498828252272962073174106312483837578221147670999141807286207616833914762970384866170533657278917371821115234965122404867712079389727843945829138236413125263650863543858958960860701957199379407771285164777315613697054881080611039074380248518135424248346867335064393854148471728626602596461292584842028642684106698460667369123260344427765033688706639398434305328059988350947355273206866548093344640881148402646902039446994046967788847969948968162252606175993655779483751439449913002488916244337549254048753518533047276404302963680932701636714690008666137747338617896228573924221858493120661020951107192259458459006270570583545428527429394077928948368788705373428296899927017258215807643329984187871176349627405045032389809215233398862637036117509003482325634716760502295522582907750128130281692917908039035481194904119623645414552110842522811173320916588214030367585376991334466373313021779077243422188113728484978199802513095247259913790101923065730421322092718329400922219248851929732651711116595570008092991011082530514181670388037394305391667264940833647441049692135235846729955165558671240986021414860096983287269782496611508430070542674851718987403663018492334671518342902774725066816020775254372882978663576711291170964574394596522695017273048764078250253442397506872720363343311747432354673480052835820641406678783341307438762270596948810483736660230841576205745552719047608684397809741444435238919432554695855484247911825928075248506254378446665882594461233362664281292494581137047799609870797825189089353466321298819617661878683004238176070449508057835589316070504372295216327093663631818807476549147861065639686459134245195001663300781608754313945030086543961908264649616077559098724108121896614140867538066417856184469948288973139635997428521526523657068582859864726892013405622460303896034691961741066799701762461493108951164082689869640534939262098031288035878230485167117164414428319484877107060643313089894826591618498257592519319159090021786767376098089683278011263566285826947182805521160181694051853823607237138364236668994910831496145641468891161463312346383691643785822500369619739022889659695192651107979992022933069760156977256057890093360809074836488587391943907946789828084896820595597328670744142464709179987845204652072704707777169858611169275141051497264342743333332620965768903751904707285212276173902714077062173356322451757683683826963873825603346634574750515488737840313562095024210361051158938813432507538321839841080256174024704976662351650694436554891803962059035735229935981665381179843883831835758149126868516510841571808784270591320356462731201701342776834309234153085171087295059460334678351146414135225339464125383701783108252434533372823894179270112373905933065078718211706821967863991326721584338740557342820929096571195134232835413710472262458334321918403056411745230284954727675976267944071113379043059399529629707688770080394786914972032086667968744010591741977405359746401134954391796810889207061066907073300557493754577591720911467425634052435975905198244147416530178263834335919917169711858570173706871568447892927570520096784080442241598254566036172543886688118672587218614758706607447929545666852648078730528524335462285053526766494900730009308696565811585274169961312465712951758348074973744002370233283440111509126407807825986602980412822085315741457343609054612827926813062229945615342533763384061425354404383865216688068406558790090495036607196525071898533854101267182471134809867779393425285864299061090717009617794708272113336673909967392831435058617120392026595558872429230571432952775075031182320803798572413314016735304865946515578437676716140260638466729463457916582119039771344789842715362827871104928167467018936151088533354959478784739577375014675073385389774815741369856256676704092588872120702339804512141197040767102841419071539162700769929154139033706557185811382581580804765877513500177230953341856540995559046108162973319957758399635065554975940965952514926064438945834344676335145045741009442384261697515827105518667960555744020982216602635985321467508685688014104037702019797912103886999368178114726773288626999205133078979248489350072116960681691936064290353117922305178736698714217608218767155637323587786877352798323223594682007954138403045576174881845405676239163882398422175962985114066554999510560499595639102438029353874016383455704057695566701358410380861950471065738444578330256453518450825242447404380785313849690794792660198422683526899607082200153347537515607523280705511497431105890780211440069318000349937094512206586038642388865648577806844235459965778586131149373166113290057128744641223827940879359943659096794345095792655026734560500995483703519968302034076962960890166203033294605781734521962054309778415075971981401246606221723445435408259230425572178695511829962250166322460692769666243570294898425742375900256475266778713849386085423117422302215863558446149999086249875943733814481800432261913133817555592945390083309913634810149162797199830259730814148490008600221086748076034601051823158156776618225879893162821901036928122639962003686833030583443363142827104566148833448751605985673274151957965885639365825277284339770568215852504093995941298376728135962487653698402662837031667365958112014191606098479019058684876971623002080186189355375001599841317771305866811235408341765353494145366509953360724735824756022200627800639370265982870603780156309118168796505779164410664658634806708243501122537658670245346732250619580155621819936160796305522715649496955632180720171330110063478032805788268303808358276145084112775949289767339652772762432386894680826557008163670921597026348247959208497570753573752745068986829975829718250735297706287575875333862145282105021190864691020103406499472703411026320496671168182032607044045246376884234205049291594581540006844797538917139064366067643312992815064967380453847615413046638636029514707624386031740162615460127235106453909777091886240155855870267734919403695790951138495991435992739228041543186294301242498578771702468611394199291998246121453999931903143387775845492652352835153497790727889525063406668811166638862160853589305330877204021756649323488119233149556135264921372384635841884474376849088433946503431468230786958900497240104841948629171620361173287976404319980384112665925933188996032631972707548362116780123891039035406890165351020389843919789511023774652307917429420865168773306057297410775491424139287520913668622171789663684822058348443524082924732664634558815239461074212989839533279809704638303883609918110608089509716460394928308046669450500650403944995203731369376828386188898929619528210438961379506519427730417292598850724362785967222012920211173458210483676696313177096228743221451658118810793762070809402547330611520154267603239259518136145027501232188962988417831851356036419868226041615115790122416889961519088822600529154454149176500857314562777631123998788240272600714411776230307487292585489345827704021902197507647450338097880923806342031458659830252614793168572310609292141770066770999203012519902216123517138484974744116744853069968644181283647203696595619561743005761834232444179878864552744110639042308406528863311555023777762536311584945348894173610626298048963744218963445301947950287325907226856547340547500756782124995243804648538782789642968653279845872450579724026814245579853483792974248251709702131855747264731905589540574276010650270236341614890368092994571740608924394066668978603881539254563305749989285258048772332836408198619051358881013719054488073336119773233604153932251276550775978637818261892042567235217798464598207695796171249486924419779409429644361773562846894565224832489231298873772652957073016830687998802000230075480076922177104502867242437299037794304505141062195837971661658631938305492119374306845880709025651660846892500154865565958714415707318792614609921518073679300630342811906399574040538838869242165942272491046151176609645281147648864211714127233625524896280757024617306546887476875609635122037932858781123256876768254097696676497303767372410730208350437835326929801988557038726110109706541564974863206442103714942336832657668354806758972764705202861777758528520645384130139895209748663449562221799474763732848234214385723367571841054302692177568002966312159948495586217728688822980478428559126583328806773575893003144470176986456387095993445946729227496620271771803418067449421082584009400711428996373225087926121034837429552504767202081207006148779304925793404853331264500575746167493347016874146836132829068398561245653096655826355099900795971630489709669192908282464041754545164610645697072151066472186484930488405950971391830224649096307280307383572494120627144498882104465375247129747132765768154680969691075765160697175009861259226255011946547168583196713164984531806487718840414598999107563962048319711823553019436991878889388501339166367696185075786455139500041699564748933602449470955120701982505153082675904107259850391317022659750108881592054386005150599398100848563738255722399267205371114843718357962573505602748221098027461822079296146545402400686635960179322381384661433607587573928133472306682704774519093162762926132142028684931547344642000171995658816320711043229114805868962691512875172406515601463309680171603023509794046873270819506800655123618334716912752206163815017081678406907365241971314645670913368510470241353663953345453179604652462217138824763213307776100324951228001943879767304005599694069890247003136058786561367635153079478311170879089323975846093320990996295713331885850345275351697938117053938860584003504683633528534629624243639483936953575905658999036155344283366349233473216388322273661362645802848700994633905380660149025085637613322391810404988934617981485829835721149586455793825942143034823622015645524284226230216996679090245748279799628417063474967347917644119139994689341594376166121899682014048102011212088600617365927854427951901509290050136531842189667787136105657154869871922207401136506715337671565108460000048835556860227812752319661173570756449790635605214191756848047544564938636966073752570124235910881165993450504202970106816480513252822223489479890182946569442886147021949982791293921642187506593747597257948102221637147592324437324271347219050076532706974343703877638478703757990248098767015933951117469673743210215852738854286019102112783012175626851327391868027637216076572051771133249692450477460338757273518453642125408478343188064162637701408208251345264244143669079945684404204430323321070790255213966106190198730782715868011954587094491330533206751967631066464805914270133725421910051351244270414062145071899240503488504533140437777643306333657267809402602620776767443441811958025807009658875574694422997625465497117933102499090889260881936755058120715316002208563791762893991860777425542973021326841227676599196210661736453527250858389175860236083331830792136186686974572318307313165101720099085071099966770617546506324023351751966640219375905014245931699357178905232979256862522528283433630879191701047301744255729678476199324545275627703631492144675353022539452916734018514247570418398573427720368431035348240180215621536640283362072527726860453166969048581535068669619452693199298925665282450406481614947239271742213427833065432464477431089407697183687257806170496279585057571318790272067584667478651914608842467384726144541796368195822646685789144685383785717203523240523092575164975899617757823904650870458824689753604873682006280794266887461188164764228131720953727174532499180050460434192072657033508657637748586859714780433125973700268962953296810192119042116573244842912916239146051118809493466536775055352181567236000174172431920783503990573274215876107266358345028468382869538846519762091470890771131308525205028413196010217666886437639631651401907991845379864896835150416358059776949909292605048958925816931622052482118761125211758217024767777102527754297843121626533080295088173069296734987480823103638647417375072482018724942890648736478481282400329042988847506267107127540647680240569384962791696000990969206142804358549990846947303356284823701684688115887194973425780602681784114339921037946269337982040445198089201112778626066923605564041786498803422086627757143132016616016457809153994323172590550819066029215896204293366763905048315134193126299466308013560580191944128111029444074570131391540653637442323061761417539515595575250541679308945950333084142497072943606084730035406825686969893038735832307891618937871540025479228191113640874284529718552930438221891484803631333959676766308104889427981939775412310960636385619270418263605973189994216762770176306838641577467490061744523244011272372370096814442795016240375296123431979470198621237335000637610983525543960186755823807817579377778894824396048672195218908988060361397222667038450375132053504382341861187181622514235214941155543103061981756140482908799023495719222010120845510711346540626646029674918682050025065026191592278829030146284850836732352562782558654092593939796405504819519921476860592173609399718264563829747872364544904972855777329197166680970124201802735712334171696364116062258274280657716307479121442651956327980799103693492571291485032121680674930104363544428841398167836487891762673603603015171114649575004833595238049128453948333193579501502324550736573945441885173101849024010870147017296315744406597240466636891667049289768105358570726692201588232140015294835305709471027583611189213844073199039661244220011911638441670847091742883567282478210687559392818043813143559621390144041825656595497527621678270207147170955014166693006270483314466405292042777444799612148927343973032338581042089817348342402048687847122281376306245957117388876609000304585351164161853049371189352215072719089902522322141653101633953173123099915273438450448596427247067822999378735440677353525790142640980174904493883350091959143257256262551420569211987632019188999394463274472051879140363046686181351786495768483569871330638154360172690686597214501938146530328205566368495674898407449875896017091976606356302906587796383738540463425295147000580804950658232127112570219189538769518627068258808915947196078521260953597544748184511811382144380711891151626413862047809801764179307746156044271691176058250559162113330905258213089921505059043381290270440985234094646913211888958290372797682874954020743762062826367510955404176034976516009205599889573230413848922527434761086765654699967104544319670455576096678124483413072494245782306610279215773109835799535780395652998925748332586929476224316133324352745759045668162661435121437321207414342269772872079825910083615035585802966714449652372870809815711427231125476696291455748532762888612489989655036996486261855697652231006249064382439696657197648709198338652618382240362917670006346578383471434982751676644508214487932865903461293571147317996703070360920155266423802333283998665586959946386024884003195724882363852839583975853005036261716969619565028946535062640361262120539873076705921689756104663209255298128338131509742378609512827179063164713946444645938680730788142616614348911226526861659573389560251260768241459054483543596377733289509439336388013828838916397207984302469232519662087730603791831404854276118315815404474498950924147566237048462808558938432568844004665786729102928273807854204435284271002582203250893962233960154583915248261095651173322963872565118775530781528200980772703417448553734330087084457775702024381495624737255355874527677405846994499261189027828105220047180894470068846559996281525685775446391766692338050275587276180525986784429873136331529271146175806095586195862500836792237950056016987748995800220498269261251239154167032260419950029338002047140180360333449263415953009255811893874108215063321160305290451917735169522477373621283370358275375326294965372732145335345548058988326664371736825531254229237094598390200450628641449889073290545322362267981705957101175714091756288664462596468215947707875931950765193001641522861875878265285928790509394534288780322007321255467983248846031671573393508569049729029393928638292591061950578949119360466107593685856626410713089894083853727732664968952269812928324216673951537962561983887254388839966585718892736620538701610135464189154299295705417631005106806739632854594679887467527778046669477153245226884451184372752034519319356399143402605614847829970905952480211921590808773901417849614964289312028229250272703869941576667808997615762742940473016241658481289278735636384286164743198432971313744200031525853512312194309539537264265278823564851487134126000898963507440561152370234030616283037175769748621760876778770025057674894991629202649344661741752084919276080787798078702560337152140371270372728307981312204317948110831898444705417768676498318056473260614524075646903198207361140582876457054554194006025774326964446224839020190341026035618994006195532135278276539704695197637038998584518758635963406594205165301448940404423733853013666153121527665150681990048412417549636204666926118007580815076886163785164919438511509260452331209977395454677190529753680295609102019935465984304300351194343351140948984441606987322794281953702428765080632195728708265879042507963195810422408020016549695012661669424681975722974103257275147835992438982443814947140815192473940748828908067738279034136568533357300708991372944160694749572798104474629177873699982664961890202066948548202753029084472355796576119061706985515634565675521208020076912286977996933894861313862533292060779577273988592364356011893098242535572544203242623382041510931485159545299359173785490852678980769803929278280184879608999756118892353908485092775333248271571466219700140347533057954779021442890670641679613817386536664198512803300962963454795802079598089101185030206159880843430139914035882110118044067492365927670120513227082201917449871672621274673989218932583597640044843585513518504987455558734285831606369468817475757486445478473821314835019946850496845226432607877384024892689871763662455460936230046110583382876999769069997114248337208159139073265943330693661130725874258933887936347216901050538384319303401535407332590541910519392021313278869977880468683822709718620252966353349760083271393648749848907269626619860011778425230075317287556302595390222592383772952909241995316175272324352077301627964448668673831233110679280561919059748881642127547360947387637615498776094599330186654139722228059913104870791555598107661672251676599596907720839804775375797526760860710278902391231970724702242872091710630250577625922656386918157689354250376276464938139765389280170292111146557692316016880679807414867982675658766100478632056172585775098438910925585398056473912960192879431689783305114298104019604988564752104911690574679135764280791128321128546406864015976340236322067100990005845352957493663780725778177527795720816674034529783913029268485218164301811886701125947760610566324053451370550484753431218173792397941255588911032069256267919189490437031204310168732439398550866602795437118853672204261490607152745518924914588558395214684752678945893235207445175666063500567510947217370822913898889647871784771689820050627313175513204035021317379218939758778234395925368317841603515058668516020965305064621570984557576974631359085401600365038956064808467803351218423294365693925674435231734936486072120067202178520898318351440293469584013583658350270940882465854321532349920536645102379291678111741224394639919009805069704579997052407351086509401361862326518773191598856103240879471223147766307211523455352696904981878717144333741391724462196421318358393781530905965179319213464912321835561857554960699209940843287516363060764364281390410673756213678802421216432414626846737499030045529683449751253698120920251554131827134713235681577359227961113862025766035791390776132606993817319250665733325394756467361427550502438302970160292186967454083033364549377121409411624188328525543461409279390301358613219821023600203790624357207465876521155467284754872378649069359141969128203353313311954076154893943746504865863485613869103318726655615721475418220679934656792492093838119279300117573436436858164541542646853440434134826573826355774345328473350740723946157683914483183517925420964849950100922450445154332325641795485409244474310948643017998845832225322796072331558677101103597785038067671854168197959767823845877775399519134780744343032708807689183033001622800378018063219197627797876510691110688916814975736699883015372894639939879481184828765196791179373864156897340832071811712390543743999828670497944689365579085020879516482346387898221609310204415451889734262738707494094688499733506311395882880254582533513581676202293105969469543509083001469503524561157099647081240620080224297332388713143520981222970907684329039286519436962559012564353528311399623318157913301244446565208914591884085394237841814607476398189902762740542758550054571428596117588378497887559332722470244340364299103482301851748166020630600451676113683472006786792833591577586923376895892055851844847107708501594972381959380486869129957660253901234188902132331919340737603657736360231777920616707636780371676934833646987952103527274291225892596697693830889254360047049351846783856605604700909851250461976987672705338352897998300045242967938013296957529453316138284723379162581383737469783796302912313472578399792260462085485378355716200099582346652569239793783492866897429006135426906860993079636354944991572103618072639764968405946773626452195105130520358974284341978544754011793609459173037513709622719737364327639879220199772922471246501400587464654573650037692618009772861858522038435500070709921222949597879456512927065875210896257005045006355714562076714358250512438370623765407530768851639290841726269476824410668037277213228612752862986445363859463668003565886841781179520219330432891778743324166261190288024925023284702884890245114043940024390212900363419663757405259141976188020691745650171231450603562500683383986438348127345760498136427040252477414962964406360159560575138107533336401039391043220280445086748508635406824780264535886683126022395819375849764142334674516138547853141311914013620675043756853176477978572134885856329159656595303744729496176248605230183207034201450570843103246207586503634119345760499413593218961862372178725237491147623736670799324681843329429840004570471163932072408969351460953963868593956608695020877091263926086755844725473915272942438800473236371315552540740623776956047642561387382030494675712824658182406077137497394392046885930813757145810356223057978971891263298190939211512887161410436953368299986236084221823642797679344665411415374482463679995024341223152584999508750888985216655688474663449396763178902308022781490641180397499145165278346619451833147552456314217328884028785425293358128629269827427929578542691065434592037920607891813956911088376809890778243953949668999654097252603405198309385674651603119488283354585240412992027865443221003476672748829027191986577795720134049293209404430750248789715649430286899077316104068006706098753634939194345227160669937359665618043797783902530809084996169991037562023649207865604485420776045945581141740190072367770230939467579354488133235262982444683866049873292946054849852690703824657871116591233224877770708602450899676697901653124317054956606727882037133973525753614407906378393132270698109418140340799728399511679980987072272224813209378317550117378871584378211558001071218347101909453964777028833782827785792715721428552886127548415449582738246265712470909614775105153726216225088617721086823835718514314914792618214721785627580456605149409126017540510534317122247500250512648125348670090968653837990446878327641102336100432644743454794227258975248191313751382130090254329641637742982959976253333045017526645356478095367146390991726846544737940693115534643201130907972587178560490586036463318589681934064593595657962660305371573493170871902085302350694329271244924846347987548188387167504419448247686077499350119718833124068409545608375533613279868638551384909350485488566859732710364085307853170167291534801212723878439930856425828392355208612040638078863137666476667489011272686681247690810133087426882026074404807020129854583928478075805459595656522875301201807200466072077028151696958904021196962185219626664388678752582037744540654692118952804049058040747539582839948906077709558111309190339502751548023570147786848493920575038631019315133676501941500428543570076645976365225731342983147960059339752960529235117891441987960434674513075048173564401425885521181513363656986109392855223880937532843690669146322327249176090952135634672685003017029720596316760245921565216102378913959883294043688633262460626880600417922282820893641647136047136550598846734416725226682953849108435102096908452895212656996143227292936312015068124875643991108981347012780851611142086346546602053052929496795852781266490200115970612321876525551615731372088877189396282449181644469516265680517932340505436748317579911094236146661053368080088297147863078315610979024076304822318765733685041551004964797365098649736453072996163343953549489964427266298265560690628242334679479118525529434365362473689289616777039568704420344591560015055298489375458806023146330526806892781649398868079343180186567164283179442503372213245294886425368361333972366032171513090788074188802291239561415347197002306575372152437055265431180004529672554925701483487867733003404455652048375403787359711791608619287110172399624483114193440308726249605233131846825267098285566646932615006484842948274117301496381519899298477169623780283165690895115227622430663751180870240302960027039838332784641172549449610110764671579735732295788264348753646031608342971984465585697273610134361420818227638183098833103337954843112393253095600629516453819392770395202825508238289635675123493478047885332311426617474427939975664003544812773229376652205031371325286695027445481829851591158516500933514209820779329146011023794210838995266004619448805466339447131892428839774966002638702168695043956165522810596449234634242853217888386758120483056726155677670068136599827122719683467824331041355158402969925455409919170601867922658965328880786592191702449101021842712297883999542981708958955540836483740867330527830933987405942397127069876670104769076985655665878555207323042335720310768686401286544800631752353002312103849115046535579594648005237189471062790763147294325102000346810335661980215764203977051403408455007127620093951359197518258727835622984279751424058201349583674562985007112323181015049974276733489454974691992912967979489053518912584399037820461758859049007479661498966287442922254848166920189554565905663080414320239095909841262608694734482873126451316833146055276139452220967988678462463860075255332831312226413752635525647344648883757099150913123589164020548789078073793367628567806125864234431857317682982385131430574305938535083826042067893487948228919941211344574282345290602967881729658992866679003573950934972714334452447913413372970687687371911184694201736359016686593105769410445427615299163619346116115467052400087169750670404490976118784399382678546838629255564975487777738571311485334821026242652753451901995258360856719606595718177579369926148856184539779708479939109177562658770323252147875948898883554818940058128207218430358259405171483911673459966813300829657806131104487188931181466175323704089172074858902582101359477090541765364411319625449737824400886814294190360415960953400117920654598455836924777364021760366071236873406013153580581994763826981430433583415069254620325155889072917582111468264778947380297338894215911882930937348031982714520941311899673005688995788281747151606482606668031099113819896532298287728731992544029819171314367979245845774010170779660382314998649663201239842593203153948259136742927260254442061222800572901689707823942786583213655430740470985505461043496817754172946548859148095773151312833305609043352212083482384954811472148334146379770277201926142702416944896282731499216223221099805941213627924403709931182695149014001502125567064633694360381582821007161213062027918649099293273622040830831118643014427593023255476004242473321307067973032564269333074263312774460811506564265103089988917209882189682696451430030023681424424075296003216806187262008075636770847041204912774758007743784078753012360942269739348677930828118479949153716439719788775985896016953877893449940762556681798596481827218914448002971226029079180345568762034903393541399391045528106334628385629149975723830675627362550950407623671671214810712824019804554454678654408248615045399632832834409540095543259895220779414172819376650378594059270096084845969115878432099789537159480534730583598226558408445170479654184673186396442096296637654181254507418033222739148180332009594181371000089489096326204498766349791043338466193462453091696757833099681801705044533763669583679801653898884876899402298373424091742680021532185518694764133712770396299330274149263616270456717183644656793428012962070606858052084640045921464678329418784466215514776069751201938224276163988675941520057309432282716894380971048947714461330980816540346575212055799657781636566763334682821743815583518891590260317651933937149015149298508220599796457427973261606094542124418599992173460567744600338270693163704673459481751971784017241015214476346372966543451381454388629825268289051131869119355982784827309875500043116171928667620094923060218490261663147453815276869787754678734954803299219867019241701988128428236947694684427730701479964175217248840529914375959201295106677395333998530682903897952792895456910189482858027708890188774046349009366610513897774945424919440122056769502432604505980213159895156294271607043653460331035336746634917268292247465950097930402986711563670344008444936731707688305912066550461939371915558062938639407884457056429286649866441300432907321650997838646947472571247137341169629567660669944601143797558742722444496583860219080486380765777778581211826127217047349337648382544331091082902810929763619778599925092937087969724086151773359157576253390224924125481242952875647462450599850814284345986185641931676233014267098238946826679685260025961037418093162143484886303154572448977481031231387904751235282526610204147778348612281256970548481111433172084150843612285568168024527768986731540937356747036718821100324906034749568997738223693780154943680733095472658248692468992644431410705642859621789736310708560301394622037883181732851826434915423814756516828048804002476838213048490751443023225992421590661618065549776713890532538123887824919150179666150018074431543820296727782885555904460829006456686457460016411431293377550590833784845900530410101345805837087706230513055107677574055540220082238891396617387438523472297363916298088061235023291072278918402737252205395794787030071895470904060197343360145647145489883317025061480560915771486014914757670334981886920115776868392579755790434401540210569205417374926909390854324654976936741131845409456865114948742344052299059140625724511951845396443890989014363101758679882783319468888186241370787991834511288144001726376783547097496313214567343651997996260825473104876694382652732308352201642299987109110755664350156135606585295632097428454246003883054972372531891626238330784364343186479892344264320078706290911374349399021195159326355252822201431760445014788678731547309126588974133987553001385760566107026014551699537478517835617267099623491432622488413113407625070061586816266121109164640223154057599759122063022710308445893972193195568424244483455007814907772930562806128251429807369790036245253363036009601674090049832188282317510439320312807621725058041069061720413735524029672475278754884575142449523378710287470659116598780071926467442439602027779772883116472321717320225962137273694334345012993353875429111895315756009742978743462652067295934633367339350046271741957535613382197298075975120214037659136266406849173564138592889248005941782071832724245685227124388034384816648111258833255736135164379600656103699358935510626665175225701912670316085822726243626562997237621276437586711569025095993240773897380315800648089005088739679102002575298203312123345751500863043390765701463184501391238682832596400681762636127611807141299166821406499348879439819615915259528648499106204063001161706995891255866676952696718949806509485500085472729773101740950333551745024720968731691352180024561570222612376679426934695830875549747816050073019353758687848882733316337692814180901491975858104318203143264618947945343565084041399960519408951896407998620928320339183788320593873725806578423147462436250911241755838923344518435539696795245439714455868646233892468012610361292942351832002289768784755641205124761026208614373782837789228555327123190368774344163590182645117482072092944778409973426750526984041199888766359534574270273521467211480602655373157834394909511138584530405795616279356319113201803560805929081479772985253322764309892115064646378190386287532103112379467495619929143622846643441658122828140472261830769736459491715909108149862021307069323762414364247088524224556787029933097271932959762619444642689322602450099287921864791307437673267270797805868822129759105866782345710162431582614132732370733309999889837195006540029222599267944699072852805661783419896625628107015255072974420090073778878236353369530121552180060694940328316122559892077031078175991116961719860560425333120570533309265361275739865585963003848675492226660488079981653830613425762810672757318590499175999077286866888081307109522614006522967398391291779372376930310223535491416126957024453850000852438337319680954728215275498577031258195487359610621073194820667398423839366593718394219653503990104660461436200463113778067846145132276122173866668439099721911591527820846916437222560930536579735236502933220405372764105378424759934720225075027711475409637293888867556602341873442607421016870109861000866132271900340572598800682205308297116953739325433361682622620041584956758778768739632046672776770231058545777088428897537938528413443007553725399882198843877623302293589438754350985192880099432638885918819534424191169454171547617594045879347380519941341254614124021728998809485663573851683163257627263900555523902498028462873184652901154730806398023115222727546916507592487244366827488147544605405354707200859583576673203038594844789114307045886056056919080236781545442798735985175231803525897309294261242533988037520940170825859064082558633535741574578227555002961234208841815380245303034782253230112353180095883616030675227222978204267169249959935713363358720925595822867017418074266565433468561544177138462549862041803011241978144692351686924704716210167239269798344962495073855506990509327133920362184253223709619876740109879191498168337479715349565461944783313400480818375096662547365588213081922582765914531702697348592552561030988659316576964140351169743849677935425521246447367528445400878129131581211211965384228856944939781600265855898982251097688975038377639901250233954824527150647473071388795643133389562471187240305919943953773679246190619348472403593330117762524143945834026906078406536371832936577373024418951372761724113592659631721439292970857234175729402916048041686507706536322794149656418738242668815741539074739886112020054508895919328661436080935048324035957804343845578340820388327817216531868054875607242323278787208385081122377857348393746272580410370277729618192380636804873229164666575922400043521127429333164442581010956104633834612397024163053073600719556161476822186731602452495029855281919624964543136045495129962912013878251252750663610747054510815617449880050764930484308768815723309622115912367555656997962864580415518189331193845932005439251340906940757632241339993486169242699656301671358319086699578519827912530090917056209758360526510517653935382309434346091230907105320443054533489200082905354767119566935602404215373354424109198582514779697400529382107450753883021395410119202374343549688056973152436378827383904393378840733567881908749528728233323681382044616925790779285983119321513300040175010522054203039480461502881328683440988089687005572121929390653980868554235989396016197710447242955371833265176555238196666333393307030377389456334538384346786493843602004947279330654887049068190436067693645514338986121943910339268677944784384378038807169247854144087285554966829774665830096518412217285211573631011862544702720762637492965837920146274894990632388582335014008191793193778458420382569603470694476656953259959741595268320673745656799753220075785924351226494195436482655553046276580220301511013051038489652667153308375966376791075458595408767427190531584812993450209709081673545875319676470132705516606578146621619579854884615047473802650425721900053612791468828118253768065965897569718353818471860649531235658937694659997371228129391739253571924196442586704882854324165273113720681673670357058373049702635303502152818236976726795346169064075059163462676030480511210165828310776984946309593837942824482756869184302763525627262153363731489032220924518291825847841563745741687846389832143693663254374130080405561468709775742536672304745468236877550668501935959097754553768990138303111205823845596591812056158668503609520485181822157679471189765886937199223721165810075973734417223961677377270979479154733420432290324442538963458207676676719656092241366508685004428019710864437987412665941807958351840968059670396187491503466558432058797683809423074834538666452608788053870497967474259256221884082192601362395120543529652129914625855292498003562414985353372117057170375039036785818618490718144258529777072876918320028443360872792239867664937326117632928090875527376501153175609003145992979336461822742381161915295004735361971952539741720498963932374798584326241441033788793283006742734123016432706014507964753623313854905090458736786640450746278581962581894766674570582958432948650294199303754060230123319443940818336583120460185788057991748429827794817600633480484992408783438365013752519132776570860009691396884457921103450237272959539444780062784243770281579409155676560191513147993000962565220476038768669958283958629878445930470140236959394087576265283903593848858139434461617858066716120460014108835084146684573206182962130136357447106980240920235401492105246794465609445395896787720829491809043009045297817142563383035730225048731077049337841536850646983123403818764926681234921404191452666286394691940446757121370502191898354373200536517574426942163444283622585349735052280065051336420244963135577172803354230100398861898382847085281510895230486698609668656714827130582354494877758849015256933114897275279318944901424774641013234609779404006758601239999683149665594371774309611227776025043232896225919868459902033679158235388759810879581444448820087924242304219029969633652579587598003487864727124236517501866198055133428510363621347737941070173919552075354030668712514665936845230942305452327195417517660015796234267405758607729164859326361802773905063639831594926447132692572434521098628835595303114313847157808416859313443436622207444472110245301373755740412854166915281324540563211587949607607361894699574227650102730432265872841258741062163461543821799657210218514425933869451072593964429544466781360227224238414767362132381561695706479070692670492119000180792364713365229408149116944014651262907414973524351873987850819855997671715036871824608074836528582984753897534747208845310859613586490540648119641860795010173229973078003824296688054155077454532851259313728939636920293407326755005252923050283528355045697779047297170511352981912228318104834933389204755321991142013145320315484903756922978739170320883093555003516527849543756452058176390004304862949390230797140303920050395343966727066106421161978031681721673899630943967289662245866013164948164391131738054364211601352360819390289721529913181174894433342832379641607515495839843971753126096928656026345144790377946771746315151175682967830451662213353159318153047997930902797159384270572887989279127699746137102427932683473924986323548026574746810189189486069072750948503241368463034183071421730809614889244397028547239596935293772619166685140384218158618489894191717041370682702624473214160638285794814750678889352716555267189805832925171086089026277706632613714812002332208908867255265398362652361564616017952010721446051463850539636666058424304770159702700529638223859329438586033648576903306780302355222878992088767979704107361164266601207022535642474839234309318149172085894123638239482205401306543100211939272780927293239090662017775023986008981824886320065291698638810483079003363213502126657245671212443408019269296442661064754237970700627187844631268265280135636652989859334583070911465125244445129645980898325834598808103552774176693028471035515200120505149480676023391412567708918632662852689477208034561854162998750976835867487831753127106731523338980628718354314570128556922652622454672853050025717770493026824067896213424404469437343905893003320477897457651445153933114206706834778509777706975369712852380523673853043722137253320442709713914808808286129132179455994265853108280883236019777065465682474112482745410833392855051995219140114899367306342212128989997626407200208255296219852667343932953524310767672494842538881626070106553057628065894660202543598159425713430369527164450071434863875697120002577694943811133009847803211010112946740804446799066599384662734573375824805363439881404572540381295925820852424453048015954040848190736793068639711107737431751491496384156695201989388042902511684453825613747993905103373776794494494726422798658365829677309803095424590795607486211216235246136227389650016917858296794789126816255649932061134798626459125290831043060051827882743336153617482563772389150192518049605445353320956301981745865864960686190570801939283634968284096999476734117653686392835058972143465207349763505260540047475681063941924779830266479911137381591552749424233277973351649374760030277150998014828890284476233297533314314257986895628668868032113331423235799269223922188867956243403066594768486265390757790692274669598842041061094135971607588159695984945635953573718816476638209111555128487730968918695182644610488358885226226100301043160147743156350812357265545719204018286017536117949256412612660718987427448111744532573254817639192883820204228127318713388353367498523236793781929288682700344463827679107652281317917108206280407085659924341218997271710170032619242886005655581464351305479763795249973992014581013372539244970475350369076926006705070789509390651972958168902551045092345326258993048873471166932888283719100564813606083403440981430404025845669305564364032164401943560413467385257587148655520362001081854478857396548947436797521773340722044577916917397065530917014720501744971658641444995665261098410439525042129468258090829863824014279799516701081624280759171910962574708680147231192110290031735069725403080129141896602088649494903970487760101389562227140199822170383386212847158602456840519634270398250757953383376410160790256789841939507306187648062529057642910809578933458776914859654348726595657667005264607729517897277555497708728907500504248353256387146220209994164397105721994560111135277993083527720576892274665037992133728763470376377968894729680598095745114390957237594944436705124380854861769345612812029380708089867720453671697763611444683583796599786924503969580100742829194443594992952400438637751274789681866860842365933432003998703429627944820318454545079863962619432625995623778090979608103121163452900523678917826897455086806877464049615182823225919738140750814392028096544424730242217657386623037813210669128915504316144988444774037391673804979003456261237046378422362316079655507077661875288275030991842022336503253227140300959794223421173381758166278429917941110619213762094403864725136051819587012426255066645204227387518035031753445656816930429838840272709880304257986176064270476969299029087042034428521968329329917766911861301175400962698214557445392491200074898737059534300701591262262619283169647868711944334681177453296587568777386908375416376526808680256501952009517450303094156902794081986107690031801655125152774786419917019372999776022801746413159033745404822693315839114961980270228259837442741028378020124519804924878164700358208018287524177156594682890570965388845038450029560719617263515512606751666612207896168952213462659880140065637447888383383664754692256504259371271335918006087225358460863137419793213448508088066465201092000102067284519046912794314155338579478800309959217974857822961657479926106363449011546147742162703854325978769820758271944221596621318623501209026537932562380614656816627054800114059357297227017676741410145324323059138257556253739729699535232112029468952047413774413831190954295924525037351583765817995316798170468947985626817393182519914782601026727735878860919069000499240628313939212283533918234407629439188384332315248406916047343301084355166318175365069611054181565372846087871562430178870275112050612911247716253134286272055737386877870715274985091724461069922343333681862396422760600857864297909168890283912543859252151045995363287728232099168750957171020188975738660335010361998675299393288758722406884362280168537998463422929555424779532714327766611509065294466682848554487189263984106988285519449639097128520737389949963042832485983452882702700577266026245164627730561269316974704009809384155303917203969140759433338459973782923816468155965181268326364991190311161105092289992276907244921246119909241007360183932926665571158223524766685572020569424409727133965292242046429220279667839759660329645249650087554810986062803000894423764711680405630914843226027891115616750595340232113917524593163653202865565788574154401225931464802354533215838186619343272374879053917130570832999533570232611072518687395125033227963955687873596766438808282523202556166469207328790407268399078445497676077099837152154892743488566842212805246691659428745886644307969436901661432441863644848520405444571033178713575853822065272071230319972520572383715693241299010143970375374363976239009143103751382942223182221453452717244718183839540665913733695895945490922944150833111391641115363073828034737963062187452892704182831490167963447427772184570188984055414420195521982132492526180821224300942157848641032462874839685047807788015487259572028447082420328607979329515725950132269161956074492367767891306180564982135493140868282876070306664742763085661483475880850468035951617696962521491413652060318970221368392658911269073111732624589507208681682309007277680402991592738011531075688589893577447244700068567354929064677389979724060030425907893649822992030792899935849094239340577725720917416710243108663722198297672238087371186707607182128007889211491602815603253124940555153659160474996080742356016473417815013206197544569195577376269993643939393543527573911515038327594895717433688475355774747109068105501505318269153845359450668931243929926424160812659828955827119726285629056922748490815672945243369676693445243715718512585148772520077919164006264937721940022056000130030659100675461313372957691609046381452804907693911073555251055167356006276441334608086143893774626897346412974517969490982802790447423777397970060008191134742728823392827045455225160099019251410925560857348847833497397643768933421515440760172543557436755420075239949280322112076750287872980304660339271584927980896665776332196145753134971651251356038878625518641585030528077292398338942556349265624101289799231840734893644791590714245417969614041210283417450514654259529800905735716289966839739729374623292703407134932639361737606368874621146147703322243387307806697265398325970090741833743717138803161312809376672375666826258999459780900895446787263872734037954228484815010206986770966769668039561527214358658722066413052362681532211976324279326083255643214380483359918081141607805648953672954159470511798324107692500875038466535956476416404921481924138009876947943995588896839349956688781008859566844980464836416042396982372176172977997646171276691273169765126415383581144023768254482070551189900872764225631075793948250785771836970174066313727765177355788154557923448642271513361259184158937112308523636873900883814169786573112525679318689499904751510178139206542640443597576654728293587431065907806360962012038841615015275395365865437968808171111519616648267214647754886303353095175581023689850716930069223019374053545690903106183969918569138248359953855554959073641071938327353376040340918242080625721359086529906799856049092868834539850754736770880788425062416745808453349038605133438162000476400376183293421114487510336755769616366872627544009743080491034745388043049857908012384385116432477433345274079080360092312242602229509484261842709420761001785761034160127572178718327331683420077783538581677057467672418521673773769514187272275276541201887001575331936698407749211027392715343391341866051988591723638118091980530761284754099544511656790671180229415847524496008377724381912176881931842419387657604704563675001782527683839056155634823274297777335099544352130573606823372556934004830044508461250949932943450491839242624760395360495372847939479247856675554702070080292609184310500103527495486577555211517441565608150516892882387766585662856106191849456228383022790452263080802443700011894595372114620990738287400497728649828827614409795036617614549925691483466858365934041728616053690662989816493928521537428559712963889362332583933009636543414179142758064122733856276441488390906898088262752182544218955651922578833382148459675133787928510905158939228271581670333810299493803153239515067251941742683865144140576140188357958217499113545790171488500354927197692953976973631573546060892533084866950396358355697588715235737995621894370521141177545313637035399820046688637611942932572461838621603023753380892945433864039269900601481662071531984287437419950198358595861069258544928127967426141379595579015556579699841108749818510544685114080020952847097403255362229578733188167181985343616212206715859791082012815024302573630542713645480484047677747680523204425674527945923568742506232433349988711978921529807182254159471411814054831641021018025850478755482474902891800561240286927094638401609705368029047477901097415234870107497487157000510451330374888719306055176040693644669877633884685334179994728966138322938000688723580118527522918479029593511588671080232909549696282815390408153689094298181499240274773234696878229251924099381733881979999454178919652186386982011488174643627951798631501750679312158502592350509233589768370386969447970700738229012235760671088713766817100169500729605626493086858164998248908447374183630040216121132688449257698315488101449121854386885295032727597295712871602897278642141496231201575111121381832454949225099603489315704175494057816646513473683992052842857345817787712045580431420154517161187297581903301827086427288862731829489188584291850675898890717196834169367938621397706654407526873777434417614680277866480968453476548699725211843754887968124478762560934848078170168974333617709693025556656916443784226152142719763309938727671239088122794785845643354023806489833634664579821132027488086374523665861514910350083056451700380989856486788748365092616345661661548231363438575137302553113791847786049191090766637758940836460511921817509993397203244232129749059433924217258575306727488241279551832735349421155611672056707316130639429531303467085757519015916966666799678388439045692572132962575668208621122772560964686138766291435328936732258211611175075414821532521097681130388073216535120286274021808289279349839545269732306990856143270496372291749340178559095460388283897492440599140230548981465735472493877078758496665956925574290839147855845985325306186520880040735463498018382937399588237034975971827627159247054948057096293587751497697718756102894601442449041982190858550014598126290164303185186606267528764778091120789986197456044376668422649556644981880577427659694935767874394736352437947494193125887812321097765945411613433243898457184926457592322595552996612402876669125033059213072654165659743565851724779662591527836818574127144719256552001710717333249627178730102089174469274435297112449301209455517027325716048205598270587984362438199877116074940492077738342251655753394050047187706191643252859527064271034279204172809242647268276505981157857617366859076708896213760646180603024741575286047201255207104407472934665766042539711007436089067340144946921065692930691470851763315137791973674551505119056439685098777700844055035014107849693695650238308084737821568324448337135134457120560122834354745224481727343105271697950971539427703886098307957558325846531205222497310408596311554122370565619740431075107247997677813993177129573136346789464338682383894878441449728333393214141091170023374237157970210107188862922711102526140513840750875039608326338378006923579266950522102341577919885748409262556221901230237440939145999671958755593903612219407579888873046896399492248425487981773387533303654241756625317734794764898798291337578507411266917775917518145771816572012987733520275619965819652952704495589130928926778409577853750607161585830389070908372855748378241303642826595032728057641099933141000198321978601954359124180465901936433022079146757078065657070705305239042788420584066123283497913975097253462333658538412922022542567077489512152990962819438102991236868708792771152468977616424939835248862092656503863787357546352246772805762299915610010960918732954645696744134096920978190540892023622672771557384858758630729443953397741232637212331970233795105849799968435355837894250920210384812772035272006394814260128845438696439504521382424003539978721891829408010468610796943887748982253134578348562278182765430514046735207405177647182538983600908982548057033141663934558741128617744659223692767164604767488610716096572618370326357141527981736917974199076865198052045330504533835253594222990889645466539936412056323146244281676905067617441291723670623391513719372530100530376566623102522311695596196455894029888594627069590105284152439222539465258198632275428825153869546071350602390898664777874869084022658046231346229702880661289993681727517434262066072316290321491747694574034719402339401891954379749524714166692415606418812366994253826484696329652307644977856374156555253811258558282816583254891044738150245062958032253034882542910521383255748258297802936426271033977952752527425219469858688864344411448179278656916580658597077235810579416030899095515478744631778872093152594762904804231700290561653368183827586721558100577201711553244227612587690982770761165841810487026087906488149316020289356021814768130833046047646282731858680855582306495281638725161964906609863371186423762177883406440987809722773926847933022519067880387906900550367664925194949622851373025024185301958086184423888192478287994060992003212962492366691767843382754654214555568600383665306242013846478497797983208967340348748248061365619436688555487116788447883290059222036511128933286756968856376808002012777631363979225270547857950318606045325817396720630738911864990618639894228008173055518155422312594880506631392671066864711956063132314309993311231799223907880576923830699935725044695273528142364422276503353744678938269458396032335695704108474558602627064261063869633947495270392969874318316680634460735500101360195688281807032851363974775506315012839275187608442684098914838911095835825476281762897078918466415668640017006072182212657452663170948063492003609117775779661803407176922524770609021973677993224633061320300259539057852890432505844075846816186541083364078001207409560413794561939055459713445936868967338608018138837372775783448106302550684750893606767019183330558585279333814680249361387634075918682710768191987725347286075748762157100177657885278175666385531770548126212124755826645086662482641155817386072780363929210081413886749073601165090904614178285494041099504397546339750875395056524884453660471532962356526269906339495006608070632031903079168658454965149975555247773049525856236149292879363785781953433966205127687905891291935100552757457249095621293382784423022107899250584797129911566879966814661950601700978698021168643233292867030740013976298278097519276705147335765844712919548566293818572230508492722308979565419646598562718698505888847510715837786692100486873867228629756223689468633861222332646081385245294564893320895388901354208196128731654012109386023881091933488247172075299647301627507653285846603540540913763145815056153992122254523936709038263168718754129134835096627046122370512203894715171857226707406961776056040923693120370189803401977904162427599325082503223237413157500182246901925810022672275080415172887522490596324982502759047405574911339844770425122608373558301173125279195497252279410329951350004446937726136559807928391976430786685154321579236077268528723507290407292600241594769610868488015536265558037088909794257029568134239967562913559614330545363818564583073431833479282362168172873212816645312772284418341684033891490134125462797890597700933733887626947606717926342798094180201953939766184790823280087020177216633756689624996015388435053259510705027615132287179291915781664264555747884742860178746366509253299570216094619536757097996154972497266250495813856023687174939123261377715617827974451437015059235166596508039341350180774049593830636346967063036031042835569050755558006105077786567834964265259998259971123803733142471557559054288565734382299271549041289124595698474393339784372384086761170646032679239918010593347971055346054448440684115309451465605450314857074228691013668217898454088354585684729453374543141225809202155559953326630406132645800500924473945467135806262528552986460282477134167274648927316452422488153759131653969710972089709283076067173353906412687788860452947989131703664571699354195123535634363613259229271682074608053767545195991782012140276202661808258148969675416681232699776624855074432274305569753849281046552505541758924984811566028046901539663315274972597067037195598112851326062438439611938858671393205079284801004356758232859585926231913658429896528903607394151359844894085856233902281483753539950010240114764074885140694689048495009694624010524664767327615642446651627347074703951274390859864584706906638555556660482496382004527254963131318899271644682067916146623441901689852651450706990441511389495295117100043007063963035691197468979039275161117677235340548560996849450457584649565004786611144563653291163596063880142825355815681758618511578791367434413406733354283669003124854142610647401718186665721176291153860315098143426137071546629772529161130058939148836497406903170163788542805518599636858415132821858567532099857766723219691846224568828995132362978744358460473844691567835752632868833434081982434253280162099264909000158986326600920023413426696583238647889375259161021928753910172460096401765688631037031300723187124741385334555578210877083869771576068570810760616291076439092189165185745285949138277725176782128572142504945242153239602128809095806714845654417674630420222353303742610262376817651966743589733747840817272201777145350700133359778456216134851519201572068846303542807392221688181133483538168982506459557530279334930431045190881894198005252169581741134298961410156441127936742897467479517159881791727176167226060922790523189469353371551690150519908337820260222687878137062742456308065618207158630271486147259617568846547398183267708682927148390221597346262613840626260844304073834724974713723599890395777388586577353266753434244436690611983348875470912655860072447666835605864733024368504615401554892320532760422353666654667455350092919547139214367099099102370278620227211658158988179050119579257303794248556839994081940441597742822851649318922524631821811629248015517992262732462890170780222348886171006209731546150045459796989790558349441427626436099187919623585911822952761349579412400467398923526719622929546640674823289134552436255417671452569320856611889620650110509412379935468467989809696901668280843952453662970482527316247357300292460831706621462574838141147161674729435974961076660975202018119144863816083134305684173067246849486324442135876460903277766297812680837019813318338214272993019564221273377159415201221898391747014628467729736168148410423928200700899418570178159797195875532086188229529127378823962645411684564741968222154701732553510298598732006664369461625136696721113741072592338712893995178172713245943444703583917189541066179619691649499177187436953917973166750771270542890038413247381741973701554027448358949000269431058600178523772618189670642500800007252093286662470125601513621449452862520084438626967542560513028228035867466102608251487539995602619643723676926926642201450212508370788866016092695092325144983975931665306355579447136398117559854674081708571409876525211218857397855015883350781163328376618648798698904957060393337874163536516658510015580131806926419426326118283483011278008103184982066012542314524742025996660131661795450526875002530853633982158875986557870753261270958026171926609149065861317863024775078922863120641083159433120039684436459132462829708991005808289211259625824929942511263690521564587001440137181774563031977547079885631644179765857385939659229179598299896105315307711748008604571898697280595176747761197732158004500158516568193957882404369435936279772648321434001574288234509238544026613959637712491005928229355442461243401866902368725435637396549368199656119539881754174720581805865177643073443576359932198690758019062516708925917339048610766401252568120611989507102651012401299917916032012141873219838985668406934392893972317299367901596650534677079310398200669778568308449976495227668674072999298376373854386171443697302601936324543178903666794881941011830755213529654681084356720706971276363771534182830358936781419519120325751476399023043683970293139050667239719483692048899712303921417761658370344600340854005706381232160889750773511632370279746645173144219504786745367740926078092364589068885296320923427296545966233338425984486811607308112001539405091089335564726038992238210684410368586336285172371476218737416471750119397923309204578279070373609216924680265209983978265388315038395618945705695217943632750473843264199748573267063670294298973382703496823693184249835184126331698338362051657095818282012234568864955951827553977798703116669121637482160534648666337487766492063667622446492865288376000420025829627700061099442267060518360936175461921390538821482967505815584527922095449400399984013799858952707668174437167511084610835831519924097854242042483971919749821176514759975129529302381095724863273463490701460139515712513880023353086361363201595679231917354991087046335348589191037932625405980655664475701114666203262718565966472016432144943995004606976061893047425025827620339923752827477844025184919099929156758559699212891993143356175649224566723295623768949647119885264926939778040948137229184918707033750841638792904445850638978733560146255828228083990535142756716922522385461388046691297116806459465140122240587437855703921371898426921127775324632973566287084654423072389413317114262191400892796649512423789127947420269828221741178269843895902403077182042682267658429804876212065562379314769463336687590153622097392871917040036236336587114093757551374060929659825167934707411233595358687607725376331450732053269924919991559418648005774784245654024051559911320046604042450078120789478932681968094412122808263651725629700997645014426397465668887437344561360725630864823437280912215367661836875729677447784750695086748441334154242143120172174945176375894020145030435550108969677999306186422279410101449451288683020265126233579592852308798846643988558589190971250507870110946452356658041056085371830276453619982845605576023237249770907042949249015133791889160775188727793821514771998633049851633112250995522021382780460614834719571436589833313791963321108522933174146963536642906977394731403292286692740244247814035265287126457356175066209853327834445386452411216967761869194265842325380355103496670085825442409904028524216895712955432585732508607017762514176382118784368033861993669339773785887190173505715101965491112246195196736979045113143838183667885818590473439705139405359808160948991152837244220054288374061477130906644396486005703226410254587537547870170210059702942641243850495523211324415287925998205183188012502601558897110994733301048171238618047011275360553596019977047235769000744540132959432847854804016377788354935396881818350289552732450961581553489488842661722540514377321791710375068421117549573655665763613571740371980817240294958519187294159474475693634894246483422192057262540512230756985887126418476857789611076159526213614440088689148639682445082242130694928163747977494739363404543094971715848314595166890019604769551588672860685367440537234263697104761847564268364160422782861202051036578601493092920602446582984620504461688500264576256524324964489345645828818718014797484283852831875471321157253823209628118362090798126639431617330976665596711432577358624014511377059268548732883405303478137986544151034025695306674576224966360556766203314533006019174532010245978936141009998535920037299542503002407058272876513677775509903583024502065688736635144668154502156361675954648300801958268129988256046050232336774998141838229437131875808976511260352957811338978836952543412388728405184746456296903483253197063562645145738100700719988130539821482578960505251386453577577705722260365638284433357206312822132409706497352726085708005706732060827094894607345339996549260159199599420443862639446212481926856276165252752232657937691313983509302857683826494990053269162622564954820653309888370449708469300670364123722335615624644681829630894675164694004590209115767520773468775559424066074737564324239351470501684985509854159376161805493713189047816785816486918289366393070130298377270414904790306264125923486838168747249703024760033225825323454110780258074864425079801508029179425894824003335116394897301425840905742876359824494045701461599914212367028271167156564450888420576534675447420568079303305209831672151415548479304959144628937205992520970375271581718303130051722219801806509842358120698054993059070032685607084708658129901031301488941592816402909591411673263574465185872169838421703038172549326017747006569947581133248319153908595600050816820765245447893138641491633684727224528047165769255889940975428052711106952249271743708678809858244055060900033855348944629798784910885850453630618765754157269129417727632613794179357281131264845122523510732076439093971092048603137468286368084582964345854798027956507538250551933887352324975154096206531310875105212306422615986598016701949982109931428782015569968505852731282699535249377490312265675535857721293439799567470909014642821024587068309859509532970517661817932934530417911243446214883335533223003038938851949806675671236597380188410156517685964585290237042394300863534216067818198827861966463280066378980536127374050360387810707052929603074063673190211573179456834743924836120786882565551375119960349844834866384984881503183522307055579951348878982976899159408552038943646287934291477318895687656388147690241121940452523306887582336074731067064030708814474169892688332109681732972997536709608988853118873787862986256404734582048810433249187867310909594472174236918530976839971134374658439690473767431746070809436769914537187074282375434061754956069180819390145313401259102055105089643259694012237075803917631652263886968107159807773449955497135411682989863078050569258966423675811777569333754572784631016115772836116259934345516217143123665278292850967145521971145756094918460864349570488863375057522930224504373374825321960215355017675389630007929250617326503294968303677778804599913147898577904517451130723178360077427769775093577780396533217997842945194957736463633257329073725929135626975370563610818716496830178732617813222527059181567585859438410773198076966587963223245783515636291753277140235711755272053698422752562925796538726866327730823121994345234880624240870760128418876956392910294181233540589136395245726263688542819302759750983179870190690087450431896020392094020215793941507359192506842610366271703764160919299158424249393687388401786722477161101642355346866310943019859014790050823536232729310314512110031780355368344747282772605668843209465311037392948032715711395920881851510865944220998460699512030816211801365088320771116871051458773699164848552621489839047925851600891842718168967409457042242032737852896951293711874997015112497151086305869146259957178137507692872388976548378822826936362410420733655951762427654046990943877613351246696915112814080517996390094661690327471226095113315219153984851762534387113988574756227014069484599454245165531026613498249835462302063228987480606383023391136527159824370259782463197646252150861700169511402703953059813750851067594167952757674652790840120779214974277609314389638550531608616645345890304712439132472667203675968484616036204254254180017746618178186649208794528220026448027817724672128953448851496926933693065295417931168293087579460559197460003671360808609007844677961882769304756295640903722765058696083865214496347670848014819321461391940589432928420978944056973844505818468374584394344966218980126574052306588268511017188883265633514594159110618005103740501326556462727059157097741996342614442066574335302640850067351562002522984176733043972820650061175883890853798991817828551245728006927214096576533291135336683619561000118028422614280313436575163016145684704796564002841719991613565315077655104699412285268145231160614765786649278287614829419833705155139732371502995059238134452843707260510195251475656596493709717447978623254433282733695991674530567583081753418827550229218298041397976054421025097381716175789720885141155418646487468930366452026427375662955477443037183613601187365765360096661557065991037892041287980347993806326688322020980264391783841292591068158822554637643369808590836616209692347730837599906943902067622330134894094740755368315791934581958272710278371661356842495752275842810879696216062401196475066737023369087612627287863951893431030807678100969237686778645748407476868804946255804410101853928910702057942411705871920705328889047332337816630761917950201289669393190304767435981948011933426065482201663246886932427265004004429575975291340618797565201672450821587164589010006440527437893967709717432990948656423140552383693982991659132863432473083102850081608197069481870550503813440781792559970917119775586029139480166538909382179442884052893548983655601209451514602021700610252864447427685438294562386609798064005890362298113460944041805478026396002568926354454852813980322768352495342678253023742432766114518390252734838803243746364464385469256790365009121267427483891147729574005999526288493463286990865911764479992632958687102676267311812361899807949796622684159472688021356513046035821698146846764192179681386111284908020846341460191816226607207840284853665568019824968836101239879426604956200003570721521649283662487285864468978806083752241233535370573131898010082205407575224593243733049199451904174846594175786983707916533003125923329827511833538771597316219655099072950362559861122855102964209692423401126208413089363664711622225843638104997932249777733762667209525333591153195939132665568410205265654061202836015706601856147557639304876064972507200678445878138191384962302186423414360703057565645524839416854237383799642203117914555265927594544012668641567710058876272714536811191397311061116733417063849025453384360813888682753030457216268591156934665630488469775604812973727180811664196353939447630809306011858866522027490429069557133147523941945661778317420823394510511610940632055138770390567042196091157445798779011562338961283451537778728794481899859034032897853394102314776646928266208336516249575867451835910606983270188656562782980916349818450644055552914068712669022579563529498767377915041639980842957184839139886802330094996822577031308619885191407505297111659998086063805151449695253420910170666538902716760765751971032281104068390381029035189484514757324707086407236631012650426709239232540165031559749210487441315193391247765913273579109136104500587179341581580030713338097184967269676033072854029136562320369899993021456806413435914958970898056601875136761150206304520909921712252843900668632768790831746208711065652889999853762594532478612496325346670983679781155710259714592578173679775596320528453006639794034248896273326702675315618952809265710830915891009288697773340579892237571232051731383805161188571747402140990862953849498134149613905830064848283662516416988788868616224738750435412967159246807929663857086214555853564212627715401069704693653418751561385207349125446385789669797289597962469051103747155903601589207291971027081403129658478864894400686638677155494463865327605248924308349728594987182763353672394211706074729957935660728222980865217096157297308921995054948369256589290844746315675303241686417421910553406632560487711089317550463025771947326526656119473522469297317362216046669804197113387328669859644679465088980142328372779008377513467931998173235071210980782204768502588416730770317029075055188727405618875508001498671287672102590428241958307718093403513958647792823820002474524772322899140941532177712852263479758336850180344195029095541124432055182272573887041605669101528407710931291644244042857049143514156125721528219748775409553884205908743227701841792245597979548579470902237753613723954744450788796050708703975922313061045832655391182610512283733361938730229335824134682552838358374328984042722745807761055930965560167327286897567782860963843121226932959924274829021818125633012103947241128748023162595612467940869140196218676250118285787813694315036330299168429783051958368168215843735973852698840115435919755570992910451703983541123418869613190848437949524458500081336027989930775785421265694130829332016194651507022215316398408378947336540083178771018000842361095786954717115802570386051909730782398243904033082752831473687261838707474750130320618931007604197446510421717711336076527396490501563817367524898759818624309903599836963507318049841053808386696424129509246396329797756747939452228280338470298644801787609394892921865331791876950975912578120176656021059774516055624347341975845938512828637757126195526790374703249418305474638606455304617426293599652085805470728331483628526363233189123928176896336162713017013007330978230591999580652748932399694017392717412190491781723145618912751495981639240405581427790795241806113623797401366161643857492344883575718377519497052918249849776145664351564310190741897144054300996327450388888543986169665239782351481948656001721012177712611475788784179480723603087107608555310601987926902291232131317775346531732632949677240543556797548658435152018137553691392416448264337437628947077371830351983958528157500411132874739425744576736428436421993670921788128544550317665952694999605259070502419404235049614303982055510540114349681657039593818656735976233046963484280830520368835369618980701530627317976934141589969077004133473705310417009058739361156797444215815523185597785031790043393583330685490862434493878941144276648863937631778756463991840139440268046771521036857340751892559452342295945902645474906012025787641457337669784933475745667334279392980361617611911475865232956224681547934618534718151002026827707104546119544737285874205957548695065321805309370279804929523887847109335965379808002107125342963804974173751659587600057561246635720164013028130946811406658809488393213910007368008874346148669736187045753438391932520108462806904169535182261912659962678442739811599910459542485530396737820002772648326672533967875911038686913827920276629390464514399842099552129831026158069550641481549605031106499000043298364071958989071729570042460722177194343184377246699716053327464017213621842622639870295110749053517590843976043015350657615327565076128472984516310763630055954806085713611508500748393533277752146524960652735183566900007693185887350644113430355913919008333154112933277592746428110482358442060787689633566916688491770008802445038185098369660028373406867395612484410634546321702899043329751604400525105857359937645835883123297058925165031280008130073522538475639930474707553789781621649302448947804207167167385893196257404190459326772250983571176359018741198754674771934978487258481243105290797457050371268758617699718001899524145763476050513379496499006799189734292764899264262438523171683379126670186456424225413513074100963140096892242631154603436788223431019290591194829016659311477571115719709485842239426737871026796837136847633936108581052607740982496293548400497858958497638427733309994962911182810844559592357494061556807607135840170849527946042815336337248008475216497249783853189130714623460851892085438023761112125583148217593853985793569384341644776786492745512266337223902008212080691154065476955254736949464689169989761463749901778707685202219607235717683886277425197257525754154598069204229968547017031451700576483878086598543897903766534075137043420981496326496838708983079866413490013375302241040425232837256772209524233586031199463426570482533650248916142635082198845748861982354171446522449381920712865172044878842321900580721759319295838596343505405878524009084975779316371296581354375357494658601143421948968286627773967203066276470453362618657272199490144809844819188390259484951631959899931462321610882427400993606988078112328306279561561670388049074843299873764344830559086912550818601648596929585766172692588344008728874736594460769038347531416980204738024918420356770151694114921281313675869878724059606497748163662803071160382394299325831153041189781596298560507564488240699398976584652079351441152924443107751390985150362536885381833155777940018666103841985941935881345130875552694352348384583332821279863503231034140874562624614948748063060379062225944281578358584380609549063059832796347916722845185693932325099591413244383842817871014869757182580839699577467367202889571819656471478571529110235026443119000326821350130332510381046307654157353056253097277177002314711719971370867667105384198317415413702371819344336635824331637870601872798827833206931262704077367421320042211361510322828403308495494947289131260034105561983650567416178334499045985593472800656595458272932813895093923641092277831448126223858853165785634614860491042200753380756999838439155362425853206576920234395659002250436246455404422928475263357182690248659934894837182827008938078337246921758437202569100819993078053112092153352926438194584346385594608033680157269790552778498192408100802228005116695437180365670883049977716101763700381601347198970469741956959754987839363161052015412367022454754973152334939703961659632613626542279297299441095383090803834592672565727153575165742243269357510605667240312317306833426104942977813007770235560150399784978642590868387887410359027744156335075407268462258731852812994185730170868320561789412196138919083011552149829368041826304232249940509371090821202889010555638533140960516279436533754364174360208626624301853484804847649235566079535073870804124077292865891275560909961962686498582266041622165108544566684547022704179721197673792196708236875724253911784831218638044521922041368798248452539606452899715556578254841317814318517307418687113255071743435488224847153739234088440722692947090529938729992215913461630697846741603696852483666077976405416233331802016994198976932426107268133886333732833483666118059197222779830032644881989992008579231147657899566525060349491144271804763589643520925270331094543972117260729240284247419176861136371446259910936558366517980452689775618797539520110998259904510675095691472055927090759537654015848400380602496863559755168243532000221768605541409194714259331359799596200631294098018133468817792902747600440999319414420067995393409744064614402033049478494873363658777186790822248155105761664355515447569036516476673210431230540539692885806666884494420904153641559183725618910148272177559256310745212703416686791770134156357992050695592313212196588945888557897078757540394113222202460887843865340126363134664466533528602240965994714935488817300933149752789314627492576526914262032394164571426868702293653577023473346262112761539424535654074141828309145140231468894241570158453764024547755208911694851028626080784763647244806517310892238586214954924902770531647790454013379799356886105060187997146258413674417110788204252469129212216831784163225432588236788369076241577752600781857965036964791204214614317302186318116819306081152182854851097703252661392359456696901131355832921069524316035358111469224774298739587023402476415765988781078934785243689529732762990004238118760126881846152123738673198102554703301150915648642986721516284519097641822205384655168936942375051897465079535162167948959699634889249144220756591618774387143818857471529167857300533082218399524128803259758285108192880955661625961385755312015004455407468114445376501357778495695408852574179030011891855535802050962315638521593833980671749722832967934384940101303934671545835340863229328893179348475806031186202274555752259978784782904827243382742203968438730509748128375418407124496764356399261262349347877258494141496574889242542629954889056769459814723364548596536603903554556975925129911374755929397492099118330210606170209839921168614611146578780170211808921608569240060161448989191575486665450752324860187818784292750897316584106947295340447325312193986602353528520127382294842847475347906337505801748874374986789892393512548597513803560488715443744244407688211941835547079518324453485738607505736659637523070226904023707682329671714178393240071186642078806246399365298083997443465964327161065880576311552969408904362210127921192865394508543302775363566164740360281031081631836109932974484901011301047623963427993137500309452654941642548290461557473868122424632873343356342740857774734270650186545336150375731102140676819998151078193602865441267290877593224727277428499395716316387531555390368737077423045037310420259499855807275963857188327737590453635623026931660536171079680323809496221639258159850327657588290751874847062226774518620471920327399104018357195589099846909241134903985875826131552723471412078220994964575261876976826643513499390775913809151951448803007971534185606582985320544897255246965612381863898505414138024114814398811536099586115793726669737115234115336480390775139643049004341502492042567073921449643330770184840358143871249943788138180667183295438197074155809068496790242480223503138822445179054236309853503433519588519927445740614352612416831951001466414987924994660993357609567985913759034801679151176510247758688468912460705445352580299106368621063722300482310594104517596544311029214035972470742950800786971159602998855277229731926567362777262885206911775333663587332123720633132395220375490716306396982247649345656332163353430041332950214679967647440625041314839591259107124358469079595365393057792187689849465103426148665930162928956191082367435389865506295676823236091517523111096417004664465575668507770525492791295164359316928629882006109826116891414599777087473520246414022421276020036428325311863271208988176787192768944152338938647263403782258550451856438874980756202449712427883773360684927297124655211308215022662621762752532830215187230139166578273926248496511167823249687891633157073245042638211294729596057322776646558096554852727113273265391648702885799459548666549641801350565821225273052350807550208314685567566664508082000355605931983395836006206642441800968553052416321344350488163912035902142608674967710835757310394846092917436312400812588353391967170574900058276065458186539406429897370311843862787428805477274811897721936920987062281885807522735792162363575838554636460790847076858025458731170539901230173903369477622864538756290892026673539845488003394949080619817743375756903055950179407834116423533847105378834896332824671323606414408781041384899899232540693698429516133028099313037301176069858394269854194263731799974226057705575065843541786408085791052808960145257938525943988735082224907908832511933385566471121342990182016898866487932695439181148529637527316833741349433939073757377741031337857993557111644513996078632552171725208547824611713641087756194760868178365363675330261107375368054953977397751095735224481930765697164465611923697004281202006620365626130839409554025435303375418414730860200316856770823463165323681615109365147625109413509807824404864738979123428522343795409213430111908967851854509497847101597657018416906656108121682421281984245083869667275175539008467068991004164435805885673216287595994863914379248150451619948108143919027734193608307877337499797706234523664776120569820506227997589951211961043624454059748972367164510754667255561314106886136455973063090244874663740747226798965839585696737042165305374289065842319579994107241245091669309472841708565434986699921535414364100973830369621451400357482909587777444233857334712177204711871550937968551667287310566592988031952751023750713261017923921670974881562690506495032904155812804745071238605448398082310537936440130861400683525514000899988693585066563753347518918120757909980105089286300017166988294066607035927939684510240350494483642105388477970807674144989356908216146644079252697738615276549683271825069066251832713505601017164742831429234216919070067820403942847392209521317489536830351614635038798820494966594409580917554827341540490401429072673600958805753030566095676964550343955378708179020408416965708402237585897229584328282572580581383620140002913540440989750497353146843419224244581984353585061359618026765769375478567442286115325693289897837060170324040501771256329407987572642287643564724693578012095210099816174770029724387370070996886547838095141092308583239184581427837504913556197959497469003697628214587168999802740328867881973253777737969452752507029215315767993843652575872373605777945127904184144902122897411606704514623231028999105414296232154232653819435457660099858820740081187889061805799506259491779811865010478437457041495845611267191870290430097826416114469689127855743605123571535826514673193572489610130691368744534766139360287578993325576761003619501175600846400672366852000818690952829341645383969725087159820541117575214439834855333729937524027651819633970673361062201672127942421002916099224869336644972269877653080877770780266688356059806999635185501882548422390793671566370159522035737109229619942815339609801692749961301560043629768488462085489276780921121442185043669033787695541521273728201865727150119096373904932731269821442368217129888023416330752146077501888810349933427967385563016480510608770985336017160161118028629102885064437473153752318274477641749670955453419451567060002829706048053463223607522545663594391590254409256289982720452366934292313767870332795168382754123203690259106815755875308359886615001731235330878727240425548189492345980265064548408209880257860258151682474181820733024490056635730013783365178900147230764497500534011816244776761846662415639324174547187605806957092879705435344173522433285968314579539563062408283748357606188416414726315376584304968131391991401677852115205934662034852500324302408324580767820903634292162861368299069260868222446358544661930112991806396143007795334685640399690136868558146372035500549776808978785720774001021358958614533798117101237493387671347967946919399746959324087382571426073549864107845960358851792629840695560557104965837888822777009640118374436969716699225035112792659829601212893138484401172184680008953238976305063802031184229140658222010489897809297310371917118519332251522015665073909226640707931014297121243145531178595508494709242761637952605992576801413322395639562867917517156291164602921789454240928188561860141322895341098148872054642498381696341456720175714039627406444594737161950622653889759635123932303802114369833701767335298398891246638855959644128587386300294543228934341207198008058201750680413614297363673792571604864500030520638202794283116377916637595763735076794375197596442116648086551199636799113177342560783089296112105655634523952234638739930319886432706822829889310992390231411462608003821517491199573429998414720441045678237912530925329996910869120765456398543625627002481824532246571416805474673471119870354974251904501182591254512545553685346340015106021982526352489107842338164714578722493974119095764689074842865327441028973351487554376897717511425832494741649872446789517004595388121915905124273851168908940686036220338748687761342562492627356948782643905805126821893087509976665876206212873398981598223590971776762303828300806861614531423163808003244134783663375646991677633831812038278173401238100895852510840271129526174194820251160244891633672412028975146075931175757815147288482635593298241169797175766541402288982807750376969739043943037157032307736493847053933919470123122828797346146353775383094772211728354667884857548231853866275344129110289033507459680044468874026823235406943774233137744585530602045132443164578646606214078764275385606863395864168530566893437089069917170501927870878201778145798692676348046036348340407723593646526295228890209084307092508302815519786577748476290837779572881221090148527864011956048355398647880202482785651175410806839903823649380821802015205160385094903687217366554294974555774745460249682999983020358368186663823327132234882295562607745545884993651501546672853815497741411358787530998069115671546196850633338920334385433097237940391163856251863616855077903169678478837161367405174758140687500409859322767523700735475196692338743193064652078074963763477529605284444331553329947904304691330736267627200838100141905674379749800777617609486237001306536615800828506897375813297650547024835313340176538277503306362497148614805150548638608688532057648845144006325883766228580270221386987455781182940916109728959870474279989006235025711195578469535218543332069096772550580799871115145890227121955934287502048624078017097648277419870334667410829204559667360781566728486159646193346211858099664706345491306806810289404775888293350457434796752740256174201028927247315074196776741467842205919335672293892920527358098442421532786399628991436778089845706477112012766020669233831757714524835617473378803532027408719676487430321627419427083929022804695750368678987904290596479911720848912944315005667973795612387622163472798477065797580974226295641195895053232016000721814220501878876884414604165345910966789910456863010146140544273871630962964919806348613196338625519846671527179147163798445435511664385482937716021225351280483819732280319466073274451482820217369070907452454284121088809110253569284024367653772458670124295374258264045007035240166146745681096978045650664543017685937954638610981406646164089568650778172024158390391805733051552747576233346307259448179875205545804889282241672594811096958644797792773865285456231296003981264728833825968406690022983888152609114471203182265792891310768934971533854268800373519867254787536658447464735134885664120979715737641230620468304159653200668052376608731438759648792277893297381051695099509619859231350302166979378207136362311997818834693371392061829889982373244769935131961826285143366652308698163044276624557390246132341129357355643410510652328241143017751342752887811621220795704148162698795305929577649060808015600377204325639373042718495411135775236983696742888725661308940581019058725600812509515288042115230177276528534977021188074070053331990997348191886361670477805470833448782259405929310740266354583372922391109274814263500170985747878099425869875756623549374323744465567396527648388208210455054985298385341327539540474426125533052196470841129352434082948673587215267570077924846599779092642859153868994732685163917513316393679830196791497442984458690208641051084888907096350766570759103766673553945096893183909905208956591301115761219776550197835878914691900458623187527630370880599347797495908589383559454413832379487131936736370067383747315936020245548793223079430823103366674752751669822193405526296807614325336811315872157244567950102007427983441509992773223288453189716228483024487304293223254873169223919417274893267406273690543418371572274423435989980916371956449129710032792562803960947157351460435188752836120265524123881763932261884622301866769393922249664808085618732727709909021461771077125170033267025315375454611054889259782102971635146211186756839669612708942618897191986666538963611444565727931383871572861224418225727090021589768406073067140091561280971733639229789395852513176807702810396525434905217823696398288631662312527702995649440494543591527949430797770359248863940253398318460419904705982169332239329395755407575847980226715766749549430147987370690491500275758299230448551127067019349045137513921311582173364408906705381696701936993613436814704386680544285704066483073690951808235821687425970177808305420457828034879597387086065453613301579394552719747248209549943753679427722215244800883374440828703848151232654123979439298111033457322755987041930338468971027385822407297116790829807180329529767873936855542686288869914541132711881773342924408342998184536809780388405242379834013649325791680568865482609310122698202368988539774627447045480243320305733756317797501859500678905392053400299344836179546014956063788800534122792745536720229367955055022340312430413445839946061806930210020189720306636534416703322585205697946278629843872874407558758998402476940149495548852338166814861503228532007097786658852838837035903009201170676375172146829358969006269458644125573598157949350691991815471079903685414294812630391668017296862474785089906356383553925880361125031199153260553781055666367683855724461721693305348781487637763923662246505776031424672451270420494455244464633289379587386855874944775153851113455740186359442718802565996776102223241588259134526742487117988364264284542195950327061796829928020857738139055298406894565608957366808415365751975247167155222933262132926313139902810699553065891952795732002274096379916277438639194446094482646279901850425161094389398293091230720867436126525872743103052116176130552209492379551106685634422014650674702968634588557267712550549605227396279976463091889545838984853832783574430095614820470814716727892981918412811301017905148683654974735295524745060418537467835964435230521272327848699376620024374365785050678937782429635147479062538213404907350297132884764308462817541847928836931764160986908302873476599962970962867970490779046336943737983903375300684628918501995785224731784047874048578866924601666304802637673686394771725143247356878131213244212965210211044810001041072893153689760215482362845250407502361807141224522039876809984019887856994771023304714297020408811825160619919518253342236741245810569039200837240501226289267877847291983859411435606477744841701628951196044793976186880026602199949838811776488791976728297988011555867721352544142881592881075900886662007610497760258958679766386542993449244127440609506694191053285783427073089124191274116661652567122209170058544156235384649212188657515199489727703744864458721796268948461135591400691847581501511392747389941708647706380256877816292190254395805027988588592057384566800517739983817667803202932278565937500731326599621444713933218521357814677209362087891434776579000069113342493622948786952272207421355534186313998362274062497579925852539849540030920909421677082961792640376499088472394670524962255230337449488379952541776824375912507735616616867919912788854359236182730884205689689090935383683021073193138675991981558339698031118897697817909747341757898389075614485767836476057826982081459478570857554285811998421057138899709840447035071048810818100433502947282412838676260289698974893585377045700360385871632364319801543474623116064732869529911176661722558256323879934657200795908589045446670524625380087948600389476753597083750778106085486319563522574596638661464018964287201742504228315741108190563816992858037902335357433759403327947473332433602029263801240243319310539908190357820005445818950476925409539722486438248045202953530516155743995417309241414345116442426741929520297357314559062040209567735789607289023077857331856300620471439249103647465077168413852407113386928572253762252841906839199289013238115787457692385727069617937862718574212423370262165591477469590078879248460230493563522403722909393217320192597086752474411329047847170653083941589663462034892632418884122958799989862787624426159615226992805370213282222630713684055456576459961682187589500337811849420573416786583848191954742227549636249738910380237458966418121870386094639190621513883419631439535929888784221611150534456234098699669232617661892095371795477634508296939964140839068569133713564307944882926229282988152375159971685707069661970992513218167351010945039363402542000366540861617272473445084462127806251178632209721942879862632165972924205817021283648306230567012961322988508485830066667687900997605353864465487274717935764054163238156318918102413475950263804970590003756496783809807605261476205319775049705080917287088757504357703620020989718318622052352784813315245269300058078617294022015868910502905362783762076074570971360224525607485891939399911483925523326187392969105683112511572083333056761160463525427006684302956509839082730097812724134588220453569294367045710913849864382269536269926382032134242813793758221310066444311167677664206743004776775795555114239195118343160281447543952509674745561239548690831662442112405245882217433743687908608250200362540450142081867441671857537887675520683970823864712527790055601272384437048321849871403956745705093857926415224295737760631941879341981119833410473400595268123466765297976901732094944931027318989978401335493384820573362279178995083299398421910299544574202351691284314273033962814055529820527196582522494915139550656158553433968630412731851809758506962365323529512090289752881085017750256371653835356580654433590922929952501084556961676369033426832488550063625260262502925294577102418079674700982112009308936674128311429436810127931055159470151571743405091399660734340501250204041125938246014427672121210409867453598903316618553343269798752577126329667319805810077040292983243748195915696404254101701282623575910512813381727016759568798413418788503250888996412121766365664616932664594045357745994760523190786781118423796152053418867567464285407581293771783835757066426830047205903167755792087082664467596479659497412838515732764192368057564565727742709008995184089230933956947898106159664497616617870398425861750012074313562905685291479417586977007769704718529619380882630357569817265920674990467455960458457538179034518371641563821544934502505983098522956479864471253348396267108703155606403663735592134349808263221246070225655821164317906667228752295225749329657069748855408879623116435545854922395110985699936712630825658503640976294441502069712129899223518110336623883085504015793292008567046608457445091714320331062806437175680896619155070473967978198621362052133140338140873157330973755756844788245967902854667172699435748599267852201040821564596210111232550497091384565147629751908913407919135802138350810153243718546446843484951816107194456333545131658734709490412077464819205579904973208230514677255320425691958978888649237514710936682280077163009242345284631994359872085140381804895783605724820027260779541951581343359668094771872520427378456308643117223054473831482113390156778726586763249956524484685963448322775592626432011608806304009389227505624941035378554316396650840485298098103530286235361708503979963924143581200952382783723173994267774806500338081032344193657863334848933375864764568770510188549187181926355816540090500370490241996313963658386412157099986193857873598803221050232145418348074926699673542443881118029168391573802387515318152282049226848880270695626207661978685555013798721804286615536811864408344316297005956400013043208670314028942559167840677119887672170321325126861758934543917687242121236913651399690672613846279226477360382520034900604050516248181597856492473314675140744388347464266661241372113248437160654948349507223492804541983797974014669301083508480232070151296204524309799749320891954366795717436783611612351998502188446177594576766452415429947295317847189659333208012423740018312471825094538908636751607422451734258633533510191887791329250225879151512846422267161048324033612200457164061674558259919517117562396957489155119917011212490484814373493277278763631835129751800954116902148865964497746674766612858826227827032530148825876291998325670816199629223222136305537210371217859495184487310702270679709042040329789223094558549188801493361991181423728458452736981910400085901829853902618842831966258142131304103316444060976834044227564437779722546680772304909080164339420464321142338172844966230190241428387370127494656639240128655995056868204104231587741634186147609732373004051070890226117586211107084806836481443430516156464727930045928986332709259063495669386889569078102588674502683909800641562866322210455717360242861019896727017056807750088447854445461236039764657334257464370668206219742847555560344479084651894091143710797337314645711394107088855987989307216369109962440930768610526956679047813661475387375998565811620825758401210962658029626133733824794921798291167506768269111949560007747217965249864862889007887592469948907736604603676235909634944828630395742707392067371924666303617577981929638332125832110441951284978931079373945297214357010578199522005226636578960235468732435680135228001366780197739130694642615264388571812998092014663968556590515218701969790727562327130794703671668611973009579299490090314995008675150924478503868338793479660732151684943329217577009511653535074632805674183406491024724541131618251874260124849457273534746624399485947312595949668205550134946833026521695963750136161826737174416676466630979411373772934943635263620211396409946079288598255583148725323542823022527030748635399002617870294584063452467347406009494706038618289810693386030791153553433942471950605446540037684244132937338816876612148891496208167324676824452060368380250954575255236836918544100388449166924563381162315854970666537052400102769227186344839090053565670193496736598581012550756470775049868757680195790866011077650220883047976386944883290950759772440081637540372978930795935417948993295888673751322906906688462166799708366169205235249015656108877541990724671243504367705250717365739860640935371967706615655275206316568124311962318506285585299098009041993476921776666390341032495216251004167006225906115387169835852272873976272500585910667294953326009056981910893734743337129238917388152407861745052233951898711600684817875266557705783583795307167946529795064217131720864118833350725832208583959399923929646758247308831738991439347811024191901333217714935067327789452552047000609613500413077247461427385659243989410055728397663868490248018466502901701632958773355829701939897321000184241118461607899102436668381005039989579423834525598246235382265840491656619776267256935451604128545563401499426679352777553374307455958969946612467920969354771673951606126240213932176183236659016158126299541934792692363206224186946645785169271213282553160389889891884691855946381806652332510652895741612139569052106656422412400336845646626056490781406811942083074273963641660781033913048089599355762180178392025062801468046650745125760174208289138958666304683137795855064588478925945463525219262965794408335520289252769314896338747922561445659064201143115045523150610443025765854700505484599949479208018086905883877170114733363981576371323475564374014636524815741144468162381859094097484174964306286130242735570458014610270118610913034564071261294667559353908186058690502298962181779232117395956881318770641888327705462697155719700854636142669359228697321634830145184358189908663272137344034389735972439398615220923536227123834722376178829387209977321479659889946471031472333143171417642877852047682778925630085229765861401214598448988819138640938351740878418817609132097473165997073474688447699055593215802978025530317358760425494773969444007812694572124660230846992279673751545653320138680798005537242779242213974775457034833091093439503229099154565400829408393685806552729559915261947956903679229754891923067296320356764088389428626689867159192435461210881999281475620036527958964308403873120031492066789441885446508391037304908117940675015202411183046974242278649288435945019605991704811442818933154381118088105732604238054351724713897247661696992424896946086274426036106589442003069762602551223633826392334168197268259985392258545242032722868150990242632830344177050960907446526501806540478519605694854589933511415461902096305166996237891456052072943260142370459327275022394292102235987761698015716933633001190402719786029150318244389128292047781848343456703874145954036037275442806185858440476251235388275744232863434212783271555571710410594251381961366227944632872704199302655015498368785737835191185446734221361907606540578427254270890155157102320876900756073973463552606960026742721647493933422567038786747299654202621520861561968572696793186259680356995151448453904664562647171563754401821555262186743014353974633625846604191986167588505713817308561154587065476350350747913103010562980660972132787363827701815523800061737398091177609653663119526670856169831207891665962284070053170734350334470081057295159159161280690788182400486231483442808251514054859314354114677646162411571453248854392404608837641298928009177497563340616687019675556575433937153581721329531273418259482175782848481645409405344333887405293443974809141062689503726520361239419512496931638780699753782238880645165077174867092529671407829692790297571123139052040138376020643539781302226848277655939103866295305328518571651013283355663867762521816677754928784295699267762705580275398840242279764243858819216217540709759805479772487816596552496412350485690423312100279206177816312743195835522433128833181451158886829780560353106631050017446238228817190357457038256057808919520410439302408340630608528062014983412188427623871113652286986927369597872930639970261341757355611658091710804148321631400138019953746024950035432209820834524977107101043978605310043362758746545114142598466249952234715805070775559629358321371949231739187170625293696567038670256257720677765542373956528510386791877022940393499902329413769994451499542698793848216472632829252607105520152441096482726255341994830439324393558451061398766312756800435330385923918272138504061857982278834484858963803689057130466733469422493913108883856711680032756992633201315769762705413556696256888635932728748456513916401591263387388415894703414163708878763644015604063015393965526384969010356682138577520938322751802554576120758384636482896517308314474167561770418764922444242894048519097199484023415878805393152495860624104197475021415161243350553543375398978514975992649647194472164441947305962128991299918721370868819508090083219431137449759595326860343445642422411354860279244202642885926028057511718943784378634965306171564261072472260821543258692820073630509083103886729602273392627592251096726022560486608604723141115083463639782432364623378067895791188872098224600742557614746164422033310942931332252574590550599153181358658736404505079020098497692230029179398598996728531950418281765183339681843347728386143266395565169869928342384443587399548616010634533373609746526703166538680496929626183716520637345982586250436337598026475113552977109489605334759944896857050108972663322561969456649026498819086738431065273908197503730632040724280116245538057405814293132726402931248978488729369434053160965762649798514981113453913895180402154045801461365725915746758046945882584651038689069718709309143301896806965237612203865428789520024813114204381623759153992668083092286553895900411169626971932434008715297226870670579848097677258229095727797377765501484473610015924123664548670905396317361400688323324332585344510373470700968246907383738905047610602876177288729308829810393792229526494853689621655804679124452959336857030672277474285491150912835849112854857595485423506825692427684258671039232780138600953941559584901475210496354581090214905798039046779677669665822869267173668324368487192556192413361607626265260468447892355145265468040068200291147592992811809124060254436061914202827168740836559690043020728103661201268953759043056462621571530272377584024447463615220246157234971254235066058885041755903268874707539563338010268732078937130812020285477409917778945900043196167970073379874938417647402971305608475762700377987758942750951550234914317340735064365730926443159919028371988860313749264263364281977176246068119979996877866771826370594514718469295473940934257095734351200047624755788863397101213296106745199934090261456743626426131402388783057910905891097310681487988555289376150648713106297115658780766737749661083856962548432022456132684191548924936435208804679677741881636344149062735158060230313435240158694633005232745904974955110495016281794800875648009677070893157187525469770036197432590214457737448929422029713283521350714230556878075595371568933763481553485215949426120906579076520158081147657173066921304978897895009415535885758988625910703257299228354966815633759445609635171954727248635988436757659627212025020578915566353076085383183535518184892287985014549861527631506448013028719863876162190248190611218583803610052566802781341565553089154097322332177407892218906361074467132539785073913068164260330673042810818964678481912430669476397978065356438636935274953801251195714206531875724714777732828483109764022320566654324672715268247689241090492243101635508231894164348671291459244243239053074240421714704371269469215853972069951685553946635555787943966823896704389868784729071443797450946484518057607091197148731713309682734286931988886868493679255218748555569113217499296641329188610168617558006163682254399261469985988354499532892858985258569331239554444456531870750282363999731041064143221130386807870526258704877176700238112453387367854931598808035628764568513840398682502438803883432518888523141026605822338533362388709989497821004828214822071110499222390420965097797369052725257839631992249285457307596766139855546871511519783919382885888427730803723411622776916448062843584525846918695731445120745977697087662064116851992450578103667398874259349056132395075081507901006802545994293286970833315220436059781182803378153954206193617391007798595217022278397637355458259412699887963544455183370997340974266765511167246306416964394650125335850680942444414128967901926840195553093544232114277799121999371538718019244210892236065992201242386432725277821283242194147568278211192767965790200466573166665295928099984908377138000558357841402156402328134511528154359350936515700244709913126927480065568807784166802953771106505057901167476446746400075190788793455349849176022141169567011651870355971895853101229810817909276419779934867830385798901932546572803518509712712130156677574907339512074160136558292676943845175541757444768071401175613574824066623925987820507304418338703012736896410105676845299027740614598818284027997271520568635288210790464224327049337095098882694132915597029733373746659031683090131446963631823108788462518970805451007683043031200428117735253593414673388959249687183708543784982394070089508598694412621733285776914124434661058029466963026485043902300308177650207375027285955719611095476238086993588140998647354718953284985607810886003195875402385018764796948180300092018821941816698920554066373787863552473744067328274075160321578878841986181977510964073787008897297809148904552975831890102164989652728285727696398969804824907221452323345358167705066715096640474535370391104839018348606617183134035647073445015212732087624977928849283856613786910675337521591898245243115630504978064268797664181671102890666411013803832539031186909681365648033264976721162286514414037881822313164870450016018737681263104566490601041519340622957275340519935219152089750738185093537413193050702605501450163607350840258992321031195932653354075863526108100626600479999770738258496503895622885481046580044701536640740319120313893074982655935843945974004613750946542163606183769433316178689301791875827650481044847291233859546438915369479884029379030966747793025835330740808871118523146617128368429532238216579506731709329853669660306942656132312404762120337556715561531713334707711510960605522712187695406697486667976969674207383749963693504728456403828922381508328411771493362095812221309298610100305863580565840214312375308708602647055332538996183516694635641043827763374899013723481079257265890470979464501366517898706168206629076433589688451585142952294286593627004430004988867133454795492825553916545912217725662320645970014826144764165181124955172840952660636828665673168744837975823146598070773189998068225907688498817925588326760014969768362589690262525423996355379661467977991471214485008397763338728610923750173023814577426170098703463935212004660004025412758404751387907673528176738332519969875867814704610862126674489201068249049204311356045810581699603498249043148930434631761180438720539689263486712216303178174752299611689206752278113931215673016461913365290842713240042656136276233207686060239816673288692287666797984809179378643543047958453902085481576600473722547594058000096882324308011787645013086746146357792930229064818563898420384570190510082774954252827896972073194668331426418691263830281593130172453377994977334596510729806649911027352997359031492599399317878078774714659072152702350403084575607474462126132973789242856101360693696652146215533685653714560437179421520848005561095534281992976481953604213296470680396397757658079989179618050642819083929225325198677497212531463013952467222863082521897084893612451629295946440003719365011409414370069740718431887826812781567523996404406673686827956391767711481083308863739097862001061218128793242214002968388894076298286399533136760159093652184531334613376827605436120040369254684845351045545505434303119208650826418045286544897784927492857645232412978756654036795440777688699074059747501882729649279806717727212177458164862326219503305359859868831795416039005618583471084568518521056481319059245820750419721734954421695100440203064590126283546395607816216517275665539686051995691575684656991776700458812931384704803753462527500263851424510742290132552820499462165228634735200306720728570064955898959990907107711052033220436394804314877011503998744683180675004792364853044092671117644597319720289474906521444364812826944242896266215346176147333348457111190698157560003738173863482871420072225184512840993887753146449412337082626764644395729234785424847532948599276860816831807663790738967564632433847670433541924667816466258539683030178624440974525231325986252041204699816119415381366309717564157201189680146173811880652142307258849376480511661509360310027199046726095607358246313522792585415511654420968101768041565694581683191143865405806344852337038997124023163350720090957829585481260754397103927663091323948281586989329093355250187795510844381331977315702194604531485586903876103246697613367520221964796859487113803057537343582477513620999379293524033990318511760691252827655352592113077604710135355172015245545744821265950297001727371119613868984026651448023117274643708207320621470967205531633811295325909982438530491170010968833623879636452712774942243472216490732912341213322455035842456519343765282533293556628503624561694913164130863689432605811438255876411544028777641246149957211047476250706528944647822954805169769244943677253474612761813606464884185439153349315767241797892680048165085421400817314894852734019045476173979794417987091090052305459992954707299529675404320449513408733653767148396518024829337631899740668424763137994698673922929058308418182058981944942932117795382053185885535149244478616578266135528784707542093442532329948593780377359467426810080402378519176025399853831952227814595156482269862232247193978433470107115923688894418400882503192647092556462613249195549067630871002916519146167156374858117008643637937575716208848968288008884802286078053066060372655584276511052664916021450431333927432627276710551395984579811474990296336827414309135989156016514435535862881938587557516726014672124047332695886919280324130326822425228067987731829520131545933888282544073458213432669938769392892108176678088744536596657165780778861427305881105313479114703008232896654696228614112383321855224924795805762130867667729968426113165073483756774290603672428992147188934114582729608607014143667879246018387985028310664718724115467616918526411332096202863097894889885533777099856472963106696569327366766670050388744194421895568395007472181718180663863960125944986665724754673054017067529600306269425390378473624958377329869849580130715493917679360908061947564777699969762926536703256591176313989378375556425386874641230002120186101682089918390311295477754497465492542897425118055217143805893107318306217241554477254462000233242511025424582417733653923160163369244946537158508638277730300091849420672175493040933705599453144202059468749528593532227032208545135779108271320864546838681904875799610734314930629785157040643690048270270366957671235830155194101080148296580832045057258019814187460463086687752879269481966072632596858363645456111189522115392350291577237865138696169019124558222649310366491173592362633956193889055556012467582877587832349865822920337381044020857462315441920087443779698936217697738952143170917316590871174607131917927085935904036571695277363566758670260057150838737685997722242987699469916821104854387065667716147584352508916538135604308897340779759463029263299477790692895919093177263750620024490255938515184839503141784025254949933481495290241132388564624493632565167447829730410599688438827583490873481919064673823789490446472180777743334452471421822984831723244954859140105904730994957839065806757599272452062820141060401116676757439094421594959488181877309858877884395844577818382343625643182789710491956228667936323436614208923896114542545059030684776871420436255237272777344826512656257969487472733249128724156112589031077925024122403594351229882364200831558047758798774085027652641184886023071997754468534136478136979706167742009324605352420774100608695320282873619158999539223201206965306388410716790480067436508727245728785403098668035977407546133082181298175055364194967855229099461347064837774247591924448450433827154473356077221920885779168443847881705209180900227173266043703683546897538873397015060097890174259865962802074844261454394684965937919867224286082064282383175870834255522222677370018336496553938344296331823552685238990487217191081107540123112543626292948672284598415962164665229840350739548078086988707561375811315467448524336617298669783131619662899097056401639960996489821218963968168234703260394183638104579497708277483664129924633855139922412471898992954116682869560613811013291133988288062579350860643577386635147019995279105221373292232384455167155834116229659137800678768811101987137595627444496765211675508653937694743504444232690959274579508647806625465808974346813066307196822328168613322194313151356303516354442291076508082642319124286479651739161359668295131790432506434310907325492509119347510409865563789989268840274423734310605423681706516763485345462903639984718957847488518188646699089928979932981411268808870382302009215993896230409507969828245348583440257934139240749113449225368005269955764611009725459683758857614603478523272194349186275034781645503753978401741365821509567760563981939208350556561183845560585608539255174385524545183615317314621168375157572362373794446146749403243668408672947210674153435302907806692020896567473719288565774296438197307781778934270199748714682383399537899127614749626461086914268608838033936601361445590418323712982711054961612311392903206959650605201774528693103901931463817429440767284272555775769671958629545887784580278193106912044630850140815989334723616654966804235672108523938488855028686392937341671231813866130740585923830454546534860922215087807318111469215163167591119480641599804877093113672521245281370839766841093116945661145342949710085610692123341841655214487449978594281324591113617869567530886129555251643450624013008110511196038243557323731250561126785780426203983390572494422505648439435745256394213680523843187329274465242522787907321885935747802633842852802218665045375095472583718002671788696869913419714287255186411293883105383364874856657180937699724972803458124594782555569930705751388755747752069002574120251128005028207673932279499455773316150873336908615344077189685430870556517583432238947822105004658618546670758473939379962887147676466403570737061965256995627007819728322503719967137162405195232753669863529188457270525626798013131649774320299329127362968696229224491027008521737871528662026386346070094468344592217659453177501206201399511557929395370521942516518669215284037890510497178891545822741327235394753434517591875285493032123040703204031259245727899340793808055802178570955447877105028276983142825297191518567748721092763504581919273013743925731090884700201954738140211071525177064303776713322392713482064641959265455399441051351349598813791466158984353300626099225436031174572331589857619452120193249200711483294854491085206578039070745010546771795038037758174690440612501715331374240873606789883443782330044286057085340229479809795740296709373409220007736840355422411585065991843272318038672312326825555205449621350328013208371194929093792438162786991801268073118945255218262828832397718225484753078602820831730863333046907960579525095463079445726494225236862220124674317197023848415976846975116679648073236235382167617953648731167666919991399762756682669726050262670266542047316546316894348419736225077369187176190444669094975950080085090738370942926512331327034954355556151499995329774148516081788176374622645663427701378847851033542037598571143980625257802663968203045702534612394305914263663082715938406681439154845288084500849834804600529695168419532626344499666669308377768027640657739666676948847224944482236510176640107014349464956708439986857473713640707050822052970020568751927466721487331973996692363268814801151369806644219024751948649528710434207233201737460614156839197314477223890013958423008541378999568542772434696910944898795304528662704812593103497003181681645007691809088921762225193333657918803621828612078841266773246535904468179294860664910804373550677835808570801624829975909431703133995931942161087550969510673949174075336832446743235813280210962594775043970318821174350578316864829066146496603585845796143581857163797388567422553198252622814404550105819479367723134732457631171587871489303320404965048436608254236981508665954012952388139153630722797633474574801238990934096949864289877454551516426717636137516875050025389633805283300139166744314120968213666430344119521921071258054185772114069064186758873776636543297113239397241172100123135944490034248090231017935850586066790925331359591370404823186961891020182449942980990944340584205690338513266029857444781686509068230298649317473527183113397486438315179406555173580996428738689310124207102875446158664268921715231122601750831425215028384179630368031661502225656013938566715837920023157797020602792416025035435818257889618030178874175350560757051268305727111372340732704730686382130936238369572853601943487507494917614345733003786865343791314755428272720320476638277135725418367714101729636917677727870179081940904663341299330020720613838804969918023625930997763805324392761802338959463000386767529728231673532463925460285230304774301353398181537787498640276094146790152352295225059035016430745970178669109904446069634242273385618514715287123280520584687105943804754200971302386621157673644066987758354030616928078292200769495668505038866665833063502229981529331540048738163506451544842915504925820020790606371565091107790316741009390708727069063975633112370646951586419056549198397110513919224710466560866623897511882397701168357921354612466335911735509735090001766671535242787568203803337094166874789020252020724797517877304373708246910660949095508295051807317405560093128791556999240649952176490910359213419864409426534600402436328520625210919895971051865724746829401306868136904615810241109770414590941110382210072574316276339934387412532424995304540420356532292735963168737751225504834216632183333302470290777033385607107843379337652296616668493414628607112081452542924303278872304798340819059910859549373970597510289752151010417301489184265212469897118500753826637668689702212502736351306636093644423403985935654452764085826982218037163446632590554088842557066700461308924581018587519403687072171458035735801428751777376843054766215052944244582270693844042859842076594541223945403880424233010438109834724579445535967756834264015421379348746379891767212082341454691692266672545776017942571608541354511261749350594685605476362294131502759895990504391210582274348026082733051751476029155717470877050388223987517622706733385764348966152163189573009895233201163217350282011675112992737507132672600528763018802097593464127721596729173496648623783161743366980412066471921449822689405493086112185651202214435515678909257268236483808871017528106679553254884243127728810234091044848774392529953912135816142909802557239434396675595607589940491573368538139284858211946167908746187894689179887280731683516333785190542334451882486692673615340242088139088880103348404616886368935966227882776852613383636674230894986308464339308877717943234634062981180337689975136466953274467639570917457372131628961244768227467343732398045454368422480176381635674613926174996588933019262731381374875075613789070160168193983818330625196895174512899419075270467273296922932859539983630559882646400153933610465182438484186443405069902426701810791810710960424584037613787688558165691360652846441772988060777310300879405157503361138122226024878270571113554610841551811336586676658453317032854686727197072722721512796379122858837762099273481349706739464689272412818831345652040579231648856921601372089286137344734261010599031007253669699352373591511183497475947986992044399875200664267240086216381525173290079243596699897449972330306325523200621569513093162154272965225306174472216300713055286375740202118447202490793718409438547400666447167758213792188559355340315717552437166669349792122924803211287154739788346523437440365409573453498614140781530222451080209260797421145924628411597404801686206328673759023810979383816835185464897258765026986697188929539883250816579776968824666117925246964917379382044674602755597927503172446662627060137534783921907658843075867278204946327740904438780338929799626419756296229561048938988136979551184804160139761783669887086149964277283413837863204895735280504551300701439002376903230872933048163366649558593965282736769410997058947435305220753812238132508757192623512018274633332270710935185959995845472895235633366384870479013707388029471390982538692077122048025144847543044502821848337528788547988636200140600506023755373337618140744115724624453810396986893287243814245420961393206651878756398922424981311659942975913509199253404848272755417768147522141169740623068064815801071049570326674549773879114813568116753881652635053436493469320656900414621285026989453702564576592576415449955504252007682922854026848488210377580626582720516047750990829836137472670204571852187043308286265912046217736380482442852577642054299202632950750434156385987652921435376018450230642040794171388837872022396887617400376668406261006457259026057822812919416931779055220984343916652229118083916709321902062313046185854983593234980198452095335317580601112905622829227558268159829285358469746538311963071198316576301521169133372001377912949589179223013472252252474737569005748566660612577060216887685116581783798520598593167733874547792477079273448152805899525943969139169976384145762901869867879410517571877599726717281698225262735511286575672169878091982131877028960748492077215573714856473085464978627833283339638323780405766977338336032681005415142700125320714673243910480347294535439208277122178872605329346365187581019764191889154129495667957474045110497734749432485068289479667499265592732587647430420157268111929784607289179559402210270464050249761493464871145104996276145535526677882791426497765424823352873168257059633328073488959918929954523439540454653743018649131143766883383394456075325963974101756615084294158896038159395828324118105699718759059681617599133779938977242744170720043406633383772812299957175538312786307300228098834895616828089316956835455513245774837331239722755670662826804525070651903452159876876338686885475102438567938092676086399923917581608203572582862548502622494992361948519743610092139739789674416245930533740114797514856434543738324130683791703593945891188993426363653757546604330410084962526525196932540533719796944323993412428336237436852418610128260657606557193316659207641321286174781968097166996813899163934189181148814118446746841222395362957018235611317653727433989007051234795491382221181362337647695155565318663940923070195838208691488259549710400535774444629871599916186200915664033540807493307886388602543478579903117550950989471214623298329263333592359199458878713506786976763866248435783786506793822768909180063816965673718823699186869390684337408094523667471516981505619582226178999132086389010035731708222839363434208582992323404675682322404769821855602408349659722394563816552058902794462762516745704464559711180678426463982630843957046921697667016702154183971452406811107896096443107014422961833829049315813802387922774960244186641553828192168102915651312908042993996961924320997196274196076627169103012718723018335844347807435855233753103452443345328611211377247900922304411415064137035443429279382898864827557577428952983749464453496569789074236504193084525724284297530869540392109528290871989678199418058807231512888004778933700441079967103609490931630729705965145169129651304127623358031791814309956652276178726497036722962914361705062818940331242468610554544773401473875159987157322631038911572957627921802877325801775905244349064787241801383760029919417390113980816341796209870765437132596912266366819433062249331609518862839569941229859218595655571529455050563175272221478186463340892204573100129730427109883540301185694303464005133961901505216457755073484840990656425414075845184774764573073462623817514389525046172629822236171685496059621107592832696334433352658563335448791113890559586704738751870464856913471014475543088185070399722977037613592323594568204223435199349796512579015471795672906023995990667179428465502281067574328514646520060475078751259209518563602691851047691713759950489325634254273670888387456323258549285430632191632611011667293200580600450414392918970241068245027949592441096611998531987545382206575184977180217505057851727344984553653063163827026207567187946305496508595495690976433984216460687875458648443294247344295822813127923852511803344112558923101259625041690012222239918088657998055866897319420811638052985684874058668524379731089218467880376651882951397350767276429488229733370563597201800263993988617418991347215147156379715826391667980527240846465180774500344833151730168954545333587249748669553355757223884163187005591384585478685147436640799472585873372305405929567251148775151803392261897406532871655923304897886988322467386622591477279331402158021414842124339114724504739145853443562140626776227100159799475388540116443270869919148296322226946061039565133946553104432247760253821420693675261905205860291835830485985893823094138334062593833789262786918277086291275622346181770347989975853473365759794952445983093734520793941849015629460639020511096293137625556488117000672901052133294361963435575652058748654621970227702578002349047679610215436130422203418293026255514625945072745617567138254609264107691164173316969260563847407037988758702504320932490608971753242644808514178539931502671018847600581446936270180387801840889122494424338526884149157121462272128614089217983294558890413485297021309093035068273460257778597324985448428012606945791273107225884034941767099098900603428871708472266382600706597578135815921434557589462166281280525670573447667419408751048623058849215337593730018313144919620214750676751363278989314726211480962586037633948944155141744709673478972781774342431462646859382658707177283581968192269762111286338001225437441537853980022376344937299500379852472333341376426488248696174050409887441662010386087088088312377633538941183717115649480598411133812876087638075038570051581429567542342748648906687970292389416672185937468541571521878848625163332816222248946965189781144713933879479733385791786279798813572796361571877901823404250821515443804241786299249286006155270485997587604447230667690819672470230803243559326729408631834636555045954374126872975418147626373698037209894289604333711920907649573270449301297552663255591806050581149941615081396749207672807317456919402520932320549221763070181259324214779344251544414606080308818244513746625604745959468180266492183771909675611544577516783941259815706809327189321212915312715282022303391823475806108181527458158892499031022571076986970127404900256839581003827176030383005101589683252385744237509013911122859975826193948986082161267827077803165487121361163865379074699106388243578499993725798094492177759868388171827487475128657914981562144641316822378973957798994424877115631392183036125122864292879217343154603283082873453376536935381273548282778944953216045851723572868436122776083483624277882200134491597351553180083325493175659020071979430112131118492333278202654978682429274484336641817897812249547245247755222325104027862792404459043636953779716310899131880947330879069564994843185782811641939624807699868196594025848417994555481052696390629261943825422058471013164736706604061386360246350196460634970638789100238068283689301201956892488501040347915801993586958345751295204201582228827205474576973546886994434419847194272229364837336593917028949995737506420277304224775648213167488881913580598811189069298277777248237917937619470902078275303270570520985083499959589483285018758581502087218129971874226208795889244467567768743945407944678892262569824618983258709647053901777502233094158583513031210152715670577529453759078653057364656616027427898866141632659935592793628054621339639663329919068656217679737076798489863919651497989304836809348435288021489920338904832397804299385444470630963090491672742158685601501411377593302871827123901747428815698573184126603733885043836393650481565961712491916871028552623724234744222268748988830741217650544648466792714520712187389504084629697754907799659133275434181740049704939585189189401977456229074913105488223812375249042785857656355010648631225546788727906719452177692368682929226995242454952291402881592801969170499466275104291275558947304132411651537022618818472936726021184904201904349221391678754955686104274744030459149464546801808030465086694821330807051921509316600633675044161381097440753692119500573442768488318639453562911453134642528565188395482622302334638710097513934593578693622251608195052297810151308073203766652512000879531369874397901767562917401748369456838652088591220856332741274705011696248475373372231496748965637823660510203944765410301647095332267984986802789880386455993054896677736556886137089584643256665030210747952344853771765938770498457091773347516501675590013537751976806180571006569612400084901009385805005483001833311060060185682704123487963089707314490447939733846236615092180730549664127940464702688341757329705615035421509711297787661137628526345891112430002913667436382394280007474095780374296995349909702063567883938867843335136547261190154557442521035559120105343760865755516615891221034362476163452284914792782626638469818753013238468438384819898225912943196540130309103584956556886042339929376419727753778129757657675110422067469250826111631348342175239471485083689488569079813732858770354384154566806582243641642314639385420361939222129549008319033886704663690954916398029276092923773318171162645862228801632493622594596845813160900455752491644127351538119202881811051778783407040092717305000915331566982178326362307410274780898351826896342116943531182366857113501820728813552528398665812848871771633908035872326008868597228422581112521579584861191961634143487966215279633842959819315830407846930437187705989598100502068069666658005893371308384066896578841358638906377088671403403997388516927969025585844724887452416246492782534577943365986524544875153599725586890231449061046875055284371553897135988791528292582825505012083541912058788051039549620243587741828480904283401262331791354882425078607550986826602215569053861672173970701655295182618514978515599168741348077180353964769625312637913393144669155177524287939837658399680490633068017685465283369081194178464934362438299981794204165122515528164866227896924131696728317577190659810661492018909481496676619350246347947132565714683609979836687716711764576836384667932050760456842301364560746771128229145441045783622954841900571646033836528495436266439731311215799090048187373551462724000204052837674805504601750526223833912292220527820882647617843334128246709043428155579919993678705924244653984141524833718503098236504570395187183254750588914692197278774749347613743147633407443272367235788968307218717815606999236699260788023472658258411185853678549463470408953792007740616324528585483201242779620657125574061900154056866635935511519148590738541833673894368777121357668035639555495431967764326184478545833654859196447510808586824170244253525220358497647116816247683995362447679390822342829295308130090668938063527442000436388338706984902171244588396787081954595670313905019613330242474286754556888359798902576989200658943420023727586725880321169262517014493146866468054900078963222703177330610131301718702986494993025917739114785704970870509280094084409830141715941816148995972755100488996236124218466792174040255793575784183041185480982985139821869828564766442902848099029282992258624298968520525986440523172278660819169427743747057577188076108017817014441292347268127616906137534615630459476495976584858244035879967837330863809224677316488866013758223011266771435881826932205286283660068466041760866981208538896644842363412783043001976643857472405558678541424452666355647823381474880200547119074009693407662372319650071368801988685663224818335461753942781052863404548768415014817786112200499020447459155240083854697238438652684623605016503474589585642048707673810334499842139162725509200816642831846010534702581829800534209024749851188175006267088441237952319504206142072959178012044110821004313932331605012266160473672097305575393597839593139121770916625314872780374320003229728835012845263204644752645824967695383409333179681196657791727882996539103498180139437841955822971311482652363760633982860634296239827977649644668696862983726701746087796573339753781387663204462773759151161180280667485217525692485860371871107722523257364951015722124706100184126112614311302037150876491546256095025574478872730024180769577589430109761958853924107139505110867182688592179914634703618596574141697516034705023840001320349720169075014345448184078500195961655555202175037661420835360030855422651628313900089755352930457979279905154554170558682045113563714670441194276182298373079142861429586476793482903239572243778183137838309097452446328489103257868545584036460350538443973535653910342466890176928081275424571264790379404822241697282705462998916665701399697823250809893061930530487484650571439455152213092305026148007997880337724980552595740172644905129511889177854575105280926821344697207123554057885078956871909378185335500775104306588827467960784993189447439503999944081834580150483034503996715532713775871463877807208162494150010306512748338364783456878423691030433017556587223077119420762504410852438717768733689315484896060498166762669032375549662427531934881748140783245731607955287267683712611808158462394204454298053349773691519546905049816894879293963996875232490806551634521696254213203764991733072416158204317240977978027013008700414187607918402849014599117714266520928545357063624316076505884737698598710787171579433813070758043271729692701998681658891807039100027760308435815180459133501565881195942443071875079012697652941723436324041680733604172510588053985716706038297960603311853582024724476371005183240630844923767445628716749667649060564512499185526727256493577914993601721335789192835414619678868947549794111832038604193488760428799842688266413662338773747948405362154498989373809394467295553208596428823956093192673324151264038942675672901213578152105635650245063480866720033153215099218665026455146552057914043433141893174414583842003472011452762747556638646363719915489155616413632048725570985379645313317805499465738441741349915423068995995301223415667016055178806045488309658980351776258904081730335473495796571980443157680412935610230230938086989458644948455299845054860812008771972016498213738316593486175047489426498468749248301555755608882338246863182293848982695874312899927345595579102777782399973947407907170624011469614272246039405224467274380090478806800920425738145681544613860853989358022908414498960415417980131060176604978345364153163319722449682533680741671539899744948053792478947672584732398720794841507697512957791894624982289414433547663185349999358667358165475879193343990553746840304213416776737191387877631991967322964962497954649656836376255520148221035567649815803685686852803543993320673339404264665158456995388191279658570131516372303597151509232909927211288833907390063026858674303638166475013427903242469273442402848887999790040065537984933770874659301050807104894142303686390304682685016368810018357893379932967769777151624443283150534256716790883599241420750446633932622724767042035978433281557826765102624323918843377919349488592447301341052250751798403877907781279177131601737848516493151637103857254177169456553167793327615495664365756853322526102325751713091922291203786821107010681568934982199935188605147278972330895615275525911284752924852545046221544421865740375113259110093833867283406940029922498926382109193711948661817151276081651765577672726141860219883492213122775903239749939624456478058662077444393511016965388184145302365555915108637483250392650014551559165060784333385319281735958155845836621450195370170882548977503471954686872908041778162162025616293099836328403840194538186821566342410142793499054862663594499440250945200918302552039721408474069179659568130165902173259020956745960371894007365334945018308261531846736419803763932533028627104582160605086160587170234204354930540565113644109298028876014831106800448603708914426905040297834084766918108525421711562551888943475699838437276944994142970851955902636559238592803026231026908497591971640232884773138390435597953030195584721843237552582062741661982898438302106297178291592156984331611105301885841177998750749021455972597144709022562556020501578383614558817837926845383534671073453061139240582045115672720961373911910694558510871201442348874368457225909303888082822103383198816449037644062565076012454809987509782984409846381031041182772268157213673247695694659041206448208233744695599416281098621135087157356347440022880796026607745733364015250933691969813046383508737604184364815320377505373065431584442857743297221558308881655732520914477138534167181344389998972779349596084550869695324321313437808885995142668040741651059307965325237184645999929929423983223719753679983255286185235732648787100932679579241499649518068785257918231476187239306295215986869373782372909214197680302484233793124921209129417138921014678439723687393070816601391528651495786619299291644391189032116261148090896600268533039458562508731533598502630748483469061054470142490230548292996618508942890152594788133844602600280096172899257149747770758949175672899211491082699741177748502284585948096090462494598391577780811707180034713029063011620283082051403848641415696284953687912357450537939508278881890728625449074662217077838051200188095393863525102349089147627181337232252591066053764211405235319261342014063506063001874328451459347305534597042199475469757019291305413408933688594248300274806270466404435751611674152764951552370221448769886268465958052666600888464554968180110710099093642488899669820097575834605738537880344700342040896040994792457431669381815386960626371550378628450570541884509646963289620570562923488262513379254510364448530808725387309440073503479817064606523475037898241104659747174811552398903123634887457263482462747609575174381985281929198908897432926564075943331658628412467240102356556904811175697537370861624358396787518770098478405836919765030509297091541818240640113129001042793205439044117392455561736219251208309984566416248057647073860599542052576977410473301954148336153342400734815088628925793641504234022534084937044341646620570261358854133126167121573510199872242426927837992371635390750497743268548743382489302620672736336077937760753677004629273825593100660250420690253583319726147286317422065384724655206306180721512592821547592578288547068000822111901531208659512256514708302495380106527480028662871274622139964583245771310120782275987635208222893826902883194940777725430201901491640101987829139901632479071918024364346251770106961535221202887895463377520022327883156796711899385329335365939499035229382962603790877179069499061191254223326810405497972485259594910952562301478348982010450719567351161375256425035622931644625499404995337639356069570008189976156611046399969685041592538571348259881368953941339830512484272983332565800010305131535096807909965257378254767089651119393642878968372757768459350781234177462923670461593170399028858133789875454606434065938818639866522785672418543063041620972946869200396101541955080359837743558887369413668972574680947244176018969628157069142309591576700975947655849866705289246422088897800000515438957533633277777800486387310585423960835484669802524135641833412902139426640704481142138380958096216775994569104059086698128651874865042633805387682156032183373074044304863580241699451345482451772386520323193520036622910157380607445450250729114170451650820530025283507603056718021767356102892358997584486687160215437757965142900991514416585355529325838163828636576008983843747679728040927525008220224969076119550173325626732843837388582466403981559435212811689059981470880794441918307765855918040849431314255708928852924909873543153607370394835621928552833790089279654466391121936556964716327508125963698296754568510248628403087433553979662482190417420252735442842317727648737078163283691635010826642020797285334087348922670831425854991411016684031927928614044544286348225822450943658047772226594992376532915153847495542043673633157627057356787255414548310755387716849114343112725020042947469020487585705966878933973078736671140829135802846270179524559066191705586473217039414616553441480261619835022483642479341471725304128915340450647441656508272533123251075936882561970515985622062709402387927369327353084147493633864650281827648737003585613552359309132213431658124140439803085958005352469670782652155537070220129269272724374902535432378861941961654952048720623132701425812989492654717096145570282995582988674195717367410576109220225539778055977344276868478390696474108720282775299287642157382895212948004361505855330961164959061936820264071719608606746205566932987716985230206183359294197028051458131462153493650315614721018450062637946060023991218490824974175550687742707578042958080709439004072873247447515981880233729412223314846503586151215222081789113078995687744410716633658650244860839038101329892707447922949022804896835400545409117038585735284266846069988887410323120470146169157773759423794158816811243910957287967991940312648498298621675242513908301326400764597102166836173629697239101616011993549774955786979240529672903393154239168414150116080672668780092667680521428370669349372843757923625675110433046982487058265337643185443585915765275471430885790231600785980295023061970903310702492410891332465164599455770892132573099842010503730153875146113601100919627646033749613794469221868078550089481127245633989781747635991117514790536426045258665345223598130879957458592449201320412503962456328987807381373006713333001575578608583577808560828618974689670844324065451325300384470838145432635280927425384738654675577687709219194437855396256790131588858541976078489997089903635205037898910860363699559019233763540466723841462175646650209736684633523923467919416266724079836897931227572294993362891563769977886501864020269609570514729931996336825911512663644704460066621266305128987845373204969951514137672797524345640551113604444560570801439118570470555173808286584473634414126986887495832347953060300803259386069461851920010642919365821845441545693668105632048357157376463453903642629326676175338725252390385646775180513862261917732472624043064597760349870600235829923085577051090093741765743472349250339407697219390863942963538879538900774892383687166075437942468997550504370854674817201596480839520436756430205010743705568313239042598912998499919478248819044196748394135712423378396109985354320902147779494075715972965297639431720143946651512692491710717132695262522959121885714101246179801201017003373026585433266262069180942674427651087418440010920608772729378921476193903503651300442475701210776153245753375379326746606373378090506954064179821664751305114044041172224497467581365660502052712808542381560016090080839784267111331985664774649442028698344341341202055403021670207067899056043814705270896848325288420368572909925823491314666403874837515280900031527378130409655876389125304804143943222070140948207628149048926959387586915534071928747099344255710900740763511846545224504419515115987476939659188800110992980154450704171029946522238724305568351350118497780757047484898703568568719498204005221747233494739934977274698241093415185952674711043141809613158168468104147309290638846502758460988106933586692975700522370613817415601341290295934950096889523887219013839325069729419996602869246226293184205114176941822066254296752590946298998783328980449830065822133537927140637936417131303866948231125401181363568591446728257555800452577064048842595786077781317362719134299013000540173446174721514924558081774834226191539718163371865379335446215316379703670602825672566270135330091550635944777201147921670668179917901704773436473703372753207006970120527923630896592770542838523910665136892938992657670839425490735833560273362103188573228572464433003432692611111099395287141342431891411383083921183103705468918442084574617775072589786028922935749517367116130844543570385729566186163808068306229746817171870218007459461772952698476329463443203929731670446453701838832764321888947405613608522012704284408373846889485419759821540930577915433538981087706101070856010228667643576010007267497000733971131265592126331425883783537770207649888609646461457039869295589796195725997055607876328685383435560922911097511115438400599847577351548072539019060674930159193207469321205147819057758508108714237975158845356088594733473011309162280042796635906170090700849507770734797861569646515817373420029841968492671389789155515198459536699148868956759808185163503421147220840030120619969600627584795184169940211280042278935681020933230531599631285929389855871216914299873564201472615764424918340120383715799919951185789412699475198323778010542460576485099075679624112638580133619001723654305602005628472010230925669356755876814529218598230336899995283290725978652460714532617775223362345964447614992816466297822747942313718750383874207400710071566893879982147443027808430801051940177922767666532690658257845017769364656309597810007579828567139952189006369077607716258059428370526276431012616584811391213668049991415537488565844096160476380582393897504532808438157471911986881721396125877507498183244718452673889354651623891401260207035648239586012903229860382457746906264601132615902587229120684243235099273918484604114973957129641100784126999109832985531406805134537216614725758181052295588093097586040447064074615528850976863477520377836512769761079897393283159385895071143078093806554564587709547004039301354687037808038632123408568208725819798522883391080822493899839396509221619260333025557350805606272878278804891067395376110309521183799496437827568688758333370714672286159960591050358021863591887284389548617814613077118091081249084996316227883284657559425305204641213968922608837432927354103717526182802910153261789496024810003701934187080228682050970900794298847144241821877737688618430998109515906471628276397108557392323662995433695179566722216177761459012202050210356475234476540919139081695415152484224859926658640251022074278960732108757635935022559367639601462219724294496858756807150704955915121630606271121121474890879797626228457599656719275413217650272432829868736231757119993879273229861257005983287331569789716627059093197324387946579854177505339460947219987317800767160082063278469559524109602488632708075268347230454887950672558611370148415428633324212744396857553501509154711350774234762117810732216841649227826592009406175892590552380515849054180355654574662642278329698663486608567173051311015790370037046091870528178445535709484318481800005882036874603118409482456314576309759805221400788220875037596529461108170447698714671287804652855008021050463568163507796132415772742876793255463546043648321853026749379901467036313908901189507467572100149714305981219935126731873152366245965629107979704148067442104901017888878872612706176784357454212336452983174102549968446738297700841886876310478783031809321080861829983972848900657770657516539515374115679042860978406457578746596468108242047777411426808583771618805574935173578545565300467222455036947511489405716004443530238135727006618884255613302750225910751859456930094234188198449491835553225249546097760260578498394487136912875784869833936983941780167078919592473351272807545941150949871141814266398277888368296945752211685758159120989222701121833525651729363676210519321450049481404459126153274594510066979530314227085468873918458177072900903781926979662477065859081649167080462125138887000629313458708028807789246347285109710408692370614580031595909355415672733264713357019730509936818633030734169194777440454092484120757694585406889720342421806562731788971017823300228813830303533471521057057683458094619335411776499981781716465521277701771167499360636004246291955187655708886260555654593335782253360078924789365202067938180839663741499429001864492470534608937926491058890621746475688524776102391306309943092314886053913890498269548377161375438621937940396092771916375592006127704379525351834393427007260373761833835685386426461260056116988589343600405888727614781621111073896619885226240113378942762194491244505209155652170321196049065436739204133751950700262658215565145818691069250113324987671625338063630364596109570913113982597709903807732984151265340600161521348482878925262894353535905349382112462820633273788703948663222650179313647836514900676511212143205862919542201456435543004070454743458701232342238147737763608785490991191483573977231031122816902773863163487355163992921765935751160185572166381407801309626138805039044226555222764159684839952984200186652282630605759462327346838443434029627366717894924332164393177252877734150813383858531821858172567451062298512563584343721253806708467146516923679657904030365222088007385996814387236038544705270787049646603576332785913736826300159111381786924358242281014943879370818127281996151195631074202257342893681820303272209683643809178608697093644748663018509007407880834475644120341077866717072997183604644806938520928383721966257988225057764177607787838037498340162086002608907157506890803152452087806211868884034130230037309622137332072992886670166144057563591092887630626356693503619030089756566568488601972391422644809847042306311219158381386506167962968682277125624272853068494099464599540494931674087697108905941249166169086866280269829322611604404781493708304548859035308754535388806044908608837936608389110411766826467112278871374837592456321576918800710252741687551648051107978822651569464833468988747470710770676818125461507250535869298244421286830244290843539589170280942877581701781301182550001875809858915117128118036813335109369446730920775909861543820011627927514995462410270368305114708583336980936376492775605234722767093184772475302533764601628129929389005505239025262648002549845462701216263535295756432152022227782428724611882694365894558126955554007475408557341271258584024335345162172890099843311944098398820827114371444392097597978597876768689408332594170973393357479641943792996381599981635733028050241858626525080038676301150277909405787641504804212553869378721062264185877718214554784132685365168296480661424520060839841773069977823507866851728314251119243220453523056803608146465365313615396756296747599663536985788808062229703657692763415336368935688721943701037739529709643628173779655837103996958639230494087959183695553396590794225280312613041799856840538334040886383041762040846489576085255240579473386516330065828755074283395374032788243680354207072776508999273716510200236326681559148973456912213316971020408503385796000249098954383640877597805764221990878589996537940899505559554373442800092611030700668469262964626098633744209054437185295882018472671751252486387677074501710517923808460700134247666472392199755384519810163970514854196758828562934415814762876270100853776049973295392791105394863439859458130476218345050534164662582448747521560475388358234291248923084807666517966930164201046775515103510641070429080419186072091597683653798101856792503725086581149495394663355983258555156870665244633834366821902191653306738240206305129907466547964887312201301368176402903345438667850970070023693677910255151424816884187051472785705874248771223866147742417748072066823728471241276480063189185021121600067970430116228312016952792268132600686572879316121929481923243256154939447840948939393855274938439427261315171191994437010761805658945820837121663763641483699881797423021559623922381318256700651122322603905560375046359735359134283681954429375633183373711305564647194673726848912753432431572373603894215884795697012904087670191871103509469878457630851248794486886951061774155563601596910932855286742201234191643547647826530349955630233164827340736500818276015070516836613916782623738339378331297223424912733561932663567801502594340355905040177284058201836929645898431465835637617036956444187599248210839333503645041618033408495830108695612022332724439172017098395133422560171931033987918713103893293114034231659858347344531210929568858781616785605636669396046432717989154514201199273151281276268040905767548878988341224056982962123965159371858201072100444256877705409572501672221877741992396997424245480525080070036517722949864990154458276278422054542366812569090009309229046841046284000550853678208394124380547498312355665031639726672921036720219357944558043767020098277902019050356773444030770452822878794269023208724630840295660088310246289765092662161316968866807014513692444540727533260020886660255775237135401582109044709560721177606772157225173869955264482816539249629179332646245455693070175210578688311886397615437591818434901607501555181942912149393146509343695900454341182159370358167489321842092355357961641709707102665774591634743503059385212917579519094878968893656996463662611555142217647011760914276362354135601444698730871088525594015577029333071680650717682658906151539022805016871947060298999669428913965161700482085809867024191633487464851563666056018805052740509377109956397308304678283629751882168866267755773510549400088528272652464215866000574077228406656948258133557256097436925911905834102329521757872798072992389617682739804895490605885285961269094989426035303029265815807888121038269583303274746054717480532863102641497309598243991315793690731144514725123342494673381447896660698447961057537590843105532039305772920201896065242708565907002267440221022984155633651466736922136316199552731847951797439302729175369760225975232298966797199203825416331154972318813239094868247219390390732792320892206490210920861062153215296442758559562706800314745361945306466733761851668843514005457959551639036090831853402417246026478278551065350467218156869450208590013632039455421048897701690322175525352720343901202540589537325980546823519072246791202554826500016894987360485272097596705094293929943826754987904419220204281841965449812941722201241640840710811408023920273871027765453441589620405094529810390631434714839429899309256699445158088376447027724970428153754140373384087623356003172179873566588120067702480052434258410057272781678991872901105783489516327745434562460817351213504544755917723225116641787039492100422570742847923196334552285807444447587228360785052713784130014229403658784361131481168076110515010236776580564576282700178706487222631314059723152851094267304878461845723065193045179355391779369735962343387092544900896164284214914625537603288494872494376981653046935946608327492504212710918860839980171515474840322707275011591253097613989554669639016636355516053736297029981534819261284222661018277468386135799067790885005901935885546844866250036600464027855391294905636618374094850956909314936610981518165318674515987634936111990877525309338270899144357316140220303394259561654471714332345723986540596662881959572069120449191663403069810698937770004396532748862042055784355061879537025387709825565477570094495764051030795279155716393149339992680220881354902511076977739926440581802714584578396166160333712849528647255912131316557185647376301074673879556040089237947464711276090469647073902877006324913881751873941690342538338203421367421769121390430477675562488666006010297662031967039705230502198782473405752782275745393253106459987729485872533921090192566064143294293544495521264347019539436387073301403250253039727747254649946141998082398625459594752858217905885983671587905633080732849912574518782316712483935076284038264327094143767793136173600145071936802629465297139400546310134648014991152646965212275422893544305027690258576645785264234741468245755899737487004378064127073136114814795043676961184840791842653102893076585739516506972046174435048381225891640983303268905726656556349284862245569640497882318102127286851589752111420088100821937046252730416347465516080241824099200592878222444964631842035349465211538933872665670779649019743990334004716254142898470032128053011201343400363273192662717166052942430738347594572760778909479711018935570975653987826926666343769638676177677942714344350953625264104094485738784292556594276332767419189054337255349114265978451083855428587462536427528813820498550907779135925676189590580754962751343872830632889427594437785501897001342370369901091765501706882081042243343335185637859512921847044248779017294687781338858476585341849456423084397523225458454187058505940923415499232605082389234879151828313437540590350354503797624681709256571723280771799886210977954953013288193725232292716959901861853759060850783049897918282128964177582833430173174418775136699792133725228430924201156275955276291856353826804573617148980502067270974018912654148275607504598910306162202001235157727435564224043024840199861145306386948857967197335018755083668499751423574254086609825384955990185462207574933520323817048262670340380467067137462139170832671261276751556242297562318947841478944679267545970980880872996835621910300339823743984551470858634862537958293314287548036392953339141492590741065408948518850674417072559827066722122697482852073068381726696865881700856756475813391689540857446136834412738400727020590733569241515514554071203848490388030363549776817471850354560854131973192078323525864648384131870258857126907097828571293500807041740818094157949525550883384543463899204073853873485889110502488280081694145138328652258382922313147585385839327958225680041996956208418691229111425031177195566784693411590109507864179929257235109151811555983605338877700903131327190959913723647158175803572055522871156109415856387806326532060588838719982625791732222366289517102403710177287568692753471734283089162113604326102520914881178287036014531190746094338076684979712402374718363711681940795842222462808333798202640954897411392157273817167413697958479203768932307013352464746571319530386318245630291018087399956749620090949318636916202701695373966243657153663039440190242360129498179008973238246767391812102888094149804923315680285921418687836002352705242911224862963444262945521602729740722147448764558710648809422462101130141119032519539606049826134837638523408621907509148001523199497085315169472703869850192862752202979144443562449087994519224357820387517206218775443811741287385128671899199262865905912462751982438042428995702324248681133170118618872077691619621955159427188766855668834815143979606010888198382235698041695263992520758168244737524404581153347600768030802756133218442017201593380104645744953907886461189995505920864466731253821146343905461976157645955876605476075035859650740021487748153384286783689462299232225931122398726307288844829566666076138326344146372878608924485456720630222764521374180704582884128686740987412656168592431619957260234757927504580614421906076075432555619958140601362375186441411432228104033853156827729429987103786948430800076863102995210654050329526531249095128391609949620086374968958172398109010486577612168318169688215192323831411113616924777605389887348342624357659120451952572191120625921159285752135207319165910588588778702258766382750185300831559188703736232814952102809198522849566134192328594941977006055399922156849688381673918127529893848899590344000008815162857255646732619474733502742867538177665984625777156123900448817758279981854012162122484999916269958322214446854406421346391214867703640451649023203005145326116612507816439502978666059266052623743169787600120621748878942640035583752061776892361101976884991842977113026763879417915393877707011653330017582409766589736754912959819370122901042744270534124569793251887736997100956514778092655285610067861430789208414511061055741148860860467348408642148626858296745879682216283022254844375019135279502020261014414935961237566737063706982604783117296402841450063360570071650110386848748731991367420036877045933085019226743951273560371956715199122457669582489070866860562270782674074825432888399094576314501006375377910659835764066356750801818613964067576512360340364887830171135550840345512896070115208641249830365106888607273309314428935849103050248768455400100858347393825341292601297483318994112765753115594516402767257864318824060186085621454609607750835558793385373725709505863329412866233224014564909908193406736699790803078019901554506698722911843213763463350662317122028532468447387036641182788893620034865857539034034318286339498584207828880406492142767761533089543301658849472868705073247204755506295448837148493525943810678778862522703294352536041998447670836964473717290972863047959279367748686897569484145725448904887019366897119110625851748732955779322552303000567396001207323549092529778603729422361656643825002558999588527711818037267240583578763306988258198193542826104660284544687360064024423503383443108352236490262446208751349033214233945122655633495910121993112625203650480534448161324410555575265479174631045505592850525078749598711237144523623799758290083744521066845568647868478501794997697476475085504434595812295163238496750613431510240521860513365316185075425859593391280496341675571321274662669468809564172847753813694919013757585127725444041563007405021502831143062500713902012989603126983713469888115458706850156424584024358765687772102722396712380880488209901423301719933662564447960085552953293171982366631338120488505266897858706184546369028737309100429060105743398314982578007461668980547094218479023026091664154018233863271834034215004211749885295358058422956822603065122167406226434809473954741142072183183117344784576644803123201649256171409003376264770864289923565225888376322210037855011261601663493276556311190021072112360953566554706824165903067565483400628842529499830587818759353765483132439588852272762507493540223541233897577888328424440529893275222419986542344003026688327815567564813562637454153404115647424600517094292182227314413814963940411766575773772501087862077488429685849560634587280628743178849799338561731442579560062543825159855145302293516417606069948593526370812878692904627854591930618108539359102132801009165110391121081280015731960882484436566551964852276007302238865063748282430753837508773849692652776339842116455830777453139634238130533319819295828914733866126953944973167256672415346034609997084841062683937359821253088955218035486423119949691728971519292897944446702380071649348131244245998790339372313473245866872106965580584799328043329263060399366555564003745294944212304480955733228854582799410762046111991522428284550034571045453931310176822527487410527927168133974295011666181276630010298885632842404656580854318190501549855353515157053148208055662124328533575276912912496633296584966909227251968600027519778958218873620235515840311938888264558565234702845266775562366377509544799067819200114938593491701595226812334490388875282367042966308358676867850001321495735951364693653675551140359904077728619131249362227256043145277216799191588727613125964259604970092904653551901439751556775513156162083507202678397285454636925456324159028587258727157185108799918120766656353834737415977071486367760299227295940472925755456798354969069361428410576498203733864445252439173943101244911281798130529262172682309706096460169286944534310048933286741677290868306791974454154361472947962021406551823243126264115376487807706005745274332070965265362302611964182726513757927249956136741287911823217851746234065555809568414412227712227155735807337128502855564589136234539402255292600734625099148538806587490158647439287910124338932737125251184270263733219103583072318614993226488576052682565814187138456285280221886200769626764789253070837936075853340522110929783783966062929311920461398106476649556481660535526871335168269874664895987389147900643462892218268088316260738842919518624990522986539880212839000701108825560207717059218479559824612866290434493035383474687965344622268055296166135641699715173959469749738694722236081154796197068040901285779447159038394822530946728227324277490622792811928606189262846314029923565799638248330355654429978958652099047865149568614668140471450073359480313136584854956563063808651779395132013582517227957718932413036244620958516427884199516809200103063263692994942224538648653987276912370130529956305805394468052469550989121432431981848628283404281028671336060748023068098037415249015439200009307070368967567552385929381979134834943749562163623326488004190378369059154718874058773395355242112033329046255380356562432856345370632043049293239666377557197329728393326558576649374259236547560798919769822542716990618305306512343716059145131168075716355503575277115291607849237623322369228637862133776070837467401105125233806099509242311664591996575823491334114734544855558399166709882095454361082632427980435550684461934123878007522870321011641150185762333021474005731592540291076019158326550551904749189970468212381765559501668891230302750078805650758004903134684217590960644322490383685128750709068052632894537827470913610381373067170407752632316936029174827072288264777251595699918571025915690421736364605203176844557428401269329427438514951526013701181942965461885123736195992790926466212396129609980243692304299457692905253987819225356468920474861714138955133308765612583752013134192370189292055217972457541635634291096848823743851449653107136276352370951741147090503751158591375064370201905844514375251043753716968333182410567217681694154030797435361036044573270707961160014300529279421233506434455683766800043046620261894021085108535027037120179283232989317204629178918328845927913829350662703111032812033653571991788965022701400602846358673426334840381381504946360779365674716562640761080419578198408100061434913092207445924822372623207689057877648977021701188719226241349247254517635307863413008352637484515505652562562986093115983371411390863549849249977471181780633579886698506537456612805093018537448438015646035327815716120012254482540583247643727632510636180080547320492896411581762348511659729589450875144905209956305028939126790839577175412314670181200762636036860402759001405828675117693623497600722548857088204182993217664050583264588708626737995994090994722936487113638698728961760472323352752887668636899112572587878096653288878015129623625052759599723312050988578733027843761747411285075573146073443731634290802609866557749411782029370285339323982492595149860392900845868178405900150282984014843645258163642812468161007760851948463772969861278024340994774628843330321983435886583939802085951054263872643907369326992837148268470388915562957269036197537422915971805719592749931555765641785573750507961311893463377101618777430609982185424321382467296835820745904440071386119650217072422024731768021627617556950443394063990695699830203544284876959837292982157260638627964627911342992512970490464905816637685849567716772571545431644919188678792570773338908499338200286217081154519597204161988959192196316906038215809102128689023024810393468610677318138952996589078864297559899849127923013387047221611970169028162967661372629462913294548309800421379012311848628064529549492815571934434495491873391917138748409084894258484872985494253226644524477612399147066681278756678678437105952631577456525202272751016465625224792279552395942137166748588727665945095563249000897074250620268270127717654177781241759501779040758806294408965196637467744865774564961386928332989288112018430787424543226573555326578212195945999474581602815027606271894003214739178344607382775911920221096898079675962306122903758276360602116337217234124367646222307232583601921667564332935997033070205589184087411466485165903444232496365632681302035538199690485241073883444450562036137705426384738721254606236982868192796680072228925271706323496348620130854580049012035395278984246020833230646791576631965879332934215678438052021557298539110702381274287345969256417766629184742622831588226155998230744685966669533806939150423878135421952622219465135534820571927239730728354715476822679565930049611133734353640944618328495942217264396572976115446864091218276390306636640576804262737767263910366757789371666779111830963267373454921703847410984218192993287040229413427770802407158270452979533433170770042451304724284892575994182927956958996322790796482614374388467072063193650728801242094402676530177952981468650574449932018925316966140820103334734745723317291777002349910604044009622088146057505251165681391021534549300680037440090336787761492804591910314573412797512525718417547367220122896659295362404533970827146293748724939992580145062586109941920808629684469461032574092320532298264130246088001472913456075069573077397628029415538482727397472964319157572607494881934849341968731362314804316267837383570237793175477068642198563451054346885303696903621755807899608407529775566563531102407749798539569302828407950915609443014201257954227604321230171666355139293515886282841038589019913443364982989829437644281809269695079029936841622876402292015995562690622045665136137677408620115340014243989796416126218168490407686597629666366827360846193607701150575237479867893700100951620372534261904685653818818832713647708142930070095617374867022297722502866466360173859687668078063858313879949024006099497390538565106389358991079433708438864078336554478588159861838494743089978888232965975245026633513629592043675975339286008496217418046630321241530885331210859498384447624496041474254981272954498223246540990938517674604851816163460930822938389434585964284357071441975946642049383874619995339480675691331450799750865878543499890506511640372067860003127433090034719006807284194997945418915077884780245130309988888471646778491812044911912723757973083562103949334096241670185161058176074047738958925855943199172196847622563804326139972980451711623191773411930097938100058886999347330411262915176854994660710232334752039120700013142597472417828330431494883892923014584907222531698535891973986992640369498457389803979314218517899251703173272411588669638201788693546781414818836599861337008752877217603383225113928090362925133078542818447595272051097932989673795293438955408296804584548802689797287168121761204599602048329913838113128654064621399722540198488037485860526892199068775409291486075116671647802889582099290462189710909398121811515529927499266366336523977245604703075413117596370171142490894766707416162042297752874793115529336672624576482126896374490981468591267091948211700570237039209626837303665485272171608977894283707716884760942261607075465228097205196995457227314035355010704472327167008502641488104801908245822358463261379685759345140494049016813307199814734523994305328360917118764267568289204875086804177217718987336699586754771002099092191832463798628477782614108937974835177886790108059092856629513947057701168182129015471693379336603673388505867823725895386051703129184231090411290902459369540319157129665117503615626452869597386892491637269730813789482025639743009980412286705694043922063760696148276515474313009828973042128161508736591295912092146434883005968858787390312367097821301500550822605904219622914371928776641664995412290315508165575848734415344448837899069916365489745101919121738760319531612989581771223431433458312594804560560351407939229099476094225199148935868158068397979192634542706233516763401400489164246645104628024663705107642282755023700334656768554465198752128340411081688761463846902483433601593510170658839762644947249557869608209150590680517070348165756072018229801047047260797079839990101958509177404842044531849935958812921112460735235696373645084654604894820403920629052434928185453222691274488128284591584655026128812762107826636769094721571026706332550459542331290088635221220538926850461432940355695438540768819886439460330573027765295484510707803011070836872129421379345780249366200729119038762513261297261121176390865347022365026405931410790839149763476829763347043803163612950567699070312046220315877797699015727444517921555580677017081934457297411071300126996845309989993623905596685030902885714892485427259656555993740368363407780286873854738032580518880226961969373052806866493906761486814337881687267139051901263092893215602592775401887283112357164764489275821069323600669116406463279559015919853384629543608709384915440437879533681058583833978414123661425758067454887906313180059669907533549041009915156781298528921547219732280938312052280621183777099324604480708911950364035355126395530179691025257881454034214996948280534944808343873894994469506281264563623005081863651805597030656658187785927135055173632376716685521596135935442738824638327961943021925455795230502444650523236152397115585275164654283984843248590885415303223485323631569089258509582489929240575116721976854587470935203728584452680531362631593646703440076918564431514677728739144676857785609113763336354948021581496342388743428858604825367851607121371097931170470313560011636683580195699881859266340782908242967100096502623437674507339538473073612982664220922736136395973678252013607278788124389308783162542895293379747874885978527743862702244388090347596472984912007143200723559471348824383313460429129147029004280588128988127690758630762196393978678043809839812853690694461186016438241089544226588039451071003393822085166660716700831145755417957290452530439473533591816985373978387850593608643416413857235954232789804376367319009146806529005121965237077570482003261265368519435593314480452081330586102324849059221912380119749248810734776703093237056467127045395007108848278420765986819393208238020144243139289407958610063652712157612352806266646634835103438747777205105555877815117291488255405547507321241708706565356552244899077052081398677382972251751991123346653533731827669914454444571006402765795520957872717815871731804502604496834252718450535905050865450339455414478846348330325550646538282007923398271441540932822450425358301903891997880127118927365040053708211081861626317361558204718546782725339779751647247389808026582284319208490717629149639574095341398357698787001528505821805195885473090284112182072612616429747705983487136973439343007121474628876226217685099459480209701714070474583443402874922572147781637641531783532038940248833102071119459963340977795836741039821880861005884323228983818919786664910686980078786238443008360848206226957079355195823672432096121450523914276316426108593820091529945930716435981150974447139961074672796300625494600643569076135504808039555225234678393229923403689677329493778130648779098222432095837220987706253396269461258578721821918302748462330116189283684919278780247030450684013347013169292365459726127360962912590350919931718336212552159744489592901253903872931114278350544049534888548135049618263348061451024140988263246702574623365795848826116621085278861468485561423596759445984431464344602314394848634202231712755428975387844323532708143239856704285298279576723031974778014844289584693522390743198388719465631019039342957356631692424493797715174393927556885733238690471440553808691827158880859161605191998606257434110119898949052566714389290550569214637114512695922110849845995346583674347843070590731167257166535951188839263425472431834788482703573943829476616094928952956302374957756359045403767761989187408676616288756687386810963251321807181993545441204468963168896418637879648174082062019925583187330231499103519253008699968930998152889096560316869618571694388722082697464608572853113559817415175278103109233034676294018454638702646191374658007929968050749576495813205834041248520317724184477481680237569706892955713449960221481815821708893191966404283640891315527636158369115529690281461383179076646587838510927644254754775751985868844554165081392894135786083403981691102233957660888874026657314621823440106870488692149294112886531344870089635273669489686219512766055927214228660643063850833222743285479995472820772469978247766154145243441184107674547450792010024870957428472462720907310202680019576642830029289491250715112102496242165340094329194392323111833846594783900814401609326296243071427504524950782753710577174709513688811002655211558080969141902512384988665171028044384939435892312021000180282991389008188504560446432400708483411122044533571029855094022544113075750387085511692193671542134034510515848563830108676876890275385098821349532322994399709227728420492312193580717331805450865793295868983031168535827786403933462992648762148790502132135855026535395124338288131421391797204873354437262372293120764106403611252479828709359795572358436459677619944611013302710175938990879492096251704684514572462372749722392063608545812681593249663852591384633542679444048469940448167368508599735064757408691671313174009443154317339637873708388925569291793924580160243859363010109434701964753840660313059647626946961039096958293271932689762915767893526914435397195044465180056877318329408179262073608584788133410643661458437451246798976616250696907375869859179960855371566843284081290474134707015994409811924741968633624458802869692300874045635094045997683500617637334823486229099990934560438976791734271875295088297270094681320952245429291069233047568099874519370696699639921465490960519010180358152592562951178881655760040857972291141243744163737388644930255253904000385382260762646693114550077521424939336203697613224609004623494735654069016429804419665733310601531893508984165637174815298280676450921847992057288235317149458959766027493067429803405693518199300188986712907517393286495624118617640265957286466513527917844931796627834975251763493990416136307423709822914232024447634179620236011546973549896577858127774470253254255308570282193761202121230795197561924807421722164324237393221391566222823684536778533973946953043253952281659150210421118398082957297892283864244227408346229135355585252104570113769224097784773107991198883634438621952233096258307738020993505395968338388818497157247526201948148492448052638754418204102151184752919260473533051513490348725653530042855890330759013518502010182252997500512600123351456879701578847794947362097457190192436805655685215347068344315909649318442500339180979615729081685959139201478360314141966912498658767940982777777703070045617185730022115294884459424552432238286255923120999719849354623870408331458026310204417153351745517145465981199580868353060896898952774091744064409721477113150831382869266451606433116393264385514082436603231095637769892697840134959354570976561766121031538317015873558818459059491641433683477285513258057583565660095217499410399022970658594899778737974701228944232298617939711400973102005150030391314063049873741647075835255664277232050945693510208391520659617161921936001193909759862769045997801425539021675207661680486367305717689232443702687876043085994821036565185512146702158512721086437090705032282735261233247195909208619943276173460632412877524849009425375857821420229802872767586055101615505030476260898026692996319653431877550809913475657973772453973358494548648104553573094803613086369840600242501916283246194917716834907986272553063166341062724689359232922411782243790076275719532871738397488710565405773075645322392280922594866215084428655476891638517270605423917430166501278348403740146553058369362302830540806956022199815099779697429971565947691944681534207432432244939654931713487976488884778678438200013496260972200504688869189233838268844914138351675727691745461231623068779241452778926148462517973970783148634137246928909439701682961808407821199271345371034116664098885548979745924809780835103866791945241429848215478948523325122754634751136542891094659640355024639274498619566515185752940884371245371857290652401977143547154983680466423756038313381363315253961657075032965101336985442206853874257171416188962599891509039892879113960899232809497227350074997196141938910779089217538706691827387683868536568004388124224260234842180322377919098962868321854856466869149165437989425907078048343429786247210714137597935753652895908359085817588542341143546898915171263577833884971000941213850687299741580990430193219623397429231406023927257575286907212735843606081741238432079451901992698911995322368010717983832517862481835454965375080339046541742703585957757725208166135988913249716595907843767801836506161731954897947984034172558236238594873503750591650372440200243835083346065358839635813779752089962760108908804103171634525485852364016060261789283731159729324578662577953620482058731346967495822177622205952474449917547122110895111583531428187162935693384637511598314261968939854791540895814712470655005057430180992828369112925131016700465976204359327239145769373077596173481356237941702762666268607358941329681402445544617946292299678965543515372809750900612751682996823231065110630022712905928947475079047794506614108092055527799080613613010559386479665603617635217980693371962343873285987657467105797786261639221794918953777435750622355994588385094397945293724710756512533537251510653258834709268307848064613881981570588291352353508579564645093542840235816292646762692371802434363377038739254150753670269546747599013839740194228367893107401427395094352831078473643426314317219650614448342043871079119595600739769190242715668419161964653027713190469653969018229316282056966469536815450594481647304081428110645594264559351534697816893214134239818632329081742520752600983469675160689349723355388788914780325092540494083637633919931492037699880872408661207099266314608609722312899269174169171490075673933547118059608334017278743909891174377901599262084919103192372333878227647702948545039119130603759302449640626148971970431860557354664734775159854002593187809928155034616556387740108086363556509089003305160262593753667433708849611630723315425111378102824639557963049238476002063112811319459339727338594147811889652144172666122977551980860776696879306532465091486736113060983263287931526836961817587492749258308027380219474568548177741802621687618887165217953886819441484163202394784461473058012967031399492516776054605019829369865984647306881155146880397544756302151985842890878380035364606160753671551318940059733662004768519769118439143647948551989321065019808997924626451281170874014430906394828798153673353045179647433383852897115091800481363498520599209822605891959096866659240097191837138039121940986111070818118588567053562953820542827744031876285010917426928907152546323329667573124753353140334509075760762301150650438271292592269262353590968705133529088251944263806406189846928939117277536847416251079994110622877345428419193745199893099639213045028573944766175757803219461404000907327013247258750349160505655973416182422270341044197932610373424676503283815829015412496143324958480737723939124787078860852516569907763988114949366759862616640386923786457435152204404582749861732619367544803088309567394268533449578193082043275468562406195294820561953751459427886356361490266004097148418876518358314945117828952200941984298436475883602368017411593108878810438601407058564000026159045531753738328190139416039397918742212734703415947699297229924555442958586317027213352212247963345163433639303658323904797759327884361981085607358791053859810969206464925148742393128956152711402311481033146239284560697681244830631905136129798987966355492932185502479357740974918373008632058710633202306947497886787445026586881232554913392083796430136572941294950337362279698063714456013490486873385530362450575062968704791407965091494091744813535704375529385959467794325782450002667525084426534806319885784958831190183617573601207309726561805034931355883752034042350590928646715246391062074382197049776718418702601481627959210570281550589640971938534806230283414868376880574320885729376918242412977761170626523085843766288680996901667537106643136331180874404469822791823908353042859596370594903128921237262100205683707578219484021742336899179709095462520814486667589028006233927665978870156119262916993120927798856475795502082509854366546463951314396081894794417057852836255527117211684108257318462144426837539378848098449472266231170609983156671438906953034657676733924584526793185678576312976557939559440222399070713502633902599506833170847347712421619939130468385951961837507355007740489758370538602527770742510722250438677910983306149895934336870415322519539479066271142726362333726678684572651439443028728757160918626080834022985230353575491523061567125217335018381019982131607525517510124783782074528593679319308172349591830763974435741130462297172270364181624332632117654112592784347877267782785491001156709529283435316208447651388131246690172672312972230275539398881337760570506370277466729343478487120509848872901443058408887655987348339591943421481355005791001846313344467137204097920557218824430385552981647920793592751706304865993607282383400720622715263596466090558779507959482032835120677391396973218161115525057875593473908672697113107960467339614983396406867597381780635416358355758546547494374205118488183657487454920596345837805538624107445966206077823398791824598418017138980534326437892999387389363127949066573626666327286278359920453092037102533316321591819068147018981738594277680808791097901113261860235846671958200794304744436779150541939784295093398144576633140836909468634081164898051279355206786575337041148641929751811825434117188767164900235200913490675774173242085514136282993798684985130451243699632853872767777530665285637342991616900705218619471042291836371010670367137853103446085604672283511098288290087022958858316513281144937051619676074515260135850467451987280968992264456060625721575458698238909770519797235997203154658334068235573623929918418440684662383330749486606359631717267436350658296149634784381456919547100299845364874227261811364319234871604631530286521734965086672763223250672744500572488740916158522236258781787684332423641717725566524190059163709661520572141029669859610505868801035415999715006758398126483170244965968970225301120113128650218649253236097443207303472966666575782055597769150725979555741146848074319513234691333359177996817133949492636890961941987321308473902713526759886805346741607236278436055570068716533332246314784338189691636502747937715741423739094064388208688613128578339744441012432442599891792579539467224834727197711582416292478570699352570008805833165226645254389204988012555539074604294097811409823334969168600704009893140274711558983268986309198900322103818997796878469933312670173257987517516772763866040033183461776971636799874328198163655770804768240489402961890830180259113109037276945464517133760527983318001771440054467578972726873005503347049419047784557548214896174358034754867248223747442504329756683789032613752282345663451161975962154849483120844752436896056650130320704370775660121401124182886783635915534093657409276878486954134814260701432738673072310546816547829178407848504148629252437833414921450444881978032991795074360134571108790308514800942024708304393377271878723723624296205301723136459074212245309078169150053814677660817638702550220593255069183597111986113508637356626184277781159668245575595606839172212601432467961844116854155245484716624940961549435540175661979537227672774287484603614346123495144138513918291921714093093896326086945500387176624939231277609803787514168243695380216900937169379509466883047083996807894487381387843272834945472297290373857477483587677094706786967403393274527646845449196949484311486798622174683121794962985567005058838564886273765792637370759351500120851000690998661594348510868038070831590329054529428417646769261838553748593679523141575321459423892033934786254640890593101468094113600215322288818279640366989292508432287097938685882102123372303539747983314734812743384023919305714179560839593229977802046801036019943351746320961235468666010088028873844858864871469878838843926327403806051737545769506955900364870690605703655643724223286649615289501957722107109324148371809457508435353308199838113842240971114346766776115499253112045046642774483291256324319005733368008428357058131337710518528962742849576283202815347646262350114325889319350094089422570988193565517725295978397343674942917336870599537495373094885237654819724100280514696590602619849193488097745642591937419456484612794538647195637823650507466661108120136890914280272346783093472013811657611478869749955748873252147982001832901866979469431690938137255081190021427750475494121423244763677919311594975981588754316887909752647468136699105942531107687041440335453908900410105337207801261286470730994954070198168283180350685123597282965034206593831547855573149609749709461054003399445830428351631735355107901123406597846972864170085160728828654849449274606578351855236776410117562946884945065135019356147298968214599248791524130759662844391497492273142701099841969292775271025360312191041682859810083133460587277764157635563587256762577883283439065449852828946828704368457139650907890423427169668880846128243956717717532114019384897498450835186373247505750029452535871509544100578342896740808308301448957441418179686824883962781009903332109190265971433220565909495053546551738166824279589224863733912973356910021146088247561121203336570383401282181480344559809196598994288439733427531030691028196828618615795488126807837581413003437974091424606769098406609911359486568501719589515268012925042501463366750932153967687317776035010658244862798964086984071566617597647124879911462913379771727203441609433894521165268691807537523619456604086179864031653595248235645677765900456471123141563875276965015245988347659073505992575985890423989426120101892021650165250621058642073507308315813915401280586092699738480439526973291364423837387582529752694931423630364817439300906987697474261000761221723841568424796788222350717735236929962525238389078999939371569279598531529641883985057515542061842314332290805780447927307000503306713777206557418367307022855216699502269381127863029143879921157647614618951537501190267757321474668928407017786097212512597067079327165803426702045836637255467757826704912751110504528768252690207549364526808804169512023224331843171558130562876153348039882903832613456894507987851314934358851405340933361584492504985033353448967937213122234435161032083872454669056462710581246008862630725118657131726133542947605382281769503805019969336461807600308540821018788129303371685950916442754533757804264491358467917727459558067848828711052300795145079203212200348295311039564593751114550724795199232391555698871940627179088561957528855680635631702390446017775352233617671776560656937561936193625957006849224843828914428799778428010251597179524828179342050229943697339888312786894380883694989720399631806896130045784999474716058935338285983690758875431581274794611734717603722286489471301704393985136109701248218352138666187821323766164406632541867297548362655250981940527735820307469054184347681212646407002405914653832564359992898018183780155691115063992561489952201852498353163903906074388326420427942719058506150034694319671606393627127161369893660688471815325042660965164670589765842943834041334489981703509585245070376250868978530336015177297452300877119980938202182002832248196876523179627503150111208935888075560863606686522725620251552046035498188641665639665399834975502500443517378078108911971007001854506079112140800435029909765337370643707723379578964579544491898686610930729233733779956371028153840313239929169288754888583645855133628103130375974465997632461443882717791223764087996184348001682463682889243688590497791600340158793703962881241370090033475183831782234931972553767959181463256693037323117552118652202616801645865331479190320055615233120376584717622683069549459935099121858352992717018662466195542650555791692208992209374160633459662828650277061333837852659405264411830101652559781252889062460575250825224715375493965389238843297234988872188168358447061003774797565237579900197363932060532686440217432937209320588840765651246479469182222312837349991621715284041684638436566253190722159164631590859856326456538219805353601019034722959077710817963920016920444432337635678116679844132303003566696418034008505275830397152153094980651994807763437185823467035713752190126239597202353666925060799714128666232858131103001826696986982364056201979652378291902170705965370311747539032681300786845008674364549886702317310811264627550219881281730952362182115460607012873066501954555150366566592293173926430194942848113830924770555947397123814212744607606962332172705941507138868919209599018903706341755049947675931275337376098118569971789132372148526584990253567180631931533738402083189440107358728231396447490868722744425214843517967278567885734782070054750062157787243746950676902332419680788697462228506011432618027874274474258213826943940866024364113471013511570979410237673563525672346241586608470505296195793250152085456912319232852540122029897279491167347413527379452144514843285103670961349642566871978786170938900790214460254661278542169952541713554785958251267326901247462776898750349813242602141873314111691875857176445527786922089468144858209938626410651870202932905331863676087401755878042682528269690114897591568453632370641657499860018496204462823603684213504968057749448036134877130958372196733148981268834170206953802191919851000865989117091573818418386151817129983877720094677561752585207409627958271933521894050406448811294561619533932782128817200542687594895331457835574920048576253750683097854334895374975325768954054719326270917720364088944671279079740958300912842043577048840544083566217245899449631293592404360359133554963973636331637286100225567589042169516055266305107949422569185482022457225720797951722773264195507225796927216859052186284738283592265311486688627915331568351218137070883693020725977831132531886494737035510550466774803090523935406486587105660488912266007994803991495803081174408981993983403853834215098021154616930358556686255892480494544395239593729313911116277356735319479956371954374431442002474012459576864816870877179754141228033942753624076059793849047357085357947220635960180232829252104486962822188162402618925670849250527459299252204382188258950213443281728836121927095660560594844040670333886103385868787530310420420405688138899384795781312876809832636711055677415654202366644097668081546520442645161317135424922414930883973274980264395662125333794005529898362196046158283593069648321811500081909673527689905699483197194176984221322937382339372115483425291908655509741160651932809795630560534783889506825281143609976466828233938748414719396088990803834907626025943074479767370710517024882081445485321224564446816734165322623426190559831499200060926315269206783095490234289888388215261310681974013719578738797344702950290435440869040686759917437626622239460464434986556736491415411574406640286416996447332617995396604521428791797390770542862152505481891290332677695300910384532452053246541940041364732548114606615818818679906817054140301954920071322397722095502767311471742673111053448113874957001636772208715090570438330043101581646002485433306500699856932983283239545920530261021097829508890394630986456966312591918742533887465972526864930761834098109400243087570296239263992088138391994591408783448567341217653560073011116666813025435888295942239672443615767648027407637506571429001934127193683411771080741993088387318857597258053526082179367332067053590490159378048764743486483871866011520615119194522661825132022782298831883061649534101221490897016724937456036766661168113663567361127599954754364565788647147706352159438033855011182774278119336950093494151878679711542654945804380595004643020985512605532715980917605411040131770073779067331787465443332060333176332764416530169993881577687942799766584820976363218684061437003185160367438936839518151838068706012923805041039709370133532754070481644102108032323341202972945372839037039131202651453327717196311432034879501802947813915416711225468260206638482732358889146923773802851820263589469174298060688264177064873620488273049477222760874561941064923569129449705598877313054873871639289072818588926243231650285840988643015001219471277649413631033673014898785721790528356853074517166837625269874312803340728712014232288865127007583165800582679659999522814185621676061408633594184840628381538820770277222238305926782523977289629060729047649450754859225051192617573077700582989852999591847301123007801193726589495494313764866707840622959848152816208563864856797131046113814881231661841617959762372060180380714613142910550074421705567262912155491931405758073027413169989436236059522450742303971162171649450338278718239172138328066131602441656413572369758591553167367827113686369266739388746571768484428707655437440258623070441228894248433821344202523168831681990717999810480741490360118470933209073798926851414373909625051588503361803480573696253612238203075840062559689531512830879262220993315780214902418283222789054105150308264776236772161981670625977383077281278641527091127410413828934417461922153431488343560075029601835069930453777007181660014917165617619303205713101807587551122168448969478417789792907226967824722599546839781664207788629336066299267548337635263482357056616622330690499310477646004077479579036954532707777986248582721682667522835724420285429251769689912483925744628921597193218243800473240715091072255991350732354892422179149498427265135743713892013222321944363883697878425811844865318101353599867437208988770399223428886055368315987827456633426000605278528496789725263929749520059962524567998669098357463611080672221762281180769192062526486901364153288834497564425341279677683057735464438441710608841084414103791247202606545122791457658784856701274668352590479525378143245216865831091336613910255582862772398461095215092397430072685163572445577383110927785106401738595919757156697569368238003930434956433698261860411999798257442247972132062992382586938932051163113835902722397818562930809456398124180723661157535717657717509152586286424499239889084515919609262332680415402028499140335293799488661299058483798997453219828077485396499837090011897578363292215699100651352251647777926845735932768276105277108126193050654155462042427885261434611959002475321958924128709484396243667730407828290429509798033669801996618624910227152490147648347409091393055785517933710508841999135055764916881831216266849894961904840050394331801229881687782020014449299990140348228010076509176610500365518851746438588052300291840801122944317852822762414083603635733651361707884792114156212435551369111268749020921929499461227404782898393238508775282925345147151656537633555647639926229774475656192850253783259473421825173074605884954253273350348760356235741971648928719399124178751017601460593025825691142682935103992896201174946510345526693709460826007219536296792473041733511490178264052349206916934886560772727173214581179565904029277060231923735395482578659288646288434852852682534887375060972695893493458704410106288631690361894544306842769872651516728122038181233600187404639913142171075413554322938410729699632180878717751973093866632760618543081890255960686793096359204406932854535966547253917119331543880938640918883813640016022415178160585915908582035393878033829620082140958681567031711313986287514850219369118706182712754101733235557657830569071167524181420858474822398185179860540418904612188752628759694245078684351595854205114154021550329723640536968513824749582722005794132520551888434790517086724502772590850776026880495926134707427538597830037577421533324661636931468125070937617965270058777009929526068766628171640912071609293330881538763943075288977935480062094545807222510791567660344351584524756043702083966372548371793627328106828608289170942341445409228110949557461987890875498973735807735751605744419689397260291351866422178944807932738918291624528500737910321802724571378427729799909068130605322841460099007769822614792851478449968157679050929049025180375460806330126241079826803679002153665652522373582493968262008507765318632148135570601464908775585501432283489702855837669977796479392906027570656900192639926295234182404654146551188640791206446421332379708660317244950844427868259784535447314530751645827197853283425815841934298053102982488382799928589043910029878117066538833278677981365475027041355999933302462619081104939186244884319968676578357201005897126351010091351023762099888364265031639069957627573224248538854900242021458832530065346804437793336018328707492161329938884008611861955464334283160806969439671249133098192692387493779033472309798000536185848528302514763866949152074555757438953136344030364760795898627908548215832472762211665192283897526224551859162972323808874569383679495666614180856537810507319230167495583014877004113211370413247159546464548016026686108360358186754076327895047508406525104676383468585961381813153142948273842544987210604486512029088725257518114993134825643405235944547591277030880112074798340599843719363155087117798449142533939362425443546498228521314656793951444810432667519692783202769023168905651830020219216115627303053180442696478522901199952734017609222825764313838955077877370287070449867889626375523773717467082141218822564573602341151313196856694245975511131038036396882070270200592153260067519523485788770890660202993225997960819774561495762469205990612532641299379643054411386025475870461539709279143632462317326136694378654936495807425162190225887129963967213203516055171194141417171106421312694627742718911656405471279194910593883413761543040138131703461217443542263914577747627072265950752105674467111361523931817132774033477507849604074740586043307411134541459802640930820968877115510569522677279808944719406785855899327367325314070577765735301782332781734708415096375249250742940256006494777253423341156245584135532797772577021731946841201524786661614228655469613683461470063165444271566736974827919104209882275241403434100141628341491240238884068835436340132808520140265566331741538190366874010390059163223945903451388680208920752926600948387163779344655734668724397661347382857522092515637172008207166695557895259605035187378182930353940773449175167016242152709421176723247385506174575025031149805602238109994895235644719812918935790757104657688731145312522119149658949005295459051567570145207949234291339420065134995143804510723474773006011969930677790677682410727181127909896838452675077942234327207115336134223949987799168357509556968769875083289642272185265459202757343346229188668693938556794545838665318691435077974588308518160556663617899543919397653088298607264006643299966030803801722863890328619934351570855275999542576456755668125627838519924720958626701725752906423078766452345726444284518192679325993697746970169595183863347765313474694717719811527046002284285782083680394619067628709239124905289355815653495698474235437727083899500067629333408636180919678168715058832547272625671457731464980045304861714171718921058119116670938964076623010038770315335340912289423737980592731061664500797698306991427822510777643516737199084084262065973017309864654345375931609956856036605082817146355981756738453072524089516972274778695131575441734445472231952384246941765722568988931103741198664489157762273697918724205586520760798995585844301144929901420553871053873765325608033296818454616866108281153583181679614304565831807172944066941158637638484611000438217867311835906684684503638545310225423627094604293440655375560142986937850938251419954250093062755848365826452673187955458188516506300240402277182482747117469916392793541064861603346599171707268638654851571394219748711916357072843224598328820843029585576234791759652491077509856889414702769200654833349669584888597709088030768117692000539140847071329510172814612187091951518065110405037815641412908539216981086765068508121346861797951925878916032126673702693686799072977281717652804885975603078503181675441180048587346117137728708121233361415629031555871144740387589966958056653196605283683522524341760527733293448970924283352808620617571581842201480630736873755675657074570658267308996196748386448730910525171439088389512013313334954002840893279091764207499306144562633737996089086148746897744623338024727100021387600130016419879141503114834546085762748651935996918967596768225737910162215578861323125523373353914384316443234312505699579981068857299605833398103507905397891487614115302314027488009071360634872197827072857239706246380349762820684388816133847768661702578175352556528927515481510496833441853948265907541833005192252384516611550946805077160851658494458549888565286782597173547819572439989821750440009606566410692416877215011179898283811099201082576187883976384133236217473160385006466108189109765360147538965823524330570083936135400462140752068307599894186350346692035508762486276154311150368430667642908280074440988394532411186140277272130722016617040548123348140458733435040503740064004882650787112791443605886719566576176608430634671853980058310774936375412683737907381699476437651809177981485180157006642169228631130132856533729134304264161160306035702731954053893889233984443568070706979519191328076164714789031733404130270278145014074786299403774930064750337744016668851871570545373452670969830429217052959743467535024484000458606484321251067182726114991255507741028377066533863771712021128192363358233363403876630996813821037495121262939365053814827665611036592860170977465471116753773512203563007505429472082554699729397979575001983180678455749127031693750613907824125453314346981557285147350720925140402302844893125259284342773874202006602360416247000340305131846957597237094582875759383268955110782425590523712422614027813712005738334729945237136283122876668672282294943715773208438522866523199284912324852821420990768237411031053043174893782721327678786576724507458080130356336506873670735907194248758396733157905234047482399807770741145551313186080257755669293479046672955421298940072512437665355353699182763645960452110921703011377719237325705649508019783852013130745704131561280114092739151213741092002153673145722018643941327099882185621756595659345447298506292427984223394743205838065142255145878422778457516531452377600928320787457901593950341777854034524798621560871703904246687644929911898728041920726033073686580088906979567405733286321187486025369136222771117039037671496617562142278710476367501977294877869715517055320502156564923212299157588192624145247172814249204182576238257553922137312588088773652228264200729028555887666187289565336372879637900349016627899945584557250723205108426998644370704885795623223128219764527054856931536462205074408600822016492969472723786966318972885375352954966645294412383996365867015096546871882802464599629125189436453959887345749021743654082013392060970430575886348439465996936137511366992208600850781919002187843577615593015539559288229071427430368696208451771680869247506425399023600397660271076359065627489760857112302339266339865239845771928082119075106094518904276307939246182883079975518317747857133431282328261121545024673727120116372141791689107890311336996670638768452530075975624675276488364519066621627623073885009784883366858560675740861106560051941405998591594681105712717963604455051741440254596245878789797635421788371521087066297661852842814049333130562068554228930763459201360872260074152723463502943891611651667981284014728007118173481291655603945110573726604350392484695196511866327011772839987125980373486852038781445736090398913779851896721855794147014757893607678124420555553375747478670441917146133420442520575311010792895222079896006253711302311568272434273128920073849454161333864927315981701689876696086464284483849610790432291721333278914040614432943539806898704501133883044662537865995955636739217977184999108311070277106719062472418977189313957035409746731494661211253954817835237715707398882971691041663441510220804702298243519531958540311402838556776311414159627115838925947461157697940708123544005246105291253844775249547182159813467828251043156494703371945062315279111746452877465116744889321069997943568211014912925862139701020874532365464140714252654516853123847337948386778553718384849693862319585426730206788576910574567494397894657821691502507442765039862006136581520090579035918281614801745699847078398439648493713049225055256025387773380185622903699771337029435491810348667079311064443459811367215679124314900717327135422737463179321730097175537363507528747784736936195280851442444253116649157826391722486327746070694183531755650601594404671665078730971285111451683142553965887179903136578119346930401776883414517523853360012578440763536712349508017110268051046278185936423570143913120948814358040904981384600349971366653399159752520303998516195898058307001925607278403696937298735565290243643193405851489019183652257129226012422951076240312834644032862637136344700072631923515210207475200984587509349804012374947972946621229489938420441930169048412043