1414213562373095048801688724209698078569671875376948073176679737990732478462107038850387534327641572735013846230912297024924836055850737212644121497099935831413222665927505592755799950501152782060571470109559971605970274534596862014728517418640889198609552329230484308714321450839762603627995251407989687253396546331808829640620615258352395054745750287759961729835575220337531857011354374603408498847160386899970699004815030544027790316454247823068492936918621580578463111596668713013015618568987237235288509264861249497715421833420428568606014682472077143585487415565706967765372022648544701585880162075847492265722600208558446652145839889394437092659180031138824646815708263010059485870400318648034219489727829064104507263688131373985525611732204024509122770022694112757362728049573810896750401836986836845072579936472906076299694138047565482372899718032680247442062926912485905218100445984215059112024944134172853147810580360337107730918286931471017111168391658172688941975871658215212822951848847208969463386289156288276595263514054226765323969461751129160240871551013515045538128756005263146801712740265396947024030051749531886292563138518816347800156936917688185237868405228783762938921430065586956868596459515550164472450983689603688732311438941557665104088391429233811320605243362948531704991577175622854974143899918802176243096520656421182731672625753959471725593463723863226148274262220867115583959992652117625269891754098815934864008345708518147223181420407042650905653233339843645786579679651926729239987536661721598257886026336361782749599421940377775368142621773879919455139723127406689832998989538672882285637869774966251996658352577619893932284534473569479496295216889148549253890475582883452609652409654288939453864662574492755638196441031697983306185201937938494005715633372054806854057586799967012137223947582142630658513221740883238294728761739364746783743196000159218880734785761725221186749042497736692920731109636972160893370866115673458533483329525467585164471075784860246360083444911481858765555428645512331421992631133251797060843655970435285641008791850076036100915946567067688360557174007675690509613671940132493560524018599910506210816359772643138060546701029356997104242510578174953105725593498445112692278034491350663756874776028316282960553242242695753452902883876844642917328277088831808702533985233812274999081237189254072647536785030482159180188616710897286922920119759988070381854333253646021108229927929307287178079988809917674177410898306080032631181642798823117154363869661702999934161614878686018045505553986913115186010386375325004558186044804075024119518430567453368361367459737442398855328517930896037389891517319587413442881784212502191695187559344438739618931454999990610758704909026088351763622474975785885836803745793115733980209998662218694992259591327642361941059210032802614987456659968887406795616739185957288864247346358588686449682238600698335264279905628316561391394255764906206518602164726303336297507569787060660685649816009271870929215313236828135698893709741650447459096053747279652447709409924123871061447054398674364733847745481910087288622214958952959118789214917983398108378827815306556231581036064867587303601450227320882935134138722768417667843690529428698490838455744579409598626074249954916802853077398938296036213353987532050919989360751390644449576845699347127636450716327915470159773354863893942325727754003826027478567417258095141630715959784981800944356037939098559016827215403458158152100493666295344882710729239660232163823826661262683050257278116945103537937156882336593229782319298606467978986409208560955814261436363100461559433255047449397593399912541953230093217530447653396470662761166175351875464620967634558738616488019884849747926404506544489691004079421181692579685756378488149898641685499491635761448404702103398921534237703723335311564594438970365316672194904935188290580630740134686264167247011065346349391640714628556798017793381442404526913706660977763878486623800339232437047411533187253190601916599645538115788841380843323210533767461812178014296092832411362752540887372905129407339479433061943956936702079429515878228349321931666411130154959469837897767434443539337709957134988407890850815892366070088658105470949790465722988880892461282816013133701029080290999745647849581545614648715516390502419857906131093458783306200262207372471676685455499904994085710809925759928893236615438271955005781625133038153146577907926868500806984428479152424275441026805756321565322061885751225113063937025362927161968251259192025216058701189596732244239267423734490764646727375347964598819149807931718002423855453886038368310800779182466462754117444250018727779518164383451463461299020763343017968554385631667723518389336667042222110939144930287963812839889311731308430042125550185498506529455637766031461255909104611384768282359592477228629042642736163264585443392877263860343149804896397363329754885925681149296836126725898573833216436663487023477302610106130507298611534129948808774473111229542652751653665911730142360626525869077198217037098104644360477226739282987415259306956206384710827408218490673723305874302970924289948173924407869375284401044399048520878851914193541512900681735170306938697059004742515765524807844736214410501620084544412225595620298472594035280190679806809830039645398568593045862526063779745355992774729906488874545124249607637801086390019105809287476472075110923860595019543228160208879621516233852161287522851802529287618325703717285740676394490982546442218465430880661058020158472840671263025459379890650816857137165668594130053319703659640337667414610495637651030836613489310947802681293557331890551970520184515039969098663152512411611192594055280856498931958983456233198368349488080617156243911286631279784837197895336901527760054980551663501978555711014055529763384127504468604647663183266116518206750120476699109872191044474403268943641595942792199442355371870429955924031409171284815854386600538571358363981630945240755700932516824344168240836197927337282521546224696153321702682995097908903459485887834943961620435842249739718711395892730509219705491717696160044558089942787888036916943289459514722672292612485069617316380941082186004528610269654757630431025602715231396948213551982140971654909731999283492567409749039229712634869341457493319804171807611196390227866407592243416776246623623891311027034330457636814112832132630858223945621959808661293999620123415617631817431242008901498384856048087986460839359649236651429681257731432291456871682762199611827826953157498380262465175905410397618128760421638613450221326272775661244113361077519555774950865636067378665062318564069912280187574178549466125327599769796059776059075648910666101583841720281853043211904465775255427754379872605488173619826758168628329526078993222668360283851351228105931859102864150815705631971731518313625024359041463212239217663398268936825315053005989154702909537193266207341123494743367884690201390497842852163414429214589558287847669394646426781221904978563635526336827805186009869924893778600239876916980765662194389854437080594643336233381058745816235475600136592435242657143083465545768002370814675732525470255074763747163506785159917369379325103268276062864591461820472148637037077192692682362333472037924596469181052613915308628029144096548256387309273042654466292904589606375191871146934536197332478957270703153093090192119919999361576500350398405406742538792752792272473356677060783791138448893626136765706026360031513295209539520285489738448625613492441470860708660267634997879342087583612194711699422384848259591430452810706260150896913530301772006271705440209066951491527459771970594769547409521028787255785688002219371774355811079393088338455864827729100862955456614130672123084874022712105868632338823741388442893815544464710575565146843570294663506289387356986868837648032651952841465351739530273612013742030098673983851432190043602898269829352939941412923058038456502270721681516194101144982630136490087704839848838609065336859905458389520318564804149327214239086516499943165920796595356943072311291162928679751715668890543932203569129332457020806719444049730494398140822782960279942454108316667592142483518272381720504103927428880155622338079614751243351473102128454594489944499600075243751957011668341744749079588209951783676802323651767497230148745774272599476096219843271483529861119027287358490521797590837419748602670605374623153003937521236786775284869219585713755426968482783631786110993368014391590597484285805451613023014397905701610889862777961075067333267604865492925139978139053588227689373220494148394013556035656044214017612060513180689198996260618483185340183623782172663758045524719626617492542285280457144204857834211322800852870420548899234127855481236761537707104254469868521991122835426634999712748366076246241820736466617128394748473280474430403344107200428727127567027956758242926271945458053002666489965079569778178621942172005237165369467704195111912704624836051130289046437751148694887849615118841471910001255883836660677208411235153558811267789571558590412576261601067513153580212427331871000635824954504099579407254798900316826512373119055668291519430537084893078691974282904903860372311609928342431712225099454715019286664878710795199518005463388384431548172463548024451803084527343100062137103462573306001234973744355818096567846464153390514656919324562353140577919369898842364718352537580525771331120079710406831549266540202604680681839143782721476906324246951712863673844313983337117615941869993466262345373452356794012416809229116360956372167452839170990914664850739205151605604737871061547021699607465693097944261214692561593425649401912298951473254471518126325836889728226283329524035970072786336460459470712417472946877570595815734996284809956783925547424044899188707106967524250774520122936081057414265323472406416214103335334055110452126175035902840374545918645047276243420717709297935401021409646450283683418040758608100140721619247717980985968111540446443728568959286831977797786934641598469745133917741537904877880830022058335046746555323028587325835157085996490686728759672950387254757087916955473669170870124133392214846685174370666154881952933227273743604108254259660303986932654223505236910859512630083184675550345975839550584035670155887977736443804818213870700344023618041200211483727942274078737893316270810136264982896292725624458053971341422145110999954458214292378388102648394823395141876746896783186286817882725558257319395181553169516450149435726310604569492967098625204339385207822076221910034469269663342590853058160449780257763254489370800626778731795485298566839486946733569630014029313141902578077581694581527252934342259051979183166216444875178169677527677091304315734256405492293818739511084416683092491115978577332736388414185073793630026392180680019498239666471231317190252370319905877197741000713240751920418122141324253272949186000420084154851154741157305987219621298854166372087752248376948597476729330186839052250014869038261084824819816759310777270264882620907238477529058765040326672758482521851623107454498875882746567809497123087661442641482415790357039331225651893335628183618540574670638061839848946628424573656456421390721630529552935928487755524275455951338277150017840165530548544228501198836557568015934645055899442484962741271186988315804769181415679618532165716964522259459471246931995711641986188479778912114268116438377238483631867318607564778536999303870546632296980756758468212302807726100696917407820247949882109547334301126545442170195852375880785348003737247118761110008771903553881573192251333842494774503118811947455953653366092064192934400350785642234329232492972708472482355767174058950012687636008124521124487564342809465931336185643241485578079193115126509729589160529930307710563524545148345720922455198489058890421980654397335375759982485803754639273653764196748062696838271292001434956674852247241454863603621158472323173699806171993642113631458071198839681295705611588124620588579665056221507482089747764177083787052924202880290044002480686812542207579059424347046448957544023873693604740130860360759917438761563529677605801833493087964662707116080507376107180022155251919937962007091613832272801773133201900597804820796075803249946223853858035734780187138028403981200468123707909245727285765451048971703102370548678793364378157807400767747421528031184981557698165615162611572020454026441299316117077331253846128936763791838537050094206306091032540258476822203676824927947340006177512952630726563785309736864200077666658899328456612246507300220956287727262227808039548340381096280576492897465184363194984026129976189004678190927370964782787243577522066846540002468330746087835876558905305694257499098903922046300471457205905371209131427588653769314804000087179138456909936299878478854217781540735051706253205095144782206672526086204107996222703480818013800661007192268140291976835488424399162809803618597719358892265485872816327690542861746632308136287764990073775993244175214767760469369622332151759264505564525638405467004045215800754543796810384355851479430922963521978522832957454572715647931850418896070128059492295921835949370745803903214104366016376509554894454190263391196074110066949778024695409365628127538496323601062584653667050765177029695130396858702367912875413588064402634238235680607640745176119088333712091415762805652237901273564193534565267629624402660228245426196034228352400205032950531908532014968045135643341034313292235896972831087395694381318094316669133905264891483328798827628525630451206376149000452186427171115089762827528671466361173898285874253172165962476433238400349004962987894870010518844941186604397391074937573495289347707396386659332554385899935379941438406624221022683285116625113683447328966132105267508937948344634930352785321301278211526859429843756517451093039924958664609423868470021535501803780001870111131519378754010914958890807647334550026409805683214381160075146182788449046812481468930974300001090198432086663092251381121115994812796367839081222437819101877799403407652740603823415053271741627867488808575410121428667466310361088001818843540182368653221687750411978076525811538417365621835675013034456595936590974690077656309515636628348639979754937563840529672328356340303159165495886112229959996868270142840723914623001617354408314364380458922055411017953513558852713479849378761337910756559954145289177701575813487576801862429222297766621154224971133417396031967639093505123209476166427534743883338886999799164638367503241863248628418784699609638082751299633817393742209534758616322163052027035170374902985685255958141929549951765525821234731081976633013417508151236775231516073208818295640726347645058875761361893618701289040267922647049496787237402581300834763975644632633549675285749537015127100694464420624617536442894986049205218232133843262753351988294920864907096059216545737690959513893789976626287708683235059640980501885698199740566005441532138407349781540809435407596815613389643208404153151024324324765063558240978534681151056323898040138038148497352874442906939344373381801090101788592056406907697263909339111613684666699318068382346740389223672292551660244685974607635829037285294971583690637290950336859511823872403865668038440985913599965883006227997529136849456170519932915994923243404137272538076368402951873698179735366570959942204751059644075907078002039362324718238041377992837396735880963895473938471289506230448447324704438233902513149138594475212792714610672252683555520931014098250324104135681188893441706348018188790385243728434504139952675083907492931559489927997402060166861010605738362034369613992370502059136912247881448219700455646296061801529572677466540252240321520106268059246929418414651692694297031644748922553356819470105586075395031257487792718220198068050655134718926265099870403872393615262809117150163983918382080371076644472311255942979308415748575497128495677076891305313915192831607493722604648374121124105274045807690774990321676153199656609743008902847879220989455514034956677632936841891292822888937913925657903061704219517464266717628600737654825489490823670490417898279469481337100543757352292625939568095371679771777384281661195993198781503744022325294016651359648839891877126666764459282807247741980511834035772630194150562227092668881510087408102163045511193689703398758991634367665524596900229663906182345992244371615681887167850195521926904770088876288170124359072384218859094323025240087283634113460024746350540763174302856103288314463952599557771416249751599288603441010475334677453043727868857611962268589481389788435122516690676187913234462077242638989111751935755367550897717360807798549929337485758794079694890118538260511136235917340391398609001872245402872651292350725134633603994779721125344079696419658432924858389615370786254462405273418372961658712809962156751416778888521820178268579475088605619176143345053072422579442150440118993803282117694275351550050359384026192712484073534480576415134920906643326087188693187839113724913542906314327731414756523442769892641072919296477831522676530963377190788702121017362889280133206655384688752270982141699474534678397306188433806368856788750934837128129945947141674021064794462304750959691121328418573745076880217420009190378611492899932136982825505043941252342938789152929448806729045337155868589391194058679926796801975192946353132120460582730136524635491974771784312551471956108944817168736959500975514909058042377055076583166045526317881915928858015141099033515999276492602091675379658565407172149027277207207953304640949267929698014564740758616841751827035541915232859013199189756444272091958066473785396547494350336609845569422054123220914947698522660668693134941284605243600626191920095455959929920357663584472520888843877010984850961455366250564822233108277487712496459239403441038488045655720915372083692370422039030816692153443365555296591477375952079459597059149213024383337957093747163036409452240119825455037543972608037636658736525989526911679960102783588811157158411574479474035286890009482413391845137805999225189847359411654219009436698502918007261527089548324769107905475023957665941978881844105201828871641167052826446947446470988688065894417009014570173959237988806312013429508341441096700460069706630113988380654410359590363854288905339597947613555539309235350010227464025739965492603187121005439516931510273625146958084366948374911338531532378042624794961776929562250613257826661658752817061548468817844604918515850022357850768844467787401475044226257510173648618326337325335419213096310532213256241946140930278933582531173554831218618818580827449664258680454578880416040961000384987331075563389034724418801470496014452154644635276874530046342937046578746123041142858413931547069644559886270234135533696146889413057952434482857881384291313340044438826945627745720446489275037188960025021481024322662324744667592222095757968039875833011880941234859410553979311501661498241094773404559447736214072981906734227122132982820189355181480711612936047539354519164488519197681989432468826658469990810348743305715425211489829249406413520486993317085243654602908006502421529859811925120962833268076725280142924263810662092200671624239053539428775750079135870037680650406932904623670199806464238166278074558454279728136364961281560063361281911718077749857212849096540456380602527979290014116718088821672762326957314452995379093599963572019569105382318332322879603661549343561955635777887203805140714702862748666577272849638060682090874337475577893122071661832909979680774069583054550581694639105380254712980950191640591772921470612053797375831881690403457373089228704876429883276343106156560414235310211126077177930873317131713383405539907714874603987863410018154894306021276414517536855678124104876278918445986488750725691907070561261890651154153743433170477107351208974966458587123232606122776764880174190417053262190112929941342406859477970648454512304327003620444460307001911450415420812728658532659862596583412919318743374681425409919891908009325715225950256975763625837854206876078753364238902453524223147811695030742299688266236189437975463431486940473705466022052365853522433491893414953731854617756390850630149805930744131272144306096868121549167999336020911246342068160464235634526699224710694338071397510765670422960906083000214645676075669544782233742030122313638536548811896867622119656961068380955681107416168288872914897089291727202031664475298155649165099329642475935553094342723473525567423358885410408162561808385896759248129675817885803743143764480510225754841455195600309544841537831759812222780836261003829621913668746990601355910987901789394509507080084701971030094963485673126176537990696366534238478394751006091980236622402583791667733659818620969012370485544178833081743224152709618583973205487774714196202102091912200354193993755848965796596777487966649833738446446288492322091596625208177109455185578491934224903911264401625403534152918596062784425849799075376503511436623012687450387484181980800217351152127310554254895445643053521744126476037398814323922379955208037256315382789576756032695341537131622868422311990717366271592521668095025759913553680411403143637492857050001618258980705687363948032236140460401148062340622683096408506456518494786208730853799331508268638345592991800295650260071290522134614514259168323849973637929532416676726366084513932912700528134634265444592028824614276217753754229656117767743526836337792772705308668887120354478767845607440345181873913358163841356718363981550075711601024702306220913618021304133261781624175122446212690513758760331529783229668819279803172061409242730362390098385148700836077981403811439849201510068822963670055497394328533470698676995279400828080040887151019376746773088292096077414289492431907659952326954148087386353237788054208223725636775370667314730349686397070489803124544608810665620493011658369924285914317195732663911794046087335417041038747767656843417541651961987492489250742089376014119442402963942541763016560472956766133449919069368073355165850315039691338748343529636805412521888303216646059455373944512375217839746535033276728569491819398825995286097569880061191625687329230623058567418985383804557080935837791462858624687231102599401587675769083167717428392530301160083884604807147836160964171559454639922182910492796922925111279379566401338199116350696353932636098595646205761040870568380030269451971124863811185337891098140224052458392216045634521122174170104056797330753958464705847475496044322334263006692105777670057477179244790338841739989539562521831475434182885422927738852103176503318168511642398484245909066856408486471222753472917600277208709111991625353652320730412740345728114307679074883543500432172487106703331203925605890876383694747842860145113448225688152250529570476441145769813803859119271335634955178084147363210776806156756794279876371559640348376284440532510433462372579811524905785545455445212845961230415496214883974720036142299205566304524989647365828018945143047860790847927831976949691073126310983048563350679552136745945274063783000139125120642601924734330752385197760034508307554267103843989779508070291869840943188845228389534104745800831025593432233326837667291509223364131596765312061158745849598848150544242432843168407286751243034320658177339853340866974604466757145667522200433006339665327271163921628284335936391597053560535146139148456846240048462693520906354536685148549734459502217491295621682053434716945890306665011223995373925076914959998073116487568322310735601290888907448004113911492936466067954282677357899960171447474782259719736910220617662974796335941382050865383536691317089100975862932298234558521880977160913141561228379423014074285751721960970839246880724106433466382037888019429996892334057743994558718772167194941217397842484555112423949510823133419009549809749441168544692712681046436762979495162894921486424919613171491129916472358023000050647844611081191444911581229976463342447099617414852944517582991415713137288174497866346697983468306337722694621120245442034905736776108249328738791270683888932801298767917008111013901499822724475459424814219503645301778419933971029278097100317280048051240745515497327504868037239901358433766912730559957132820621881599214113087695580663895157966577539424441324131537107136966138173470057448274546002818512219488109409909320308369628663945659676275012481150509089501450785795316471138353523678315051944246260303302423386660777762396353236779252054307107281417908996345847694198785104928828504633007622235900139196301577195048263673593364045491122586219822988355056461120043009052033100696984447142351053140715042763732999158344068698636753335107965892117923261988421354121495287883366948652448614748351333806766614073993972117117425807701477617341316035580252600506134605099451449480811517675922265832243506690165070858696930166440782947613410095355855502555973395101109712982941416813316290912997166393978677025389558919147940326682699991849349352114564167382591282244626047468699834100268935708716982158995131447262467443514267122434836046487724457790530292549488581897683740905363270069003593581538188328074082813302203650906064911027884819719163134090296747687267948570819849982146273590252424351803325179402961321341636186016067064672657983380169296326898852006013626012730812272157483534506894383494122935439024253757527693524278539886290839492645978852496906310901636809532041133852046696303735415933935227561197627473067132308491427621300053095193231288414895541068061674064879931162881972434099673760093836031980956229275123373419530042271675265748542474829460337386503866752565580996454755226926589758885256385329219380197569254277349692561147688808641172670221349315285514221157052005896966663805203810451469223001795260740738674659562840145829279363809900432408357426572160610058927693490946782925464310438235881712153416395794282917217936240819776881989901997873314036121857968065863583681465355895573818783787921002532420801656741983252643950421108215392201737850391435167419957715215621463635905890855285566097475552854234030326468862317166327230631411325306588361329177680754321404626368882759447161433892832690259970501823014903709779911493218297003434555386240394208057786127575849415156825642208045323007930901911661535434782211794369044850125888462028698089681465461734973783155478921042628944839050685441203272065237493140532517069357580009079941792855931728105699437643941269466493457090248072223606251713359488442890486187912569014513670645923509231256300836211549569864274282298329804951850042279615522077218816950177204015235268213256238476819646794650831075753170392260855614693319107682836365658528506686770877331479964670857626275466029627167630759318984357338670965701737932282823481921617818770070473496728966318770344833120724574590213487958256049482718461476580841721149994685480368165473705573911900059789002103437746927946879076185986897099046690702863327364632147856592456222718627461789624261730819156571095378088790621013763456255345542787249857645111051479264218160233667141898013970071297298687328282216186384163112913908793714410044378773172449682982352021429758644082491778114730760837277351515304536922595690891630329022499883027293104164006492014028225328887590279313085776562376554657649941846426710369869170705919138598933085937543746577874402434042176722612456357840029668745472450723789377260484172953753114924961186297590821985464529962159178987220330170865589981371124750963304730972280650602581293632629202372176989811854218162149703665231050649219585761363407227297346446752747385236677803974225626527428873816339627915234448947500710357043230550863307387055950470970422311237621219319575390604993566746301074276845939499546595549721549209431431360022852655133088268256844678367207086930272733332654314093695979977475725164865609388901597496620477213530723125776395662827622901153667810443564268355205959032732041101941591062313224980121075141619321442104168538720916349784817562178617762228890105867147994106015776350936484541015472003561105423001876393719462379052951539126455419411099300801282463142808366035865498594382415741276615019556596477471231145521988678134484244364073854528351409647126347426960370617561065388275867938635884085367748880421728768315437910382402724164103510769580691860549061336294668741293179916557774775664852417361469670995689731625551315071526377319131717516989497832401686871488313669781158182326385822972697878024287822121295698816233680033879843352183322680767487176431408751324746234052349879184847668268295616438928794038967706478767283588109660648162531582424385915943578234529335797618609442793133303422963677328821148012516066324362292892965570524145729258190733355159023087111957026902387019554455972339436581286903114329458125014251884569396776835149554430476026363981924230113099136607386910994818916701658918535224610165524399123034154691509650613337574536443198759207334823839043618145230004162856240178989661872993243359237891279256608949415876734705551490720707611671730965073513646926538883863019930030541130154220297873483229683717362289165329531827179977341842423073500560498706316137883700547174126357960794405301742138827466684118222343231694126094014895249875267394863904890764212721169711722001376013590455819175168779717618660293497250710388274361157014106644578105100135067350691284817103249133295514721029682665729358377600776585271406735718234186091576190979074852627061960974327839744062195281371868901178670869015790015505061922360571445739706041858743996318822577354587091346279727560768912856748610370590980611321876045048742172796985312160568894934224324078228305238271344062958369171976697184275805197218719577589349082463036176217101228587191361637847857196761183924798254488891446680529057852098644781989368929078732480501714397606548833506889116194809729552395960841262628560342743775801058132345724648829660857216592741563562814964100804954256817567964768010548889433267801048640465724291697524024598579943231020276941986194545670508140448615912446109549533985036181892267470044724119922280866415538338996517840392327919638032934090652006414740476650917711590990708088204104346134836618874309123514878956003809594186791967316693219121047834208947318434885713285636144080344037386737479499390765225963002337807256201081672843774094748204430163722131953928089072365430666400928276985103383216798330940406099575230599049471231939871959905163126572572261789646567477042538713251064353097458323097084107331189812014476464577914235732488764319711258271029798752633428433557953569922565057949092308669377002790666364522037314515749656148162618588528566810640204720142433222213898082335243400026257218104923740342933520854088533181454180287778125463001936557949148442799953029441147175167081886444216707023391688783428021896673288216515803065115988169156137091318045012481261833398057451020283579255536354601188115754159547114922870847335885068942708517824011738597558630393366332930143668899742102317345796658515711559591969533870407520797373330628808526843124917431727930361698319604976090563017785959731984177147632175931492540471398181234408341869060733107306870228133005451668137079990879890896319546202343993187247995643712325767418916631641520305278194069574048089437747208545199695746253535088240456185255957108021743597126705069402546421153273914043481749358234446028849190352971703436186271496582233771781042198935335106366316511744501656381651924049615625150790861123581699291613239493471905931734777040136846628050980683375370187721517051788910354822136744744507147985432589265397179154182200674651520853969869855735788497937797044600765865255116963424515704282934552014699955648618896440313524095881591474720300214138468364419662076817723310317917887052884598193251871105991350352530179848772285579328648747510119395405150337615279010491080759804228691400393319028263349547295323420601927809493799847565270984159107385233884180781423770536990134871607432113148850945467393627487976562942243817376907563041889199286011385645730880188613316329240974971000708463519482079184540766343351027570040116194011622716103906572667405672256009559428943731864738247050130431656666130451464605937112335551717957973722411712068702063535219152026527849027407511026265343043315754436881070612837812844732501052153518010772445277458385730783648224018800322616203232907208329809769383668685800069973518747397202959194669023450643675578102384992969727455341418306093449899312157772241906026800623570674269249772226120743789058476111060257666158745586875622582550035734089923749042088099268182627148504640310299043867049761304778281317298375434758468562285515316895777469463870064037754926243703710129095432705433160333728289782255475444444227007559779374371297825365563599228976958159661680570196314668280419693762657495320367583950167250715570756500062690707616790422965605952710360566741912039358481154279888794065527558958744552724092498126774727471452308938843418007389008724337759647009819364955225450734415522752098432934019141715414983309288810063694274547281280789229402486723336101369756372840819922663761854682236519361763497647845137473756616967628855789170667082251171010943232882194016351752879388736349546261136605626539219877015044180646644716784170484103012500577844094006298771448112187534232558819875778652128925470375335523326396925604885158199771244352968552501257680057546513365471605302991928259130215610309005059944873590785730383495571350930663153180517931158961867762547087754711590881373036345572061857715124105150273564389556372727660990012146374937836569984369724203417187541800986648213183612968672516761496296664564669348778549236775986272015762841692251062456553394374917413118580922685713815582165894450020270637582431211568456296709555527152909856531233367256240336441979645063736522520823642708484502822307474084993075376292187136083351595193920219186192671193701358125212484822791952216151439719087370505830012594354791425050385642891854243615316713053475848979939510346687138762262362372538548677556900174675437827946629739386773874945640043196206581695997083207077665032120855635374157575882558312929783771821512319785991044208633962927307646088593993032873430661030778989234534533196297244687315502858747540107704119551610317087571162921446635572549738012992388637705689415576125467097824379913333377964873736012161213902941507629441970311220004144089656360853166155685229523073291613018415220811271211227734144979970422675114556689510280812800582634997341889417972363660543907777501647907549514280125817646962364117033609865560475961247925538624995714282292955679692746260884732461036322075023669471255566552869371975229694107782162776214571985467528781914519203081164542918836892738872619023775795587728491178355064181775413505305997916909793969792456540087910814551398458396766145577245689395553150739466696535026509966850271443051262931097998079520353299643002444634280240274736843076796953319491804234456810156311992894834398460468689872742242177814949388605014754884379970939734981852913525338301453151828796086459952326988283347100236401838291725278341273738640666245802148727756428972299544060597513577001986991628472554970016071182024578967968158564657314262224877543669476519463693836506566789343062392326668275111275772430334941335651369199105559241378214475688185781780077186548780184222149322390618241356017799421999175387651161578576615155101027802462805741316233726642812613900156212662619223003712152333794076607281811997397841248780786280472984172909617911950490054527478842891474683437939537409780072395505514292390524534949136960220313917531092117398384927473343632030950911822555561599146928761124663047656336405052136042847014536422838527206755878969079040538611528127557733754719832203233098976119276400759872804631822114987314292008136703491086726569396915742534345070213579000070031696886368027300595763575239160114955002117871042587197128809222305905743457885861012482476647303858561110317798451435659416239682506612220734704433659690571495163939290724188904597156504340511480824810215705437251433642048223044617508213655669468218845397273062639036121831890362753976560136913970052841569734854919035023490451602585364379385478817639655917963803486228938713533096155087418574107461096881806667535070560182644715189747984686603911002762680380730817785478385096636245047271387897025405364299964211314233619832199795409136576000393375079861518000175643580478329033283471843561266708710954866363043225866343793454780051780011756166014492176528084010101440369775459722443768278944292549208167967764647197217257545147797075211863098424510087860132651431648987799947854943873553254379024786728025848361510402694442455156323601139368422462509851532099476470448560512625993913709189705852386235637562692855231081896326880675289493668599793184604134237684440336901849227468856083911956169695876401290430511628127821705206972452779549504095761619333598859857227710210288714937349080624959773839137666339228330184067875379162021012647111774030977087930222108946883937295481893909854437708501418358182991808305774515064776260450541994774782158464281318349971792158319205591128414048616145269365955861855464844493564688907781478169958123011218965259351683133112142340453646388211350328896987524840571604491077086777802178182613136383399390163577456756513329802954798276111986432116358744014065462993561840710021577568164299571406401295906901768433327643063232085217085355735886569296877887589645482173884335540903166206051304434939375711227965527548574120764798615024076571465819844366219118382562648520564336574690135042580985766778124052019290114713099710492195311483750874457215436533840579277426291932045801313717202040712448663189994721389623376545899837362761587357815853603314227084459792805042400693459843042630083662968532617864045721873192446699638696454586680008134507336594803012423262312133786375162043111134116238211119783069551958914027187876592649601616857888476222074761532077193952960225140206240821732843378393514233838017678394252283483885434209224077105610958918457376838528575615266732358885920947474936431785650705531298667991193175998658992092891921781617575202113652786114767825751839802921408203900012760728976858600811752319802211535122940876574297746368670930301533354042505876419710508686326525802333436233049391551201677671326659274888072479646189506345714267569003107657792403740183793650784135113625589549081262294416887286614583983762086408041050915365312279820434798190351011688129014952981278293406133559720783871832834088196015929999299121096033073373712169024641636446304874881968464564757094641689688460871409599119519973254965726406483843922572258412511918769939622931453201641095088963852064915799311485402280581550241179261559887325584878513172605144302425726069475882436481259595591540465302362984078996353807707650948558516135354146792570105749963139986912371978904265479156242614010007994823832489417782772271882740652836291392018233281578858145033518522318538874421508888669101204815843705404920469111027400170278408702706485799844978158759769305805439458747805448319244201977444492101700884184024293611319537332618885234142417406213682357180373988155185695942497362734412808745922457487682418439222816669227541594855008049451382268726790362850241656065982805107741460640500054848784878194182423214846678122311690563230281722262857575946307593532477265942060542960523988692857374789307916898837007866446739050576653805329709977873116913720190027659226188534167486915203363948587646776288492694099495288715908780627806987802906139433747600048361453496032824189890282094520716524778600924948587110886065783034906823611518317458702866204703590700071818222989617616104520552122083050429482802786645547333041418294918179647407872227409447128655909107702357938704193439657117639818895959447921962924738402384171704015600699570356545750450132933867878713516430316243644019789281503193748012171922328279894902604435212202101318761466736804703332629661958615449276335248725796843014401366222808724218879910365630968028866955572266516048259619138614074341054176795057047095531565276740478324459215141358681974417356115983458320840843449077508142558038557611529920147998231060948065495783981077910699685265343953707981913113238269311117870975086318046174715446662353497595612344038068630107988627673813829107773359239847810548093036983351346666011073138325052897668687745920935838176471656412641517727319652989122173699569705621032245038583754345277187831546765055044685774931955647240374118060285192356204710925809364707663845502832806755033020458624956775940441426525369414949972082899994584268377071791215193119609340124229016485881974963474119047740088853511241709157592591227191220002359503860509042343246105094622593372726213413938436753646927599595410529840001088413264447174764520123282736217589892141193999946948441369514369619763842733256285232529219518989172845243123852254297710892508760339780370485334487795583155936673210347188973299845388011947388133655725242975193442870072001448859671295536804127482305934611899717880691738544671457700115369612316180595097817834153399001398481455354099377404992426995196861832699269946325537155869228761860506060507061840734000563675275334886036742023475156373689703886743108209866994049690502669479231473640787115858105506038462515563235263240282545564834599331855876612297669814567419544451069068664115283619163749142296258456740251678293324445713935543848362952000221622973728472380783953125476953296978412246764766897750503778707954585099465734766105959282648479162127265147333714974786068724874656468457996516823818047486208639399702114384003624031276953150134532531865744081940728136254525735688772260231760244420545378366504721735640057712508300954139490386351574956433805173257869964789327299719496026264503359887841770357330300023432065491650366083213819335288780140443318771461129612999495974389473956353448951049478489768312961734496506525968406089249347647708994207282027014614871969807413291500568197160097872130332309364491117781934744090215271944017370233250077397024706959185138767651447545375907964667893301687759721489190304416223564578197194882215265407483841217854917951524294882784020121077081655850191398287252765675980698945155002422931749032065026270218368116580448447645089731741413671459208326173540401236700828514142473989285506753833431077530665526316843790419944247417809302602100031732945394085126279088763229433193800342265764644841021896467735570178137036061937548335258599049883870330384196376795448483679140018038163747284816800767664754940394972396865390224794024215404538900270276169672888712427857947952384037517773146608337339463023876729355175445149772124385592746637673694393964857066192980863799567107440125850269656304589307878805324388666730381407549734117196560422202879633779182102288053209673681509751899520891106599866988852635308376193021574689011537668608996794704094180626565501352868740815993886120322030111594061182446399300482656094561170359107762796253304173748127879051808361854605298555896292320009007305425858386832568575339513259107804924211768041524831351887471604766588669691643081048193966139336023890619475975599497748510875866796154075857278141937216203111887249106055864046160999817711720672881994807515769271628929643007862934601446714418560008931480844500959672310385304161504986804480616583979716886941739364678410767440448687796901200703210042827374474796211835326232432047358078880632728231585497047082724971877214745215504008594260404510912088373432529152926532479596042573138563588683228070140030264080612880060008898641916339059982448682187190964939848992338301494710175080496926888824379178670615759344649442616472571866238287613990869687156073082856521280595718479879560183119773830270559923178823440384514602354072263007045787248526984908941526094759583033775223934767875274104420437065612609371413726549880470673824939312379118652595124683582804477350994580729223931130972793987392361812631943096481898536859944820011153261842229066274726540591773625705433761085381247442200491249632733186958760096568931154532359221388876828824545806516753584472701959281934805506372955231339033113407673474234153903577957829074523891094012992679871798411698623419548183057020626582248467852422524369020135797576596623705195199831059811253304419437017070854095177972071003190321025453984009957070942503495150746856825980488147179013195437493294399761098025368238696911921186015299676513178634812953731989724093306756560955924741143521960670690556920536104484244769384241107340114278316700302003015720229251048693235061688787988969301675060274646004080375056756535803338066107458990020233373740299070189902028605763751232647218642412537402434910892814966098167808853565253937850054761967825513451930242937933658119101886946363849445012294396359384398370881217563652996761776075431925954975718196352433073047754533528496174798515452568060805976165223267351645319250326185637617955431931660513667169056027137983054868737838614958230647405707900055095614094148846646892516754902088056624848504548278924376071069610068178033701718533779405456967726082477046081330935274810370127029477327489274967622163267185884772368074416620126647917396977166943779859700682687364538617004490235759286375303570179540375491673164960133258686874457567031896575675812847816273181844956202742753471149364542573327681432438939484704170121614743916434295703517455006492339273189753185442216417129969425228023293004442589577706722997943828242301565275899905088901270972491725795179603430027908759536936374942315788139099243210459633657286189410039768953962504579309721764800839180643341684234559596063605140764089546204553894014532820227843158604855652349218114981875538424592728130968057352907443423864220673699052499869154632693592589210886976436366539530433169369640177286993747131991421946669901881966979295073526261786609805788458647648308227141198220445748755200829596720839536965193473048145286544494102820335365582420692207911465212651237956732530440644237954334821772596401045040552152959052371112839746180348884903390326196229563405843217266259091872438043745553937279542011816164296406991236138911467050840045969769640374114967073380135804694085365777926309308797921364654985038386837841145415843769910612781475640292011584695306813986984532289610168793263478338876889693953526579427398779547470782735451209487021061585757351160236800128034370557255625628136319012179681222929269118918021141720927752996926560410082331193447219766611841373699520782459591169068990193077092069948814403436140507458296828125875278272639945513864136292080871688130706863338330854547869605583603432740471299417082864517904256443350944847645743112317048178036452077024087747337492631043175078601331693671301273570108597692472166657343010444339057977426569205584780409818108407733336140020516333981124319584817819861339523803974993276983590221969704659930364551109698236136845714968140930715263184937825998116719460774917159333173695518691040162381274478781444679099598450990105397322033012235439745285280640806709888386840835171818490211197897594836725096842939280047649454653794697598385911139823390122193866891492010815357765522498565703094058519395681997171691353579840844267086540750698988833848166559548976692500671475854403353961845164435748740811532588069232409471555444223103379511376956704623279392250007706025119580019429886442116421620329314077052939545392506918101475025262312875938399069835945699084816738409395505924940605848447018372246732065910929094536639407414105334304051450275049946264432995162753193974927723699185718024325079924404555533697823341354432641342560206353430010389981604290292175532054322504650029194341686140498878586688119207039528953193443334871768241700998962859352542402410701184621765941752268136830818831765200487385758029661017971089549127570947046489759129639007254667188342147605130167826403409147120125602598837513243335844131697171767415629859478458077885114464255059160272700568192111366269662812553558340331687855546902774658573359081661542195251366174312006329379420601306543017582598239468956494648116545055390624462725406525479479520219701418780042911357850041499690353504628814180305514470449917503150195660058811212783334496747320124448032344802415393768109674482458241312048590792681414597406667344685030610277478316041655687622785246875058882517136185256484722427960428595470210473813298857964535405357603697315889368419165369032023057368360867004267909362423796784531756321205149225137647815617416945610416541243837594873990931592744759832350597374956768131105471847279354166515395579482036289678773485797629754502544180155935890854389844222603048640124318039638378885276773370192062902845451597025581202504361006001112531944426879016772637322785841600719933913185599409074310795418593262199463893176001227990537893419265036013681605468564329550360195733799901686338997528893727234215754501570469769720205152135293736295242968882748141252048116650708513692920803795632514256690878025634323429587433403882136167496786404155767494467602605282041289287962848285758752341071805593570366530432349131209079594106357008435034219422627649478365640786969808554542081740120785882884821056614021730273552277066888500781041121548046161417849974165352504936135794776622784715986124764760047228960130941509909166246722184918897434467121597437223325499296049770726302139173065441729802795980349084083968689158617693995858034740709860552853425403750735096292845603705860686840495194231816971707615567104584517241361922202643053754028443119193828048336531921493320922072547282506580404252101696735962650496651073419586745688796717488418213932617116579362931337038775652158908792452762358734202425423140152449334603162278308242701173785145399042133334722508677016724357299122652803938725712403230922229537968296464216212785215379601136627303094078844958905770356652779293806364682136117769294951902200134673919809779027300348286119813484546377912772389286614197852030271658363892153890385366494876123770645703230255802861929586723503282627688897726101265747749494480826571174723974756628052551858982567229825928322231387358845915710606585694855058835874432169046454888603341334813106611848825000070160640513375523188953746504609479920730008226393564093104427957490663780119645396079426600626973342925246176438600440721766950864969268391001088420896521097467350634685962265583283912523545645272987766200762220371487732537070400155528825970102275280159694340899625067953723547753999695910112369758569177202965673610612975808050773887480337838161904464500674830561380385278213603474559601181012788527955584874209957099753233799842699695489209017419661694182498693048400010174476727654651333965743064219836533659962808651629686035001589764756451087762072682963738867020702851539641909240161428236551624029650653572587665192464711535810871295539339854069941033002330634579855310655236896611325592313459648329118567672303987658897687749701847989976051218813234632616533026381238636597779674033218196650540961237063293716393797098273098580710232572012777466350089759975104880602383527650773792309294417805333322727796577431198584012256682418802192089628319963930036038411146713369697692883934484912602643489065656225866057754305087290995914211323424741574521721099726489807368890170132471888351212088296396370612147792661230055051710298455668792986382063016098973104006337670839080512545036901493804379108248508281594436013584745840929625587151841217634410197320044553719129215488827160303317100705888096860077741740045533448000790761133472081969235273640713238527458709819672647597512236925439442477598890292096224000368959283427301680829481082283101985970282376390800208691203359588971802640208471924301693547330365414618962400317081137392230856016735056262924146462893386205033055220097953895938353631809795599770868836357012687031453198018120625451641006511812169083352150679494164517304039595720468002672950589025515141865466113840656821372738009284426725892776147582143215908383810832568820002777155534894374767130225141950601038921389639566902931314889239914268584159991742826682730540397745142831895264622936671448449573864029146761229775001810461727959065065756513327638101661904781758664456657695214865018768561026425419731126410054532930068397674707313336359184429131422989410803443536065645663582940485048733170982324017271144748972770359568190632029118210423261650595565782133323546654482884359061766605790588614248813346357765059041466892885776440329177042461715391943797856251580795148477966947482140233074678464139784662835425038623548630992643480410294445673529698760460906381780965306982690386734440883538016719939368920779404685751838151236544728684016704027075884547372561953243413448526099035571020650586790851913797158621449539849840235004112363536807838130275069181546173573824762475760832100962363685586976297787009534556587139739863244630913294204273696242535023487897534355193281478565836126483249809219652251694822665983111598350229169131916850076727220371364227407961799788103712048285960031433268431416844696125836521370349961702947067338352949219384325563207785965014593217593049923157358111716202990181011608029125973653269974899357811789092645393769510696083563696466690863213326136941880295444272595703675842780334963440157413676706481520914742337818101330420947747960303128191424549248893170607343512334157541582399186191500948768127069366407693256848703525658962619484927155667168903936579822601700065186184415659381217798571735580440915607598682915725975222720539344098210181778912284306859228294906958965336979663693350967509356641681005301021805899184428308454417751614746804142896154454395232909010580009309436525991080119714002351839451339612134964138194688898001976120071442328497455191597135213671725907974310079925677786269310582770500792732805721913026425862762543822644725639831757967216060873772270700021138363447042683627578086491383591440275148043459289812203454797338530174518036472948348418089340890975449230622418396212568707815284887155951992949165577042825219296362835005623329567534098433775982043055172747143946563361678752740742876275043174545445702040240125297616443664977189331182357443858658311531489950580802950206764435359448511681279140813996657873229884931821399923828901845337294565241034844143455640782713146255947594802484935839792424234164818170162108562951085686086285448829806466118341936588645763210990416871202906932496663482041599168986643798084844003141342322172181658847260132435671255852451058169307284656917731429130531247718944039694989636997447789764860923307226645170456253718186127303584059545163664895610437330073771272279200156567995378031247205974297131412981259416770308527181005745430412395587546406596032691194609795151344882808084731373454445112298739309065885320445896148932905793045215817522399088952879387755318810699658799320433970534899898698208767374943265836499721544855267749965769677935328274695651315773542066508298180688581935115127233827093691596309262621984606811798995103777226538340189071111198886737639805446914674924185301937862891276435819954723405245312211501558714201141137497217192605963327547721911843685593399532199369212206821905271682209513219410455392100590674314857142314459630317171000592426400482007539828668975411773473108593139331501837998492264158546951466694153700543359379646114368205531212665116272769210238730863687262055505672929417531371203477962556784504902094025767563058429712467999430446230591017399419204950194342657820138585406388831957843416369188122243389238351143743288346288359590746057709378162661199734253851551697684598502846035592484778391817986912902544641699068542898836931961182064433505736870702428110702166817260932052243533026707533056920333214465177063888725397373500271583232902054364176155787908580611180858397584803485810879659490202844033269885078885041060467223091712547763397713685723061243493898569915025672260508412972369997004839250606562040918969526378696787980392014150482873790588762565780550005242906273463962375623054679118620001635604198994979562624309272091232992357546653577698938170307917025324150989156587502723822494086215600076956061106974112689496855471042565167341718605952384423172487737708462387772193551279200598892369972284150048261043248077478655992069975397574636503794449698363175087375450513247264487482753623060607966152286746972593567515381575149522565759942135387833071521338838128783859603737299520010916053358387527644974761986358162125312281501812905983953014824525414557454526212738188573323133928463979356408142026972923490128392025809051491261839090675061884531975337020640612294304444275805064779159749336573401533926397627673963336248332293574440118808311169441487931690069774888539353731197173308958396644551523034824508124284162793149454322320589319178868305869959503122035525214561446118844216924570515483293916126121999827505250330517136660894229629325561994587944390318976630944845516575345625610579592195755535999844122423288431439772555595890755258422681451944869451228535866393496464909819698652087211344500914828145755889690366326804913166756611185321032017780566434202532346311476942787912313866354173873586957336186786064530482757940518147787207339807926203008726870151185361518816841879567673161743411650618881526247457623347383065234460073372622817162889218538995128370423109972683248240468976071261077292767386674853605212108354426442408346748907261219832081313662512857920937934944798421455298099231020094567862851594335264137364298862051841990444852422143065475604189290836882817597753371087945237917048968738996375479301058583517216241122677671281618474479754467578242632566208850993974670067310764146680359388099782968611398214337545205422439445551522455241105674288506993884491161805134133808298946311956944711591917897786840869588536133614652720684334671280159543248400595674643160213326180490225465760275285125888473202132861224658072848370991181771981177340303142648535657007585877191928240243301802444894257848277994469592955972212468606777310411888492033459387042315351802331222898583582557009421832811155898240120992711169828439870694491860758525326822720244649288960272906918172434683263998237135804262124608646105971833399004870047504187049651102049353551146920702328204858904222689963295155878673371674456725075945385523368891396458398811435696507927510725728182976425878574946661187957897477733463359388518783553433157953426295479867243580878170136954304119962159853039218825637687463329967371788495324062894691388966540048631221038141236600786670452829456153073971238409058476301293731264425967374516845452328200877319086160661627110437570036375367328738745704086371179028159999987344604440020963749298030795213343965109259228597537875380419909012692250837491255207861262882996449377514866130878803049455936712181195202791459823744299021406696767875826178485711637052587641101796019006942346410523360067172561539898706506777875469671503660133418718697500867435677714205884228707289047701358775134455372697471025689359377388712424354124682865618220158950057363148747084594614591861516203772928775044352420480544912301066829804692613009481229576675197277360619090261779665869900690976642138987576243880142913948476344796808881560134668212477434054148778256309264847350380057592323314004487429487071997970519324225565604551109182345493570007703556531845978446814796513821811530772630548875288508425199730838054993126227287735677341562839988146981121259394625946679856904955141339506348429211408202958855166721682108056429824532420778069985652883111328331310542304759782691201121385112067250087278905334720419164284682394905692606133725351059019097116853701174234955621182711274255570002270211337515684948738685404761604113827062978548015269111634816868528256231469098226365938413463344424544417170497559760783977338885255245716121700780795631066673763058534407191441975982229590283686750985188125833762936368366551099846156576045778966351373382267458229680017179593762740180616778490228611601706406484707043888643660222155818017629878412123453927010932005775540670517574148255468756513849780884642990151441395513660062811348565425421068766393639258795013623530443971689538378314083939107750992790930486153364018398447683464025385768781520193975210325362759481185578899652727343674576455584845847773500584259976309254756114320982475343609148161177400605922382552751925663334882867674712078462283767101016236902943646604679225075853681060032844671118837076001400597584937363086365433374197736775524699258653050277350266606714191556666864687886579822209018952788333167012426169749094300773729952380444149494909027835310866444892377213749006819205031417627865872155594836498386733604503991532255897190319282394547584797131870483762835104132591105942727578076761908474006113880300728516089589192409606779112236230653962051297934752122958996176435169353494530047153184863668413243894009525398632652004477117892428320103779865347219904572845415851815984087286169301322149405921928687997097941900213753100325831666406846702261602865900386435625505354796071937136617273228796457014025099305027914642517861683486050129853704828918560167735777605497791858643212657653285422167458624782085802950251274548988762170157841798606480912525868988002411278522219216206834716931675626416741428940528712945808484815735648963550765789242702462293299582988239118458889620332427926947766482549820405259377519621652990126872873443909053936678759008111484647276587789697610031921026991013216206230101271004537108315063806563534056868126217411584933939847796799494852187496822742272390658845509778387755469957061801248566572993180607939316180435900934787333645628281128684312706422111148881232427704749743752797941388810507512477570054397279433882880130386581514017236137868750156355935361587810493338461580638725712169332198330313141273354654755982390259358787752290502687307770120907848526659461381651342335125293268178922972376215703394507421721159565873775982457052597791621491855787691150814732731257542274716165559248418484200562554021397199296994105390213648183501485291312189142493671830377242086571379362539762551959763615879832284437399735737035621929759386760837528853926728092186397175096360437811039077166313887995329183195894938592244320386068523794567203288800376866951189335784715165708970374103094508677497123493518347674137813012176042789936533853633037174779902325593731037479745788488670535191485549697740327436862382953049019927753962958909318202394940565363488763720304196544385998752678713841495468426528947162031708340003660882632400916894465553171953787653474111966966414503933766327302267049754703510098240923019342388293823214797229705826130508155751819062638506722434142200223624431668716714403950343214382388355708805733672480570956432997054567779932759871155865332328892156532481472026179937007697648635929185343500206763632313945694722513933076937749830075341693981596664462050091364544648883344414131455202126608074717980341472514923198973730620367237541702253659346404188804620933746558189428747107610761517901465427058114037376358359830887877391963818902975146454154750751809541623214308381106726349056963359810440458510890436008752695841820807259252762145344456972925918758022603084994511876784655135839081346978582793955086136420302868361853435742897130649481645651721660936166082780902876138326558422713330309991075045952679003805165882519294596174992975706499302550212222655038938866693611102705432911960108169928238332905123359453875606234125976163171924164621710779692347830419189458705623242054661700215408057986830231946037984455224691752475014502112682931724445316540222626177592154267033290940349314896665400765573023844595294085111482727900385341195605785487716535497538773114928309553070632497023258687320707413914294991472697610966046878872334143230995716910047794119200574387785765302910379368914030761971200447818178697349240787910372322439245492881107854397549837186410236504911761446407737489230345034883749402350938401217301490967141899785605506370032951605460147220738394401349723284295068419296091139649180616873792711366448104061040525758620532706003628392288191667470852562667303949384846876701571546115648249071701389004149419396255624646222707820073404332467223604624371446114235671668991056942170763718909429292245602187552865751468836358349430550328763444625448209954325040098804602506866970033269463314558317152796197624620800189542633443056441448172153679013897051643491443128733762819639694901689346281699016735862937184446287186444480169985467098038542047821638574394754819102346948425486016633019808711836872980056105924554207288677232395731686108591648393235854840761583394921092237024220963051130236874353284764215312721871081303066538547442451130205728181239760765421954883722416510678467051282944728750033803706798291529337395828488023878824930675463927372099657801119457491945895206873223465244987991797319236605263327645628645399128609792029614690627960258306680249631570382400392999110301351062007028922768316723868014416714183132091863071816684536279508524014934360215534044594426589670464886892862229457743271450548058845728311139426809253080105845275963991035572739096442839286996385587945062720920256613591698710839283908052348693929228299402970967748384759110161341292065706660197152982109001124722391059306584622088814970477532141312437505907099415831193331148844925903669876396838395430690031613957413456427311392840698073499984178287368555008564510427558843091148647777781295418647713933295957706598482904595228438725104396033060302960232592302508628285732780003826984618105293010746735411740814210589733219880869910666138872505231021034691632195050702403687848254940529416097896539243786621386737488238456142262721314463556120570366580651540590164008052626893168416859375961614078211202892265716000880976426509622731088648435618816189585768449274666776633045564094323234114933767549856223728347524928521014958815443459149517673021484249538717438184590079856459996812246883966825999505869363386700571956697919964409109893292455885323840101498752899302908965581161533363174907167087431750077621821428566985929828672993826071571322130230313934351816834234982519631523469339886049018990568761063627431512900943798767888777636623133965111128307435444711898143604459278266921382087796712254411318576492277131584140940661991116355648346741019153064537160857227566092308130205583048918712811047389126710654316021952750051655714032393258913520641527541135617107306098555392133178538476772749624493670765575013357632971934491834252871465807275777111842058474930282769460591960306631979103393125566271794923611570200360465847108259724086413979893737872126139247372852786367829890691979087226327646389682611052447831296233813727613738019477689164311109710162348372245949254655241106518400864641465232246793625738180780143649105388210111812935670418319936071206276816344258157607739389600386697921882735963203630074190872877416490565287951120642599592880191506432436503060924244485192387881920346982159626285741350993602038928740212681605076151298624907566328174635653827493273187031286801776939138725411338762465955001438145017099893267148896220569238023855665732480710886480274909898713552114547343656474452408065145479558821678333164220893408255071599321300024463444281747785893042738350055531420523759387925655159101565970434605078596177989746944008741137721793693399242152664887960316031796662650620614263818569139403960606438837593585837846399044106270420973370160273130844938277110253074497424345238162658799791933247797136146825534509512189158193508993653586486515737988561636530420140087131537631175981878584249467710013784660770615127970109004817263664602412323904265027883390657900804986347726640740506724754757334436811709605181538991090726233708854756535489381283543146415621243832439594133918677543744535426899560991541893906587487133452044010720626931978187932229319808907501900801381576981916650864110438938525548470067215158152509223192854367106264073049550582432627125670363436476210666993585461606741737252967127566079750952961592609612035497076935708481630121503583298801379222445577659773442174269762188542020926566178276652987242826291653493437854427232247553131196623943972439195748465440460869882047305486727401957038526768935274814200211567683023855099942667859078238560601049152687413752577829378503142451053451143103237456014505605908679722820064822240398144026047616469136340044180537330891951723150998281036951559792673250552946211927872818391093620380993399928385798030988834655880015672711641091715461043075813477251066803805893479896418202662721888529527288173687994853658139763334453743127777435782955351754782256231263999086920592977527037610394538262485833302329306591783611611902487552418633532845404513084896838769363682738967256022119640832122169380147489870359737165288858708649534874876688000680960987478223854400950988340916154063676225049415612632951926313457320366362271782891759704003042441877283496541628715937213263197562080831864720722652175494743675663580389471663598132690693164680183623300348409421015826829515300196640733884921370589385960920084238999692491766920115006791804653376255938917842201565975531236852787127107096282113656036763464833233112841372424531610018182454415885002439067311237078689967521297067504116278620041686531132254858839844096765405630091503372275537956657497416379473492248614421135613726162040545965059480844938128411320484863371119220132406478370813926119459486927310646837921772957607531128915023870659165827704563403562878732557121593987972500960364551287023479374164571450469804808999173457788959902677174670632118494403687068410756473445301510806750841994203223910375675120958873743592372191310883979157055099436031428171556289717142001442335140076144165187581112195105776974966033292820712125741564953157086708969810543652584491864732730412260318669347348140712834327707320463950503103844125013067658350594372893644759011771551870603655034272166144863875662951154623540187871462663418984637582062647749117562112735684467807442404327556711916827344646941140477825805513803113053606556752755410333304196212711062103541758922064478793925222115971457497491556741408974173298889905833643680582562031627214852683506718837860400086389258903385028374307887137108166419105094005152413207182698875592480549513510196789669646339725604751293508021393539792012977188947354429118904148008636344022509636944236393489618980046408983576621229154893587709273351085113861266142999246424359059789314421032209828856970583363560123409921453479578323013375968104146526601521009392743559322795244255301370362041561004241959860840613927033541073543400625204563329989280543061483882353653425235807100389323160585469163076198510951528705238753186126838507239299874155380930685153455155253328418496610276191467504071463135170530528803541942556030306701191300447135867546449647541549750850381554438403085616011708150534687821840048055180544417980869657339735173564639087897608729973386870387038506917628992896133241573854616332055353700350305289995861815144267711516428642835786965742889556859988999288361141192942100079062186524049233943714510837642423385426582440086698147008657075999741233640387034600223775748212050930587463631876801196814431466388061602405663247377716857274021156089563642084116852276567496429289397741466239410475451146755573679069541186464411511494902588891475014524995472941838394010961880963715956965070455478022401437868663693954811012144246749362078593569199771007532523902140266322136637751777261717256821413383689984602795038423956398434843110922384874674135638900997232499796807836365296544272136405828294691818706330832928166263221601923540321762725350603294059770439361774254269004538233443629897250566773651334600833707114997409407961354196306881839067091676003409794162494980311870821858640144375266380845317830951180432872946838188255420837545477016829945529824341503142712858640292794584178258220316088295802536337238692356998947267578120746629413046554402611598750564586691401018320526625494620883628694651470387837419705195154712533945102503424131446303142826294135005346960814709771539009357073159129162615387791263906116968954258172279659229989676676368821357720287345620191099650990344664492566178866136854282935339454773671737169895312419663922666836322649042307057916121536347483567653161252116420109514370733052074259399602202506767621889726889538304908963839810624321411925758166082317255595720787849693750536045233879848911300469341228589653581746243385686295299926025919500486100483495750652354330516151990732814107246445837261781247867579877817219431863156479302872198165182535949311445438288377360063644940098751354216184387859668748054717024693712232036555563495667066057046969790814649394348890294472522332827593752675681698883536712592461198100505950308925301071141266351158160100815254484527922758271441782000590007072892166342074693997276568493359149117608258413878854021412426390559444263133225283820938552025033020446778150058628697685233839955279654482379041420955763045217769063296417005979260693495080098042294449017705415555502895008000511349893793702855412583644279730666912944783721266736965235341420741567358088898651265773905010144524380554987094858144529925398818529748316642433091353630280445121136118098716844314965476668170938600901863586455889061881457366041954357727571273970311037824325324950374558968603035469059804580090524805219475152065221926358096781987656652895186309440013208857184276942515309266731035429466107242264201241732812498273402447150889383109799379910419182336276042123295712096648980044195814436662613566788384451163564121050263499121237309751046503671948479580181575680186456961175286074874870685304584698436606446265137565940679417063035379519039560892931879933445153979210675185980974956733933281424222090810427454771158776076587830860902202981967936742213975623534393548085257919984602445145021013950681910075369181850234661866441101973044124190858102859270645710087625363831863882731481787848504613784262735399684473310432797755507736101165485896187385677181907313499353862961596302990553129544613436226392171659795617739060444078750781375494521197320847830276322479859545659055597237929805679828846247774503198212532600272376273885820225987119515047344740890810021461220868165278532503210997390708914454296879104063478906373235599328219213790993571630310742537764452477488100670645881331205355273880571508085803961469168511670424095558837349390958836118238734811158941351383529307805406721655753264003693913508428673605329164809097789370767899913128882349643314278543581180195849282875377254504318313775394101646179826838253193811536191661317279280518139507267972687124289018722507698846405259619916305924747346357816446258446073991683022179292631903145266482379044094308939163857932836408221411626187196292395484326749932248478754327496190355468488669574558723922702549241560314553852383526350808752389730129070965128819578594516557816053337278225038407540163934862986527031401590738588972353511704285313842407850349735231465486310067852600521595281453508340933008390413275657758867213449063640288173212019209135749733325170469221941500114471326906355236979650609561951415665892139089662497043235282899129805024512655064676213116436263887905970609978870413165188483706048887300507478601888978667230911883931139706583330234962133972820496218688616220094029709016768583862050464934781345224948478361305514075439530604332465884183948855617186154189335037697847148187870786185200939604866263115996301987676545932578205356528640108297245136952909841090871548909630851101798554988191830083946450010530444852548210410970690831910012581196490493143065735807449229897900646071324999784097306483815760458725706735429321340597788898623705855217237205205614350047315731350159823435072689341534060270837847653267579346480191048830868546777061117145864950907662084950470168542552271088937335678473020979847298602855021636554628958038507668388676677002229381622149463469793573548896334206807954010347711328739570209065753246144551250071037304912534626222677775724259607280729848138099657389307770964551805955244060697638070728277380073992966572391699790179048453839877268413534077275991154010206593953411520142920799065780555052439106245647266950816016694052147051352827163511944631124141422660437003496505932639360408957238637830246773800411379840147326361001263431126390140924375477317813553134996201597306848943774566269780564300502551184270682881699564099677307137179407629829565441035761519683308658539087109890857215851489397933401139371637739294787678136707765976871549547047554339745084459352577036018709144908434300255665759074622749181786148462244365350511291608781873801726694036651839127716161427785601297030604194480263605714406284882090304910087460989076455027517338881931887985748031168293096559405019779140836643136383913636065743041297671875428868773637001861784893799573689253759501032324554671033077741861776512215075785485015600600460403808821767916133958888153485390536835835657339024112365423397658088545673748305050402042558474788897929073995418826722566451559993497899280088848495814940118115211552750894168405497683171584991151734260977225012015339384659871905825822868058133754618304543440597834451541483546812250645197857759761803688685891323208833122479888073260252246598797687102039781234475182479366768436692996581465409088782308410611840928896816007171254951790836504885471999187997644447908855531737156446396563321503677153353006388026951130062064124880591235531329439718712497678981468012304904424829482453679657744383920239075645332206776354385387946571159128896702270164368070981724169828014565707214759866985806517002219159466654940714101733911549012135247135278631238814876614272013206422252454842118718010578523750479236138006145872999935099314364290590616515938704875515610290501752579023623648053915463195868672384789203756692312915565135537909157574453977984067882787370450437311782857105870869326005971482185702984457443446362339561852342767691252534292026906549787738332287134277582698753743036861324767133337725349884306212530861488745370158791732164480910388725966822730591835845175661487302534436431829083820866016304270636928071119549940076198404153541593293234952679376039935001481198599777680460351409881288168274321120312755532635911959681931760437000223395777227822789676776754293747175665570323716646532521841367635397863798115254416919360416666421744014134934964094283972486261706904821077465746394680833768216478205558909355085294610029185179304490770558725625537757212052489787929147933600614693678462364999075551247351485319637328587156622915988187331497632578517721094825408712995376793527658693743212123783411675674330649230368045871749037890999672651374927038295448153031818322424172308914473671690244716991124533772232313907212268469623438996135425684623727020516915041552365039495401390706791962940241870343054842204893603938877014013366648202935810039020761311797626319986940759662809851799819235716817297279581729715841651948084779755423346188123375382547651979386596765604694480688358675092756176552409732714433557768999789909454751207295862463783718087366020656139944933893680177362277253727464273915121319874105896814875287742261408336765301746040732265183776600426090333659716769336029220209977019768175648013796537952183073562873791691153873961548632585712718175095163364871039913270427416547053515485849654594444352868012566521749526979691389945453103743307924675142980445662970504978815307516414746398211740577996299551455308741479955181718667476430920079547958532726365902187129940867929976246545708684234733001532624953025476473690745650976121032271835167603987102018978277367918724115925392701912895082434835114872290776117982267433435766979407360603828912469423130483599276512663042165453521763321278663233259712058383666275467838765921406699693808151990956718131459262308122164003985329881546582720756311861301678630187336854793907725885653684331985652806187716564064084600562681943773758995959619880697928822444571077975372051235139967010341454266557171426397904274674997750351718849028420008473368956044791498759030197942542265996242194450179829066500729973669879558702136202082567989502948709206324201267211731912144799492650056955759855460972399018043632754432421902558724526736534147220198542897542954546515920886260269927140229680477122684482286098933914207970423551146502956041649174034880579144210273078434860101268570334887273870496978872428247151158813861859425196686450215363531487890881020102367006041289725599974693082592483870380641416377161667730936577020487319525547628253753760541038210303679961859052953708217907101041985111057168230242180385399371483109459596671797901197869665542642281944569245890045690222333489270968488703276700077176107052455037109601530065460298490510070103110348107991858636725843214018082274806838508413104205479837746138796836579347360830986329144547511177025173800915626615988382456648730723951056117559905916171776163457985736230346152597963518434759429346760528701699140452743292643758404168464671907920003118495478629224012573750850904447643004495325286210731036039591737450542409800452787755580818608277980385873818007253155720758643989512574295417462502697814949963632961012951456585594217095306982297251890048316948436358256723157448295400084701958244916381745677287832173494462975756610628104032349019445804366301636854566402398539588021357519993209567319875085876908416007240474237618011583282052650462381639011329720703771768189676527724648919676674612092539036805203406910423530239355970242860572250468175225285458771899341480889611373864090588711236077940453192423594102809875999184062360694661516688367804658822274918419315801491903181916988028884873480304406230896532954760585083215080012403532920004935164461824565897541322243255673218026405614361854176180839629514421717883772067956041181594208033251794369822511008514902095971570615106262301329719670289050862501262923472252326951792863479279694941341000084233646953496924871266415719243746095428047526267343658918170770291721457137688125541033173514829468819890079187022657360187073846816491436999871069846001916890965937202418850479724357283763891387527531360029824589318588876925612198825167294027141662741101090570516704044024080714064988288298569591973461043773310114476914752629106988538251370385357809746539047790672550164678033601816793298874314716309864805794783625496578337641768867908798352746023356762500181786562940317670366273730230923726501503186926410769746885868437414069262171643466255329161462955332591820091868779652613725643563306569303280005715654353580923307656579577201306319388757932570869244280514658717689743000692053307220325138862014097978237009489633055978558587849311423831386003901737861755220906235681003293744085341264003878153965205516755686390448447235035417669175480615380464147444507655483851899492641724833817165094163490881349455121146553699789951451412303013648308865598433415767783030640765099929137596593773285284890095105861780165363263836034603395809111783292931386020135656013902505798628455147839070634071484914541613315245887642283101055600622777141078266253896703605645481973177531073368375890351605009153672361325138128018716119307920122583597643837303705921170542579534233581980153185151260429489826201007859240316938280339604726802585012932495605604246386400643332167482783972213605148402686805999428273598411287608841108935078040508580061323437388008398098405900542930301771838007751902817105259665039177909601908319749260232035602916849270034654703150570048937755637111264094341561671575522414950016273569676725372199299736310277397549283026666274263252546058403368746037325321293661917479640045506383886393898294823698378750924533977824317875197117984743193636816414301472705131405862057213349442504853652826086444616442284385029855736431912063356549393560528222751376583300749859530518729179538247094604229850711014167901785555877648983826108043930731060045215916578730809590782763298805606422923212023207785556153105045027073177602448313854934047437970399042647219424508181069558648657392762417861386340240110604135202640266272713502211612483875854095240087201421446200392937058343619757648101926773634002215431660081416061160640995270896229218288593099178756090317108355749735181730883631517291873738669806209054702428963558923345459257118369551343960335361346448603519649389025527939685365053402798128680304499629325465471175430587610796999547234361161349354123408892945783405685856659725367317655725649769485713305414227379758298487870533624310132639587986000865556910146005634369781891592379048450417227221138617682720826016314934510531789623003430856299797357520129422912039113574659739393708186278454832703984948710950987360744921637965427060014361298906417160057885776073304230767496354964859929313969713512848393823391094916758812760931850343673001981125906979648749090125054974697682847200055383734824141193194614403562400374091100702180026220895465546541274512706706216971415872811086689228317974035669892461040487632620062190677133362752040163677097384457153483049589191650880927559011401710051857524812148350476708502011292056462410950970124567616017384328573327208277318817230624745336838689361573833975296857802502503331719723777399174039985782598352117954391300274040966709105328426507133980523034001410341683169876863854955470395133937896543915385002503656701003067221811261711571565243196617924928606574878622876972477420077912883649896709498303886417281304235898111927828247482574691101763263011711352881280103831432480281349368452398674133104779574236835508875549575273488526965135761583149375671007003490135277604956645790141664531995957497446990433598797199695053206553502595472511952572448080400924776032966917570646316344753086468547480174045910239853014554435779129735961090393970944979780387063295318989866424735922366878914374555959469496806928118729946912778432370493377298271977260171319709536331517265904039713287890405651196406180229142713622044200705353969728718738403065468974977129356623898266386278008268190047141242200315415825017019890799043039029184992776774023114938351599613235991589602889752703039458154855468605892571668778436559977302068542733383625179573643548871076433086684976164339359583201835424536080848208573291819105636411174546387949451883494308231628477397856520736896933432505025043690090985185288874927987294728224101569530387964021668409571541332653936137845139552735294207020308700545992274575452367887368694653089076496428390405765809522932770662035252033218758270193720232914632110439563616345095690255765568160535662351643780893069637328778538102328486462684668726632569819836024553474634539730348381770277517402314648559068713636266634779275593147590044788486205252992642859958724108647039265938701674029307207522362476301371724779820134551461815957808917890127270018916637309511842730615274466994265791888889100482076243255104481314716155342512488947117141460427499128365115774922007707947259860986496185911343329631755394335110930451289507573630626642462142780879169016667234797678810560325588600103602306686588413693022669739943049145604217468545171284294190498358654982488154928923021355132932515673069910031258463767012384449951877559899421892808445170078215037347024137041019090185007208205822726239987212380741019738802393932058541961574386395488647648046640683682166216295509062467299277549868479255144928450706216522980711806137306835783552442151587042260128979549155223135512831145266692273573456807485269388683007279609143202006614113904239386524937036316111221620129276578410537731241706974416256670389447561728236295672843144773152943366700427877901776942738311110559006798083210716091899419888507082116202788523813701343065850944271927518553732567281191901477623638359355828178117730416641805453045630978451363361380916347038790967555413010737080986650197366484030525081694319128439564624371539288526669659349935983418089974840846377742493511312821161574230685317854894936070562819346943759549967172982585016100150246765784126422126822176581091011290039562825561143318995164502702483307007475536540722476026249902361050453233097146711328159799639433471852799121594805159060730446062363746341889676703292149561534405782566628160280056449232276223386731127757270987083654416610184814229335329888264921116490910087436949216836020820346696252926586205918481412527158389186930391290812702408729159266280397563563343994543142194616235427381312875268140956148722245504589358175089114062856061028173578111074398672311223321059941201197212361806759123546794011400263545698434812670982802604326275936646212331323621089388712478081146130748283818165834447190472205331224644486374321898962136441487031374435112025104044421745784074075092811523087432384665628478876674176145959712529752971518144513224975267384713372535961155163523138620319715900172284292500693291230523158732902951845537261547989140169995846766985109094008132669106125081935580973666281996541935844657740768891630968823049967915308005353424277292814015761874677571823190736590935874368956444846151762447004668696123592236211147384924366497135833494720578842738616546278520547695516625982419106611044135038798227938055737359033015908199292979399480133335874776755922676625973932211382115199658351774714444572616873158903252508706873219373367750961227375728680549279733972905455456454360899509111731385587059175514229488522851050010837346085657900295481186629618299978760672979087520094593705489493599065697595352316189911229311745816603447111055379975315959071772237289835341404214597891655696311238154701167011722306748205790613780919089163994209968249006756096498035720075898352617760091071676370971913889128183579721248743542056851692355658862459510478246610728354618540563407355251883157586357621516488739322390306551714261389971796832429288582707009526905473306147378491116502485130945450912603305305497396443491704809906167884462567678620077300771232609675382905930472936089661251335344563613279076031597658615901015884405460862593306479526463377918794225290021718456555024880721684293546737490292872201906908655450396095529259763795343788944249942048060133939242871403472820148983876210208830106549918026481709848453797859052528686114316016252575345843653382749242051943921022906230046073658654974629223770070047450599484666267522190729707432875859846990709281746679934468652305386429921397137080839274376731218308318294512386419194750572634007350638924691827118405847763903455050879699988333004409879186072184653578014682856084196281354233489114374739694363534785642369172629789954212701553326328432572368750187294575496438202644243174115267893960070768483886015463552798936675821523439450238681093179827490758248696223606117671118908718043420582928955064927759289820285525402688188785922131771261189641158762163882845909013893183094864087866193081708679667602115756900642006513975026046461163026036059743338757549332953808223886183182468742654563055376015258463544421723037825491058534672711364779057972689037224033210258380759191227952438040933650725978775930909263385950083211823334150734440958536561843912342230320604898687760077111217146029396636883939671915386594731545287268963341648556369428116381153348472283132434481313929943455151930155898359570555859290007466799426361167921449154595219617372012958302251334170171951388708499010207603969241179493394755469467117645291421402556429703764404347259928659736662617346278654001493860392347932772881771137285170274148919217050779710656543029547368531518783357495349280423880578899354027744908847869712419138483130690573335950857181854096095130623235719826584874883179688563594525853904539388313443339029461468269873609180343869752816571573431212707033289791020684143470640257935011198243040907296186077415870796486167070584835028488167475387359956826856533564731357352229485434638729699798598989177590921499329969262798571252201860931724303460061476118821510714542518473650894279034137423927898874475285520315850231897848079146430232807764041773625393673711196159538202705963144011447876020127384848502076834427714104333622199459626256164107906601151599318668176918371929887916207648005862142895427224208018825936726145413404530935572267842571136771943483103242128016092651821668883105269394184292365902381079339686639259681846778381874280061815511882758206300272408834465354248609466816152093013081564287074344916807501080080990248660378418316968758960404461222731782132897982542722027371135352776767610543987171357936591502174373539890238278509238539012100771109717383826597233632330728886404183175276642610829497099276144377388765109505342607099031130707428445279399819142676244439665879805613047427878132037459035380338235159654812783578259172856014323547135910777618206818790552794502499331738649477429387357791395501356758159581613346858238512307614133274495668846663382696172890440637167571533268853116347093043023363213788723108006945584534526972255513773943264605035213531677701309191680502394414918743604219677208101568191592158883270756691728157325450039099391497124260339887120211295623518589001094344650730686775691141135176241368261569821195568108222259921865051732948026365330247148093175584238050177801641997607273461461909898500089190263171742871451992781697864528510988607875514671418804563066787585393614002815597796274867057623520631067652767847203946921013091281839671054364496445256440547307639476175553098586748905301608487274463014685683718789508661288049944496306534048894477969561267305244834145566247359797396570201203266040329304214631427086153632085282499520314729675652361380959360205483955027586999062785423591534987525231922511716934496551088361374197407404167463496095317988580072463509022046607607876681305136964724072741087387481964224775819307740140727003383821110248650781342596617044707254086945384169946229715456048444868091095495424731432287484812726937367911248640894220137100151054393048260486757649745838295824554767141860779746596621955156249953532899111994066297978107141660491316932302317871350501758804519337573895636661323599386540335632513183523325928500148626797004472894554418220918197501261409602407261652800972037395638040984264462545862860499955219755705030862181063860186403905311582495332587037591072186235859947555890670879220046911777885422670531484004433147775875150199123934825145320923033482899199988345943776205756520809364773622767697043988546371409490012012458599107070264307062406012874558888880533615858843299712328141999512525013882994581496159862096706440683217054822665774989550079431884850492238299552849738959990061025864415001500376190676475627203709205930721485289261812968204016462083979009304028739427240512807647261378296522235571004456970223561069830289021899168808537521414146834701069420292837065652389479870432383852080388119892264304208175010460964756730952609149361483004449741417170943567845087316832871833266949452987436807544218240979470534047824938981733474248966577702498877058321475653958132521173382435525362348154752570172477289142627933389726452933434537401612372518616752091715620495849619462311310315666521960552914782054426863774854840855216641789699655746142742072088593432017049838267295031698850568656044652102770693877167341129901760810835084370775118133869404623613903102247094358498936642053865124034564656908557841424644281104593315394105687973527204060327206172252075036286465512943715522763237974404118171855497696770529222206013607594290642330414035876239658126970493727442375286128256747098671730255569814272902148689008752898337083191361092119177072556894250455719781092585352808580124611354558968434802186610130009014689755785696583836036450650291828025822511350054843910944318557574728218813128163355468955686328012579208234906928758421036385901817167737610283209156526167582120017424226539919381008691624214676338154580527560900257718344646522469894450826621813773550248919876205707015928769960299812947154147762015161475159092208768904233707914876235101480973008975171035534875386224239262133662034018689476861235472440117030031893631684316400281886414895991879295453581669378268369350031802354571643675894518090626456513484174838203106805545830608671228082398808128108348053523900772925156091382805012439745165866516547041727111196431256413311316711393049098300749565198045524016966693003374204110335796805438537617153490529051680590686948370701314814217846634812644125101279863731047100172158880666374274848840840812263118029658101930003075351143610870865507287492080274430349878007272517362925905503626811846709764300003364636942438601407022944923408225297511991839235450796387904862104823960167354531787110604060630499147424555297351420641866560262489455401529366979697723532409795497244757657098855881791848858553873733181064703539477012658801349797005486178897238724019331538225696365363786520262113888973845427397852948361016889281098307644641256414735865613256948505379637978701006937906186696552220875210494275546613534831238174431435889566622901554176693273350882876653208339034363919276451727541107719650131567037216848961701113515722071666610343458336585475979958564474488580516449105369622566670578634015646031034350682879906007693372357056226457494266330946359857485000442510487802164891089455030007933936720176135560291532997895911783620461812007086883158653500465273799853943410488987602289705156310917316189182014436341745279829807231737593927513006465735738920903988419368089075346049018975887780177942342849143569793939318841622637076308889513009347272947880104755937666417705040474625254426233296689571548208693578333396036705290592920852104915004843551449668081019265548387406200091460780139011717187872675730283835341186457164599669297347944422498622374864444178059129298515782012375036904781668243727709696371377619086994861183498626507513877432645560411672575790881335383620912238352944677008821216928264574922643244007046691352205613022710846669614979774576116644155544349024364897762273821239417097164977820787904840362544545370410628322273169659546780325550038742737318123204070757481830365615508049788972663347679812582903569509755115759723954482190335723003979922274314128598099840771969382913610915745924352149287966093768643404597875782076022560344909186023689880147186453167067055002064106628450235284537259151239611719236943036887867930948239079985037695195202519927743998309172341784274929378777548704503662072581739255540445661494055234418024177812710770747786845128273551485835407921198032913704482038624198238758852965177846519006439913076833951917185582506673542168049043557865070163951671900926165142465991582451528128400358201128987770160011764016694785286320756508871639967271885204012242547218847283969664640972321710676187601264181994572228815243583291948248031868869985133021663414529227651723091588892064486502427056918008088549413949465355168409665874862644647627522037510817390649305343596430512868819016849614906383428508612629430163766290786336726447703021720769246829767958185969722722660468569638104520985436099550407957593747909500622772906782056387179132594522001224616256316344574613488311311587307401805343874457964086641007100658238767475019790164933127352790338168234071868478723497072873882483966899860778187236320548294072104260970370727304095071565826913724617311123287730851754260494993215110991571529498898696654324456537879514941350863819909653411238638987938272175137918401176543965601124271327306174769047770423405544096381857598253444024607246251205669993073841598523801163169331159074250156396575988942043985778839049737916885671412838010123244458402326415414750710124930077264370554705437651844244425022596779999768549982872344764634376672921884244785255072685847300614235789059579653979457815687860616972183333645732545551379890158902563658320758048692580673572016991927191643199409118426643673049573912346998752156210652977150030399729326256422176004621510809557819992724137060306040383394092573023089166037987313806867580951191805064849162770490540506973903748035145877377006788749736309235009170269779162300195374159297564128053597419816840715699962602287894662875040865826886232821521507262158508662960652838638661733707048697059050094449458867326395697012915120391738721577475623868192252808227762868481773621806754316808570508490509393893874901498697998586469186828807296079400909994772237388560455012772678899406338724450046508703958028240541321591513176304326525360378362788086775579334999213685527302874066024022536003311110239298849022145456915509533050377398980639703177567503750557763521863660069025143389817284622021089036907396366902458727175579021615166749545514795017823939553881891804302677593705621972238910943063056102174537510146920644948953144841979889428286951624134270670154377292246056501086506957155031888607213774271840401219770060357610152497031847062493706886460166953555915984018377008180561014752343039096237421876690381094620457446198955123326020312878114906438691250166478712184171860417104374208153257306621680307742735209544882269128736081174559286962540699023428282182725059395202533286861145669170454684329244665577430529345209792486810142414975899660249588057368696921867766007785184602172461266785370960936263733651185869854390174177193280059961759156736366726748114090800980703474709238272071597529284189556545352508125231296733255748950057538855124780075693536437757035571048482769301587449220389469468197342419500500830568925363528982454676147095134860994743540092127412011999706600910849973383929312471311472993835295474964498122314481290485429793646051673362121817908982235707895914952677143271889213980523549899219408973807655378159066080129715037173540388888571846964627038814130397860000100393108386490345825353247331006788990142739772922049764890721650719781697429439701276742051695284627965647246533154210129678212732055480400042285251756295440386698336885521375564177524428615925520708024263125885092103905466770340800096232996852631337471785422860488388418595256551698091775347963889331170907952254979001031375476868821917069604160158152180853901067048232257956981278444478426749733139346210517898769762870253347064787129338884609305183765827108922653124733086085353788558057873517817669707270955365878977362959756928204452543388618213723301363068011746035558883365655850658870405956202835390465790666065667213062084889190710804888090483693416713011681287826774373111765198860572677395625708030905456075119762668346691587200297119028020886732950438689869333967816260915745547671955620737121324230971824434907236002445485832230286358950989660408582519482238337742274756361563323203447308612988722391934921068706265661948175674345865228571723335882493980500799036257840680702719231318776244743598136794623749679724430558332102044203336403929094862008542400129423347222798825925740799066148402160927938082941706006706811034224996903354272632175234100042274348183106684950205885277793974184248682719184690954168606226966507439850158548546996496105863130669510934615412725007738788825716466512409973628339496578743816623997266417379196717781061944471130546638165753372983582838173687527749385281657193452952885964720416682003666791085477115955673202293133701257914261437462199689638898386411176621888754756973984406626761226600442603198558544109140098025925859033836013550104925012070736490932744414506167627208656282359616377339410993872211311157596703996611305906569417643741357165725273632231106604334628872248545324425738182445440059675462909064116092390859798299118346775925855053910584016870940285848781388176155999002478522077323397819580375378136771055389862207907546685423516396167218455489454730795375440698398740098343142043949927094292499275604232847079055492132188746462567878070159141817556861946590205802469345534112403206056754299170143137274007283043058780183177235430791136694112668832677717824280219739291234738400860014856058564361075584388434997079826511652674899882110279707857384658126909223084755524613713430246509038818230052967696361345332745522018586335098721272658835957875812540421012365493597315110740221130364407707288891858938295429358975039186351153781531022970569908591995222200871870655577976827292945271336293791483109333028348729657885950389501104783045195979575773823934369587247433573204044976255674177697505076947879166643662802022909118484902074785662880328675551309958851892722988111748823828481782025904515280840551504962465173801242494824704572856949430492152679860898906980481165784739686544994109125669994486852952529814851214514940233558113056905633320523552059632784626247620212643239981060564097143639527158946731296327268127070438571661498482212683750711093608397483975518175675921295965828457347011435361120229872423535247829486575868600319213752470212227793320335669711807740782948414585282299466831635609228824786990499352556177784821614723205463392040565000069932998886383549373030262566522483973399246922864132694159719898853753707269665130952894017398969025504035230017456111470766530016696968741204029690461353141906026926072697463962987213010774193417699283250364707601858936176600067932138691591863688841786104911136071200609032285632376337023678318283219257420419464815274390553993347511009210503676215459061431882713570865570797173017245961838309290071913829990594613680542985723902282445106392399692443395231333267064847975442077641937255579956775191105525714103967319287827405625829818849851072130934412785524917814319933295971386431712147302169003616732769126560358638822843668287914774267478939638337212336438774782848818625385362370817529003207086223443912149186210116810714888224882739464924838857528951876553638166109476886555297179620079751150381950654714118711747535167246480032440204765556194562417858859224203198060119457118651803665071650394490592347997592273892714374226001213377393268043612979596673494058531372403873438967022321878620598574094197319090542963750369847549744639346695388830943686926033048377585507051607024492507354751481171179212113102665663911555078907939340142459386046876430282343524690922565107326638095657960452195586444450371852173393881958172018681465801743005216492372410775788773747724587009920553606352004932539690901433544585816049618501662928393459647930348349915267309223127705076444280898096062004010173359382490278807698329013423551545344220062005916177822307126535313149741985360714507148717775600843804047409974009766889618029039656838488808952086631174963762226843614195484208400317646571199992542291812399050841052454837659703251941613742693188456218207578073549718650027761254439306652452225708153150532390400379449183666346994966288011951190310928502823265996180036245833019423076490096000604525074430581998689445361290565548540117560663019349847204079548950145120916504413105947874723854490942260858743744996935546476061329700354949300300063369801430601049798934990789527881858267159848075795056128675430276796927707327795872046784558523482640227983253296426438662078871550811474081417578741893367635187622361922402045822541332440981414423845607652700802450629810390871094652445494680419227296917219471690298512019606942389914348311986829879892757931466181778066158139620051188677967369938262613715446390383523771092855525298713000219126996338151095054272669199681860079165178570541170684879167085353373313804548723807250050506933127422023946811310534478442744443750155800512852815961482604550783837198027617850309230621085370415483753582651735465911754963662259589690784898262620374073499772571331923096731593808574259599537809924141152032492793052696703700867334778245393014408448159869413837453971705199149497025579669708461722665170509114943020181653416042416842999704830320893662121363963797094705514968049509365753204729607460685155453997467015883777115414350087578098888750384994815721318998546988000238792667457658654430804497527300346696482952619749440950421950802192675850541574878872228738355625783492870223142950932374485305090542356506579213809987245177553892878934137375064280051636545976484479293233704843719625785335028102343492904728785828101620951628739820027201184498111800451244482717938773420010826295882795850469813234914809083613071760661994334518205664709475601602786463084239884826194184937363427001748318744082245779406436726327972688338955206938083800099825043902597902488880981831373195503505411493890443148127881270013488069947395903009522914099880266130892171809908593446699514909415942081506970736259289632709540628119011753939476974499854763989875500546297537043208047850873097344465723886801481080359685122831608422446742264944341671958359445229746415160995169962681880582959245749993648205561372645918003585332749593719187578951174344717279032064170207139494940293081749840692488271265113145328853164601535611849662642126498018815189955018988616416330985958563045737962026809184006976017261417606989603668723836076934942504382797457784958849149723754161235680869787878978098401962640737766918494276694213443709775841747727400969754659378095003798000531867910249767709730173905319958866719490293590005410132433983150045667669058807604255130686117549414436795909097212410633924543595378758917162647064988276528120655566623095575662254737984005537104503992073668425004036474270240180368839064187646858428619097621128482916533506611761607881602819482023371986690733781916873175814166023024007492924309569754955744385219238746561325360081202776755878023869382367844119485394416747838809333288863666320206227147136308714439669877333609619193361846370377828624918694487882361999812358375883394954181515976474655142559989418283022679429702935106532448258855101434231738661456857179101909269367042249618541612290647773254036623671231260015809405281936687185954707267063889499383630282915166715941540343583819528070894748097619744440464220679314481106447163178488967782747046628830851323821315846589173839125252134509097532392425231824359545445619061198173593403769195185613498454654823410622801166029338705924647817514336238076047712517288520369583910645881757084281163200679519939323378549604370430406728536054056771357071964180043283168316383009466828876039948377759652718150289494752546170938263815391307096467183441953625446337897822998666656528338124272704230967290319235256580987332775830718129427875168339088670572455147995263240419530120488436471490860700967563132110498883224205320332638081448361372091818855441987207420288507830180643021284317364087189088769901754576125482851442565995748466833957154824520295520452825530748688306583100755579521031820916366427179725056876116686032701490335704032734504581494095209982055316105072892614285361314242310314246363767161719556421833703456591522175745408083127781595647081774377822924746203590084740073944026369615781923642400140263681159941485346657433261976536269975898805108081048575624975927199390000009961632646666838481493209376667839800610207473554174596946451141502679672131476135092877885801937724624464682159975265836519482829852303664931405893415251524012917086524188371684260521484369942611804958303031858724728545331989207212855947475622175391595845271806678362686280512681758821723256389651969468729523436826926855594192121473405830650799119423104497661305698528971381910777145708153393818337155375452992952791761112627519314501340842548518903141421192226581380492934176742127470192012822459546951560882250363492344832062069476358908492491259544919092198984132924396049381838859724766289986972091583691348406213322107269469664179868551385196986522090566105760602146185113236849778623153637954024426052656372405087692415928433605128045763571301466246551394605485790047892018725623704244156238421404309812770884953070691133144672219354216107440016614355348971679386940354648996362093556479886106190783768422521458236126672886808349948692105895371432203348079917653443818925725290591483242412486674070218417130070509884622605824368023689331626327880417469622598539465269379908410195187823114023010463205497725745406653849923114888887134367952316325789348332780350972522547033187808036275727020037741324542443582986901714764214792809103410556496199256445147876093747171353260512966258977026828393487696814901644751777222397149189510982903079328431087759640973547018924123905392269157526519989886191067899558889577112074565114204855717542840451083821873820456890558343501109271679834792162628863810545729094119375522755199290027345784546797020061601134296376666300542445163175087081000515364429612178782159264463330889486918677376045409703342833566234403907867901411707736726865673499589546405236966194495971026686102719252779121205295179594662385005219409482109231023915233612496547107932657730374812271860835008312331723368107791302273961833492167002942993473359943610711575379985847416587005285991294381301169327432891302603004170292676258860500653535753153187307593018283393957043677222075574615474562849288945140393796544632582558062725417831805270600088551563828395469240072130997238575838269353388019553636132047619698693251284295752411463196615582536907095449059203746537709745899530795086006955444389215859912936452846504455145691025226477772101766024004354853266114876457893399715639839604696433249018709293750594628474014917610520525039237325224709900506509317254527305247505260968519852534855817069480456335822455661831564248337329130992390646105416904426452409725545362266854683304312796750555822331100669080703797294820047564840470819363416899045698387047129410327822668446319389442393266344192644627541750838259726501718122752779115581168772255648351135903237699258486138535015832754175551508739228367969489871515758819392236472181614312664573827101192288260557732603230982560789420881389829199115292903755555696259914833345164195247407576567892151394905988796097242296469225679680916575185793741925516271125511983429905306296494173862553002205173214645651885749325229427532165665583516185640490232820045555941355289094180785599955550549905012669011210063760112481745831409784966817036060416014965954471230737474689669472413969650521658621049883368286555078135315514277785287962982748269790856453183303504256031779397220798297361852092178425762197767927549196211076655333627104910655623339300501012662360640867894074537410427996431627794196961406053720788147955547996280299615498782264106614253249882840563185599671479774534380752853344579255636529412643612344172008086550657111933649682600848895247784681597705164271493568203359179283177162748078154401544719920502040829876602421115822580951905013153430601011053655098715750895313953540727258591674006671533397083086955552602134754549093622633207456826136314508194158542732129497006744616361129709761996011892198940949196470865419692243997497359545306194279131086014292369038334800137991205149680685952826125469393887343649092930479062468649989884933235037667231560054889406612363889087988918245562531418928823305284259918725372825676370786032015695860937717363692976355952125938144353119160928241829290416201178103986136085203613169476578675997859289404265350507306077884454936897668391071982067311761170637874851252110215012837332335436243706487445633268701407294214126141578583819655514129940650921670144628012343328725840959754236971968952954112187566532204258748526092761834992565236781295020304670269904018912299723806462044238448006229131464238451489604872823180459774185700580241781294927303241952494974049341564729218343528488196727508112576782119737276055084441636930667207132253228329390348660612226639005045602266689756612045616233966547225753616251200671365830197771783446167300574045696657605910657100114164735993231257934310918101237279957059437761596709899276852365369937481650664427717516391597933666067337126269081184216937382069650869332685672783674223777363819979971985783464194126517421191221668070941413284510522833805406708986962782679403178723190081905098325670708508502281216413555738976284080744058368920926118375020348362457327780716597778179461635994718234033664931031792424610254041044980668449596283754307639569435874609863857456951585376565744178629248695330416618217499535963366703641595216130542992119948031658033452332115986056662735575878619771412113617281497999611953859206229825197269046098299639507187401578557519326079233489391643870448874451745842610546586451005430687087417270320838913658520423280753713966164128094428370410812724554393107963225204515540241070742706032947094273932172343179483151907035864431909962095508639098412726466023867122467180134672971595500184514574032071767335761669041043723387945509438207767808163131049108002521774578246521707446527879108290733900239536340718801471220522140215399101631224689985086195610048621493173721697245395352184374536368814497943581376506224108152403315854713854365800572125347895992417984967037292125328892311102801806982687955966661932910616876134760127357106961418362513491476772864112185859982763908016317795283809545587829491713068189428048121622836910514556919627018366592350533516483307694755542077529150409405190181035540191839178547813399790765698267611809420529364728853714230435426496946828152928778239740631688212237323744568623151398372583970689910936449988950374421668157449006566798089240525590421706641935048816409596391628243168321436293614401089755855067691904977026814968846369662836100299442637293757667957457287491391917603147753217991110209376451019667941478693903830533989934932993391664772590544173549043402872902989856101035947620348894598486817775279745376761775739959655575307040492731673999678223259487874059429669701814243003512541829021652127363210930823375064631626414923823595455292065492774318872262491763738171334465184798088801515135548633879143408620024253323592296896221237090088402610478255570589529966101856028960633973289754720627437700132220797858821312600468867645190073959373243314611377608574663891058377414738292260693411364473443818014671080889255488742353442381448313743601248544016766884621350526234765977665364690515679005115589257997632981115376287507195884317938258173166921329843468872381579771241224505487909139547449757281319471996537574727900424540311494660658017917689981142224157233493323425225449144990337889840035378645344035468834488701709179675190878066865656127703350754693255487739771782574987448152648933300370309195490773379470251261916810538807456674678786128953492068239904061221050925739381718440531615138398514137364038852808640897509972555645653025364592826031248120268642549893193323045885293188244858323439217007914797944908683859630751194477385606104015452434366529960923664146046098275503075606371459115789251978626502859739637236976329279913414971543547280289663777574648579564142706718323934743284939194455249840529134697320553286614101083856366818254735654463805742638551177262022623198214541563836516999406232004115831743549208446095861554294717966158703406780715747398144178688523561172253937476289392566269541532815266938674970317625157351116709166054490731505423659796963723533859198417724007176593889415905126022119557237348275540370158755337029227667485430491731121687674216295387314828119329341036213997914193491696626712896650254023849516510747201108039879798356315427365689432090869616915922085918541887438734535219770064421677183490207074355899796488879710881529204458770167924502103955916254223749002273377345402616929457615409985647486090962790397865945877984874033577711002432301800598688066362736070095660289159497530761097530365793633609839750890859513601156517371310883063152093249069573527609470451357017011918924788882522812652512649407264268109487626250804558246204741136262984374480745936137886662184231723389731576491296235226328036498518808553286225734151762135003757391584837486864158824405061562353307504470286006689074375305737618642452167403009899608866035364891460932646189873111266413966216836916488490935627175640273129072007706408700530974163798281313106366511219024399911030088878270485483569423163174979072674484949538582624173907717508695169762555838570518788001282864019251588367022075810627771266049611797895276703259769970786428542079788604232171387019842796648135064284835541030938760732070490815443090742030121271590781333586640649439379493924437297708454928359705535265406677085849323390705257245644907217484694427290042623438418863346554983647670232383107294625625326515838774192520437234716103279442144924304069082614819401145746521984035738697125400871634734116458760772663464425312570154990383873157734291514453066167664928474381950512194894888359544999816503666146509566939638328632834500995164192802421464235570114008286897082439994764773535589894670918593901815425688801356484197686184471931496425271003593076189260670131041009780780963125446954956399752638999430505554075958878885946831149394247403976745877056489412258558779849996048903032611720894927983754059347413170386316671950983957244768920602820372863959421013093696510557591526586873527488390618749593242374492626093780926083109935999770434945950307973604425994222423277773049209818449200545897836097581721604284925605666446173643082497583402956710814992309620540075933798904722130803893928112732735466476141662335389137808278668771960684647578488401622992150851636963940333557824281608989531303442377747348711731634303911959770758122944800696425160029919444365620770040792664657034817651562669216344991929163474235896840842644806257287307200895596810192472280867687589481347456885927020784590501716305293058728925909213784888447877987885892794729535421793412030717989806486372549218153478860976993518089867785531080917429201300910225072246147533661765808746819916168425851290963509646084976089536754871010431829776992502431519429691257360914521341330670749896293829658377977408480315734823152128537224019858573672684745688207891382586132086028897419773393175226557295506034690720546055956046244060661906225585256743927390967443175281033383956182479783958323386223016676855135110482677685037056119532466688121621904422766521603155047640455053452040741751357926249634203544896326387875531661721664353699085922503130582482173077303866064746870015910887074511766130474004315114390077867811939939240579709160127342878146785864085071837075241936454744080624753128820549519583203395091470619240924946977107163008534028369059175693701237962568944088269756639525277771092482831965443397032018036945265410445175606575764027226124710007458212486446273454778944080403613328250370357292980033425185161409181374834743638314897434064670264001882582540826749537589840470528822034499320891429556166893585563430244208590586224602113047965225793164405414710744209766281654836125745420156262229956168738187020870174254498991730275076076561220930373970748289844587203444264420135117992720818805357024745585319141537462474990500031060171033368907331019970564619750521748854795762069862087206127010078378706576374824756291337773642585001359466717868980825439539902564639637635134120065631409410237193140715445044575665252138619348056687055589851487547868891191443613808752793435458917871388493968005010359873591873707253162549045172113177099526603630744070471465322055515276912558017232098299125645422608817953401873950940455463292849216637057946153320286230170706963260301943478405564878783958745500550862407044886741620670250209186137619977728894106219226158928008867293875114114907228280401178881903245922826122718507854105807484727441267981177730328819369408890670881671505683174756967893688731536303873322818930336224792926842291463077857909510438643185611725112536968429711153882348451192170335188070346624849208073983633414921030978311415843471308812599520164529991171064180563816167113184732898711533870574420225546995505939857352512041762629463351519688065371271843620716465646990625301784288540415886043042767129898259981232119266390246016504902433894005797066822755735542720047950621394445165944320443902422872289351081977689068351165899212488370337874411335252932542686041602918562765504409269598113500189606119620863770849234421977820536520808230584823514310199796859818615375010280997092786494338337462171570267095173303738295139957871159192552162437759683869523143599102933236699823738449066531612367049012426436630979843012183956168862878062941018341175108595681760758998466561086175120105460187926181540205695980042415594681354116272633877216124325353288420002079985269561604503343599254645172427516952996226365258603196424848175493188606877637606863902456897645887031974811322993388979264821457773419639209363134451405284469062141229135583975145740041999929351497578304829227453622720060220578715744530677002088853275966679145981602022825115646603605700871927482891475936855018155751190048748431461762318982424555660297412390555981032682033486927822099697017430456373695146472949947085603840179166779756982607612309997918139536828425822269230740040682992721290877633861224619082549031728838690309736075525609914783932858067835801749325294881559542111670216685009987386870727080203151423967701200560571467120853617979746873954573577882026452279323188269217072012202486860291922673850428624547933798463986538776187632753933626021228652881335887439803499745252179567920387721896893717104753891180591949407466835035420064623085239758316290155801908659104200282330405860402874449484829955710323293932193071472937245896668343579998612574197419903144208320906052238756548621592897182659649411285566993721600949452393494389673340872520773462050057253347281104587877618058637069357181658912348364629759998100534363373106735930246739037227879097893316952054588945464893818453866227154915472492320654699918253968714110214107711340958230940464521625260522196399222479502459839866832619775829663231392024140711875296389495857086352840389900252844992856138845243758545676573179118747041933338239094376006454504811277025142549034521413726698344882774994609010452616986279634464386538140454229480549608325464355618377070326936375364897034020415244409457103588803652468875453623479585581996708656713543731824193003214108504615517602261419679481708921603339011621001146619088284582353856564648721339268336513052810848634956917718081194890083499460793303944156325754089158092341957795783557435003476875894387073356294613558463461536776696396235121105831607148424344059141201671558305932807002741020061762872131741758379741816546803217784620300792211690096034511397995505444488922442988178398929807549429152565018123860059409431200069071530464218068754223651064018798799273113907936944162809825304749572920885907555258684577254047721041417224529875125284917311387005170152499891766497265253533618096237887995118791607748720125157519547595096961841137958303008563738693644811289274998412436350385059445780045799453262792168773746830105313198853743883959748023755990385974954942277534495281617876834154491700947260692721948629060913159286709394672287373833540504214264068817533630155016416916410624429049093206590908566960637310666562750224702787326342167835807862572033147872881256351477909845099191916904544444960281135622813610619206622350356071552700258651864256523675948721430220368591355820629952192960722825122381900829748094932443611914554513861496188428587490697018624511650885263879911102713062439035311497749569574001647890607913409954460133375865951897973033216716202412222974144440909485900250009487747758946536205190372126470041662583560572188927187031457599198396972346076778935400206812718246544487937654029021596483583534620481655358523584031259874253302487434119011237636931691216370406128391720709877538794721589093401435231769248374665189497222113632711979000826661497871105631422518293782482165768298361762839436152504410479488172041981517714795422346164436210863986285976704632770331806589084618138876889368628942026984389895390666087608841836203161553928838684274968725636560313370644081171086928919135699610239296135770632243447029574181634766784422050863095224261518780421920734090496540261991595039939299819487485724465978847559632550270344557765375150480314227421698705646844850962335089000992309201669432418123346107216358248154625885167762539333686526396495529366749271731348988600537260470208611288988490165078446610270002027927610294917528277029999398473167099027605696790400822171989582855753925696911098876648974571071224767405684009029660208658125612789226766330841065784330968105597009417212318005487060393687939365073675026609498178169858608366650280821615604200503869795151955712733794910526341554719554640855511709795853703145168146527818597737755526557262605701504825021698057798562060736296979313287226407701889092800476175323124374434038972915202376261972729955136333792255740238681427338107379785654760040796872511782008703815949205402548892760408146627487858486097624926329419828089194170318815361491565270751091643291558421972067025964788846388722855393848756642545793430328584946456136330701631736390343004679086405410795244236115260783573687018948848669612426525159380651231214044034905377951794801024706302444361284592213665013375314366116074749464120679479320097699281913225724726859826884758655911535538042889565608768663293064114996913138251875460664941326575368108517617933326763944021356772522550478266473886668090409156616632032758575093748597681717382032585714520269941730820583457481396633322087867916879511050937332687726757823059416818613053205774762505118020878716841921707148625870719875488518687045071370952392963868017851867290217078703796721502128514724532078848703577371466186299366464079473467424980967127517110243353536572261046436317338951789893884853140464857813037004699214704400113397588532792717965222130248103118365420725309633959792588797943687736776160433894172185045717138839920983471099289765468775834897835409958193018987874562333215400686621162152761938926948944216221792515053686454198980626757917725889570013559070831541749569729196418913872831174091695889150410070812976770450587153959702156835884855948032583561137174530990192099647286738590499390834960994075594883466808656434719749261881390097388471252205412005525346421072806170256503632770700734872631036307396500375593026042273597056398676817796602809334497203618193967964971130688746517768188280330261129302225785390119763598874527969541286844480463811607668005435802378861355227919516479460292515319612754730311766368571938956754723255639640021870274658532600092759743351774139968945107389650565172692438841319501912815339537302591431318196463176596182258095618036378527076863714999152201560165332089744395363978725099828461644255186891076735420192125619885516271549967655448682568412682877655726816706262228951888511034561986758831855341400844294493471139328430151992949952468235297746169825395242808677376470455061713978353173743504186840360097375575135676089497670181779253513055606869905846331649146759272445594472917627832735953129867391142636342768882374926472663599907219869643008187930218299848362086317283216009408002477296119591884919610784407231294735475364414451705921060925264179401646471772045874587374336121990127456143960852154614654407358912213455442600103615219572641602952843814442839910866756539932062040121453413695139937188385395620385474924539285349346096451661900699063103117690967615020504010114765622039600054271804039314861869085472396944478715431387705983293141944105969917878884378960090915399234727636724770766860966598619128964656913427481555309117669484843185601983763152070901214958320198073267500436264540852413691295457394044716785408092855613024566412004614290261175081396791087839476640542708981369603180140476310626323875787137649324190402285111913037502576543610464536014583631307357675808521523363035653070518119323143761274902909932395267248923369570159111577622986061223990859697535848566645068552337675967356791464791603834042948386008223388538295784067720466882709156483932221400869534456721473867711978688217223525023148238770145203180453800866684136135736690156208891506945846744497524211868540364579708707026494680869369008226594224507285645594366208742442034285923256020825915354712538522859732064074544777123849303852489893825620422643763549958419808478553884166436151713320981292578048831405781012174094974495781636152267722155101319520969867460458368592515430336130694764274946286409294315509552107447572270540572175489570434313290467511581829283888789300937547652163699001239634738625939860195403890784538940363009564432331923073567772041865063640927939933002742148334537242855973837763831289477063272728960233405451464306137668822119456761100085170367506748919454226768822145934611508171206737292783842509827298015817973142041647698524953671992149951555297947451653999888438222038939140696496158295918288669740393081648303646534649105724162845606521076269446953420013437430636528115379011313455084762191114194741122740456671388951069875835431309565163936697451098465061715555684278056470072817474361353412680212794368306851093097992955885006214202432271217904108339414155446690667762952624984929506919222905745478174546321407572098708094712291149493770761008499228355428507198329450901274282092863442623334689650308787021434873092100017718564911473107405194353674692971573033137500295258766795998340485680120531658894371590462141072101797678142344871200494847892029048034168926130065327417934075403030486092948093449899223484072947456593142614958916181025136343649353209904841991401864993029851196991732667044451519737488556891523669816442147188824659734111360622704790116183595961190826934135046499235733051573621870163530583115826548749595821619615059000240052608555139893509111428958467222518609897484084844853544655179405017557465885145666063937755834411026580424600590629817858302225307618540618241740351470206489752469159794782021648431052861217485015073864762746585139724207728703904034310140078741053689616754211371324483854660928361918558576669954600010176617474141727322502448365306968626297264674896738852848035979571511218370064766727832798722050279258026426843266937873628926517756632776216650340218363817009113175187032551064049296021835273579272984707635052964029914972322748539512624871345908797337368583238132253325674274234549777355338750793782269776651958282893006133902509341329751405882935226609098429443937050990865888571724067433609621102849126712801532898724140721494978958802437611079526072006332908753122430686681577221675204802393368977318300642812032149784718310437196010707862395707277335777733710923343393610181500983188540611129017377359969055169457335740550394194214670665967948073831497857729771182191655389874136674962872228155321648715023542650434259338136051306568709819991047066387852524015658473737507961366730529543545035933282136981609313784013161167199252614690253058478061122606973168937163349760956672390223762220109852700372779757142358657010008102759395870426648787881569798358900645862497150125216557236224916434608833591474302716401423545872184034586511090796818243153351583656767521557011586584136001584710640314372122621706131687336590033787030056262458764765385547597542092361896308262951231831064799577596631168242460473070257433457544806490044693635062607180423703988750876455218913223565603631767898397696092679279694227187621990127764843329314212833873453688989771298838562746122937800760536001218376741451968841399812976287129007427834248941974092268806932994092771419196477246387991183531419119322996612595948070151499769788949980108195806393872783564689892520590885368242641000327101408992100639944055687565328160011575313528259667892296955780273559906656241987025805949613328827792503881690562744089946023164568580397476960568846656950116727449422534035431797441247116068101485287887851098487745483035226373427320796360212200899594796293471046994814020842125498490532005011890792572293319997166321352058592738562460733971530750071146016555926051296722523914112684095188234387881255448959172090716696701849138156619964077636872927572621530199476960575737670662072385887128705849246648482425054092264427342438072879225489225362571833428780088344826966970972858401935295872364650905313506239348311605853031843018180914689001268082243336633027339446805378246468361107537929362754776790685497591608946634196773451590414247805946940655065247192683922043446753577358176588463519232174361246032424327422885749918480296308668759457679288572093554581816405062086122371582974600523412074978539026353698139908916202198277031176779996727447389923564345527292336768922483326948996505716159087986945845058317280443829967301589119805788695066627043523008212240755893277990416633987826700910801295242845901293254417641204651718446115286206618373193981088531884923640084295640814065243647620520687116100053912565275578353771446697727535923361624397265293335193225326413081617975702155862542788863302982401064834408097403273095034507185639364296638586365106070724465969932294614871646953445244044529889972865530986201164533899683796278016988675550574292605756137390539853532457853590985538525932775936060054554283277367538934890849132319027806479643751795261865095426078162642489644028828329826661536397017903787144878701241818973815036563352108222103516824315528358841198301952486989722588426670079918855793450545398778510979360970715068383473218268428053536930975182888844642963457718808081687381365779804183532230940313485970762727213061533053501112961635808112643269593558350974004706809874108408349422633334535517272772791862450918969177677428767447414885386921064198067902138586455852099072968081473640928447641272537389964670527744066705372912960039845126256081603741766596237214867314211835452377287532746973006220953786215579083465540342684939607855565293136058877200081401369102853211259190318856284959463948499868325640291992685910387470250720900708977963039772738270005424110062929651605610201597023778269592621916764870101134329434878438514808842881155932171983331010653351200005348186317166262563805740501057722383317201659695969153707416606498801925897967153708730180009005138895084296370042707756659995617586323378797666520062813406605723054265316070167138006174983442123816737321419728069387189001926189552010924673385061461512409419100932890411060941600733901316079770376275505583419115702533898831703972699941995055096351478159684805260288935692021964959921512927089920365773958519294981139948889602137919424539659957610446297452640637746982217420307993022234199318697158541123255564473128708440295491867468183069285029044521550196056400026341582143453260654530146943786608084682989951873079601416157899244042254178725316214517646216225213142666582780295468706377513022380019462719807468888858854949214774504236038607067560745449351294849124598942711663530429173902639895163186666372237754120128893191030253584386186264083703459801211566325209312139430444527071171319014243323488052012660418432889864456775067697136947094943357177054469277285147890358975186266047010332932609291854652790173681788831819135376757564626785195387727405085218644807240035266489055573521396916421491353695622536389293267316179725366168770565532274040862384882880438007117158456245592322754537438357653129312234856718129870048712155917730061501564004954042375169753204308535728440270278399600635624141252186611054814822831548057970627998076050816223296638628024569774758688009694216445996537834141904063325604789322546711658754799284425807303164764936203908587653653497930293984969054551995743063601022890981299802734249068069017790059414966928332986713240976362760462055970622797893470481241667283156895629883924168596186955387667497272759870399897475895179809357597160841153427378502676676097982671566905406921464091972284595690908367256699926750176297831258659352863501839079174420086814312935242495491025300404424354602507645683220661433398672863547799784098988602989785115504831662265717641877850968569691672394936615749841869015712455541140938977789446495282236817392407501668182426131832734912412432781825811044831987932821642152136138709158338316242217616095644069685840929239034036630447096729301558675832464828221057724221638535022545121663493503438578622502950010172787276848939900794329183176430206756540589708168296039694625876578021899743802366404955573398459193346118957136165312361865353003407289870096391308118380082559998040483449103213188620119088809653016316727558451457962793198716592555227535907740886715824979110522695762833707787016404917835935455097396216392261768527179325691636320148351715090865259898336075449231108349645950872446874511282116421442202718529767262031078183000007292505644373715511844849685411448553024642557912184219252838263907325387203358957282265954954265010563736081895219305909620895479746601891912874664889776186997121841079360373110858478856532052711179093844392252049728866426851946745297378251637662091744802611394785141729002829703713554035959489836525376754845551655893960179117356583060476476053633145466231562346616305086268318161924521967111313898001244089372149847149677955076065973765266775402778005991565547546278653013176991675977819430291481670602854999141630104292388436370491274887939951801335803619605105925220312181764560390706748188011302373267322170133045432460721943971128789848376301680031286607677503474642572514871779585737606272488812912881806446253102814726727201210172585743323317289010725558581699512786187432116797193689997272418390990663538640974240004238213202610745109966844298812852589653553621857130278523511463734310001205931504775578436309158259657434511699489858608317881530109901526278198026391731244819265556066101195852634944527882675072171033085538235458556347808830237230969509435942193496485951409228671785534944884394315260337562800318219628560545246687454461303902046359441540691716820470141673957166242672662058932828221913893913309890607409563730031655020923553631460903572393597750701523156550167540730081453018519853882523951360482219385639993260764652395926219436037014246740600018794769715343681037937294808005525210798518891554169331568320578913174692699608618767878740236970017246206872940325145127496403166555324447327728180972374126344177420303886291924399631491216494658950648654867746282043197537903136451988820871284833716627034046400553435261613507946666383662252414391678061509457383410355300008805430501191756732783020011384131071310408374287635499945838694874452948107513441980215993782876978006771631420997045854446863954581085557028000204153747876591726449419988730428168164332941684051670350935499973384431340943656274573857542410505719748177488079677141688431602999985156081068281951646106226606081389291547918614983703762521825470946245810092886406742507584814204787851306559646101043972784631399854682597826698673658375136055675524552377425239697050196857946171979192895511493222284811332974515213342687983841664909721428908258454788659032244517767182234433651047970058218883698601891075173393913347577856455377856210640773256254889688540726395022251004019302459188062231305538458954479234012973170785064840012514050011353546270580993687973231536529719752051836270522064100691769646479111263292727918648069929245628215275499063581358292984689422572678811045675312384535921874518987118512668902532155479582961392452951295940887569032573326489600927703957864471554138119899770053022175378126706235217900240808507500790873815171446098152635428132182834097263623561826386472914592458808590234508014859121509070600273369233859690886891994755419321832747500186775608255507908792362105522044093677711437851782275122124000091725232221859649958004596111902352490142149916425667177495728726420569315889901263780803963856970507713291392034126202728145853766686409305145374958862691056564162301768730200677269476736891018998103257825198659123745186219858495153104297986267436581103741575106304349023704177085957147557069004314496761625771367855476630155339437132541332362498969638859225640173815945200916560202445242166446459535529465810117186897718953021837637988130495126913704077913691165387134699255004137644865721429277574786180230076819072363520981803013658261092590422670113829592771484041580712755014601643246825309185043584175418887683807772791147792724465606680705023747577348380404338239346472467549603942252929040308942879863428352789348544644282372644633493338840410901976510903040427094743894051573922421146699906118659681482385012307898474404084001304375718658532153391433335227171937482024026923940181062194137182774593183597307568329984578674370498030617114052341796148998160679205481978454204894933460644075181240780497037978934707881057902601628645614193068833960477385241658454863048180548997582808709429385547182288836879630594848000139105283706757808071539466347613368675602179848113052971233631105340963485012936769307074342884846818932255465201702042518657958567854174319622153016399870458506957326578699173726312169687816883498667879924249350555289006254224731729589039973364269637221255819176024957762170438351463820521865929354625605707010799444709117202658017774867515566592044890637219636998703843955175040813802211332201686173187069691914018270490434808458947677089175505553679056155707442116293075879604909151281185539633383046892995523107066025756190085526881724996840261754241658532344124161538376384394772750390446118215624398534406311249042487135738746676604568278330034984678839464002547573075562541655702020873834394597700527884545192820993793082146949911191704373149581437837047408578783529791499596529613291146465956847337292987590878176120039542412641183682698153451540063910545151240479365258675878356915858693833878396332657924944519367600603590379965343857759263772560621759158184652294533565121622663394957961474019368773614388125615610367770397104802826730389107569686526333866518183184936385835652111473878337707495763757674665023132570300066035358091877502786829320978445290188320007779178828402973052082792192733720687805834704810763651180020271060674858554398368929098049690061146006997608999865980594733698973602699435136323390946278266964284692309565632327465012975067295229587414770223720063605914896396549255239348596249209486551773322420977392616903335225163395574057761836334636404910013523228096546622853706782491764547941806463576390062691870333722327235741841760877817369966810068150509582587823059458681313728545702051373655454930902752847933706265084157073600879555705301819499285028220455491083670047801394950462421797718248466044219759373029723685918793973210856765764010214016795239327815729440826907820969340593845866994223174658978609772634541485087687913074998779398338690274173046640305245246652832024776405984249666220423547794181664377537035128644914925818483298978777203484896170057315829710494973366093112463714909826089358729341841532424337276983107977961459818132803888691746394354856432122511730902331473518590971963731117353611611702863709942255453085359012852336489779241315732515696887260434119301802831396725963832008019896562378576118824184166767695887876272903317086698741916542075192096615292488511968481087415230149450398094222109260812400885586362048740979991215032951848372557565865873276140148183646589445360131951268607645621830149413163243514368952474875546151902846306140800931603315738090451938102637940404767706620651611905886993837860677104479291457227436815667335735191099494856715423551035357043506123026852677216023585765833715688342618447134661528143111170916670171572962313889418144824757521096030796106447603417522536083096466503144986089502183327117273322840754238800891583184833606783472232566587741633470298350317474768004735093192820269182686223336157341121560631608598384038313976835338944639146755742704293329257762683420512328757521908203466866647183240965395276142082825695176614748406287579342077681970518597817053382691721356455311630562205674389277462111635738906292974687538570233034395397057772072139859552975519660286329896909002524080502247096760786726537661527369859826062702397003500684340664004437769900451195047846445227107104022326054523829559667683904192471938125128887448957718371422098966785108755555166907544663850187640464555739385270573800319104025963123138544744173288857728360608576987772787755243310312766324440423356859483642143071806162674671189432582435906450526246263221727249806484706780616369014208923397278986535316045795852431040208599315239676780573958079372994044929970067743978523233500455890205906628919668285867562799263620889774226980662716994236590015925252144491434369553129323498401228258600472378712611564927997558433565013208317601439825235160427519749672916963622425673578494195460430008685828013324633421375326168047492604791764113544918875027542445592013102874027762185948933036544418024158490422587015184711498445234615844614128067976560049284352447023668143558537723588464021317668475958836662984297905949439423744059292615678048492654231974695786565845743068892272043429078648840796138277307263390594628562986054623322045338446175064928920479168840040111018423434868088422356591178438549108023877694729170273542191569426698563254653736371530396434611877498157557391767849676264348694040496304617031412441040220240037028892307057228977506462775217463847590959285625221300657604072467676869962990777184334686319459276230645230965955872385569188875940952820138316929789723526256621022603211753643309102918959660959837428876323358735072890465394705973320808813856204329993092676708246179454318609014514914079840733067473824973503175263956044266017867824858088483446542985630723944956287419572498536650774149991594245791551439236256038360900886107473021635533487610697201254582381890404647722139986139393734481607713989976863808511177614555824668035387584006468904410760852585707900581421832514386663268815882994605932271428346446773008278980385136424428281254847314255686497416154692310230570747570191464608201858469304644199897213455644401380756206949177072501472984336849215029812359253768613345326724179735453980336483440699498367792675721566735336650918048165498077499075280872902118769409805035667528457907625582223050047705240799217303460860740935333887720796569215615351762010683272800052607398589916403758255217102527342418718600211567010666473858216634472317319379564518567789856706607497209738882354672427871737107809165066097091840406481274860374296805116236494732317769475701087261820492784717866338407888982832854186200484618984966998013397841637621187477718147913974876679750091540701448832094487221908661203516980200379683386200022336714342044837067298359300387989555999881241001034926268542731811422190616134290982449820595445485614784485432580784717334920401854420368874454959225588620196908255504874320503247491937687450417244361411162798800397896115081557473992101876441761953272324347925708107648028299054087381294477309140125504364021351709963181062059001842898924621350056868526025324759520104694228770078039960996805641017786921740630380135077058048893744101712205173820998675827310564392974536762645104745654625109708842870239660751779909797526205113445300402972054928229633982879095349027526428662066553249633678405152535209155014264367624927464842554096791461962858261954308594573909452825929040362127808712723424447277130254551998870370815819480783367007680624590220683818219303735343310701933795564067911796363440532850993286893467781803536269996581059334448735330618324719497335588343862121653952175919654228038252760492657002692000052877931182827532722238350965913776273919490241054230931198760471735769009363798892994922283155744622998576934197286282793342601271285885052956832378274835210529111938586391213752872009058138994089390542488562028006786979163119955098992704397020524617734867258429635937514010872026043674604019154123416014013292079970234704063258803431474118618656804490901631152568540022059978891449187463810151935340996004942829685229974033338014332942837003065371879906684060890510684629723692529681063679141548343924308721493417710294022733536037838139747327742933992242447896508049581343657272771507559441079320559862911971144647394718116288869101855484536264950071344417737368283646425601496506140199240775092623100223366998546982054170215216011921691591980322412096572538749339009453516032575566106095824691063054389242336169581390257238919577780564416730818550061380082427349691820410139771325022746123016087383287353763729020786469323125224800433011152253644830054333845411881252646239900141782613393281418183480355944415087499301138973421038766960863413606687587754147905435777381467852982937094912243325322343977460271442576675750096989426193399596177577224452055594976403717868668489890191216156674186439284371279703896032157424046106696145029919933126073003356096881585266598297290849339949943828707744148300009119041431035894247101194524311489880184620159338029809108721318082353691431474409053122011481432985809168872364275305531916953826956847051646360522456802331826269911562582896140854655956340593695790664499383340730657778708264501932654351588852474776557283557111436752896650355765767931200175345308387496865859128622535326712840358187342127141852813871184002117813596721388432798084287713517349501582583400148367959743190660493717800407094400463626911577317317088646570229761165202615519192689089167177454252146061589586183402470346366524330474861074817469167822830066525867007767034559466028227784062899712413479046779595762227403285473287669752295411387818855734855598823981661466796047953624133103122997850243058022261926619620020636159354612355995196814960127604930874966509355542853583612530254764362357417484411106380645031201000189472005571387397457423742736676477486303390628846116968582137894825739744814849759344785595612703273526242665956524342040768775581490007512257123531598327499003512233035109893336144107367169191840175058104967027136975975666321121419719838105632454627446029569263483143470452562388592211262285585141735421775746101963558829124365287430822926291367638377133446741927948442844286557266500642010191692880810948284725304207845440481680209678753340102687465036667583248906442701536976523842387808183754927462742235802360754271968799709096690504400828932013403243385160818447076536205664241695354141284199660635215707777966495689477377020818219857118769361177576671086982131493539782449778505992643426132998741199549436968225614974557300538306329295729441988811917773619512160507157793985716611744321988048716960209245711406991064415660072419211481463691130964169484828449354241624023321469186632761480378485469302814569886488568238803755238228827790062852230666469049640037231579550509368760170281226773923199554218321299303262945195532236935969964679267632148314820403102109199215870807192355498254561191069635646084131231511159581986564872105827287677718115274929268046052280699952733476897058209265897292345003717370843497321472928410189197524721220172362047253168697942555259248429211102220330672011867259936319551828445744883630126124556041238914976306944073738851801964599356770579238873144130166792105257341975133521814795673220317091335581873756396309726026089590334392532161788095458875725254110507652011915893975754199417243306494741279996467271655000396157430455038467478137020663464417987369500283147129821011537322098409339816041526328926946377713770766278891998466286340172392608869664719648825039910502669605321184152908950147617319117406559604815183048856869813104522010928818526140889188542384095939789514711056615552945142921992313814508653523071475557870699161002619239944872494480297773768209087781442711774120749660119237223990933831361985831541222178479268556736049951033958909689878457150048520216445511176392932430709879136791240427925563934312986498779435887407412654272130002738729827663052879302604238798486918936090648430023171196695813339877305393788287799405006277571437422464845857960364768678787334052380530982686436266547945075590275256578510617923865444193547421258262868028835528245871725796106498381772761621860191374074065530954128249552494706059172414096195657637415547955871375602230633551494909466541216056127125177305265796511162435018935513281432615520134832005822113412813115055504834745549424444584267013621600284139429261414994352562778875513933218145846454040390552728477004400435019760616910288897140602470076361256333968348508317464958068373114563715964522441296191915383211545030898420513036608387772087521504215603974866723230779198988751590604242332498165804329447453645579923388327331563740679405187646821062603415083133795182017695612787994185192946647534236526521565481510693622213328131208024681260588762698360236661567982859808588380855147940659633008455108158076849820367677347417061663387731483147090462129942240129688161454701772278200204117683477891063283819060612332252665135595803783557150387083589119626126009078196386993148474831319968985231257391273377041720731411103010527816839982350198338599915480972162367358228484889231401808946922190460104687270591356420715885753290906756547986343546592411792572830025696453366524687545625424912067603089927772746074891968443047865723321908549872122853816974721822502062059128034310093233262577610747414064902000339560689280584002259064861436060161939053620865743253048715683376034082901154503484106863475577604076641782041354343888475716694862598296562645646969173896694654340381678264565870407025678147343335875604575779713110944815271068141716576873300192578019917097184668595673482126688609797963522190563809749952589713822688487910338773041998820659710968892752303876258984398877216656511985443963403860321526511042989633355702022939724929750734985516269227620261050430041359884634878510311756376575191620509624632261788800515025578225365050800039564641221757128461661563918766819537382145737044477718386117432411175913473726395415052504928907712633541530435014908136683603657172211634465631806846048041955759203683495012856234028746439388433955260763363054587511969742647449359376825327859030814601359770107659625663991883361618458677546908954376055142460058114459533255006410753120673565800497297325782430378844781331540831256716637621299521550452304457438439297592665117066860426577353578751530487474016836427585127572445256009531417920711428196857406822473932053489170585846598378726206882980162384033248644598580521381918864775891543362556682895132146805825854443904699647747226563605987843172712166995012978466227498603384937832230912262145625334989365409177631448644478546792732983943733421122732320978316426742265607623124844251431905627528340535655499772246060731659182784669867881514003092668157409560087437800921866593266273480813708353608993781282213971121170536156861865918263939157620814999386421438243027654162516984165156378164211159384286977333122608660905790147719246633005553186700400267980679593235665802830928834462754255855516978718878764903086584202351619329476516560356393014002048592818416887797801859323376379958246873879613415144866346387883131043212242689531984801988059238429468638263176235504998045679864307972964451219352866145598336113446793872074981457891990124402609746090415605280736218498283741055836446750761172378685932299889230684865278053276164008812516245848880683444491713128516200435492550667080770840448866454400743638388024024148447348259538385859022590824751638553570447782527139700324002273892322884262561339944355254410262052294671271538458885281610335973683405830616489195990220709525886768379291761061551266307279807606737737630915269473635250507997108728493226339531823006871346614376373587721076414923202817948037992426213433794820334319114638848614981916601213030266337191196681461687109627049258337104726377427390998735608159879424820244632121553750799271245535941315823868220454136734504786146173854121977159308523975766444495924728179089916753194005622672115773267436686997722935248086291893321491995330069115845866228597450563299556008676353313825288541857905131731458477279690917964668403740089971149331759423162395457475445434877475115735596550178486230985219563288251593226302984152912565022852400792936463801982538859746685340793549639052767210896024072269021659869577010970775314521047109406641887552885697621729441615858903671766492506793367403995128417240720068641402366479876811252411751770284085934703017170673438101851855472196171537521374183351111263444308878958984454740637783183586352245153623401434714490793733021951873639973460402681697585089072311917450404327858687197525880945375927310128849342859596456872086401872072845774383907639012388672321871907584095248462917876246847081086816761684780841884132865839067000000043294549524061173879355511459114574137088509352716549231170689479090385364684603294956175353772323293785979665913217025950083202753727324958839399747119536186214836728316226635887129297617022843756237381507562064199317765673505941488906356408742818151418735854692522395700376136542875539628225829963759399046169672438989894083807247897862187001549734830970796294591891792608057128228689028445696870131141659891388631277815937747235186829630910588060109552901755566806757225496834972089590689548899654456814917493250306140495078261878955391263562485865133515709899944578683604274901959688015883856861348265436795033632524664642109589215196263378204458043464758845020234168439117871711677937177679240479512610294182246408621829468387844258097074760196627787651725417945109073277493863489443728971097911394381130681188117355659044381658979152700700805487145913767894164154690304327740505845415842174944293407553337481101487270331260271636919020914174341146184584542001530348751145664943170076322928098406452406667362667407973933310092898961345041046306813701196173376599337350426982296810198520070192540104926179606873840894727653903956794353539065093087037973352395587393947874566568255853390143120577727399625682356887548169307530016753317501074516706016825075580064625440294249618212089131354580973698294359943833782748516437222206771813583925278519392725328382034757669370716985808374063887506807859123389335065225927438630235644504618281952981031041635471400522562664010586663827704737380544453509288664814888220659661183909565735632523603659618033389887434551533557483146750234698342200841315521205494950909189973655983557246651534539961010446738675198715452561875176708887697522052827852721252820604485460171222037253036442568141656645280928800550143763605831072599649441400419681973119808782053234182126000208113210792068042499964942757481667762527792591673913680978037395166632232868301301904826669880092898622187759987573159655841613264870540340635518976161682947422170355463224451928947861531228706812863017834222011034519845010578646832487660886129690882972752186067182757637511329327786575586481259409308720160042954725762083398387146280814772481894028205521960659665142647874095368899161425601606468999906129922150985536157655635354993760431535028571399764253472376324757710818430138488723740312997073304985364300140725309779581076819870222938783671459009250049685754558710900301618164786355176697635963059040112369433213666107537263911580090184548876728884571259251099826611039220783382756269364058607217714475348934161262848509977590829911639355763739737658529140764616184218409964212269379430957767189611628732823499823852256005078402093900628869719782204416913419070028326784082903164054922552177043614948673343361726809042086027141384893838210504880946007466039473657645601377460879000944018512220141675159657625415953400988518116033345219227198829260586520381146492151567209954975746574121840872265982904709816997694770462990604449850597737439153795911727617879282581027512847087357920146530064039981653143193916378152772080529370561041950408315638404416909825498011690886933267398973578946640181868415691569823575632976824482224011287921884244618576699155294640566290166904997555669414393529884344256785426416518076588767878411277054465770026806529408460932464186308087091192877265263141021849796839359392705889477289509920676636221097905662980049143362834639400515694290573477125180157211558209996910177071719230360110070433115887838832366296966540222648404854776482834575670668905571905050511052185415435154693883935581977378138913968113261372724346005931631458890311254293622905615592792501747619619910195167789816900207923762253210088558477068718385012769327729528040165853397238089710497459473810934041091197558135961581559389688019805399375463461872776231212179233187692538078343029836896388458987200498459081033244747868863381950536877272419267534868383559434108549800543903363556858206384964264234653550606668157315771705647286943524697791931805605449457074120911949678195669619017236594583846472994019056013387918683672744493434259743126197780478441599321756578481011073143501105785760831582855970686785235841705012783070222820380459292081766496106640927499729889805268111183916478860755987823426305209615104413208150752142404324509109671650421240171104106253326215744924361333092353431584616983024586857498606452430473373731514518365749340006072826417616561705832384977643286521370293287354862490477204269209004148514789522056856285411285906533734534696296385733968323281144410784960481989255500721338759236805188689375263048910179867763637368914947698858426387568241127761679872965261242641338858639240902840317288244966550228001628069612879737546024913312161306814127036294494666848177759456627840498192413594973096775148644864308929887205923647604632874585348823225458670304948097879202324165737901191336414911072954988090539083963021483011802370047424209207770082671854797602475229075459932571479195113749248900916876844462002869991523927134171170557696878915617823679568310215819646202170605268062841247090176969222429250603239873218683970793715150469416034366731863442207507002566320578914755688747555064713998009811392613148483733264585152302298423464448008829734942151994450572536496656563106482463631167553075118974502014130143219861839532240334959239699747642275503548513019942361176576515872699768957821579059190220483491877652440833063492664368494412291351233701268002994279949241581988544598720817150219250572754536374839668598689738575712465569329905192505430082906939100414219886508603398132300645966218137730760808829302428147165467856699029504988433938817004582940209386839077536915746377446652999010401755267167297774358113176346426554373004638148907563361048092146888430637367517158905262973574771560959627262302158585557117374642320988752532686030661180547942090914121360014195622378837238528533728723829728634882076781218844601638605343275701282671541383398053762073680395271700124375396553115570201627669697781680319641721562052210362946292221283016104701097407447057662910142687135155084967150032220943811098896110184907852752677392010636059072237880166868674167425852095262040377190473541289867537952216658943815478381873874860820137904727137149971988939222482354648193099535451512553890348459945709335098462770020612180879017474441630675883913400385987412659638748372862701252772111914403730126856598525717019594672260471540427310867380506793633798256620843331428942775830692562513760062142474681658144834710510546503871896238871385241987006463380663107547894031316424064154804535409924523961352622479689882636381757714970981593195825078610353921060277752305216510677339843275314266450674010484282675234337314954580094515256032983956293022547652336780827359232907461841843476891030161344833342901755226243063511319698792050849126971947271018243364428587875535293284269729825282484359482787821833506052177951385602108048958402080128829538783797942057822400849685622048519237217117543553617025132624354927222362952735800709772928299475166588689248357999004059894584612784675689609599515570905931116137854160191251552110051005274977130047879292018260377033457938125164375482823725720732782957021042057410983675109220887927439748017521880988408409256253245834325973868908759842113000899455718586598724393991012508705161467342444873706079738343494849051683806840609480718383067644498876016088593291317440485620016445520107355321357047433056686686102946532978743616776470501884094742341482761295125197420824981366318444136996446423108261792979985398998037960667521980880112626771739268164465993658779132661046711823155999770668858329351735403503718885250058947728638653572979490380552924681128956854565756459725789749819461469903236694835739219581570030740746344141725375923687536249560274407279669799287719790568368065675758002517446452508993485322744672036308821544517845359588041866655186406830526187021087511218126191361683368466245098645013679064277060842274127247403680909143235005353059003845696441547439588167895682699445182420806573043501223079954623511158923314665938763817465915437140210678863734410503895655798040770892408671580314641149439394376235372599931494152250799217303912329678867634181271106641033130307966478300842085850637774763921568472466979694264816288608787480086896137759699007546281181295773580303706242613078119236448379973954703362284935567344782227396584445521137827520451373317832850642199633675647179246511661311435737512494997693252150483233440452237849818686342087184387202514000741141571856397351144734458803981699689023457789919174904208324377603673564973861184062978631964630255718470480763518444523704080897936615200142297942498256930240496022720340151492680197089629948435784356124801842962140761906692882645584123710141111312979271472186276733542786758773654142343913409038535494169037033765792666015811160547512327687486217351105426389665013845472331097107644641965951347245689590281054942785170595908721227949725332795524538021462213982532959003270231309900249568729010110620568291754148067381284662547128195441511108076911645887812704987214329521669621183413139645824108573058192112127475448059918604098198575505978622637009974955884766325681802238978981659343859417853544893942694894766723142249920763436365652072569283659692224366974214209582355387476047249153899476736861900960912027093375362200390699296931034771129793969764896317183915323744352652151072632441437929821458428783967093032852018822893271306734611895044285404770187278137770784848634496728298233580704824085314228666120559477516062437950446286707029704055353839128733216478558784746392564735980228828239746493959503318376833927511767385803767732061652634135632367995215832540465822980270585612273584915964357600506105216003163455141054687945371474327342265718399189927695308906556170665879368185668912115733310231205308190715465648475389386888573215248535246697210228316236789205621432981823283879027509390843953160280911718253577453848512416637698658467474879514056280077468311689979676623979747021478944281398320231201131389526309527243961976721915566416287778505437798259100704135207429947981941960413270822465942119947279940502475120652384229988927810227159148548375692440423259446680949350205021636737512050463736008212249987147205448242912269391030137916733149561764496232849828993374137871765907423140521748329011460435286516876697901031469780738496052729369185893228407486750085542645082036629814421318395421802120760385832100009534171842370529022026927034106543848927752753325796324257382464075325428415281748038733459473197490169622018768954215001540272206029102041072532709026197576567045849750117214804125196164076018674477934937045460732258590890960416724127041716580873058772301794099927643939629116264859491347685916306743688099015194538852734914845106746689933866399788783518444937698685227851517296983440711385532661614510914333461145350391808069234666244969147096969195307953162198844424807848640589114797152456891613534577827575816020583827484911653232819483544534741640315684497136526278363538076737762885087004587378911948104025466359538399604333425799132378413211942159237647907298270725355948812882706523571404770930470232463361154267575660034688321875554300668670844129600505604427103261095880945077983571314876190150806619052045361416720874183004648771097562408853671816511052404365303332413348824649238468570333817448633271556617189448664836207887091120230004675621621889075743020995219238011978290569872213224636530887377515733999566603176872798483196626573768952303853241197360707065215324837147299264439559924161309137255008996103838416890482904794126310538790441433188856007670052828812383781287122291616717521220052070352551106134253354890031681182927082868458640292118623117989197085101253766523268581522690192813332061387390262988822458755766238961585142883330878217598730372510253851239968511008436531718261841372363229969096727042968353110279432385186992814007601382340594319061575363154612559490140643536382150886792765969043327925577204786472149420573063230842780553311974076914195352371224199830695645625772195897082383514579401536383554872422722491804180955705744085355703217784603951188015481659233588426967807269087166923338793304146898887407391594264926491910392677805673285803072255394898628562314788253383009203712574159287713925517356471332045033840788903365367561184620815492305502053514420242547738475022306014022441137805024430973895967333896932377304867432056654803368621035966055031854112652878769142256221451273474978300343632273479493763602813279733421736233056233304573903005490677278971763038937153225250753251423315925512207618415959245696764814373738822362684499750047101627582464545510987887511495136185736961671496907504734837024101389259315055020671112831372797725484054662702082618087735201411283541552458611726345318916900366463101948807735868304647762276398685093881204603425006868404671688717786025580440553197933430378582162869120817532686214094847022146603229963581663852086281655456451022104229552033132499611220573020857529990047573990224708592932318300943645735747039732002306250913572347700323560852099534219222793000868849530626774320467036323156483796580846769802610147990474441341664462838174955137889646349803366906970309109118469729724222789579152361512743453095255233947150580336142424348323418166873678451162925476321573045733820916580887107767268968826113907545053994556837851883088699874424409870032898592849115349708775306049113314997826037017229286482318773383088957901502985171957096357410034905246928731745758435813679247601882648238272540827015405358941374724466023316734161109174333785576661280228494653994304820498666093426469829467693990791040383581674346908247641455109030702542413072624776684376451156006889769030832672949018788296558827698052100886554259761244005190597514495612864507851876123940258087362982292489356985198043710014235156423061630020625273696203531833977620957546572636192533438786383631674940623349323709677342123459337146572335130080140838247951957611563014919332331955918883052915262249559194608272804032759061444217159452926246260819199869035288566074511574950484275626286068081726569419140985469463235818443064549911639376688424442713921583523059739585258209712481608821717998519417591249400423647899561514303055155827674860887895693071915341348901788115546241981197426239584065819860066362572730686430927551972445629219415385313115383486726179273579886955879835762635604305697759560943312200567944001470475480342225018757059111685943755711086848047795528455442503346625703884038940277559759191502235428016845401334108029594281029161121614689972231619122887952221621590537884566064801349757139508214977380546868308440945043845606800746148309626623516729636905952418026742799118872154093031688879062067712478589872963161879196290180560475750737175327975880521988754841967325979424512019052706628704794900679695300888234418237660510967748303380548472112486197785801234964949444379673874501477769460117651526666009551851468077277268859747489230009432752933719359663162144686091531628689442313685270445713165980381309263397529088785467323876914527362236081162493646469351927938323538839377968263574128529566582286474511622247547271180078197240568261627941199052667692740705796562157641556428113607104540330246217284434731174456008899623145076673418839554570939672219528343664930583304929215030661092983553338766464272912645842817527688962595506202542048575239626270039321834995768426114911977775142076788941429831006400118382551391093666937767758713527039723201751421553028125612857041371523639616875831471285787070171673356755979565708210444933014911495323432243539926751164379164978451866863103006360140016857249532166475017410974478183682754590299571371083860339003911728901001853168390432865848368338806567919957945854252623499408918857839427217107083339950328800386368587576153700362638034029745309356709742431123897093675027595885774174039035815357243870614068518057180109808131527250633520262679489686938302273609173487114168221942543263499575668537999639871560866218551323746909561351286325345940667903285958964165322315424484035069057102883503052972493641333552195179291007156660338217039384870742443055169218734821713206549686734203160114263249728029793356530326435582384760792348537671033407214548665916120103097930022782715546688659292029520659773352296363394524859724450387409516028585432439652564446100096328204574302650660794039203396882539883077452392965599956094088224370446737347829081755521758222983669095314784799724854861316071400488575669828520998674713649909050434376462123110774192271866399161515361828702850386634084986476952215476799548211581325286463773278255278728156778779362647736694512702857896184291718329140833469382220577046133241234807226888950559710619840984561249404623734479485474113561777824193040157246283862361743849601070781780890936325344506584603856837443641848282214522769058186944477230289777073124628547305429241326162564571992358079251119691502951321713403445475484070671441963110602842675566415004617884056941811457703216674066471394370501238370055459738040308985780630482727530249554744796536269088655351776363010652426957084697431408915293581296410154487371860356619552065193207899785991833232671561730001201562113758283250270668714441877137106077403429770268590638891689202076915929005285363348052492284098353622631334172543925943120213457594854975606182850443995005650160959751347707587138544754298939357505818050502868924255337091180557005622277363047930896291610533992126095426812174490819685720249425479850890410413036411524294749205744650290204496842705855924893746453345659097852342244231821263234119509213737466519429294196312231602652546444741829562018929668807380069308694825184142030501434141129207224898182954762297596826632480456271779718911847635652377622638200360228815026088702513403178397398724853179593198545667322565668977278339948523745003786373442880684909830398020987575812862963685912654942262333203271404355357993291459929755526200964439795098182860874777834905113413717129868586256786870946489053135450526413391277177981899273198746978580473108725687573007777750895584773607312133502206051484640061570201354769512721887932594083152843599948657961785147941815922264854530094258783719297676867459100796504738476925240611218298374795332891113664799263414114087384683841695458111900413116605989651139518784419507720216794051547293749313336836480915884816571592765122359868544876567979761678379458739515729990256276835900225253724856227364334117288966305986879179043100115046958560643543033995996917315891809399938618497986085751188389318337821307130055880361516332595933068411519542119267373111484230673917210436962937549244275724662271930004333992255813091830831276929179004265651988185141796482889744593358531675287627243296879434915960933295078869129344852867341356721740028531986041556090178890874211778880973823791867569539288071374563825969406742685731415453024168235259060117255409086775544799278155975565343848658811697716425847816104483186844769570211741581285360366534345499982021762549201224073014798988721654465408396830869189353427068546470776279151573029384667462911493978892884596585554466745780114309997308891280869247030782990380509868899945717585044491230364507241925583634803591477761911406219530472081358451431836362445629741263890989241899705341699149794373776685627753457690666310721214426468153497518892199495196856192602457442567377918070886615224493861367825020016544814529751523677576522526318884819907979235486295653080916942994684329271091108445681344561067254986112850722408485930607259180414690955158215130689120007562128953769832303060706457352730082939532911222289444567152890108404033778187938575383294380972438762976357127321259505575157194015097537737527440640053236859747927517994261929991794734443623849250192114581681499296861679215324516135225603796985417894348022745622181932070812945631450296222966322412810204970543463488606030441624017397416575564868496490549830800180166338049510093984037389138030324429837926856005372481471220553305188579087839007275531215844334904707336808294381564511668753257241694677349736186421298940044746505328933365193124101091242261072370077854824491924549499438699730245598863581903169853556629025196059305557340021972187070850651177427172339175847532777570949508393335935527319649839914502190718294881850917713986718160741861878171165239444603097318199429905210651196790239863036287322560139326897024166451472659468306991470353484313449171349828509140791148832454605714057572124003362243226510030091792039557245769023361161566029952065065141490869846560642144026119588382836390731692061090569098349613691856660238080332847181037021244401533893885720775294113656554020810239243018249792081218329089865020416725425209558553228356684589580435442694875824995243779704394305599406794110535950521978519770601313240948551536880812301718041053882339519646832321111205780577132919653858474205489295985113396964427057839391958943205516581482793293027218622789176926187316074893155367302057537385146659629603591746551912698923981691295685342433871059370986761309385550662074746931758665547964706953357297947991677603796643493270378628811367553938972550251036820479690948171649472986657950579634595836460960470991994428180458473595279008340213221056565879952662322035877491590391408139178189348481774945893013824840511225910250120565691457712457611579449929440143861254585690472343601038940777843800191878731745765419571356795729480901139158239555216671547025219922566561114091742315061136785579543096635287777810249480798171645374081973840395220264570827961244668314611422417077766459901143386627160000723167760191330132940772799978025000206341086313651763055055843241550125945754360378417153696644582756162766449680514245024600551920068614081212572984604650531266194748682763104758784834286554575167147471259935802028873566512649093843934853263310694727321828473619932117372444348012457713577267462012935908620843358648827415704489627275161321975523204080993564687817591020312202994202447753644429504380150365162178811989846342625614130645714400700502412583328084568976362955672095546461018820832527270977761831631398279276249101819905468683285595767203080463563228417135451979431612063849984059758363672459054962132633951065413298623142373866070584930629638277560420520023978630952107093926751171017659822260255160435657986521963581755183821868241860009199028413460598884912381389521231982950827622531124121196040326530197924730782580398031406811438641952344417126564670564832606422497402034327334429515240209985314140746395181999373860351012551204594229066950456283703074761476311280958123261389542122293476158806401125621193416571862235163729381048523908121358833090437225355571817453835646464480625996531320509000602946036650434864936992344936410916398410650804161484438914303181559973941416197151022740608717308722046096471206433431471738628140113687020103234171719214347482997808760360819334372480624891309874521342237609464471522902259621559163697947150129651462645903109140865611543367585022112468497438784692773976440317349338355021160587407512597272129192470393436209263060008405756553085690002472631934351057860751322335205763370604614469849255694309149144981307965157972398205908444505792049470116807474646169759563863081669536698384682981069232082574548837432392071018672061223381528061166120642884199672886324428598879763421219683285274352024840383689836815965801851296716081275916515273748241307339411143007955704572668325482852892866285141890026550178535789720027423922392555937119477191135760209317196329984420272422306157108355931971126904205933909705844797205227600167221438783070169139833983312875603294787969347059977192475515958615102891463444378853076774617468009881122590775446455660873667070562955640104100116139263663699300887797047295047731303735930189493273729609006890135551669803726287372080227178300684518009763606250810591590641980001142846552364373896605418619534111958571467750352245281829574282372367306445897788046358689504817759363745414354519393999218681646587685744162026337449800922490135577732601911357700862599169118551162945167106259209824129823588659390683176904432861526478099908940539925924562992288189273680507624037912014677707046168833690345948433075280508338575048608376210781767988607640805136851140068761871489552838895075565621491998851928015863755709546340558823004455650489577977381199756175997675020632757425204845374838071886107917010694220218277401559004386142267299798593884121545892856287518482567145028100628795122830645939315080853173999925756411418507674543470208084088692145620582667375049502713041522789749812041863405833386802406333493988208966478082558789874657465179933553414305860085449275788522609483375658635623595265624979397245111337275092089168401824882701921132668303949312291434131616388803051992055714885079345780452654202001845365306595995538031248456246006559263579659260892361171470663129842074017708084938461157024656690601818602632362796165699487603519368288776106122399547885327323486730884781062237317389735506862783071453766853352247928534635558360480765505092093999410998196225401970224523473143482009646986373074426328419225719277682328344980741958841539828421249053666746526688353149997345231299475828412700805359649184652223241218497880771255632922708505922550982249878011084710990199327132302258013140753376013728890678242094211756100778010035492471418078734354837332835790933009899439522524894860613422026526780629853980899718473930284953676497167657241682177888905106857715926658386766632419195546076815297407362037096345979868978534311259849648752044957587040106871825123991316301514061733624566327203899773940706041938254450917083123574125443268221471975350517217213983564284740103540366198011170483960147876872719392629965632845127427912266960618039045892773782209529736197667320024447776753513454054437118826672896096698348697611945731977957952869855360034592912568121957142302578592580425526907023673568775514886516539135924595860291153732192184111632125056243060149876511178126088014744673499237182440559860570740404511201909780434376631494333648944848835998803124127060538611519254198406477335247375658728098874343336535662872300369179539457316447278732982909310897824467651749905971264114485151839367692473209855900082717942514698559452025465970282096520133283046514081714639060107897681665711509929670433646654827645653270093532924003816333847213928947931876556545324636354862063510383470686195316309864835065496781308127984091982071525932950487560795978133941952220297886884939041813727854095077277268648313251640311829006119933127504417502459431750816926596650723994424522063174445255440021361797923373995739178923632773787828514491222400061042129312539647507447835475380931516606487005466575728685485490474548626970314590821419556277525937224257519113728141202197400444056583220224478966026655163922550169114062047528421785182083062338389872726806838405868344957023027879203741930171645710381091244979519163422581479402653153774781001692172192771461450224463265430330064907454122403581830851834851440535140351939710790679822464935640913025446986283955333242275948209843094186470882956700692140178060262907381130440315627058123463169010109221342486294949304024358972806565660535631312376851134214384341513890883149191522727524803327578580237487834098209031986989510363909747241804423533958089753130703020102432720451029528063266183771798019915941779252799294131916839563668872938825423754268798699940887633982786640553586609298463131228032901997282042629515749816291213149015176593269685099344986114648349226949347654892158711061268312190931240115984162543314628046781658068099869208195051598021098982528227041739125693209314082735565564358734126803495697700702305161872011498761613432728087882214909738115757674619567564637820550050234304403339941396351304160166678494462053740077405418480977666221697913910445038378686482994203372593766743832564369145063356999074942547546496162404999976405331241216520288030792452155086873070345286768505638880214385950620885345644800388545519292556874093495293662083197375796754564056185311596244039930367859528539362596466694982913052217067904872393858558602864404264693781922916641414127243643110234964150100323912051081579776152364776577346891986543137670929517812718610102268277125342448748336644257741206043266191774697913308865811226500767705842280824112480502987419860574735719591631503339983902058330630628749068879335068768792800980811552879543812071685435899060710402467594301268173364762407609626548479551797512070932237996714473890388682849707485536892061083828562650667454225530025289112613696077711406298541602431572381572716477755972004387418479534627190863526437901163887688085122853415141125463023451711575779568633643851951332156206693248465442914162566291140660028923005173946353856464276434007066293398766501872543632357736655682581364556849292373991265478845709986209735688705496794859175370868379443859544474439441616896841575687815227393965986660558252958969128843664536460330424523942254369916308830044144836494077876386800641840442245357334011144695208237775215932864398414251122220245629603640704967347915497251254942052490074311339573362279612369280863840853046125965653399087855867997837596395395320586299218377464595590267622537787262291446177602035856886484150199759222254524213981734028406782117968962110203447437082757919063483750051357991326805381748313912662337375092086488062992131883253939564599355675266703224069585651681501175847175675010871072286271536023019695599818776675769339321811410620979583362627144223353378545388944748082011412517220547869561762019368267977612155759516735703134833659814819477805859303186217778054428826406082846009004337582100418769538100855096714448889555894012180543310469300347858567812066452228454755042446131252615795569557567342964437445450936895173867108541662504031879637861284041507120295618620914051016242168009039515916101095991772377415917229672646295474003762224589934688411891551898432009662589285161716199841331704689643943450221265030741336510304094471902418656982585903151563386331709936837595921387237132018946563154712240282219003311278950564759828220814621427151508677501225613329635237640000671624767113021634439420320515653273460226939041984233063942860026379972921694383326274366029002751508908374244557018406738592548697745177183878472224126066994763562570625994925148121757301405190585922183811104083625964152807850098904295422806767902965307807989540658893058083920456244130246389034678496571778384363702490593647324598851669198038048653380625983155445271880922013317760630242085916588591053957111858248252044333910915070151445055917816356581611970879510187271856243790609835816997720986761260075334296361477357929889479072541257915808235699453920924686041757377434720632552569747197475147255243866439796910806237693995336499058093157269205824461931957398315482808202214031384374855781000669777614320095504404229720464253387512087583615563771643757801658786750376686217199727778250965479744273109123637821960082073336205780389728787629908093301306657949446087847666555602049467685649301824773852419631800432528146701197340265756225529660250731601085901378762429850902498352649397453311520492204048449693668170039181737081869927806732021046752295832279970922913078301465922516554760032862551219169214315838819558364524086260510577640708474719417771818709737842971471576341893825448751695747125735822553125086118190607722729432790064068554095980267242895625832141850208878863788549412828910208327533904844635173733324653692084823823497768608518021908954933630011038257598365118308801878717051349364248541411394691775072023272269470035916375637678734322291060142324589976957411027208250135546706788187144868109503866484923781133811416097744252864613254078208036464953388341962660420845177387022687991044995908975825062522454344391953967770324346843246433773278136994598506919829854504032851125586229972688918419979783072996507769979382745289038957965649628230252732156131632409575213056060798667849219145747474554254942054572819859306837175012338047788936830310282998466793064880496296710548547382702489749542112965613675535220014144812857196312845295553369494833212975368297352333228015001768553000439464772036370627848562154192052988302249409671578167475443059071113105886627180789254560524157788168884887718745271472232225802174856315292044544310929726269554934056150433655064209799357270477269848202966000349330771729317326531777794922779153014952512900137853838754410332724288173437641300309359368489902490560710389996868304965543693636146684377671113634955412096497132561286521520759844651267798175688212970577538745124226357707710455302852103224413980955435467062182177931452673208752320605481980662555231353510076699649085880255791833388951347407096941585300725026751405745067712357796818446098791752694546371315208345247165013543159334301949313352091051309421468470146113155740229025092774037636648416852571409511027958502674682067903807391126744301413981115096270548596541251108150855267884094650594735799114349622970883187052912752501904862527024435276586846499077458311660979233310799404643134405983389904000283034219810449578082866420311378092226604792619404435548694975353437274974153358215450126380529346781788402788693682095290175864986987289389022101037880551525435744100858544429331695987438734908996864238835878722449670549801117212354910415220907180553144497649046795680097736706578825819802642522395608368661559880823740099576676867888421220640705929716011472668262818929528619705648188339895853422302199512790237667925264406639591654850707006475580049091408235516443935730821063491251644897797254319733110177810182483178211677492774107422743096867764545606648193562947593263562973904333146819270318765500743918299032268332405239028618953307028792669475186755156937052532938209780012262676376033119662824747621735334566200900039953335225281581637972870122420903972733921061415732664409491807317746426653478037947143921025635558423715790787228748966559568547383942232266077494331455840059118575642070354944121390930242670047345795001746515424571804468048593804656943466909689659990667492516130315759617567957809979348828034386837526793973509558172855807493637756630114650159546921122724366396154964419682413945760459565756692154158200242416285972280182727812607104738507926987007396770337698547413795459245654857999553175095435859577245129151318662728456575539183544299403997849130529351369409896321822979077417399564212337971923264752367924913497258458374024866877778023105822859073623924621460425244471622904734740047356960479146511462335930550375004154683466160511829101394546085033592943802850547970334218449281781785985163324838076971910404566212099802319573071565603235881815118795335946103880672375121016309374549752363834394805648074728526673796986418183939291821358427935971103592204349266105279632062639705282010705536222888561578878433991236968881593644378296452287164564767671072350532252083132114441867648986152713271814414732518854718353002944541690509761852586086987606359311001378611600633009978927635426216074480882821271261379771553096990153159218667941029839317108969737228340243416282400108545679824541319951013747302783165761336009609440420401414763559337077162172976485767730211292914949100787431547067721356618259372152299836279557677935631991336626859460809452091574369761858902876589640926931863143100204850583789668047912218894804830397652460064797437339967061293887854319825938855350932797944529796290603275782675757821645627659899548724244537320523453378820179191894405026921201295571624335756938408446580142424496069190538647435157187965986144920418939195151179126190910805598106148355599352866900952861945885586470026548808547747629847961602020618414934123063364740411066579017857167821539261994529052764106830685962693475926052534271793170721269191946748311657319715670702492537543389602285417820282041700907353164766526347482685144168691454847391532133690283579545612874686293186102790729875757325299070545278145189745586075708596005672101469411286466117673090142224242277227947058321766658062010808461680275287054389272125450021424606554711440641241212465407446377268026458855896357140861126565721943775206401385173101584125542764532436628477611492741576563360281645670028230049268124847750039116183499867120863979689860762731072597185040424286052933026110530331376007147232357053494675788598365431496077716373109146097092014906657292909149832232508132694710093836274212022653989553514444836022616285473647724381824810276302844821392455618271257325649984902319478846397100148678355940241522031353342865315348142376481388686924720619475737732061557851650961024352661844736979994044068235643301011370069231617030936299793156053336192701107612369849806454410943357527322501517148482355781080086848207375401099452860056079954143186082821487688435941080142813068567646594967169952585121370865704431835078774728445078435426999272135739397831030394332482731273889309137802935945730394700334077464264337443778402691296938450157390013765359615474197892598265875982792623384263617762210392599009298555359506629697179038212448617623447147917610568852026211760105060008838146317313087595819541299093005242147470562904588671132443469923681718759809802938288895661806339646389791696538279440642752165088524204417704376268666062933032046135387030438012035815388134737873349774822221678790602518607259256707334842177213309243258760415570968777327584189546376901296313433228447382637506229809840424960015708700139240665722119260361000334251813516562250875209277899525452021034206494269799448318019974525027145570100042335751089563089242896675466897700301158325547662328096285529815517362785655528513782137493324960004349045200248409639871995164435304855588921606557203295997940264757947152819631546998260976715097585246307388300925591906599061849396396712147427930978704308705348432899208818409098636398077516118772514583302686411393186898360755423780595481110694462655984534040057381450535566294692336366384342644906571446717715861566270965103426188641528373021945558966202939173862015662681797980942010291639627875965893310262879238555058387581366930196948753474715010421570779088066879217489759292212243826762300240655651473717930891629268983173414928730524587741577215527359805268230700996592144425005014701609402405687438930365832179426104852890717018807998771360780515801004040501775228672135046625726422563973134056219518267708175331165365994569176146150568299665987754157365627120034452933132467162566655325902532509806355126520598054761969775989817180217110645540139294996815311890758503617082726141079839356158299469064537766082685654215482742782118490221270606292041363409716991256202963747262405593719451461972177327569168982335665372138361925084150713652234188910236983870208811778383490479302562854555859895124732233885257914158158517618677831590611411221592878051007712506290642525774665452537417804112596998295651866618206916651166744805423654992928976605540829915319163675374488479166342572330889760599403264411518485022435698126497642893575232268844662544625341967280270274377763724327197753990046546792876085771180801397030740727119041899365417298661803580707415087927242862421915984267728909329899379220138582446080213885891846871191423638021142903620239478010364414801996311973698783271391591993177441987038172140167915522158918162321515428067858695570651748847365167555675913596541825440548073185132431721177692289687546541350354326757335255811306101529191382711860151308522371900288414164914530673139295923809096706452023235606679358760401167575506265702488911696737583176272017900460400267676692749627862110899890246358020376071491943557663653682270994602815412626287932852980028855974972179499934645297123088105258039766047132247009644719365490684398735048508781630167416896266916072647701167277655156040066834774138160787818012389212672519452363724537808318468831433848030825167198140618968089052483320566687461901483268367758818764227805245685657982513498189569234597340359456940113227150638134297694104057072990262382297190127896845205585807157944781059071693947639626418964435926350672982152879154911275047698955187862580801639603573978734703371835553554881815033258700955228913888638750899482110729869129502344131922578461054735535837015142540523738477863529033241683478196178759591799944600987349844195495115879993057987899290342157795289651626063174249872553095847913229326250466408133484889117903503242448394546716049169844632046388382274327538042692303465154070521687981111942758130855433008258768471163480913756486641250487228072189853700863049931287668965668226541288053138880043447740824678476810210726706283993325015504462668607173400842116670204620152915425427841131069174457516951239009857823528227442075449929281965000476789201078153310104183409444096663298071774011085797464909899548131515960640348007605506642098493770846505169408839341289198339988565199911800561472931426629306384386315889386259185884828738497120869141426106114366417985482338032356287548479994619134700198989340591389183849369244723023421004604737670233295295935944653078720603716544423855650919059094509501745153129294224214993479644003256019168814305894740752656505312846987174470333475781178339692810835058853970195117230833662034490764225749117266112852947893314184441555498570029093145997591118729631318224797033526668288782468090416828821336903891689963221046743872953974019531357807168987811269557555865758761716920586839045767760293013110244602225937203356430462922359044945885904649958267360466713350066154393466976434812666670935121091160833379393372679916031853480056319929802352741870321222530515857330339627816415588838889494007705427836352928704793293324647710644540373682355909591364187220857926084079730955370446107567688164087378949288053387776366173660213354931616909257061768263075712820010827153284559356778169495531577564238652134563702695685582204532633288912044096272859347608178097966629842088364692915398901703408355448847079359292012747431470541699705717294128799874827624067806798605386802919867166058147224221838343600513928164618316377707400285912836676113638728887666862451021959639805294990752646538358700410415570055324917260606698183869060915171768833202520936721964932303136909030613529457286583973680331569872527787582397722970116702769779858832467684833730471030811783959793204286087167930545647085704476188270329712261401926404861364609543074681478836699497737415258606034134685608642683645189454880658509954119545461419384271520315792161737141521628358670533888413703906328784668367998973365807659805937362324106672348884598472211199159500283617024045013358728270862033102946724377213510072603030079393117244854508868582610481937789921993789203796079245687792931476690559085817897327425926512156107261547098892998317747980146503443918790681249496273968187353111665731373206822046404767870789484049445448995648466516097606045473544700522168239200482843119923906265486026504486715220827690829485894937915759893790685491879872287384809480116830382432831626833765047001115674356042390523960933715959460733740788709097861910586309997098862580121132268529275504292132188086119295274763368066584777914754564047887321558880039666644780032446152121179467254554763421704559864337656567291652032269852604995069093945808064319472466099952814732360593092385055028319369680792893659095793586275643770111584101792609777326619286810591572594958413631062803307600269660571080201402332697163152360571014321270659162600297085146157740317346093864248612841320157490955996541107399841344473456506977858997247566850804340076014389159257183767501858402875253239528073215581515188128090794827140388330249784369843227326321852294750226769345340253066629566468153998511320806077859385573740046526497968599283595347672778108634671617814736775044871140972745314538196221188756376223899974415331939817256539049069980724149799332003571729050798944076337656115780628222004394937835926915575450269251321321942976904476360154334321509829191313914356015992520200090431345564538536675301838456110459031577437479508075376098551914434029691439814704175162697345808443002702166951445618297011195131877208277943215204897613708847815952573520409396553768354821742976457160259131551369266975336791974753577134977057924016224199465418512637188235156058303147140764157270169727483401077839880798181062124980860359246435586873716212435118452521392490378215110286371947314334089752167385424196049094655043794928367646043044732749090672284648588016291376971106552714916032406136840957968082571671964730912588056987024724558487984339917337806031127768512226315379252260962252205615432640644400786583495324849121394363252522274516544604048719165237760680095731110482505628921753531539181735100205964195674299034807561849023485314117797953412321123763198831025051638631416228631474410893055254742372128684509068980470573087940657756479653498934658116715951843128621818466681685993074638612579981888403043748932724323362865698133781930882208774610544883120663262019097581638816971278283182654844215681727224409900463320723609058821638175488648772040165387124547074044526505855268002244484343948972198294378443881562586461695948468849731810803658564117437808511839994940906486095700073837055518893087703694550623650637903749963182498637383668966794147577895103832647159088559964673783466980352782686729019573270674454811853590239081800004829428356835934169873703319373345371152156124832739946513968070000478390075106288999356601827011398516159698252896465540647508996989848025287502301830948866555560095149885202787330567787477432289078228343788385750690800558359997012343408584938159691515260848950810899952518871066772417316923444956238028760001505184291125109288974165231962214203059269666098203180571500959853992614074575876562174652157411186884479483096395922918562932676539250145606162987816632621410659740434840974460075637525179765047748330918484590549320535828106114033675175062708060052185165974450821866059427642543532078599488228553661721005945980516263550451153778110992123837565134592472196685047694102436767211938080945365245559762814012131183798470928613640131204051638436609648194020754951549407307285472922938773789430676853056482116871250442893012496746686216170534387699032348680886894079227921974266879140695160278261722359973143882148490140807158579419139196973572900790405545442849829901362970310050170186201350782944143139916031192838370690006548340990145948373827817621820339233458476713816544016953064033974601679449379507243621941040579088036602959053049529774433375019391297133941233793278550325563485042044466626841508356652245163280915618068131007466904072058317236047606022818728852241391312725048890992088084060592114817573119286117520734638097337673918153611812621061453437081260429042473284123758460076106044739492497880178988794737127677318665116126232510283055400359061112632219645805300344854408815306715466059081666076707726150787357634055959938568488431820758641462758688830155336517604376962446871601878310938971792555990807743554523024819713342436855991105688794694923973239816799483611892035509104312596035603646946993256122261208263742291054527683460668636519323760588827098726516449455072837106762133616677214041794261139522037965241716247312059322599195011391153584551887717571938269430070150948014330310366426192813560329012146582196217127226436617429399489367809480692222181971365547210136633442429513379707103794106334210327146316948428408869245595532475811337516093937515608839691758452730325949458965646949488021694717815101371678202342247328114467702265438936996673698083285383262322773325541595636642147062796310678425127956281919098553012061158711343264576681523824578065640503500888036599873696740678018544332642621616282025030877326483093133413019066523166925283196549343032766180651400404548881024292860938932217467138727019645865590194175399162116494696581876536633031603918947506440334382984166220304884031737739405225720293838927356543346863162516300772494132012983485399176646057605668279044965354631523661473041930059986201752343080585964443101484297626812844289460921604706294692665954659719780329509770545696325240811716725062716030841739878931637270318383327320395864781304048825801996569910738520470162608153305705037947372894118842860375125735167221542474452730765877824873814953295789586301684639264994802993180930150864743903959773869410180711651424678656639213303198486014349702448387785892937702757047857192410890753188524605142484817395295693982990221235716084635538085637757358254720837900644043765995182514792226208177102076323065826927086874371361818963475961823522725945930254559057505558487675296042254044723837979795302947610496294066489963275823161222894020304636822664932100563322108635887987647200387201007422493523494141003585620261745134918542765794490674986550709966992443316062961046188659116840398914032089612741396160137067833521714225598693592105700556718162462175716171598654392741968263586612984428891530406392684664460928413426982836852224298594131656681624327239401290079567401812012451871435000179284071118183412575509982404014009142327891795953933537366596275778411221116425460879508390043362398961318213505434938557350185579431562997559534963478952825961626153958899490700330084401208154539581688500754226837567307800001318611357191472314639008484532970885214585057073182393120557330058912983976623897047559043212059263133489498510346213412033575114673548170585028031096642025250871290765592475049995322662010662991614497839627912884947175099489315419211681509477191874112764782067310294842221286213764938736587440259687437007008077320836858392961720847775809376971805142683040915787100952620408357990763691203223382255894752329930510000725581054881108463866896219823721275055259078645305261884876777566852902964733258723702065179611143740038624933025146028067828167327587232501808623176972219639651551005417702843052071075424463320455978395715833599577646220748491510916649008845078462067699848552376288017865839826298596710473967633335400558776046629382283147940864016361323958325693485670857345321631737408255535542064412062508540975869647865685223412456515210842180324858315792684997664298709855707769061341550393986836472677805947658597683932952327182731572413547367860527336433096368699391414932137117868711839923669476453645755896545675117646522587873481660425189212771070546470257842375390665590976586171867084933564603626449219457790057636195449592931779191172123770422895265652714418287805196217550798437803523039213656923660933883379710039697432495476525883835922709394713196317319189410211729967349062921496842650355197285336072552028656321004958924410023345359717442168132007246206274292889862180786989973683606300817513726021341803098740796429700977098831786129009884842644875470153391748833815699720867548466556749740258059160993191202982852379980653965880389629153131488622445826029455974548625077615700865918725250107864793994877779374072928292251830810870994539280427307559455477936410216759978399040341297462589722936295496999974443584976407953071960330224014362774464508510655510999987521121666539022800328911135411279471522137082805046056716701982452145132522807392532253772124015835329298630967068734106849053149976392004781508668338488787409057870941165459360141287385561360984297995062272871357324890605106428904457300275098944186983412196712987807982265353179142405728998507717715824559026597184890572347768245688247264755620717562149607685536164780989460555601051751546632260205057709700192460042546620443566786514570841102593374087336321931856277813556826708475041950138609862768107202776667132542204290620393559204714075357340711330873624617681072427934427314478698830748088259099181417944936107576013087478038192904756968721265074063635926855669868181803086267010317648287830132292463272731451758049575705006786289481462300654112168164464325219220198075418352567811594346757219877969826952958263772538609827426235015594071747768141395449897563712808904360764656449963313829306494305350623839586303442910803662377903625668924853358278342070330502153593469189675181815015033718261257745644182295302302885024050639293828421895032953042185779421030216875335663713677303086062419124547399007968433094632704492031648746284131487198849223725191834032279485476919655172214877081782051849628536881569107431366640887238703888520267167314769201370980078542923028026947716079328562514375098658002103078208454362867355272769738276097130380940170371040986436836157835080461068320096123420284980549410668083988627079058863939737263454787968092207961954648411666060152345274943813399254536000039487585718618134086862795295589291124637833098484172538752504717134660540446026518774523099047143836549861914185575786433346201115987375701728457829389807484204633940627412439485703009195643231424079152625914405753276271258167833775334829011389326499866754407234702007441136534857020134016688875185496460523471664919042629134269394710594370062084523142949584738139450583010754148260721171903599341842845573198438945462699125794855107014632712459468419180391810330776920465270588043115918264437767845825048313823088851095254153507074534868882452879469600409405807636262034286919993444148447060001236949678290382258044165036708858772437889371396789598153196917688259570809706160166246712372977960054829298780846960868235533257786629958481751678370545911426727872865390835330983529267374782567636813047374312555554320405294434848175206332736846184182362170552253666507705538196162286891724682235949432353051688489797965435228138128382513012784087627749436871571062524309420525698125198123953061434440034526738995473315508450655715397949387378257693176096058036640157964035679503839576740858259846505529339903425435657331567727630190792073553507200230839930295733894941815133551565702092465129623360422083845549403785825402153729986403607085195621262904710235313260593972109443513956650444108564796673437513918658144666485956606420022230450053754974958248868486937889223051350234938768877525332748175779166924226113816847358956908951321681077028065203313728393968878260073358531459773044345138979704440248766227716646412631636494503844046146557572624458884914136481048733337244383217093422248374941410562095123879004152860703408334247225882037306854261805677908813624064018621076083318063786125044048810682017827415892266085180981703135902480836772580117965899310795573592927672344243537866872863639971305997766266303814750160913414480709500760273642226305228263508374908679207026619061633370333146660862742771473617962880760891254858505028613045690979271836461835634213769478688183874170833073000343213005606912139769282455970345531942263192145939653941347035137009952434565128508307682920628933425639756595374679632819865537967055839862966073491088128607209362843192251220970338165291953573009692953728603703279918706706966904377858286150118691489762063609102977507381503427670219547228734865804996306002364679358509588631075741552993689878809864451620880573630066628840754040074881714620670199218883164310368367392499953520520281421430922498853177809036957255714690995238279886093363145045779240455254013668204000669584989344621942626011549448932428316515341848547946219065097667201642409554240701048960226753286139541326152486441409055746843526674559988781789907660226774362170205964591324498018343631825917126365864471738579199915514469714507639266030354511490178843830817869950945171820288340475660973574938707789730846381273268193974882214416799676199693874076024902863978794316299054613626742126952060551202688092725037553180456673008367101637861060863917529112126133960932346556610232811363244435903556844068905527990881414824678884494702287054323934149411800783066801485365738031131086013103619771574033958781470760289577592030108256600546331240125310137177896970765760021530417631391696371956640722501525339576304573811408239875073081060637943982433136908189139864312251735169774644155350584224474150704533174487325507207043676648480026647487555326725489688591761872243557831817882829857879289004965801220561663932138802989014926927318800875073416859501313159663516664771757927316984965832593606071467689809169280804385713984087062233174386195719362800010996783815592206050043279282545594842808562823431158545228803453083228179970049120847177295791880828770880443669000071728424968309328485380416117745366563567297271812994955560071647272950395828548522340877682674901985212356569496253614680094918495243866943424991723926598315330296412682573417082144983097145288375460346702479489125708671522043987753705199587721265310837132759852249477051245787265525039031166039474131279491389381713913385837546111871846128242651015659394407698931662901874109524857972686093845956809535811391707479386101051122132641727731565098120319188175133517597591929625390822905370889773986859248718225276987514314140461405588061540479275924910798921654154291404060267790755303840078561034098352265851283820024705939637040563756011428940575393886498202235131285358958741247248913631281508157766507652326428711513947973454314153515182778479580623706569353261446163356069021084400056257348770161756486231815658507832401805216786941097697635533781266613057173174327780009985928544343777020696180329574672203895588958208483628007378335491802489747856171522605926239666700517145546016401846173690312865861085406599355341164218748804340698502357432708348794237556906287142573486005826688796159827740468733041949287196314053422234579212046439749741431154981832183930056448959824744014406747447715211568256957854681027273653881962190681604580029316144898209906988054136367744089254457740389469964630436533505338162523752215960397223278274448078812108573789334407790173853844216711128125546067793419345435886458998368845140489906985008678508071796828894387246790070954640874169906357381009027408134260431676407760758638174644826327855497578423280624541996515093635614811407376962302652852943071767043025390239524795666573450548898822140542414096197717178409922584977837727501661226713842707385703387007540865074646153418936518470558555015231875415749485612049379858343437845955365549629456758890079692806212902769907815569925256566393954336062267038547223719800718206315402357491907820324954078578086261479958273213947377158433075759190081905219819296392952319510378211822584210258081781849292581886286115309246479595432966111221866656591421313869579171363910418441725245672280049076895177693223192095056638352260399157461231542371437969951150896646651162711572159493549054304816455807312193314124033388317055006919291016424845331042375235313707614212934088556014673032010848347718303979986267276529608202672722954745978164822800029341582356801679309029072886316242575141879789824559002308278235304439807398424109135779775357620264048819115389296566715359668661193249838051802391375552021909397828572759535117683939768952107181660323085421574630757574180461119821330834796152352726724123357201781678559274546402511755747353764950293800032304545579181552753541947876354419635695087966259372171274827855020234056033704396085550034585226636625366261860950618498247625199133132977253424011633850661644022309752779571306151007941566590514619307558192619002178150472770203904977621143462504378340369432262008749738215572687100571943321313957629222144778104411212936788073468358516478385742929679200021524294297260181478048438071964047749660990645078142253618459746631019672736208818697341438432799067059968057449623196300032553124905040419943569632372245428591875534688439081079794866623611200197589816567778067412330312830677550891854895076758258011298979790632170560375589979533080096968218464054721701030000773246179178312583904810176440874357079166434525698330998499838646667612739346683444200654767252539466933498311167809739497572968208746594789677963438210871351601839339545106784595651318820066953320791027712644374335032403781576125851478465486484383504881795243550250967537247197829202475090386979150274393474383565663444908172052845735394063642849043200844537021676388914439317122784491964555580189060487670883272161647649460524291118076174527523128584186152135726316177696566923308697863797998546413170039610504585045268897606319397950152924151205620165194793768836596111421085714201528369839163669453590361467311661685305975545745384912601135708645553340829785068822041517577495591889994439604959387616858874225605267813686544005195197337914439130956105712840535762461783347517870940253719807117191223320946622330126285331622054359614858231991234311559456803089176138794355317549661423937666992095938251493354684747659749059424092186856440300911660211243773669833012067611069826090893762098995794199801799068266558343247570179141189121425939801159617769448569645221832125806699148724899933651887346739044727147517012367827405199973156243455458476328490224131694496063891246580243228240528967691641831647594367270827044331907193974281246555852993600879817439527713785149399896340462571935607018995144011358674733425611822497503167790374998015692142808446752252010051132582408645142420499843279160814949764780246408472801238953551460876352952287793857289085785698534729481103098516502053709949320908067404382059980202703845504717510691365383485420010799376796064536739481098053877207572122868258318438874262329359800797105329518551453688435199048967208195520994878548725591036028536430894610202700951150719253718832806420001195754650243284985864079323546295508098028105972024360803833444102525082405373475085792548825782813071972309916411982686933847314668733902860863705275440417616811978745847322673547857301949410478848438626930403977320215080700043046031677468571854676879702677382789333363872771875174117436291362582041613411593628133786522615538628280603822232244099823746438598832833036469093044880921160688018156907223002176484635787678319349297434775287656792355684044370081869284366164732787016849865488832708592437764255958714148576847943038655592340688065723692235604236966382129961703991919483349179890044134833132433193932367419771718650521961751690121470157266317125960822891117856987155462714631177067738646225098950646095305688913048803038468319788409451337563097333239359111552085471017369251633907476714901417784637791841374744979821120323402604380208194969321137772912493182072806822326353090141850973828002248340851646129845298139768968816500174589021035318584407109876723875284007578571541955445395520480540942707170221278377000030475574701498951896264956843841235639111675033050930032153936289355302962814000048713037590025226054548876977151563212418794810584382741980004368571679790448815784082217120802935158782849855548672069530314853913559076067886982832302597649193369283259784903832415877215337830481414185159848094014480721335101554746560638087952589508711856246499468825310058894338962981580870100926498071065477563997318555459504709051016368297734443660010926037014879011777279327095910627440846047950863061234136100045590788285426163381750594866918077479058683496559547486589884178211954031733541416679057989549493771990161580015166258550138915017821890427520928710005675478644231628669300346629703591725188950410849907353077627242506573174514761640247045482654963345512250233520142625778590142663719736589869310617441385907448494745337651191651612429945948578053313281801552110006966937895487516885664906005379056829992174675276321775297040650147897598065143269132521406944437310073255186231901918233331795859077274924991664888272265885622694229023100633238394043789591212505392496622069902374950247182122080281047638872016229553957889467094898919623336374665401889480279154166432982900918801144933437303498761359185195650364985159769822372022494543780338798412996383154144010549523774287506383206515764186032105374388139423727700193296843398112347635014559692229261751146801502388473164338386431673073071120549097836712395329445733798607280181290907641997371830197552014576194734187178974703355745401051029180279993276456457427775984336153889529499187041423781476885208314627687950038670398064053530019367991981366018862896392159041856020313315475751038409188294998291224936124636496822878439935072281800545927421828538485170155014198135325901185065388644775494585423756515495513630441715879465321908686357318602821357349809006648381639069732900815523231418266493543839576904009116053097358079663301401988702550780537940341078233224132651402304091717463324720327724313469906664341254619621015346785350132104690805375474076657208930552539048057645017683424508243346424695338503334352244921724398285965911751744561422751440118515396967295127687030881336238426277665889570224500855301758993799620026762470231045824420366612639377345644218146764299751430262257158271903259626171581301653347001339544447973007017635515951224629600173347136647797280858850689497400167468934493555083971907244842247601462327357535102227849386522720725122235371465396557200472486543527678910845293758530820083744153429665390843408649207634565081769052780072228342573055463379407360496150202766899352354138217159865001305448376904996293444050088850225803416444889486725007906029447446769022941703617722399480976672147787723543317817336042822439162938974143152474653778695760571643778137441465912138957897794908982094062148586513589411851956049139821861016781997657502870634995612750659562790862214839521611548381168645359535222863746298705803084822051850712351644613606162683259984570634877807711061195687152322361958579807454270535541413084391168397883526263817330695936404400012157446707806334843442802668243356899289594427676946170238501686756495751883984437679969614002832001655265145480195105830645194190428677578318383885783969793587075489162372681596013999064865205122098029809952198083842575598888795262268241726466809023468093410935567716717729727793859953699169334625243623235398545048522581565183713499290148312646167417357796965842676666324146980993819059316768417300213469057060141636634357699532021315782116351566611992904579193258118368873094541856997108770233982898303899248453412543129425481737154157897952236126339008538011110992712862179806045987398452111171905346642343762182204064833688353446292346025285190690942552585489099251372753398539887844974371087474043953418630688068824576239182008049523890331025133056393047112046650374138547935556723128836672966799229496118475162050551377649505301748412251232224402490610272497356776168991620887672871410053449147709834153728146184536452614340871183842714670684699611276011501633920709393618876523095526858599073785852536491338490979943630022744816096279448027853146024389059348610331003160777655333120214136924569622765522236276481100754611148920995232139771336787682431074131881040317571987013880992966393872866049252277083056344246655951923696490351738385500126777335751399480922266108362371705102656868767129886989502252544728832728097824488358736842479175007797597042493127592285157813710554797938666897524073132764010754731927258903637160979733197862194169441242063833027937257356671763277225470558248081811530095611798633043004617817073174738838868993031069656504665282763964930416160200414051229302263543602455136605335738076234576390363187802560028452695008903029552127980657495932845277620573421475629682479098581528185738542361651451228557071044673314546131973721071408466946003949535483693257975465108609315131183857265793032351299660644300571580574086894452885581679533353053870219088233875865566590301371153811615615766108118236327924283866068923538848852492157750662705531800736583650982180076802364615881868554997855306048612504458570253396703287171808824334034408575560814681297861470097492923778795621912020234090744297913999112794751309209404400101955606608465462597999584077565098860838620360950766210082944415082650486247316578252329077687668110312004360921866673314470640254440192262631253082865623039660883260679647544533738673422207423241656642477289983975843666156670374401267572851704148698315927113297690606148014214287040279510463959494574667154258149127509104604885972552065530681922022605462774863062656597853513876390698362093259359634286160655078936681883644879984525055816752510859233522821723665267826642742003140322865376856734997419866704027208482249781406329366241504653051065006545413868900898424588365080587670774395749682592879203236340550625488373655879116328123650699960836895947095234688547385035794985802717587992266666635826191753714312997274136255518846760652669357726460615153785274135158295131669621256465761383668602227291452839008529475137838072294066963389274708450205187020276810631650000549329626784428816687716391292536832688547865855314684484694199519050529853719614178478100350180191348571112773411172985442750326833130233440375333950992387408624772329130739307291587305437362386985832522480138236588467914439449514675907431502090037851983676664241887707535817387634692983459987953807988540625619106106852290481528205757610341476165718175153418892668809005933581155130444544847644513760275240278234091456894545091880406279683037727959981226715040237319923675678450729391197657531445390685974773520427706181959271164846089269570361542600502363675312832300190911876212998857179393646734099282548074840641997441108818481375981760469836994574613012670367594909656952200236151941270425788930743969913833366092550509186296205132007852779088236958198476858667266883856726584316785053370940762747304677530565442990896795091923299018722734283979644853534102191831839410103207579418782730135013462199591900634814379912209703322494477185682461475438726216427918165848699956643824337710605464431899641567837633104774595260749266413263130825762486101333643359231668257585727795264570441972023238493779322153869471392425411767221244157938631073056106480087578020902336748178405043591065589748959873591781313720675402860998045829802700039776953437631534089361547860985504756937966484531517728166088121567021272034619263283782644771033275580573869860731439731760475898329096473165133428633563228276354341784538865273818501808569537112988085171991626047381604010017937873494183583805496505194146238442415625872442326645683499232050882145088521996377204713557323863399623345740082290793671901748991457466990876868812372981271767107909801534171272681434568266668803639749264734478178732699192036815652135959843472304994505345275514049225220677467902846970377719130107365903874286054848531053707122099213031110966628072139931932631323145180956961700629353305286488050633470965768688721825889599910370895365889044446025006268325691360371604155570393371115135859483663118650319136609249574473689260946589654665020667437198188176380577883120257426671059604036865194936096851681876819673060952020837550837333869947860957864456399311187059459677864223423561171748946297127469052925853186868377630650176470318452785564324442611842236381428954821473672743602432146534872088704586031375436083192103128410579517190592061393552043995585748201034714493044326631516533663682651585611957559666474326152195588797196231260029460535661773609008894078446962188665401154337916106384504115905459012221030656795939499705755375132146986957756977951302654899883094112179013994789031952487510299600465551557605082924039751995366121560370620818036433212494859878039289650741431351644258980267264764826632593397813125299530132436356375786580306156637610625292093293444460193323036408768993776458463773223580184086843582829088456791273759215283861038618417823642773904741016790671069250229530821601401226308986850359686249584244535187091119584488167351109183449677425191215889496729348176826270701856358824753267351137486933014226104185585200292141120723323423031969736743267901038541571414533419033134255065001519514305049552626670348429744203832987317395947805438753258394811809535069266999056372289707576976091417680477742281480669312258023635358330740486583508480000984783951128186063368384345801413897068784775924842474642009224945480342364767513242501231802197755453467622894435361200571515255355166980293189912631416055577102732846217447689292872897678432680730847124494932255291047182529809017378373945031528232812237786533123440469096534686471490567548529346071344988743222096721394811913290233662220399135562036209544851531640246113683760432626493789710351953317348254334742223741846518517571239197923402308752366548577882205563968686186061808821011607334880959533548194359419022444907831862994992115560369871283487797873939059213186159224613114335291324853332395065878571973142984373307302085372969652887240747033340992474766360145340307722593592405319029345846092725909798685140704616303615766163322604311786331821647064997819427143826461653301368257141937444262470661245881900536822097777776636039743939097217639330196921505779430020735722710432871722649752567418885543204325960369579871368756762587236443106607303981033510241578812426103170945956882955835209771255472378005485060215595299109628527757149624739400110219000576061895756908203511161275079165900691246335262293313290200306464995296157354932902437240213957855855020018099087606413909712342909629520555551168217873873946279998720210108813323327424788345435149372507944835956109759446438215349614584065370487053390242391911839347313607682149510792291066446285334854637290132590790971957110132844726670062314410953456288091496812545215477779880764635504327765085993764636583959508689915879936925829157361620270814906757576088025443635505757779761386740790463762487152569271925560089825341289542595620819428021392464926597976764724336747488701535645612073585196347315354166688331218981533029031667934584538237920736061384936884634340622571956370615374153079634295151851366688326411303577064329006640088901736428086023283704417204088199035978706643171608066659756653586331778071364537548840272583246023004542837483704717620432469921501483470870009551030298430423772598438898026059843805576973776328658673199681908874677642841321179997918347407781248020484446819350477096537308318470205662129703500576424550753288423026421389964350413358859286166310358280051933938372398655258027238597481554410930346347365502372311908978953453766179491456798551894912722443342503072702737850929070550844374331979637333318654015576325920618148592030907382665459055366574455001828436373841498513068970240922045721204698017876737549153463765183028661480384215243265068594056598928806527670758147371277064365114886791780012274321498973772327669374661281022840060995279076155297496930259314574311029346732129600543736938486536884243500206560806489633858509007021536643910589472149098655408272075534630230577402134451966667815882834543475124173052922675636340307104380153220808766470693594029845096136163177805838594922979393332738465868961747338029263459947239171779138666541275353182657032105080706711653143127108922791950763402911460180037296338583039717148800994875182699174925292049272084871339172070940020351666310484020989279958159422646605811008392391838496231377986341661531002252199746539907893854484526805354214778873520371038090594903261667038726267431207798736895236320939890114952304106646454548611952957978934983692821176906522021376687109203196832628645125753184089728551852467918731856619409472817422638400183460976560671191722041924382763162922158901075386010166619459412520981908126326816803334787802585288848315330050755762754457433184105693286611454162415551634134326371284295411038225738101642761616761681495556864293030522254696669129272045229262208679892779247492266949365838151548858801081670369127491864414524286228675952350372102286773029515857732207352374426262229128795829457799634611119848774897950957264749854129177651260121137242554895725765827493663583870756916656180276727711814048482775479538174697508512983158147449390190650599672175639696418840033433987589168896508039599909605061766957381230977744488384822061955843860105926736983038716934539941432194443582932581664801459589455410467464209744369297461191455574570392508965250206386006393326096050227191748093677578359607848923391932211211843316056371567885706622844357505580988826958204606309633694457857891895211106260751002259670967766931753318092307011179863873345475484534256801994762901062530619006979814275272876292822594403151251141571989375153023303916955520133776804203153596244434237376095609246683510090296393614329876755650120809107021374061129461521520828269353950734374609688759558988272539265009568449179584039788298077055394264094655216255830681607627113648775195499821127235807144111262254784661140328419202240408026561061012512364410063359563863310978705431305474706974141625678807952940426579771617352917102857620536796047447493838132412786876857126868074530432051070394162612783521266188075158978831556969937929447360901668793210341085874248913400741435330434226557707699150752615474709297540289022002038669787700630947853822028219361212851171969232935734671011361042200576810745003295893539282186276771345007677016440746378837233988374080695506050154975451221090138616561169343503957000293084878459057256176127024414365177522284569437097759558423353242329646056611645673874413063386377335740047279951776030599435843616520077375935340457476890754290707868776386330637807199568753335186825825804119402828203147446112282143640445314664702736433703412740668035679075396145192586217699370449049506126153342790811580820286530375614111540964381166230712403056413799861837215706831322153340633497546935906387918755611753837139859586032397722196878124323588648597708371752214149461669857437795051380074246493924888158251398978316780819242658834444248635931597988895427780787649999256979316027006773723984981254231614958944697117430575193890779022873474604728288355575510537907130881410669706518772687253614266105061661261930533238279681462084406205793716352193816819150535477500982932313480686232859070400096055510367295912765667035758723756828938960716322751223964231311159343562468303264693488211044328239873843227215534508046889434662216227020240895878453769976688284560270155307861124889492710061240287503297437116039138039549566180357538043396638945128698127215223452047390103999876741413442462491531251871009772267996765787352885826841230630084578953103640935691896877010587312022141294344725102485281944268054065452875010288144289873823804540657906487472667060815014080302444745151404693070774624626833396070995266238355255976296901080298650334590712602768119853492684821916528503565856160148176350500328069504026995189261484227962718644682520765424963727298578124182390113566781402795228693679524807661062034450292123921634318230350081370338358101513246230368559217873510510092203715571224667517893896548090605875173339885598871093226028252535573103068945207282541994543825018005056469229457542305525699987092875390102304882301705439360939304998346262503654499713337094078133722815474383780108541478616318156037484688850517548136043774091766599904798060130874380102877806823864514030201300275633597532189807199194454011570815074608272001207390256917403871071519052677259324724759072725828876444277524261840101493383284481303692657853686588570395748079447013970621158989409110127363876494957349612517843669480840027410574492199984330658094461891006684774444796164824544781328474584419283821027700004259251796101975563947382273170037082866568571774901078300165208269902578543464273347609061823718272799527057259346725522285587087197673417008592353214711977298892499461857010281232543719619414294919887871442302640989780913678433636383892703010412241741392065601165685588317879705720483664986977902143058067130228730240321085166057997212450708650421548962349076273070655376740255959551002221579187813248105140527453247732094540002101198742124291928965919569333128862150757191311387141804445741071189483261748374776921264281802457096772367149096128153534863672651513008096945162607151039127330026205572170096835476836863359189237860582885483914568971749068967513392744779365256400995006741201083771554293133440146904862434665567830974110418842554597629277624649244749983072699939262796697116021663702061198873836759041235334906619522172022122435459955743822237248316098395322586080621633390237368115895804775394396341695171204642908254069165206396501626974398671540095538567806166170969280554779368328785204389731931992412903896597582831504659009081235609574230282733449556981444424449386293572717761747090248389858480350650036462206786452823741327048082727273688861178603932785208276793525617763803161930938515293500985312738094968078993752868568079430267361585759726388729668862067795174246481505949217460937386845686700122607107066745782413368116923471884423119687176488562048500057284881750301091981195503329133962021119096378947973155702948287808706397077353240119977165854669643315045893721556943102708608784469480025087631211394326338071827350018527062294346595208589865651171703421783915698540862921968909486974353995032711310097096744070846029394948709629327448200568817860278228857614122871916891506584870279883214458942634425222190140542116076379351281706083977481909459360908459014059971376821498647206777277558295179262496332737354026031401246770618419181163908009091151768334829679465787538347538711387158066537685350730520325196643170688521422884980566821579279829894987966982576080368211659560946678138003640222510194131965314626175386653646648383646048762268234720542733541856502599913691200592375426609611512730384173401189515996000348058835934194075835953951599369127498441165320563069104271227889251002595279622482902412956758859632828863887930965098121886054072071255852560902972631215924795535929022987596012986746685577540443221129953514649948020364636110473761446565596149616689110111117091882469362461839553942329267282820677748048438789694429958771510195587184280632576997764161459434573898151935044276562614329824233659311821264793125640955093499766013884370931870166760915886588851895494232731066062445952183312087704869489955527719192872681679167717159327997027403399815065225515656821515774386782955435416371006157154184640872968826579399295048233494773501078803602180013559746493785922226894421478765070816229045128805793448559964853294479344407388372655337221943425076664972484227028971605815263050774615836263048407636167544930118066547751065393192361002437833033947443143190547718684997894177669284508718518864105494403521283576065119384349316639092752043759357811690982925732423133585458171767818470516294934481250660554729606851944809551878259520165253489563562287892543847766640635091819661357931236728616134041445766099401317441368138838170321419183177058624650898132574563574115624440538135284457026013102165021842976932240585410458912099384958060027539805994856987127969649517127064268674197404552162043678423809599663072046910485536481404616298260613026631841334197349768652147524796757575237819832502050492762144518803059671878006300639936261842893918872500347735550148569114106786843215302234512943332061727265263309816723852981756521651766446688199516918624030976541264093150062712065276520155562980433735153456859915512809738159648418270379757305861049937225842520934231659375649578995630957626943053898226263770015615821406532675494000318013179817343741867847598185533643649957774808684483634037866049568651231157674426976431779002216811542263821824057909345851911448765293139340534233577533250743978395797980206699369214689368757480863841790006831807335194811428845600898783028362993899945773861004682019141320587824845060241006019428851012461898889572803762386485969701414064060287505866075343431953117903102630568200708148874915657616850757874345340344346187600317604095112407589329576115881283273919142664437972999004463060577337637181231892382880116030900980544506311130748174988641543484568910188195816901678163075104474476660883279023534273181507792591155949664928509501215780493770561165457584966856181549082749591073726889832920840062808095355398464756779158180227029258508789125040887427204824928681532868553615930420739773221528951988618183500542581600022969028511466226660485382775780852769355700263100810182256360953883595385041176682287170776106106662983028122773323982913507393354940938548717914481672908300349813873523071815781822796049370705606170415407318951317443513771295324189294471840380184530020690750158838437278126476879663201100659480602233206975139647427953798758319768727133782853751428305522531145556615308507544003832375110841442170479023521939020304399169729375142852408422676433038356511049525438210694441009349438018903816083963362083015982990890807377847074908691601328593936919518708873283938097536871099189657509615558407223038651968405702607708251818426278761357793211509950812031594125120526534064051645732218547286056945380872864202793416417294156731705339178902446964412836735698837308764607687956700235409157975229695855850767341815239777274010010575370425319364794764146658016473762530082579416729055081963184065106885315492878252187272448594470714462862851981672860395707168694175675643868524062760094237348018507044030438334444757609756972018801562872418554397108580120207437260344542347620895343659390583416955385569122095370905901208675034550946213700411669062137864394630422193837373535581936551763084042485193904643229756525671731776474176196718697723927748936408389793504445335586948049738832379123112497050066375158228370809837953156861779011039668044024108029027472455602091160447306581798653922182827469077443206080555888784898542840187097968185107150846005156981939398455745282254365912530670968584826710803225974254768023551300120385683397586532474665706060041912956907095497613101852406899278815786709441830262670310020840655139235301945104150336509715793663030321011311337678284277631354918546087684962291071696238098694459917827405065432144923557888480248177943325690563969576485430851856145204589643864605396319355193918401752321345550272247748240301667975684004922473454995110503517662837111618169595455406238894461065054913632957076497553361619667801335762869281762744395366028556215823015311209964390565538603081259790285884628646595042597343214779128186668313369087011024590074814736605404654771008161811296950141103834701474677783340838308019381494239948282255884896050828551189530955840491887776925571274573483875209659486003870149138725459905371215450283419153968364516255594353680583747229261854268759186329207978224272642500063291388835899019170996984640725345656854581076468910781529116779388508113785569665774366010618160769244702658809151175219792002811474486509396514204088868594547813821417708594242165539659198817040815251113810644651262356628542770752638783424040343344822252146170463169349842126362319434503231199326173231119567246524941419798800818909247003000891754647329253298293219483111275163742341884092569317315471585437987900342311439745337492675560959031114579363883828846030330071645014319592822261221808918078256252904106610373523041899995561883209895382542885131269893571680359219913389280077236998885789535440278579352342261414351715547383837578548396183621278816747393525079712613635551687737803168517209097456516931338644963970393660779839645111629776307874111590562926478978733196041648436717280504727564039975621013124417076761891702816469820043494645120778980208042850847986917233914145349198504279664600347545477525062834615739122851261967130710076945223254504494795533455053793877259537993993495387134260384635116438483462598498260352917966086676086925846482105288338490697842972012683433469194917720638463148767598268187362289807617121408880686890469060498809013240828395798178001307398699351345488774261716252526978604321916040314646881083128225267521025316007596724891307406097528099344453756051965127231027567102006166736391533744368619522682106560881784982137922206037798160685043337003030364970766460726629301189400765148666601639736802943770642368314552861612003323814355277302850518861623224288982870754305005709124731741327873201011275444184068847223505379688129039875766606957553914008817168388861635232575406646142264097841246379664558155482235804037243445850672118486383447308670614045493417760998349966877693861379042778045210523419732997875820110050576658967505281993264683530958432417199261225956056034308332100004837676114973221537077714396615881250410827587570459724661508135349925879740447138116533214045821736823467550111010924423833593455587237707486046630652890240717863192544006580804245392947182277188352497011753331855596012672540468452618702698112973872672582901679964640896390830621261344399778370283856342181386505703503404455541950716640406187606720907399837102056138633949659369872975602697814529559042875303036613680074360501354662974731080731904937460791249968999941154808993569271101027743742600402541334953190359700753569775368817303932187740513761627934663319860043213079543752362215785856816796262214082848183340482562304546754074607296408568474726988098214849212752516281008853246702670698401819683778089843736191481196438640101588682935582262380686493149360132406738947710538210429060054314399640270999653272589658955300738447968953892077781484716649563871593038378122543911772680631427049861742239055707821125222152655599822621482182624157240025793360471202372576387598803274820053426671116515037056524563072095705281793436207692389008430958887562035197090135011622876018856686775834722075343880798680297064454395396010465522953771006533809954206280589171911952686844135442262733949185919945093476633796003654778005652757672643670380985319435501353179251415320738227341384076616981401162873209682945424873083488342669446133375060057750846758180438650469908161481056625625728857749307374587312993410968883282009727439059014691970022858235736396484305381762916929195417434877281267073480970495824810278930372220886038930641422103714913937400604426137993767022113746460324364609420385539121946042846454931106798693006248586867103419073145005970634806596737402986973608537670947263262315656009852820113696254909286005813570823871693914922349001905095851716162567301058542472404623713087426801198059435054688351361545039547771811256038807491092965959919673879361616939478364792526930802848207924378574547319436905674414514005401751341894211180232760607383120008882142974590827453366182490793263222604541890324698089409576386244793634982608784602637132919471663534107809915159786612858593074318143904477501268779336850470646468622569566391251638058008353019866754524921554513120960924393019708348166862527487037742497701420343585850742089372884706008297448941196454276205643626624298329539336108501076474396243991062347909110252649550525816664948305716189322113182621776603849192534830980386017925631360923987929224092876072465902842871538855963156197725788074715247557942490776699818914276463455428373206096064401905972095229214058123314934057510587036678947831215083644050218728663827869281310759998131969772107848107010095279521518858643477645442266992840352832715098662957484636973059995682286344049506435322357580461145987681223552160538013034989489484398475498013367308680855807085906376297936153973452142518432221051063296581602590845222086550104306471281508680831613794823950032516101165275050453330131895492347840163736397857184268173583828818478469482340592685031498308019504502780648554154369939817228366340531284206455985423641633719527550221675845465284207143650624967838180773280269739225960753675448819910835772566632933401930355118772532619938935744017650543986292698095748759101475492526284521146844637338734836412175591483691496726612236203690527940489190710591167975741618315784864745334580003759916250418666557741629386506776064389974623661216533063878525241357615267100697139222435892380458961062898806140309683876386277460996237088352279411511508625624428402394738562618585856187804769062011820771285277639274357172926656913634085829406488980744141485711051476896958431133429589008126994083025731852869204995988233160300945864408182525392989861887147352068733074507879689127604930387853010987721760414416290541916882850854140731811598972268671931883352391345967302333186082512616300130027067136306272018713626756055108954730935557195666565874769749382722867953851028121441341993286282295255588309608807641175198478343087570601083419968255950383352462885768333521479781255547318166867074467824298080511221047277820811635649006220267545196515563468918959620783338524067843383778912613624178436768421714003544582704225465062890483382232148009775686642787033581869307306699800103872653911636167833856961287683611362265000352155743100692483364797310868222064199069581177302656588266518658708364530247959213764293929686121602617160097353945025953673938588804825570877383333334415555894626852631659762198123704939666936242370463524642659007708229979525961207758982758455901537138521796222792133964543004182177733210673683520789138922069900227499034318432103617518488960215771164487722283017538251211057111346381313774614925091995731998289141442890692196030940713397828675272396539834929007003433842380194945585709097810946493382338096582342005600035422809301784404483988706476989468983769348082360977849544641681127449528751317829793020136803564757425580531735164767017289152643263875383439889624846421261726692973988074552281789467593174179817399344870435187251552893207162382237517856410449023285010255416319256258897211928681689020934919091369005940041921019459809201958381335224790685142821190482513216945620708149489190365193691662022203064462204029807301988830750009378074359580945818983262469678915969051588546043771297437198245928303803539669694172160990701200340601741400042440071521729464231679635378789753621851810747728001418255044270085006955833309750290961090059433618113376533896605233371798329843781561836729007825251050999681046559850152779293738785271582029883988230396014409741742124767136505834778734394896336405077098119595836253120950196651504992028241276384734499147407202017831323861130104006752870602850132342647503951687907766760192652445398715181747386293648057158695822535451891233327643353589356537641851343748765963323963722778455634880126089808716708296626233157797627989883549822693463948839972575307498624037976968959775078972996315785037736390547658797665708795162555605669803397059504441947052806095683983839145078082678554019486873878015822543029176075597332239690230013881627096850151488593016654738510661163459175962145919525224553726313687831381461713242453704990207836466418488024152379493645005574178533538312238645647455316846258896146900409582953317688832362821194460254445348634619196204041084814758836034191914737751429522710245653161010290175723708928929409019481107075405641798602072282089303818987839255000076984923382370044670513828744515466861432851637786187207212028962852248750299841351919562120315560070540614823012733418068323498915027343984573014836522260422825686071485151668074213766267427743196414684815725036560417191422660416481138467895980854125142999307420620890108768448849544552992798365483858055114951454684498265016901536779693324573009863417878944008274650050558733507935450805101953672461954639361892515722995783651896316311004807482218931328599619396971697553124775520134304029783104964647920577498860334228701026883889059765958412280969888907523017401390785323657480140878364014457978885289533292480926863079858329865974794769302136209206770549538817641060323886478320927063155375043403454673917600663655808963613347569152923683882005245009101002564538314997248771044448059215070319849192166503912278497127162488714072753721367638120557909916714383139687034156906571476661386508766768898963702440470015154955500138398391174600356004095483469306602493245012909429491355141285803838290309242714917119963643678011226634542848284614450571707080573198145041002019448955942119884216156754164939230912582738319852187459540406383406075650034673985212973912252225511330093059617473632617597288070862396626992139836579745730377902930763933537248185369072710601212003385119095524194538303344691488296613810662769202655916051504223581641404537356291103978362411295029065081823396104627154980953997928866381746314015683414924407696556905190730224288608494518713252753627319328020175791952787143507239559025894468791086265464389926128350870208952264726967339383012298799296433568054019251923486660557977848093496746560741424219513208522459675843086477436013061850769579799639325164542506551384287233644261622919494797290807007023402945839039805935845258699657210084339743229107556286136428048843229793947178240364346669263023565816042126029232350094101839221080410988215509119880677168701016936854496020186916511065523499362200888222189756919196409240890168953067780027720561143862971884587027791863977903841915219112152017840591215263619732085182110231985532765909333089487752728359188529905329979589391438836328337328692917187365647600722402144278111888774142404150468081320086080745262565302299176404903617207157818597005025375424322810619394491043726058246642555480136490306806845328206384652052514983057146809260046950664301873018402017529995948245371245043871962455748427713680820731539785838774037437598901777441505250855380073148629592787266438382275530212506837137598600749047975309227365110389215742010924339276033204259287194262495679265124898810096279041255430646107738974572364855627686979795678821666653413209971549794008899021692879434961066163253544722727484079512365744722881325262229321598630150993102226852388274713618115212594257063668665179921905016741523232811504780625421794802736831907386005294078308106934383373693317090389979035010714929542263386774655829416842173410100086911575659796631092021546750717186456841015220634194339180983491489438140867980860093952889481105839665224679451144134647125613181647111883045362340386521397083246502876647184245238022679534351860053211176108180043600277655907331094428683804530025472694934360704639031663367686932056836580785335590158702170612715207461998424572008963084296274579107575250537534408686820530095027762191482638718842641411548115304636727144471484385253676616907451753378205331379851526352852434281473700512552258229192857806205112889535501143149118199136491583012503583350767170681337591371963565526543625755788071873172666453963053630607567497176842402131220162599629660140408900606929225764050744929171666140381777381510411571951723831845126078698625710664269671478184962056648403774153646074557005781940976165260217999588863075808369055783137576318078611644320609942741172984633670946150929923107432824712784299231821068996644919020145633996902968582302916632378793276900715241652254572290638878663358021888272925052486965347380001778371272730133865668802042844635640505729891720128601794954827182320981522440364749561514927105590468970177251663602116627854663171727966408944701068290634837637525060881961941978440058226125576217628927025566676890951558351417334113044044544294770174665016775063127788217896252238769684711914031815337754642335731510803566529152432522673418911728437605643598351800885964785318292773769352363633913597787288578154750089781800497029513451519616207167298176338416476421879188483602240229254039438767120008625334095355910635508165819998528799308295382546802414856647599249409740366336466121265763979213255439179545214670998574053112235113851948288939929451649493564762838365294565474667233979551427914611778586073600242337282892541920406824968995699627254114115359458852247439035943688675994874890104104403632802272281167521020527565477457067142778263879669243381038416071895849863007875310794904886366557244382364467177069999175152830921563170705398896885350902849041694122133957207814753258597861568292837275265898002713089945335021238666109749230852672902224400391601142404740460624965877755255458061641926874544199259287430212585346459871051813746267646938164881575558899177567985462369319738670499583920218095956875005780179653045316753432727878531392232015823942484518726147286706558520991901483258213605716017450490142321019769631360000274489011660632859553999828925728418551571067919939452712957000380306309512897525319108253625695518091518197770478814764182223463322812120275429007730727874557060212573583736748439308396241130345565621459007717849029693364969772324945291741537227288727164645846865937264083354414980974163266172340142145902809330427960455476118588862510894411580307906390731975385159630538999586941807120210683501330567624755425021378891931924714027466509060991533732733387597273522752029495051304644046216639756087876106821961262923712965693218689624631121155203147712029960506711267817015678040734291954567915774791747267437472217783710489727860075760385483161555365433414999670295474284186660779527957708360121582589314189786828657918827403452119912983441364493752069613423795247182378671218017646133569745359725036588875075602858170321919609342155974596740850557305870729546926434251945297366974159300511071486878611940789019279939776083968238210727702316830438135961238658807389549047648644940005225467445745754514417280745791128118804755582408634314537160586295859687288720810851262205819124226712608027426435554365809890099759760224909053322106628934947892589212869396676343704827051274360650511092328854669309694013978197729718723034936414139106823461657229183909211343905946112225452593300553965186975107165357085337468618804524734316639402451415067234254424772625068096798663409783033903042346420923482492234503030594302084676104510636352059772025654087468816639668198000625127528747216879359193331592796952419825617398700957750960815969206269544105272271519699322208141577376155074740645190637983148566114640892309019939791717480971217453470965405635604331263339108938096279841973428616974292187845627244975204597744159233702915453457676804331471851703022269256335799546168738299896430768163422595913275972414932418524828563559523031782168377425597946042575392241229151290451554628064276257807006566284639059400199160345225359252842119446833276870782107711466784625619185249051955974398950255885308612297771233104916262443429889870492723382673859491338221441593407231577570121093129949466134553672936566573595166326850326080915423305854526609112599183505037978344125443658242525131163899059336015790828526831449417222018970000610972373514515035453811746117774668127840851468743845058848172834979640215493980067680425132506468064165110920122306844333234063745774837336693181615343174751657911255475016254234659950475067898240183620370766110555461785738098002229995771643456976784651480714921166083774444479677384629450770298358762492787527851458282158234658250877250659877009960858412092233026594023192624707819450524241149739920525960634572003772696460464418132573573201948063914777439518425851481786670163865245833112153789485197783273309040349195761594853481237776647855704535962071806548855157940906047629768317353643109554625314359923495130552385038147376973439359569896643047020256161344540460351486728290759411275949048548881157994934794862573885871747544967240109990271935418216707633462259360873617666110019064794573979473315540103202907534022113841151842537990226023044164398572970256378648254742219473657605647787553720155257051591972075932616556699622518865524357868162784376799487533772242300687797663253052391638201879990657983032587339929139943769896072383495405047794946577737925227949590505899916013619743307990879356482615474589188337590987695210782019765075171873438169571684061354211934681637870262572644583811848558748824170197695690982693003740451576230892195042591575115944914110361749599069233199600156238065898741420587172216602048992590152429197971150278790033306876010294489241482314915718496839891358827272299290849516970974388576515568575123214384738135975847457700914381336930580757742953404292217575196835232980309267773690205163197972523480903543186883664338985053680661712669021022576235138472554439771518737264252129099949093303721605614199006537390001374971653874749764848499956377068652097071908525620173896494775206993302117271201392619592766122304142287729949224836806907800231825976673385091125701284504517454962173638870132894563427126965815204632131473119101791356895810559945838552808545098048366371928138104819082157891717516119716004199853003375935436136225340695897253251805457508050595741595867483724399719989684223366148827585414182735575244309108865477910704924065532780890587689369499263337616906703932970295316914068130897934473142036328818943320071157408152753482104991326953999754559519398910366715340574948097490234998915568157186764786656052531069914734301883546913770748725777972936259112189013966451050270255163014170293803536027353349836060251285428396975378552248263261146699525429693709951480869637341436092014727906633866193885227607781047243932812175621279077253629778675050782353301195154798183112715262170718250728540045254209110870457189925334388774432667276694838491791110253219663773650361439030724177619555972815609197830222806963012697291714720819576297160015760762680522276569387379478981850024705610408915496474306446317929138418942749848812119123586719254064195833554534063715514887345690203573874486957169347018963630469400369503279307054865794211883208470886337471565066906454383358740336212585801237173507038933664228700076900827755870135922673827605995978555751524501654491119413632946440853108906180268959898414263842575682501071529647364828879261365149394961664353637748177432205188141897772435976718573693787189970213819838863124426353368512757069871164702654428337489736775202588632214593063640253843480626818900896904934725653780507251189659265452822122686964590302131523823729671751823744491579424378199940745163076267173633739411136065563965745298217790454951116489529180043885925285139590382569025120644530716500817265270920472617727576650694300723896135823613506609881307503523547246103700022504728235924565717179898673724989877876772524825013065453543478570959298753830396776310296984650679046135100204954866008623210046158979522460722440156616027388263344541488946969957872051052674347932327819351064856522024661158480663166120113369938545877836560592081258656643057641840646642795949954577741492250228384646628996710727103081480825193761800888197588969638444913270586364348312924365280294749105740791232224446304564697058404384281480273342972431690963314412877539093638082964866018748286103450400330547720579270837372900593987545357604051317756668268847395731007850733412326252846815130000917531501298316340126577980376207034503046089205583742617892635883798882419614089967412879124032488837105459914869160177128212798010505336837013264032752329004758740119741752111964595661065414750243743380742426585872340987091815860511641529323268927780353550247081781220461672467014604379524159564739418015029633134881568488195790805511208052616574373303805289531271594146694554242087607595536045595860616621623022102010048355435818968675033084332775585332632403259425909485506736208568101133108945593913412404870182506918212873530528721628183668772337656421773966087599620115961116472446014512994885302577248619883178760602966094195089600356830113915028436947600762421856385389566632564333518584856680029758657002999755308108634695765926161584302249517142719207902118312302554924853080215070751426230304722993050338806904622206738763446936731494911529003781516479022595500716156503338123405926120174699249031120133772631795730236487400205669221391287914181449296200932771373740119485929329559557703540632706710567105538843776777331935422351221044658853037979574951360651551691429233381076436399082093712798159335016933437122310017966712583182272221326640528326619185899493905330755705181452404907851368591443689283911282226924356979694060417141545851599960594936655636496600081052103739759688232843358395860694922291569228487020891542447810542581194927995925443697578554823304719036241951535539382504892887722388944359460561994307972314076346587625984463822878694599806534831615619904446668080324649199644169440881926020899437654498095869358943888806175930663673169124555083268893042671991882543630897403360355268870129697492546114387157008696521749000651607794604755343488379364141975688652925932313630037420053057013570674080657712915839843818155374981220991351688492546330300580503635296287401491732607562056907838429105121220151929902526862448841152201956636422412841496986658908242925426948154271752687326829655982757845551917830816767313890163116429939317833665611647777287458038651763784428752252797439828318213156220509736569457755312043710090371254146638198861046672266495680582495421751909444301358388124502386192762823026480857181500110635775227407796253341995730504264349210151625134934719388535806601032075807812713951638202420071360536398701349758350534583094062206437803235044473581331314779953547447213447228196569328112210495411928676935741133963167365953738444766641271071869834367879944480842107470406987883936632529196645920000514366834649619949079667164502329666582491001011687977075233595895459836248474077029087208910691469564400110923127428611181914872092592846887670871605807222669163239459017872169460852320683250258665199895785425581505678883624047199054881446762269276773480877095774555398622078128526803264406286108028060584676621503500015569110433270565430049615326490840751761827994951338999872491082338158230590253714534275632420859458334669599585559158451369120351460570201959574261505310660876804531167562885846554582616395871380328824410256104907762518054088570062608770588938603033532105846463215608477270152251239055949138244244011503381308112766234228980959485078748165362625375104216433213570166846489446562066403977154652631357144317011898826629608387618148949796501692434849170942633133475627009802085996291011027974871533254241521708386785341131258116000071018425766340708920247235053089465655006250707039672349280378511654004725725511483821068232287898557485919376376806373667632339143709869255258261569367736742213267529195044745870089129016010090220078799864667567961875622424199305053640266546275129849028719953134846727259925230404716437077220294402222485882212516556812937420562495410499177079426315938209051404341865397613217457406546866221199735018772992347087965702474210866697205052260025305019428254652304021702817876843853236178531950650092221241971534898649571986235477243181909062799951904828934339310004905233505155829705801528951041990640157132824293547920299896908025850852615061261093142533089148304547572381188843150019498441629289686213945014360343649852617471432911998255089138030256051403773546077630566296896159985044948569250831231632134212006647402863147217564112054764595276061144623730118776810757477475675081758439055960365623894801807218671309776666153107788470221918997193635426539663974059782683417609946066816914756177434001453371562978286482779709544399296990636351525287963406531567998385134730017845857290116840773390367274835131962838750039627368355860754438333842882288108934054341360205822647290450113164106343525246082053393596619580530928906540661816063679462801879888690836303139389622389367405495672603100763588183786183630108593118690807956947681014994867244223529379559234328608871231554802237856330069981821885863057679913826979066409530679049009190809601938835792870049682475602989115149109750077520072648511209104026075806839344101298726748977944836961260485462709224488189734009888726110467567855948137047072165322950857084705251366603332753361043490311345502695776538089866547947133683132011058082421613978311134262479260886443905352423733932559569158666237669670982546696233950808127614511385150893024463113225094752223599278734416452641127402697417340786008329350535843583137440824864671143388176066068164810976977845450123294851979262821031310105502533255229581968782435925412661998209516811743862901794429465110165559912850624686398122162035654999197558928943126265121840416278480230818251986137793072232939828131034013394712461347571164357367399837774436184218289275647083662649350295306401173080839506172228447277931045128944021709117243702972319511878599178034676366298585385434506406252132646213183283491949986498072643237846156266299355373717451045683237117515785611821241923634639988933009521043899172525868749859700545928782365042858722035755439087866583098601366105432578445210329198202526948391996584495045373920359181157732050841242654901455898584658404313819631872588337894020502191938079042634427542944007438995524217112905073718784620886229761329801229585899382903749963203938715492394067702010960480819293681848453085525042813695968361896743218627886023789873310509213673057545043239690010739574154312686911945989732224197735490131754243675709227892575038966273543153072155708017166820881832321775271505055324167790259971012979142847349495970422354463640836737603192515414625361587905790120717568629693019250285430475869766500344700967144070846764299216831352629838546980284746839401949371276740619939439201526391062026043132456153552820415122499511792301840899942363591483394052479205259124362180358507802216454322022192884024522085013569323936020498477731903045460312993694360323237157073712285557678912656564703246591875992926529085638909683261437162677990213379031767713422781152260180931873254441311895603863263812447818932210797039780822517711401243165061569754311919403865769576376731617076151421811030792416316028181801241557232699589764130664474549698428677676249962888489889945854230712194264545767872451686841362413677900731801259666441423461248754445578364106566615161425661321841337825442891878682069821536878582323617439293328128959395858477403913848721839443343351583411711683424919180759626330865434469036204773972869034380548584964081594703998061947456911174861844760091155737337111947527790393230007248393103763651040269755069935349203133608669338220341911649466797669802619314611256432205668301666260299260872232405947836400797076113244546741017607819907932825513278306380800590402864272352762577600463932742356181113509417508941399383259811269476775675435832898068359796565390346283046167808850754995212172762951698177233422736442223909267753240078316321490515607811917642398159856390559697104262102022034878477997056468679138442041959239150135706091900411993286854681649452137535762985700170074108364498033629474652488190165147961317205291116497106295190108846251526055642889341874302252524867193744148308072864163228654954153462698079396884877201106995967405003499827183363696326976950927639622706749266692177999680558125400758429412520581336557713717581140721158218148799919580519911735284047113692178595270330564076111677434077943982040772803356728834312976577549239521256768834324053095853583618639053782366501043370319217398402217473126378335754643569573106409514729679844879201677470407268114674835115139225517489121157036471801924719376941939665657644359075955564815121567905676582491799267825358522474477886440630082967914788656547092311468755768879255560106070078834733952343290303317666284216131486159146827795037048171585965570465740738738631264181285387703050237789528608847554192315990852630013095319165534029059298873464769283949067640765972590833052413696654956207430922668952631723081806356648319945397046340596416899744795157287667588662973538508536123096774163973187505222924377214609532302047030209577853006210521841740613576155668141430189965048523374426422589058476953266854218436547812620459201942377016627836757187737633781312961974407640703584090418703901108920502104907846418254663003188540520475379455360359364003082008872270365370770852739340276025938511953126588493073406296090539431455661665176867930384832293928732730169108245660346292096341628100163988598644999665473275529876980921665761638907009687826830624746395149574458177186179041031943115664430047445363990792669769691708873544456607510913365712064960599139503017292198269836710447756274569962538719183771279682956543986689737192402154166672499425783603783541630893568821372013272840607526721170512134013753467419822444386675897969122846631969332940609235702403383124729064412053307121995641030855469829007465325990393097819341263788039496175623166425199982188414120783376164942564445929703964232102634061069341330171186581190455953465293613985155398230203082662289591780768345323463319584399054924975250597966651268578344789103197118592764653959372759293327658244257311028111516814117999549438445550639887766244457612782962794337658593605036214987202957345282028849082578850075618322586463081884359117147264981271803731391385897229854048400180850464969089397214508821934145298016744051876265729290445807824822272221904195274555025411254218831009289868585714608196527911741627699338006102369667811993212159376769243423748869590993294695829483573758477174935295769262793129053990411139767871405169090410144497618329884936215927061197966346965072205991391933810054818851531203740298404527663393696411769659618955642017914240814068782633163474651904353029740742191570390990726305362245742507512178484636318242072894560099582334344070904753448050592877474471330834329738857436569194871573163784509397202130579261088340641712640018354809934783496041425946945548459988007678802660342621990625494517534324961941875890904763770584268595607798323216137252039130088548092637123325963523842608006225684478190257502756775793359383392402774211691668500198030189108118541443071862146553030253087439535459853034900887535357644657710788937356740333061348775468203526051772484930550848130438997802039897888033252262695928610457694577813075978591522225965409021841342042547865748090735506067508189095816109630741936238953756504178958513301113094074388576088923076813238973444908365734039072508666390861233540129582427445932083932772483446654437843141092963370704403789375525966790171366966810768747801654672889241617619704828012355594618853629794421736244023814329872497948838099657341502622685704575393761864079355881730418953605627766933942155119849630482433160063837096157901071723273788117675184674296760469026018308739998459094399089799150681977108218176448290501234220413902344322937337156971693069380092414475961169914544518379390209357522472579196881991990347347939257368321755109664664569614252774346587808546410315698816033962654391859975913105822188035250689091591579855533954830678439627885713507269243301133191159308017758500997763790134875463119484969005899945825922191989449361816030061236291955269364588690338266373962598673248262352758130946724579512641541241233322410948520963149186060383935491314356475763234090189319683942708935374257676520540240912163564914462742489937081492103663261267105522027815319051812083857886990688286840767648940125791846445733539394241781667172296812331450931755166407099789396637579916222420721424960416079856186107554664519203223115317411244146232562304820568153589741389659732114589340099799253088588096000664623460113213394016017503598251226716335539592303360834275347723148604444243857626367515007927955021354023048536136864755000557034749923384118134817522230268348745607211177035807223150999592976435321956932370966188584217559369297152462863001075408217981435628929638121231404092511402998094040232349088885588056465202766145988197859776672069026837275424629959839123520790684555359065024528849648967946692373621562374420120789427483143933650491551261769558340231799300509713841420925560338030452653414758899944076260321303862704772061244361937077753500044872362234375139798038311415150754977204381955273710804421667876554550298937984095946454455605097891732115633751471476474684175763994857332593356960178346715122184448001904676755530127903923896874642473730069185239414314736028241059110926644961097920845032727815489116490601313385087961366430683790305095568159377446216229668922753239633377984489381847262830047231462728651102578226427378284483897609730251418071958804999803599173938071208561133127155027855847326018492176526078668509214873064290418900492484602118158750126244986939378590887002983088996131027816790834101624946570592151749244672619469476039283904792890925102953831106193542824483410067562582486285114684311899927238191587806902170965478924018217150403938255367501042424489006853776290696246757028569057936157052124253377014643743996059924293899441257019632411972070606757235852252924598890468135517622836138397525153569245225665422242793820327437617913154901550644741270534409196240009904683407364605686924274061243558805520125381488129628205637014299353054372608157462862453089123932529564296307231385933375955610377485451047764703834920644212537500389016380767270775092595073272887983072038170614358206515886553145788536553248650884569661716094411359163358944971004865734598261810840012221091155027751779098771680399926797576052678109640517530343137862687268303739300600412949770298620136746777220211743206236808904021295527310768205698666949000053259180853418093780905740867907529704078485893716873802055903990443726694840746551327799099360700227233664882395276257495699337901373326027528577529853988337746213011256685464383697261946976308987034810021125900056425370604910353348396973606318185927222760817548015237031211783222194936193176146275244882613871063292867375468734699329781346939988604048543887224340417065781214124958824479504838302497176024859049174780037158761391762117967021957278384184229233454589959438725030934478757695785191995665848394521662979485086494914046566795118007231038035001487537115560489087542674432986210921979747571798703218748261740798645291302895745045668769255769132996885731629595154079131645847784545354852348863051225340037210214236729513378498508690393087577020249231035815753356915717356599198124695265773601187906404041016018390815506626845759726319813096941213935045477017711537708666819548761319955943009663428964550769544116912457453334576364647304619565469005599747604630623941812658042681027902640985435917674654956623102470380650661279552983621813781904780072142863688035532245342756686700307624632600132088181493247963190219620275952971718151621014674951611662651826787525462239716398703041868537080834689427887155339462747226526988972711042056122791079258936105084875584264955006858414972660253568151590050337702451344160299892536030202507085716731997784899806465909356703782615090377287182772194770598774336369038305859449829024036736598234505644431891754478685232803155440968722583883522186159454837677610275922668380474760193706373715851924751194511844155839082724442657125730001080562857714145646411909349852435477973636574649674104079590683288978416081445350661975376885644074038154599386964010570921105326294738671662930666169327538771227301875519636085221459607045490614623806678591830517739288383875943665519483563599060628807911187009689380138230279339384124765275728856512997585194183554408052487702094085104172569999826575988121886451361077765851925561011051588445215263715209066335905457133505076527019580193294745712939449565796989274525513317690030673689991982479756389684147140001786190349063916834709181125257319601366258630897454871642872256551616872437989212449191755431314517268568581509936679368717159048974674216217937138507010003968486349709226103652578558763929353201867054603585053372142394868912759003658366223411330959586991159468796350036818251955688527806279958931510323604982009340410233633593887738672391229485484169071511159492895419342511193824923754139800788690098294337940996571087460130775791799647718113656781346245752864854463853177586513755070682826120868184199085583066600380975604976221767746490969008960907826927181949936908379025434027918647159901394149964125138409724820565704776192109482836527800960387024612133306913352273483198798358219288688580399943793472120206499309220306324956985692049247590624984560328802228058526934362141958292649784027051477068423095074148424582059149096352236000874491488988772861503736534764344809161174882942954058065968173693227165782178613700352333575899163679569065160904820647583092508689815736126658002284658515727714247486108049165760083762678229365906149089523632496989457998700006933072233961036934840930953935801315714874391866507901783698002927395967155081398779480671493786372938144987939964494852545652669147658775774595320124650251761431577561965713292479763463473104529146061349344302148360961937325062803802190817202217060516552987410667658474284107079344593754647453245838573327603846637996821865355676956776079786506198516600551369592647944062439593002258879207476287832933590738972297194095228379688284911564467398967039562882078925820767894544357004158403201157894299500260670104273673914992216886959021363620571051855406142646143469484898107652154094112654510725328465829699935343588043584045448718411085739080740480972084732173647637028304142055081405392504567740040904884108754561141236514374242198139334561887085153959099514469737316300856872341157022485538612720123436800040690744737228819347509638156187357628838783723104239096998550597034351804480051337872193582445695192090733060855707906000979169550600434826804707660655306773024549453430522841972883771508510000773589213692029009077138956373610313113327912545038175106945186877607904993905886289126875629504384607173047434815378135710255217605871411899655081152573171290916541327268870756366209167437405325667498604369121520238202608977760380636033948259873594261716176175795906450224057156755084629351646703197052233994914423801554373699638526891587795333564526053621125313213831936985607323769812353400044172572096993866398140375228427217368261019152759708102143510916214188251660071259450558224922785728965239941508784933865819014417763324106344823820701632742422947793432366795878784189713293412710778485038192851427588189167118520822309144550082436150629213857322360383632162526924732570254095586466597422186261612656290792583216077734638250569061968583486284030835653059599620037883004967003162800587526934728720294014503353181274350254680383095941635709986335919513851645234911060951099880890150868537791544709503453752687956175706389123811811536964952425642947753379466727049816670284870812030272086476343877765274099839382214085787210004521670406815156680165161284692675812658182475692950953459362107431666088218660688042159742354979232161769496362070169580390073513036257853957415631874928332908721784035752898773875911438491474382898056648997461893617726811168392474992151564762828076008950347727517504223869802048588470812907412600914355552430533207389886459764078224973748134993943224836297867336913448978342688349006428692583773546414557186955738130079833646240240760273519153868513770280484336699698960287508677611511319341844234687665760340121066581613112925145968865280686868432698410210324618132496630023815537268390775333530580728760941806778436987261992103290757321475574191388717068346116466865418932682800660003432384728295263188567587584512654013708946502441571229401342353026714706395062424375203952530888419531874941761811206646505785687140295511453270425480280927436536470084506343872393362582543891011015459139008751886655076931213934880050552967549294101644213315718569418488753727423256690896468483726413181168521530461425548674036239917640977774567790586719691938088568524106404072520973699642104586921046772180150235079107136222141632916960555511661959388684004873510810194155579080651246424636523793928940106144624933927145884919850186318998807505273766004321340227459893501800963086055312475703644077412796703219311054271839447153649738723377962957177293309474508721938382889219886919877300736937155679832048846155581088699487900208538184720311985327041800659928208560766211591968530185542700996335039248631253397164153530971567193733231029268501045322879955353253965360898463211820304429522373222178747098327934350131192404476240644554269150544304763079290442013112438752327774620357754559740904579039286559126869114426405179065507340423641215067978752603331758249079372770477644334247222529741975834897274679514557169478098505676404830748863929632585641743580948304808544015132086982923998686129484953559718316049676370819928419281902067541470680575172416088767290582457077378464211433076437422975724709964033003141565110190933023652097889854725433666702640637357382104808476352699882354433306119850063470391215975085045681151788585055714739819107475044498354008207962670771682564095257888531292948403097980686789643081337155381221435840305440071128115142461380296465375502526253439176380224458198877563984666425409719932864591854499809958343236083338939442387996004474769383473061942768403727317207123782929694165455317650632177153848447607269977731242799435158568611087455559473523631049403842084364362975210036185894080531684302223373425278513695233425989245179481363603865888613210857485802585552604722356303522233307861287261532634304722990961270968867393119441880737470658102216429200000387233415797654070413174977759756614324155871348937038664567375814490658853608487443526931875924005181129023090799722574709860593941880647533873797574543564267692864221222719874404424576649890950371661913222516079762541091369137359838071269479136689424912214508524782330047186950071468876863759828264572985103957474113093784763560186680525151222779366094727416541509339708922146762677192364436422167922332025875801461632687890063119132031268623536004044056403766368994402333869441993578534383297859803406737260732796073244501454070738960925044793748831341530266189608829004920547225885555808327054111491554560277093743858539132154762573180254036199725460220107088504197530423608131747302784358784758583322048401339913889690132592992655921834762256264285443280821238558299776539758846914430515078591065092343999768154299464339637063096516272246461322402227690258283301867806246063368683980635704542731545511326840232733607524235534235237443436085277751969785056063581492813874068667062673963757681266119570669865242700996680844617041400798325575663567947576538827072754791372579991561173069920756397366275274686928083941801804728509579850603356926504452010621483831408376716756373465897693359351766742190106548359812066032855783179837616134233290982292397474629219754123014382446314348355507397350763336036193101610748206186113817693432787734128022264101309430159976219857444275082994215606206552795132642628173569016294967613946845049693469651330063781893412153033308155210031820285829866333652964048065042410844940690837386402838682966808723962443095171039365489036881730731281715625982395546102647334305911058096095317439972366234641563540036500645471459399488893930340171496584866929342259105214998823608231009867762751009328536116082264145693393834562833201563546529029093726593945590767846624332608850982140103349816948630721829889105776595171889582058160144545434545442757227645638872814720858022704441439214665657035351768599684698528206904126348768519692891995760102121308566148207565781660963996997620308081868458549422273635903966611591377284134226009094112199303884467664819068652549056918401365235335172116308435421480794996269405766208237193140059769625069142789991095753666919528889755327037437879645377405542782785722307551510820847692076961296208565721032860759400426684829855009618415523481983521596034349313883056651676962210216420386551087401238086989406539246302403479558004691822589766189194170285345118061588830156579708775222034872728326587814651725078872954097712866271895474351238362811035839448717919277508799533998821049131162655474230977634196721029145962349781183476018749920065173680979649743507437395207159238639728455399748933873614384686491005584972898244833079861919443192311041527651417432029677765598730233153259850394152596727826890349767340837156513478831522190915289925452469193245907084067713143699873933901161628033305688386466020742029156271803147569469859368671097518909096304656080945737576749450440852032163330374336751780819085238899480545090608023014153771330441213467883973327361052614538330434470604384383722232311703041148654369763944816052922356123730986303928884455605815707833162476823466253055354460474850129175529461208663589193567104200919639074574427357932462046645922425021014130583965649012480061810258494352695687291574309826397816730341189945858798449314271403133336294396964178104223793715832801937810985031270610283172818350964738060561737233172542293794085319370110961907033852772609422279433231524252502921491525103446190494509320637198364110713519310397122758107356375818839439541132291943039098834060724134269109912897419322065469987548999864212828218013088032902228719297798753756833649232410860526448782068821370414848241008975749305040700743271213257290435845546909604771019311284592870276885822775120976538109891966212937877193824352224299488892666245460365426272453211342384172252419280895774207968672144983183764459733904735373895706484188803533431647440177794155544207550014845579870770123833967077333680877768776485080570940990602448464567848337712063840706060190528215860395733206476323612540281891670094475276444504837613846003947368833356532056187198906060350584578644892603386212507202108328567433342843835001617588010706981234888281602701288925633877737843147203208378401671301112734010940190564496678457906260087170895497818068667969793855559888197506439943547547450344955837969770739458983861000908894203890463593948572919592874512002486508159150611443009746635676770164267958994445256184329719388578319930373533315844462362941139687246519777642384578334532159393683687994224742265333755620414228231988373044364866190142464912358275927759344577112923249800749265904901930032709111602050584343597200505326100705137373039879285824314622427484582798536839815204150619779855276683746256596281906385469725537876742991581333352872456757389301716001249239454487270071048499669092734611371429332998410052457185108856478814940587168167095890822260234393160243882576098073857227829955577466888541499168232481069922670071157376404995115886996160234323833816404178497461598878956529553720902340457489445376315117117654203562858097669138092696285708122722589445569712455472347019264129949884139209374454445793884461204151186280644769516807764525670128878214053798216306248944805939330444546886061406993277040395301786477418560877437556416938709186078664598890532880672134076354395503041317714689440987703551413833253127551939854452390294849240175548058650858640657423484123942779462535688917024393764053069891678981539937199039690074551717802604660483746648126880816669442629404404776926510949123253772299876723125150944800154306377833187532403956640150271789439410978439572545069160553155891031229330488973534581597522080228138155156198736653016998151986433362324198828752046530025818028238919480619145232543599157669889495395005469669315867467902104901020027706010498299177992623312891256228870839412605479111894170606923606701161472816970255642250438947786450909077011056310677483390655947100206658149221284141191039265143815270474222740240267644552256922390308238253600797829185286231392668508658901912721077352595576585095378696831132639227013507383625221041874439068148881856277907627619611389632965619558046015191193516620537958790304111709693526458557796333716996792343869526722344743830028502281150621263926279165684093572444834453710200440950215899302149933641275872514919377994073867140013414920873604854236257563445265606189744446872232185621844334206820705976680297482184212754098081280698841692356149887324399355795061242205361370835432700719832407703968448959246477910085782358256258679757202436112879506146673783052272085271752108896359563144244746085363306891814652963924191379358243574982267275838742182784456929801046939569465838549100541466218153282522541748287754146814732249207436265659162729479574094902406891962378701612669525375707358992918654275754842039164595096696840887774547574166318171114817527575336196615220450133437338884983109496912988839242213536131053366679148653709947803170105633028929382867379702045723926627645869500461445830761591263330558130995993366762807844565421239932028468372494443706069671867080235602116968097665893855313751672850852680324236405251887042177322562120383818647980418319843471898876272045111374149948391541614113425207286934315078923523920012527533475525220221777034141181042279720775922041928352281951315920243711436701857880720054042958970911555649006828691345144927800637692374243867738137325861484928139760072233659790373317733662005870508188732621649987404228350294637438989253425624370782790910745304659174425753132771963135481949756167106709667428834710680338432673733759770467298467601227982581106767615389305100315483750353819591593456367903103060894015651786885701086424884475163628447325237675376230394878656019833344671996744127075485339936469694212681557392399983187592544586627342483285547735023585532256719609104064114414305534066644592517479397253144094384321827423782245174534244248463817652168317721442900295097099725190523887562122483699802036820532571931079487768719215483981371733625310128247473716802008521588604859338897480145020138539398066197629721073123637757330609297072976526232259486351657993504182957873580985961214706933316273748837922380517337786732099752295167724799240447669133421977098691588475195123547940852553531618922711123874341943572514365446363784476849526376426126756712701202474456559934740963355842459297499092406816911336737593048849852676429501029997271361995201903867073572949034047468556362225787294921946994926396001384785007302912134798705117212798388722360576609957985943448852194280167585709138553712298473370956078264003239892934359577089728906038496739823872628236494867617084811477300991105635108198484622251231631616046667968205491706308406177776087170129544896774246257389520691179405758486124924304034739209922351823389854241969504796346552543768145102509890881241107351368886291000517281297245414030449078151999300374367649866569116333508533375731555369507493744804623532285233876398113441255096828680715622394777620359327625792469039255505905205766003769343895530246285429066281533135399131142459745762058743625756473722741895347285564406979581672047906506057669038546201283398348285789502515969142848869659991607785473192315235852807155421299131166206186285243369263939540836930362416735766107753385768937654157872891064297628810230154211945396158900558600745328520158255703831383901907060073921109000914976786765389528542130053139159483227527742021220237637857463223045534628281009192895128627206104918678727716036654751878017644564693365054206154595530010398542892382261927502312151833698904674513307115478786532660696931851393296097627873839336928881942625971735095671351322298379028005123641469810629165170331710383507833517851309628217543763205242606773261702630604128483448468581785015637280739740997677448845947322205407466269272114397442153692854764658770736749057053015627215812000550979475422830949990968442376322218874445755912474868415696915472567793097672917113940671692251398648777325342826967856919026960699873732702534264153949334864456377766954617605558599489766084733461090642849279658446452663001658183045565525623492350387186782129258806555229927791420801431078743674386125802623802022617969397956661011556566543532584022192773489642224067732628034206463050161897110986573131176502949817463798230275111618376087934784548372949820974945567645302492985190641284732801626575706500089697471076586082175242715058276356364476153441099174711642464268048976340337246739904583888612022234559212644182048724622336914529712932677735252317201197481119002409798684121228643734015692436293076078137720133413819085854467323044575572993953070201435134092593603008712466448596424886641142254904331502902625550947147105833936765487499644010120594970760587125298239667718729138106378705473318118935201397139967308578285767934308340794591063289255072358924091851572111774644526863508782823522074704300808190558465519571993988940302592070898030828262045054311411732751273297545662569555155829571576472931194352916187728979738532733689464694898804078109604180334354774005189676322974302627810384822192411657718374960920019249702806964237603135793604943864973680924016460211107700213115259934031210798558461826490432497487963294359051706840296986638751227705483030863753150102378714827791969286052465588736752215135084256855284074929946766447864211220542117983885155219572590749201332938782544566505748210807225779761946030161880832556048381899467892624035549978740116040755208069311932623432426979205462167630031986388622900161176588766439694035046063868966549217443943925407124271301686011219509531015671610137938161849343416725304406897259013619735990015017408612819049301249632121671419009953123065842561167325274904622506822646869139178182819638659998697838167448567380709143055153139761637015426803769026149179295418379494841326650574728692478205703417125111207267628292171693002318296983013930756910373116530350962169225090450611639149878048070323031509973854960257411285244717320309642221513223155854652418693694537505810948759309387439908980165656581633930939727450638739214628832058041336182213528068255715278707246605948546662598458542928454139685661323654782339161586748760248659131845493966064484112053112134537924144000858119647226175141002373073824504683247435910315058943160342222795404776854174055486195444944578958232014516030965769994884265643787180085947281515224052754218356063366312543905794939229937605553686073766482452427813352132073527643394692610803740734273623363144078853907428431435541424573908566196199049008979378819810421358227490974170021985621045554565390708744222979635762390202329293349772664961820793733571058823249181573420656731862642058565242785258451520327466125068470772507180299106902927502334787700225040870927082725113893599483864617855584445943908959634421583648349890630900604577367505921645413919997028748259648411261163771645356692475536953637366268182186480157407451509127178006915345348423434899158086447068452727119364209422799763020512777041416362818622681581073696581912094456269572543176231968437956681830657392226694507209416065553396800532174198627916023493343423136409546913203936133938951935533758874915291609158693882361369330933132691071749730492508110825656717317315850399392000741818441606841674099020746432533500677487957116601429969377582929775968864634974504528847664908945181863812532139460020017245438683095860495751467346828804376594121809994119336031346698892585015358265484143553440243788359554549884716922658079290104508763956341376346784052823619313228719326797029626074931704498453433204183349389491050155165547985834341455917919242781019116796297373721864710465170246950613478307942011789582404029771796278683012538777049646137718126441110935630694321701767040839285704457035068761595684561109388882460005431879447623349464151283538945856737900909993431949615040207106496769163942891970351404565330726663401781024679578503353540655733674525369046574319958210520669345706809296982772282579452228475320013585309108142847793604780941918029911594585473372988238018891738642271555373376781906138461895993941281654793844907298546515217816986247162516317733512471051786043797753689573082348561602264474622519878088326485252430345117470536460597781359899240036571613394358172243395792612098238151203891684391548898075338310070731165561211874974361046352664776536791035779423456369963989770030305225455957217801710098500352912564867794001695692238384755691075967408631899666117640495078244965534932279758244511169707003341069829277791968962630055726926628266338453896082497009597781125945170317874081544678197422479368996856023501204911721226611903687979778333790070137347746239370640105275248069009399337198498626056076368781644719498725619057236776676368655890530832262292988560227338532687411196401489033034716308619231301789435459665402536797881252745475137848266337034033942273959125921772530966297781980349411826943241489582570429028116346136647211471056216247616873657573418335367851645154847048232475986790896968286676472344280655007998201950802265044900851010850469444234973473170223016970345268960616204123394123778154936541970972754553117565447624876841725400051197069122200851772194562119891619121439771275581561831747741421446184898895382443907911538911370283769276135385484164448576822912658919906919715650141350858048981801262670462249110270911718253800641264533949281130487228259753881004280393861800794390605194037776846667361161105226465928923657147658090608662532207421588948683291348380860380699080503379262059389894050474308224713324027557471040263598050255815093569009968161738221011131949845316868624262600230877264260689237771519456243216591280492866623773097815198649816965620318774977639724014590442600173205581909722175406110670496214754528956206285362993966924437831491727307684159427869682519331587807233330846513351750965657880138993445895478487775917182141707218476763531793773422265476039286565469436702047952467329176912195723398897476511518389453266706405168753895768871091893884719640832194109604198024198962964389598476956800866199881350878759339947712898707072888056556002958077333344263542390584751461772819575384810849068594782372497330707985618455881703847757430179320866433847998536997967562340338082024092471599264748840645116460461961944931304952750477893113550049792984245548127248683174317858383926973988345288113352623089806987095692478399548537964040906096894140752224054491921087064763750492530878936518878462258543334731032569142720071137303395455735150879946053076942382457703975900110736538282542836929407141083703899396102618809394424183872158063167550137474129339846705669391221218098556262214465078961123596938510958948584336453005216934955944976119726689017208148806396264034756295896794783860693270753410185894664072678886755952838411501490249031003257826250380480181638552079862850506247473964496088647508353123040824451508268273756063354174536368575667292408808902816038403943241909851459896592442787942890892893079802522228954115818053233579663371579562995270591565819258274224734785072247280862437231123222377088358042327997265697618345718475720961136188616430641935490082080789540357225978165271036643495424835178221483380401099280706857652883378065971421442437811914764538374009166923097915365726026052919610981828054144531355528209016814619624890536251173040981245210504798272230766482435142762344630567626926156611009588383906707194715609704407400886868628395537817529654625290352799458051388300281606752805362820363182845239719272244363432882148138649909747748156519849933408935170309238953538198030015712622681248544751381339518724822316065308127433026742362877631880186038123191912228498185235731307697089469228462572955208104774332675758783050887525055707346184331970189527647937677552172154644488744403073038624585715888453597113680162510637268588932827908526870701097855158255318641003974801348175961676078063194855312260493762320140855368519894552275367783275299759781017728028303729676879325271558072087583259472895359391674663363000269082361953042642915676449842007640594270472911924473237271289779602750973782170495749036323653696420016570722459011589725118728033215369635866666010878185795524984913873379792539201973781433254875810809852470286239803807924642607241133364672361589573438106942014639682118976403518323371601422822279750478110486428407046363344484768427141487486735619213783790295871008784673746914641308458055957329387315413750579929373240004982397959381434754860309698396486742146093734563157470225490776126890218518224811429256449958415436600814345864449169288483458190340351711100040375343976376215174578359310308025328461817836918941097623746755946433650325509050629917566132413207813873842051879461078789841567404307371656413445080396764759851271399385235036352490580253905727434213736257152830374761939369981753857443843036960193299666341236632914855925423690283888474290390061678663146109346395597294487206010019745451305388135665372298183932228635076407669669262858403746493783804957187056082069966240243945337951197315393009773762145874294082845333327379815642146756939767237039763156627894004243647160276458029090484893532937179073349505081062550477806039914386043148285102422396182196601401268597185663614999281905331230391010992778886798292523389992701712776718583944774734057822478806227628447710549186660451737027013124770040840515969240271446780918613160830200688964309367028422987713788611972779254688055012886761704447592941445753342150867043177912444682075716575815218901205004350383995819082909003857498874688317038435012712304339234796630694790633697831317709619633678621235088583154271188255209388809278082331033860953957963554906839117536980934560287247338620416610640182286571528065291119953861091341365262167979920923120507776339910960146834776055393400945047731104916232311202572684943166217532654889948559626866192335453802591086224020612164487002263336881311697029987627330799367248157006092014601855547594359733478565743967026737161096517930249312002024771421051099965809609668816365560930985453231632304034737383553918640549656343130250434038357899888242685083771934079303017414407311246290552437752432844540321080862524489438183955680624138760785415244240015778438143554705924607528022937999234137418551854343506268883823387540657046753978499564317025788321184426015152537442180747026468342935794547246312898252013725246763533662820096645518744406504341863031030378061287200659887999789911482612867859559678019942109898158718401594207819805365135235195563865697031713958329435886240604628397477884379414702458753155192816239825599761721623460436523910357266624830896714893037206475930088261477149495161110865613713055290300617372028923899043340328978139367261574217562159777058798065705189931649033359789193490523840436583635921663115032402603811459472512882847510712796636041303512412518401865863967892746741243948676964026575997721294933068350331602536134050859894655973317485872755982005835468366909539204171900600653874835120214886728076687352356931552050529377125706165080121291438046262651477843528877779740751188470354145589293094314962991024525480383231536686363311263180429883884815724254383098730318885601581303789232861893773443429467959577708543361664241437065411907973989422221379981673765477152330957542512195368836036441923118325470482448362897010378613702664371385904200997521370722090684048910786363699398715855868455705891701937849985572022228505028364837719289994711411042191855106767007441575145644840597048699053989215382182794749356237525431066305611514868103257082417250221682752153642288274293561101612876879023267903591907012756606119694045157258345655068676601061768347456150998560271856571324421565693345261342956818619395422359528402183193190582064133226693631957102155426205317587561120016287924972308179563934831374584219069261949633698437562085863255551239681587388309344903949751997154436618371407989959996203254372579634794550363228475392409850457483079846474646024753754522122779777302459552387675250140161176026363447079922990618798132966590007080662063352952056574466189446207103838361312534852726451237860162140633061266581190306888628751563115031794471416036271169802931177462248068183464448825434566682050997753306510084282072304174351911057901409395575907502790566536197167685764844184123250421115049638173139319909214759731855630022296067338058286194250255279016607520437506026828898444274216819231989098649478881954155485906008017511408836879589577614520081987056631030682871692017443051465942166824296112137197043861790192262191058068434792032521960038591944135510916199107035989586485853350544536518240258657042023812120938891787543137003425257169990319557168736129736058005411757447495252791051457418100957469047809987388211936325174815222110300530252848639660500457495776695230420773178957594635513418183677923884935381642794872018613491732272299967109578847888785813074904582359919942781840470851008272646377105903260817910822669518293032413124541617869020922007229137262062884166274271264543961566235329037931967107741727643560547928114890851695820843825537219831956688332925935169359352007522961208030796651232505120330457242880711730809369118542942382756252697834589659742898068652154905483773531132197515404723430876780412517427900385587647577532590736739831076660079601369565159600484430206698354920765688303803885689484403135622736089120348901998735118120712140778686325299589446913355134129878153054256036983743994147404321011285184111016799573527000865732129784143766943823959604109031564355046120948083315325228888131079384822104394220221934315290947511488141102608130437744799590071023330147635776122240105062282642811399948421910517534733053284338197172552313678362789652157869187089461705627750357784892517381559609636769494281428729174364815930464662101186130884662072181766058838095324777267050939988159571713875600270256539950960509548668775939508883212833889437928651248242813956431156762031885917436240004962592041746033981858009967798383283335888894305887239308749466160679611619564575498919725412341763247503557020364489115994133714038051665876458398348004603939378078333558467086975982675260545764174639464445051764400831558553743049275876274690193749131061785214625956230357253241323055102428934404360167538588164697397102171118538624076512024601036807640958988915356944225300335349957376007763559232828490388911487504326563535870650166195915262160616395901053091399367219886969759487817966851413100237719545116503610264723404564072993262335851585402983986675380519022516500525183983364301764644695365751288589504094632957453570820703099766014041050907181925956397761256977778525669039649029001003622228036649757567632209554309983862804610870686491920284807683564443553860503785244247164055864876443268178329578524965703339912072173244428190922996689876928530211755337195520326814516126727766939685151502109376389578256814749198267702133847394674815757290359203367231031318217851567064874844793496096619875276510694976396518194123726920591303796622879206628891249835537813746422627765272839890929536947708091040207123703128300736729241153391643142374006336983981117174534384231469223380020526331667955077315591810272371121438734693459119168636449042944837902257193175232067551740061174113942783133652468528352266784663742210494652667940658663801085499331847511270756922804430201990826159855280193100505945133229118064580628768956491890961008514686008717223616686441745078983673221749403296174957396942806486104246842569749353670368080781680881150932203882987588686139984833325579021428465438682216078240094142503044411678333415417600575916881916677753966838964083027754936505168024199414866539275075281190971522064096398385648518544416661343367273901507405741948826430758649377691011990720767011833787140821256473407826116123721238390930275176711580661349676428990785271103679150007645040860997660048970775563785881538679172583907843858839869231888637882509186961064120971339062341777192981110557433708431121286352955412092723212191879612681894152833262695970940394277155773300255016041840259524762315422920403976551150320230648582733394255335558352538593103826708770981280685209014638242989961565153223308309762279423087768778603714180407017624233425254142474236690622095434137475854254835663957399072901339326985267681781565092120321445692599340550482913052723143575150802126739782958768080578843978537758307543501693636041201634215120829335399403141646389831929922166553450543591064484831961777809514815969092942977051630823796834270059015487364412759704557081466904323156216202242188343731672943619813936037506359307570329065001523762848793790825585339713469194116667242078407994113275130098035849465549066109425885075259955896131456476682210098087770647305169925433777177781509688617273210277724264390615673765301079355624204631347840060928401884520137966919893791815381285435730492493706384798188463852724747952971954506776111895223831507167309898239092628824468871197362227360369479840798819619549566178239901570953629040939402200823262909624955208493341162784059702224913199262157370253669477775289397816032719043599322373481008802057926746299439354509652263971789087557372279544717410720733820640510726551363457809792941199477452228231398102998630397520496268676285536137552182502682092879576023712104709841214918435486557631822432758831117821098066476107132207806384040509881894763500701768327604411657221094578817952879779442943813961878595802409953170562963200587382094657430056800252616832658446011942994223356756545657091252495346927644671571508808635318578904634378668853922804898694937130726411205610362266191480073487945553923145785341983846583191805891412046994210197238611799270340490844832867896225006020480268086176929259665767560780950812814338303899982474978741283694837534709504873632980767343494620182604575373581595616327384938153421364032248346272532722493333924400264895923139453753814046046652044317196132685088124963972336814861702312544248705518571477290303281728832426638075754761831369756421301983615565088971260446836265102329752653414281174803453998297539174271372918335452755693504112064488379696091241123322069182680774778114806994946433624447674135681646272940780530509256375093977776411755525753903812069716022806771111360717969329060280169628195960084582758321997376313026034022027576523218377406490616551209297910693628948191091008955885746767069737334892891259316726200525800265057809889002541950485860507115494716844243548203775345853051588076305195010673207527304391021847372665187820753812554538341793323449679787659716381932811412434638774774501901154624978057909357814256200548946373026345375418237051132791765310580650834645680194870469700373186443650956237088166475640399830223443185066859973108435069158912032927409786296745120477167954988579572965071297370405731665022667286318544765372269038955639542799267801351109894140462577684539784228591561790906362263065476992183899429032323079211924824832238302139145386723008366405552351456307779435938164506446880630099348971370561380362230665414321701211328778020461197821781357706661624177952064015652847332550852498867824166544037708152611526581138923958320654803239095085371779390313106271206429172835814917149207698564957017912706903388638788746890123056412535333544548452234261228086859252992568304063917710228403380309737567723136642146747158474561879187551702476116143004155251817148286937979778310164142002496787812418339769171573150779707030383342010493261511473892175352408632748051842275063683321563688556568199613242459304754204608110709469357682746638439350767704232901211018167315313368211461184468226315673840597908492265257010028645496093116803597802151484544233303115517433994731941278383442164452466226312562251826385964410836497382949954995375855930397334556256321117691373985710548967427658519110778674369081835795688945611267361956900621557165384068889691918124615443509491450897727529851466275483941491771930618061348958812839137763201578576437906779334479074700402131384444689294707982672166334255923577828538274957999748187971900385027655530041019510609578643078440527395057497597699861692472896227404329500868526888866587599130083168062927587118010730827782396553089647825554149775303106306721292184488329663434770452367500603845549507836861588659168885688400777247382792435760431384641729778195679407072700236353510736166469180410694550878472232715121475707227901146626053563156114909501709110123370494678763052525202679612223139197128313650257003374045469521306238554408254026969379344325367641734683930501401290243494997954596362362805346491536892432956525378792713690607455601804796901403682731771603967869545316757711324850585610982343571003519454559567259979135774438380416325322097908768432800756481322121551380158696572973446495382790133353833548277790429875765076532626802493349347260456840129482246782027223817430894544487353297118065836879361586634071891190356834236416691431188193225925052300834401674569298854395518453313000329340134535082950670310274557151949049340723275937342961871034452030834736938697984231684797386364906025228038096088880960471295942537506371124422779490409255349298465521535848632573209904573674109777820249117077272524427057456779394727324946826589156671246051703308796326667584646176288106512331731711852978689152411300804941291519309613602696757172973220961031226445657857686385015126229189870658224294346698464291945690957821493585205819903720977319691721498702495615397174389758548568845777399789964966008566178001552307455610854105417181957335641580873305471165718902008361863473523827073510596187927432960921171491287914844600263876385771512422403906695846863594262695711644623970322936114756880431339151523768104787051569573440709140316186679211882825064477206969415598431987614717745325215753850097601571405378484520278233495125237638678109708877627629824143344969491851746433623997331585098267444840550319344702936553630042461482092831127280160544066443169115574859737134703075358126364509709999690838846594221073377031196404291236910507120275776778215426451436137871085325600590304559553424187375015178736968874172683493921706236672979597527516612096226588059293087957596138590067714712730645615269538655891263575691627603686026168267511808118115783163218628164863185070745714213640536096219503716581140522085127687105043802884473652556920467329222017530437297540533967498858797890045143228975583926649731965769277663776481043002658551153330634114472638891499127453237657585560228345942211193863046421137252236091119058394292920631822445599823003617728488832854560457088988296259344797456369155146483031100855157618396324331887316070621108062151477045899169975254022884226110765601597204724517471469232115809286058684085381406298697672998634252216653824764130860511640912205043121010663801386142150348799551003884589078026869783605755776563045923357961231740471533214791899305749021042475467982032301237194306644922087850804151879078984628416188863993078212095193275777845971204425473602315096877133543527647626669085848223762577880825249794517603981960431645575534473038295620137533948529626262774610804038156517179953578307327986196143129288911440328993607942687971208302164285033601556213506628338143436256429103520658924039275367616650919596441677684578192722078241475178427814351980021491146894437394337431943262138366889518516726743716803007470708248922875294987915662194149364319073859756227657044475336818854089962328837341887086952354473715727014867021962910410843198125559823760529205920105782844562032707415928975421975658185551411897935960015837786613113071599981360071961985600643039476615047103055517473970986186283082461233689937072010922350165590163387931117916621797153095475890678170058976602482925877148116156797015946041821127627108143695463549620874873399305966616970980897274354268321032315543699684985549888562296539058080480574374730170930071609317604048534336688839314526173593757713753040697041824137894951010163393685062438535914343126409781062248728269780589374577595251986091540916859241991186013330701690117768094758191640835200455293315541051041642492683968087544432031529266056427481701840814773846172941838437704870049822278721928306483443798282459600969633762398922528944239850033508927467956982240250639842360360625543741737320250900031050722629970929405605436429320284994296985386705534731906030083479555472952632664859614696778631555038758837829403005283098996098429664622408319497788419228645843526521992998241184857038709076788914121477189400096180669492421790659615344023054676023753976649027493901041654976112582081797510971797507874820390227407078442777837878722595224232878252544814968705769791943021447444636393809564020079932352234186294064324224436591672261947880425719517434979175500928148833601112249005043567530755932639162050862193545913606249562732863399021734880459972323805301712916040276142223201956626150558168613748770076217774750275850181299479564629754578334603792571842982564121305938971612154356513465399853016623878134950753131262130120523410442936098763272291773512842211630530195787946257679102690203723669572441815439497952052822200226787528415766355138989084951508346197555935881744859397384108935569503253640738061342823244313792839023507287124865016091826349808458468163650078433258996991578273743723716327512072434144251169076733032722416176534321059998369182635743936174460788289729317111201276704909969326470205684904665008986606002735310167682702477701641261155919930772344157269426394231296423274613915322883494251994479050943321220656513312554924438347772174134225401477462332585225357819488393989039818639217396058328242968570095791578896730374286868883927076327290578475170575924867085396668543357796643831596343007415218272706407145890982685567534600816545718858709497728995440729520539765409939510548084409363707595527663340507376007416624736597314353265876808082333549058091394895242559748308640908968985203023650037019901059693220800990257417693681521269097922729152425345180170454122536054072298889015891090339077689527834455901723625722021930436278672010069479973902665055146919367904795958359130148634252137439135095394794711416914841273284137563878891668890564303458554966458368507466456407245565354298904191544934663293381753283303670635925851672025059953213408533794292519811513891145401748985042225907540141924425356385550925600373567891430665896627613041477664462835656058631733724979045038801723586957933524049510970275637214876950051780151011891258562705860479785274281849774180318165327762228185181227902666295942728315350189708118048576325630334898806481628644278932225341996984725990332505096943937497152847359355003974513024585561825372778459981684474058049076214590120893893469763480610039607350172373235845986631325658619276071648498175310967910671672630098941839974669111410434188749196102740188768786667866429058799550650770602707292030161422796132101670817232056577607585641538093464874941945166733623709622853102318030889827180553859656468577237090520519753937784940594156084261166064225521059716456336117842146293470091354822228628456406803578427865503834539408940239020764603527500278981576866865183304027729685411791752815725304356604560160776434036740955673830419650306957003026625525269238296547360175544604622577332101521406834442437936053810581775491256417775629177723741263050227801382456487621552688092856972782248479458700060717814946412726243955824105482090170577066469399405968834372242634506704048313122519276743433474090767402280109345547868838484943172180500630326398095017175908606465560443796126109792687165292724724151963763267057297710077136546115378342588837096993015659913714033869666812415606063051087100845165027848827279455163892888274196043961400848472600707663046412005948840899014442870230617767263990813595262605169431990205197196505222691778694686592226910232625912615539697816433894481513103151672076105123523285032159081868004084726502855580998629367676327021004556956898401324302928545969817391513695500306035705401939464732205311604983775276660205984637577851558463149260563493437784323586144238278918271959315992242623553728653665328761341177348113557186297962530747805913883571194073519404205377483876620488752984668654690306905000413291313264476019519543482776782464228054795764871103350259832586741202947507632224993441702979482501511672259810942006012552703038171153283070737976731005992540545142152104207613946276470933027409778757376763922808094371673259739980852528357563586244111667969052279376638000594487015776260521574345162185717210346229890855539055381621243291398534176466862926419865001266332184450696671691582812671119161326729212115538537763536013727139635873383472541614850182475261893904564329581323727037509501780973417996500460620460120236727568752295854845367394417851416300809498343139512580453238441712558472541042447151836665857967998646758648498125505952487815491981563021180606043714036179919454548141821868573237770132628906176367252903249395857172227229969006503736109872156219182659224366470473776351173982668021986281050885217484120822973642402476624616526143274788745294928083455450930968839931985764563661978155553592019274485810836942919717948707745298467610120347940863349115768893424347239751846503573358488536639114655832865103828397682722738927760220488087599626959336722648079710345537330160983986988841443588657586030108547619381174869755183610499504122880873360400403535095004091459090520211923035403166827572960148310446448634320403425850524484270288088862236655804164571047697072914392433864752150235064006223186028381038464829692987615794424243001000290878084352615860759648819274312197776385370578257785257815985581878020806009561745473571649597990508021633063819280931373782224424243479854623448266179504208981949366454823315551733653429355259363718711886710666616299524542313031073058507961463258476287210003484671982240563727875455036956765150328142430399363165779441211327612135018213222712294188090439257880669729373054370040315681540168014821868283014038050086359747678039588678511238006653858500866905512449147203357950789749172318216088115930315005350212432235495046243017701741835987180001340552045644282362356771767265087843188793397092656390816990382597605112521489666816463493625268940929558008356352952011310735040320393045890422287420558514943733680448048221422970086003836749261048650031536828190505850858503861495730478974121625222263791721748663877060313325664039748281958049383562989346750194947257582706084928558400017778076986961146704230730225451119120692885365998789273852054349444129932201287602096945210530598507183080413424484473782768113275437604786203646730274004475159616253780246831550653755648919120183980899114990022693805503455526818714411495181364655495802318156527322689615359601955255166314720885077672110276533173938748051664400382684092616007744299730123029203697830068329541133059114925018916041673809748034793824092493597656384085916938733522981117259852660575163252829553286679572401150729672488536999065170240253066719863587407735553603201282292751221097539920237546124597323248526725837714678957113399694665850685772818353811132296753285423533186507162820779253971659147945836875437168874502580895036174848301218407588094814741158340439843702258082494493379874391022159890037528873183409013708444091596274084614391334051117144171118416606077365022717527245698223257975254893467675995438044040045063696754424073208200914376640303491132912673688303782811378366595116113458303829672771068378326398707784302932554584383614804925662229713208353461497703132561623423808919468804792635544258898864528980063605675719858180094728564727414829025872954193308450011481371057620281052454050748486433039825603550083211475836951216280215672099597226695397046800861743795983237391920724564757458002996524485430975857488577188098623566696582909300544552463764051858125507671553760835541213551562837459590141133684470668691965940875786978487576982976219902444749299418484996568871187371827370638702882366482890276361562818798517091964364118920059333029002292849852396358652838157621481714896305297441296530262353274495112734094751133643288145900869200673938725585705705229607713996353512395058494329217523547753519073455011487459018666115860645111339388839414954505037925490363471710136156094634690985158175731557841430202798127734730633728455075840251688196469494347732775080173331750841105256648420203667179943523029966056060818191333535261568444319084452196439107279259504809527732148675593201203848267413369947778839269505268450361801338463387923026963015958811334059164199488004540008656968257237751497409898078692226691867238915325872184227600152977032147547040090773043820857822358924072314168165283399884100078245323805191378104609189923887580747655272787746709449733185207181976125158309092212052166233309247799065149651183473393703038813946489970682159249980215954294457303350927245431756181480695049827061485480394466381547872938600832377066508605628441144935514754940587872504324820626653516985637747610049462691838923893561250893675562832584169198656942887017287822611989266698097592885024351362473765034496640162945997818786763476187062825333669759537044840768462029786727746527470795025929424954876805198367757262425097651572988021227873098283818509632570139669758469607901090569603202316044917025643901041914836851673612835929138140836216413965330049137954250408007663097402554564645782000645347163971503518376087633897483895189009155994633726521025551898796484720627780992846041599319455619174845482557901238631193081855003087679159775427482731221984022533157919680528518057965141926338407187767910453204499248484919239252685505865085545743620736004445541914188780016890678782725658114287832584988429787810048879660253640021119753445868729353094071622110715667899289006611979307496039721344317081791053202563481057545176404767672302658585003514383607752682098166120224100705673175600166005542558212280346718220615113878428617994266509917226909384404320719485375493778791711795405391412702079855677844976872111043388176648883548147267413938166666829713753501598380918869606147497100743957762003062680615991653421397329322277540947898435881027087560523374378461774757750436774311796047875934719226929773908063656754568532635883523835531652756825940871684604808985575298747379899216826916117658667893487479768724656145873538160325213436741908635365873860157216989662648100589788452337106162823423698104452839508546940391931704887086143968634520783136046799845685238210768378613900722827842702688184438444029445120972433176746676707548325198673733896865824495009550829744600485572545801982072776132323228811448318123442826993376662644406691558925711150268105167844806974465134292595621624485939963180594882532696899390814863895624221186291624045812643329255294448885786716854140608923047195423632485717699933509689882172467862572707005848993083460999048020496637119573203041426339827106869102576658552628239713268819339759951546318888242374133915352722314226621332391618142976247419313899431154298401264222922693605289813932613551686539220144508604197934776402367499783154179731978352956924802985978549865632548064010868492191473472140866674024627070869301139140430974175308367426223231366354652465174206348593667059711489812760127267650686307489466992892233220644337954056720923220351459050767727336044605563014928698546294072636210104544538514362227966204440825020226639934361896998129521306819103275490663868479077994844131392347840353199859221520293622427072899591599393970275297314031984332840042371593054318428616767023476482119386242602897006343620400115923978461296906702255970720710482460987585095677742746359574809476042790847716261833745793112700921831857351846285031204385521226921951931661447230185138656002177820317912782145789885530096170824616702702627748660581572456660281441194160466012047286424042115047271451666811751667317658988242929338472257397162435052899223297392575474700241084833029592427705294764558974690449358195568064397095722632083815663245098431350266153396079514035704803047174593998215234938755594830307949604443793685784343496877073083918961390185977687089754484243720189344916844111205128724998699093647676446650453869026654888197996751177777174058803469569600016915867723421610134349900996964270675774921785892549644706165874451969996572385946980564593359189682797319477556286315904183812901225216508476693275805444127498145308092482639782852978552007056484968299651159735718610912939288650041034039721848389141435241960336049310015074996400346969025559602405700682529367974887792826825070165631544279784167139777034159768049563062295066061666629984911444115767385046052736472909624634580242892728495302987107104618250683985012635985717388924069837915968363279311597599901870889580397651229062611221342245488902724358144901298756087455163119895857676234349238103188153208077359095646439550280974200476541064691549291138526168897309517177575723846839200457609565635902093496959860883663402776241438368218375947779708224259873009861805416880464619459331110262011324438124594661499203216900556069539795902838823954186391834419016249504246709044636987016185372864358871855477825015471193078401913984992964604503556878762335419376668338099492378640336262004869042914731446831669329364463366106628760749791059935312416796366125854717012407582615460565464234638448673447365989220905017350997008938863469562419258647535083661931957789246882759365669732496852436695011400621820723005908020283698136449539211119054162952126637299067703690129257461653461223379353073003346091727529257450322514439431381417651656164021042454142235140348192644593557968373624498678857899005999145618766112423107061041728541945685376175839727113028297018725578287581785213472808931970499553645421074972418157413388487532947044781097756321507405408818520692929699814824046401903728422369568770106960422433057869390935491562763510207674883990261267737595704517447970646628123798319334823787012206600683998492675739914652379706928559137805191742863607832410477267969617632360119771016339494767493306542348035528627570029963592771123259599591031562870325372306481326495760114102277858245070577149824981208335311203555542856407933498009943716348515636043717057701970580962698870744552593233529456049604128641118635635534131188494024368020373810025368656144858978253817356593590097580679963492693574387122528329065917923381061825385671122767882351315548342738931016078868700015469930015678980521770684597170495690175779764578333084777478280452910782026944819101619544279257536055155600055898038543100723711587032371227003373690611330649759700518768755948648173571728704475404115127180132228903702007614432584858946047171156182794849223019541673664606509296271580508081914017919582527336747680360512628644900645896806601497315730190908886069811197102232196156352681305431424343699182997042928459165481544352977958521523109633972248507435631776138060765323386147972648941756182710708206867432437538668919621706062516738480354662136441727449798627228112190808407562349998678949910002531075083333098848307421958331361585949655064344487714771591696846443508049170259983016166739839304931957366749982478316599243822096683987766826245343326065550524706199542767343179201420430857915645384202148841859743428321508816015817604881418319111977172666839472189159825155194896565324791007679668878223662007566685391332454088073957360096392493544087954037589074167934089880061698316033247263282187865854875507270279352930345368740411593550646408543473753900292198474291355654050562244071907988590565228704470159401036102238966423341435536950785805280553965635815931827297043621327224658395263778301309989216272684883430428650662041580772756032413771291501397996286650631700350250639640311673831541232531648749409396986874748526650056988982084839020624436453412007639479306799287816800148656001742022995457888822609564960885016173659890664009400996528583797441824563930758928164587297355926828636970730276979338752846672243674259497382480828267012583125399169192151225266260098996540992127714038704169529892603363324340842679089515219708487708158042445692963767081972501269557569719068093916858395384480576408459968916528339128628827471499364883805191431734044242967673081811442030141941575289055256588305594097859445572483711516807958117883744233673567765901414852007579124091719007085644695964844491688004335735166212516411623354600462561947681147256163287511295674356792002791490165248638285961505756779909966015960201547340748536395889345372912385750185102398486023991635030504688263114176790806979772372945798230017588996117262026186172316333098429533629531069947522336434114114691912334889942282759450054341451035875790805309474579669319141860107304547687579153871235048809763128818937334729380607932617495056538838226477259053583461534125452207268983236841577448821664047258315166748536878142687238715119806812258913439214348560822017521112555756962252329683609463811870070134356375553266612496277083022667913684816721264080610003458831904564688975607740548007317284116074447149850044657567341369374112867474098540991064275089203760038656325016253293776688491589710902960461866033617950179598092921704571692346050636368727916890933717233082240736401362629569519455831115808561923472459696418040979472468447954350081615511696113415915506904429150140370916069765035679064405131438390495289282522468501206962225862181135248926890626176411874673077447633609412803526829969441692468099088494354753690678886833455754630812019749654676773043505800633331780015537962577727800542134785052420154331371513615551104127698950076059034255013268940622574492355143035663796113616153311029742409309523681953296630540581331734213948392813611436547853661737643347487890085919946001849387662177743079520709781006996203791394909997241998775429526431083441803195239928088109939214551207829338490288105141435372955218670314691598810776807098648630803814656964176521567420679914033773750257521420664297320789416965413438556602674811429947292172925547565151802723205371128714972264814003332221575971781653946992219840417478350000537148776457286380213896518969367737855763281088977376974794091677538581392586410825155873603797940555769910687212680219113122835551141165098024610793403888135738976412596133821527617488515083069087013994784587837176777633526195066768813279273538037227689708985140110654033467881807339211528926621727479679875238229053299050492672820825602447605081822159643320162264640440214687550036659851102418691630959816796103885621711248562115416661037232972098086251171448142265097152874387969694524582562097424071323421352926980673134861512825031467514280129233199355499360109780279853561804794539423992218295841167411286789038033635557959813580189271955901992587754341746532922622200884280804217930652057360078176662511208716212462614398676766941321060957274524851277576769085037776813352864976230323909633360261434513192025376941228267115109463201460365787994276154019025712904840012512725338451756191047400892758721649829226260347353174511233144629405398974899269097169525508564431199129520859144944966052358005990479949897546294090077452323953628604854239471246051482388438333754197935089052214226434444365854291512107741635621163642089309383680561997683938491137262330574058404935919254436390597176957052600904263951679321458648757660150696591632044769058079978697601979088106108610680133081245649204286548332729458419602745531006941419857926581012822780652559593931239220232055645708888095183431368737006982852629912438915369713307059683556799416773657468122740391720364916992156520844310043894095811772191320836476632510376355996879185343118314103779021975877911514167578895709606671643372533489270989073440618289755995161960752196729210490524977030666998069407493893456886697727502486788417083522627650545911435101205783044923720834916289219330211475342246603673524268507166613088485303963301150235862340259176825428611832905164308820680817518937206231605465278755976839149656845095164210453144710598546561592207651333166306380120508039170136812684688377683565120780564087612902959176938271586436310910766706887516307834255538591853068558763947397857133903908351266999075216867601351368237569975613092734166357138138764199762599739459878841754536156941660692622630383648108241307218933938733230123264382419306526915254392771961193620444339612326114437210386043268420305686478777865834742885817746701045890196949884209646583553044487790757160656263713723371907065849055023990371846808942343788124900021123414969569137483092657075354693747889476233805364857185386397011444396073904598542332986778662296342974624616938470601159474286074761448091886034287653960991343110465737563365685426199156213770148324734999956422329538182638493230138312371049964634719825316965518369487858942942143602060215624902929994907218744234385998713271660974366750317028861472963499637195329169110008897135332637546857956886935022534114582105188497716889244859075895755355822423668243781984206755373430293882701667136671800508922528102751670276827408415880402605193842940540323514155619579720931580202279382970429186472138402258762142625460004373007389833964176553227260243557550653409632026219306260958123102213230063729435135775389941640782117914215760810179890985749277275410710762262842197644246006555819439250282463849825555839143451161295449597405699096000023997622962231008566842323808801174430055091413297364760505729609039389947576213489492558160616036193385216055753675236453785225126406326395464505711166566195891028136676202199968279232727953325603413338000597462263109345076189178895511623335592444828168299986982546774278852689585538872969383033072997570346358935017579448383328396474421663595695810345659348527972308425636173738867601539149876992305166414950605085224451106292790627125018977423213301180160503421462893487480546359223920642635567084165113217757002477174544502166779228546540392923379242153429003397024710411273076562214112073558639937116387321848207967130940606707588328077037857471134668483966479136053005913714416944578020648507218291761586726803266425044976032705667706344792327254699812338234707398654819082426221517658056408712629414602294415734395626382811471118410305281513977686383092594953698683879282341497967679597832817576272256928092676272924938251505254302356564175802423778301846241403731697160077695391770414157269442450918027027919713253119770952850964421174356211134492185597415003217331835393645053116824089525558723556776999600661634353671204430931788993614303223139763199545818992868451886760145028786164049639896322385597280999209638643614834454967976300000157121901667895853287313171491984009241920837279514656000120677385109103459270441969421268068119527139246428881049754182559402129791093759110169239006985377577776716386382108058797688208013504239748770854306872605532074178368236661438315300284662916873550339601082317043326035656019104226451001483857142464207547613467990720027222447013544257186249440572203914566680417044130736785643404082354433824890853205341583549572936364884685607416291029102475281125242588590848089247717427960078848961603839218887447926906193940731258017308171741024204945636520366814619595161251122785185694578655117473901140580305779896278216320549516798196879838824990143188610383089196387765492000263206383211133459619361699799913012441587269717119996082665643254179300214181394556339342843522328980929614970611749882185829401858021277697275798609774698514908042923431446068952859471818671795246462273780030674079290109319234095681965874422572423875187256172830418305695776001692996344075516034728457000275432360463586625202562328754421155063698413759857347942961164610760273663812796606881015469547704936161174801893725854425046835977591190061564546597075984420850649588615674693027182991089790577348080371443853540430128670691800656127873988708028556093243277870452696318063074900453950806242510474750195937468051111369593581047615504763979826186344428337355828999399211137646590117969537477427327801925525919353499072102554725298619631769007779607752310697584399265995326859002257533611482236898599333543719774343056863866491400107045908333344342740595744499834055219839571357782763327067572460520566313363344669292480000193362308503208155318494914803344738963547907283498041355140564668032796070211785803443728850298984484663233043325889555402920009631581763145803460572223595598714058850970047593975979410346125840488525478799939148411379687289915912043627711858152560856940439710111457884933131362340805353767271473056016474553546016706687977999780996625103437192838632744333637489267765603702026347583213952953656662850576034562376132360959665945382108232086292664939462667486071117776785412422468563217109664320258006527100263708552431871347232596668514820263741364027168581644133269406172213177840541918501108795278447042860892040380837061865566105885474305592746130382702943906503714564332977983978264688212134489677982557459746312470463796678282814000270845388824010629212660690601637313824989167838346573902442159411015047388720114362328046490959923721571101192006536472915436687884901737761081157737979792140709333915540519748720929043384067796938677049368426269631475238684813070202494805342487614674858752792874649144246841836172046227320120338343539975959436235479070302428576585603054830108470368916586155711112847442937189599588766441820184255996254224584618197407852699927959266529896045069270242617705753241658277370879183707062905976804710647092411304302778128115494918191401766458555487967584275430697588935992877097026042833534432520184638909476652912748771594443199427309498734943748501453570871712437274749555904168991175213913099186735312108738625172013820496513505117965279607396041830075472362653828749026979626834171327190463316808366834666464296167787404309847684265616998512443410448028435437469455733062187950256016567319837105107146760422699489954019894433339406584889316283135297578859370329849447885167162919203054749212643652261176154896017862714181442182635935898805016745389471168322166253326262328060379184800422694066310416920145974074523787759060589926858008941223137187596995178975462328062229499620024521378266168089380191085573060143847308034610511471235894692089530646446883490007622454293991890394223371724484029112400102873082796932519048113270322043961888162212567717014916569526805576338839752575510897100054223591814563343056908756509965074298838180704775377216495353513934196947704203087657957604160107805807511424538893881832037250948518101115426285458837763520595377860135767325244958296521901955273316601936449960180684158998266005323912339315064030144955946385608618618830245642637843421407322606661239584875734727272383586559115999065390154599320158045876153373883312303311748347698228762922021570692171537672585299164018684297959771013314481157258072927766159237437064552250981073082331326048187690518883816686474203435447413773329503076278396974644427015061074314652586054656643756031931415309807596564940089575929010237874967479703859713046172993647099118823375940283272972245473336651927634495217063053800659353544344146643052705716255801835991392147003286796530647908928178356466936872681146026197803914965246763231268240445816945709510281572270771574238179995620055228088530139445644238195595285860020719009505185198667641619593650515149328281031890258124670530667831197463981892501020151264886626957285326193593675718109667473135171589912660120044579281557793925905899480501069011237786339739184231552989483731483182320963119849445238081891748976890292676857576989284533263786978614832264338577831583707583265610514981603003992103590510605210784922630023950630756578662420012275919566888870483949859037632396030002464175034058617325478861417280674739378004100973024145250000014882562992735580068474833223279536024897667325240993882715414672241881027814802085486305799814552668657260919245367204447124509811955281850092665428379446893655824940768198579922304827339614204675846604959168520635770420881046080157507884966387935688305018482164433127306153518255074888608714300044040471428422492254110807215739579294071439987039560020117252705481342216781136773036676414186445256903010417209683238183123372962768100486957039703425986161620265710337780287383618348180669279377803347175199251427202479473087595944905797454532032532522149915750711995530111883715253435848065833014830516182562880428000567122388048220282330901276265002798531675402690250720047878821181722859199744560859463059548072137455310805232909321397540913497617530027279988963667980576919893307765570666309760299424018503925611893778142931969641190755586980916489217557127500043535506958781197265649402254101918634058516529326591923398126462262580475284861641242219242584985275362502018644409839916815323258012390274331700041573028348438464894726911647780933965299638176148967935947310594669351686084300725901480617764680142121587115995774535490914089343746394924273412384525861690592437276307653437970175828523385339842764248586224988039977550774653875239938386885749031898767683523169374935431129408270170161186643615589205708131264689479034301233157681651205834337219801942223430682360147354043059138859518121274417848879272902022028329429335087961962721599405991426984412626538883395657152063512399545888238453740702704303217731239927262911070705622089304056443887365758096486655594216592468126622292428109983412458707799244466501125918166802899600259480630944648808457152906650821397782061527556445213724381262475796114457204236540764163717602436916971191829227510990499083633787962747821538989377905710798983254101632629267144317623874420136034276405937267228100006194257187728066070565495626565836544024815542523193353598310759250913866465336883044586529442402441812414612788009581283243859025543221885096693724491025215544382292547941121084326644247298550371516280293624699467688721542657676230149156254471817594302807956040482463896114739124401995502817826288529265346661156706768699943171564389567621522771262507987474161723641144516584821539402545582036753473477615694452918469719398149786013049814623004819841849692813630293003896670362451300622454545100908494477175259742655468005810464402933928769181959059296682688367756139225360614240731527442011582625613820368835026431102226256520341932453864505799773146739672425496457535953162013855894142785161180185000676649232889953889716422838713525311421468833514479409164983845608309288013900651303210931150823486576750517691736565901182169011381264258691293081174943021119782322306445815430915154937982418092926949012258158026714908499671631903506916957859478433620936727890624842364405031732352943760905102128358969336240913087789920170781122228934423450487238314935015014524196345155091723523343279449425688306751055130181647729316638952903179902176488220331290793420827461512273627190858877614567598151231976152913443674026478676716062954968223282346343196832704389010184094670133928941990783505428221437727035533334092472812771671233379447486569063395980452077291190910355561580246911380847996657317496662056715604859774274231971496999845068431538720642565876031811690841338177066394759883378296118592758452607247821023535623547571452460333260616052451384227721572727764973983956533423746369212365275373088262137771321081740998401575314536925446385311879267960488479491035110582057830081075006054545749480547016132445124971653042180417532121226468453564399314837682388757809387585203268087532135256902891446146983263585347428603124736141627643890889859408740267795723712880690235534047903160408472493523116446257204188786527224747482540953027920580874581226310687787144875865347585434780508225097335093660674076267111372758216973047556674302521501171366863454460777096471656188930365611398370402050251219932449671562187638996605773396753213824313187059693261295070432385474728119004605219437055294591033253219195341984664247858069261679712712342256212405690166196962997664224230402271862120465435479765971981361884852755625773373314243435693915030443826644279740847770206679598965066863829104731006065047985894726627810338370774939118887404624183439590516724341668918738031833856110964567548319491196530547605820695205975373778727996955998081131299695490657045152399064637484903323513131720066863137918250686910716491307444177469574223252264949788175319348338641415386168598906455812625119356524572953506673772836464021654527466639443184597423371443105368325072248506378437824810186462057157632182506213684853225516652137168216832660210548945504987758887594172256117001744166940842139120140176256711405998692340695983233615097182755988338781353301239257857641158951186194128089139231031221435213289446590668441041662890908815949834828861626142133792475067611793890188673295764961030146895009458232349325885185330264128201326521067369359630834006041628878374231007193656513700992843126998600740668652144296295976952956244245812053965390764906602508239986249681339890573718757765322249206846429122081717384753647053118923483086430676176275058648639532539236647900672209151685136606153047152862620024515168665586940926288750051232655585487580992884172032265269240896376469536635398826033502318737455232455053448129663265000819971751203893810259340875123534825113583387638595576233214418218519465540293615365773587080649041248183265706876209734185871097189098390325383896441461900207990915367944729786806873979909668558113697652710530685276178070445338432976029111530253549411065673456579669656634222795812516814944991767164168140585998605742961210687150651349295402353341469888874585491675182690548811998978010681369048754644561878145116565643920961446593009388846045006724269230888476555285628169144935133097326356124374103217859721975832377145757732028454380618046557797722833345210032117670232292176433659865540358205779729058234245581176705168728829524548792364184489528765225128850478087625670458080012812440376874016949213358072927394481509799147577195618795892762530486163668527913081891064389170287759815653412536702342003694876521330272681953566186412152048491010207715752043874784500011522677918080646241120345499409979168069875125137107197970693913592698833464771520319621169285384426982222939969639077957056441915091064964253464800597930928543785986813833562701947667380656616886352256903139868377370387646122149829904068389156490793739464756959434688527310450529712888187734426171225368187385398983505721231729199022889282294130922051072239931284770496044522731801485948049043139932653901156778505247447856205646702541706062074010557400395713530762778141165422628979352347980113906148542266007295633774950259902432205023905943635811417186053882092921961673990618296975219371694176109289288039972731466982535525706419998078919408304037347632341904136829679367326681218032416802686763737039993992724921414316731508620611393906794057158691137083043632782818954900196423779472981883895064032958693482265641699717454397204434091630683553697158954490650969258500496662788048132707622093249697562226299555684382231358780973655925505327411610017525913900213862040819235904533681020091806208743047116871593896896462734416085957620106786923215786256547580592405723064246134846105666672059183991080166284764660449369256163229284259898913206218148978167217429243755876846857297784809009858387342654150482361053666264227098649674206958194373748312715887314743873002930614530717893249151569331672025651060561486138326158632220846313384323781655732135778614964915077265841209081898783534615622787891868744857739791485719653471983757659285696162716316325928231242137562744461159344902193899916578954954505043163603971124478956564720944639564570641643818898225437846673019267359500154406753586975635741437385657799133075370797350950150560536376725745401133652355103599223478363496804213959464322699264139284247218032211617840186707854070675693335567158741802085905598942651602968957735191157534530389709651933918800495583209532797785710484584994245497163269632131437791316753106404077435435745857870804729211896596063984009865335949773456353454316842616922061153154974736100772837872376399911821260738910023029484759159504204258788317933645929389284375034857814015051180780778427271219388855627372850125450780874767251121982022703405547945394935026683247602983586415540752882546367424444887906530385276174557838883680606933610639749258875932900372175196238367143631541242077201447900609345051547326412431704029441263412733541826441428632606393550226755527331554292774630621572564398218489862380633284988299485292778941658972402289638335800787604338558629437796418615364155683466708554414813755140596800080551944291260491951181979565585028796061899904130800241080140942509525500777183707849026742805169256190865165704160809631231429688543530200002209803320782772890383598702922437907639396254093780824091279224465091057114222435121039570521714064087711454184803470125393597815946969772968514232508459206081938358682694571412777885607520742180324515856697216254096255343047911260954235672197426194847430409234359211205688704632127511335396516813829093080954442474318534419962079490474147161569571036906988773574665954633234499417677037281984782753974898008411955754332055438267014277172962253193290594970535477451965665759640391208715661085175576412307028579662436658892411941759227248163264822360328087064032352561945527440388289843727677957309024384171481046778603296388121527344758149953540728150529699078902628315918668262881564559766055274345191567075364944194991572833805087479435636124889838076892864634417380297659765477430299611356275995041521405369099559568670737994737004663597801820392083042613301793062617303256386685895180747454780055244499001052071464457269583556394371568740171344032685024796460890116076899376900987790212792376311885493910115127109921773179104372793478735020971903338144350629281120006357430968199686180040291680814854872932935081981525248786598496678601621996047168864328670592568677653628534734982709445552933884788978589423614413183828373612487260984974603358974807588706299882282467458075824187153076268360200886831950110604752541813889675421870066476096520301422142299866008661810458580463193905332217595390529481915799626236542941992222371913107586849978856174918007038774554093509085697606819027223518493338489894743277003978744319036394812672315531905361174281732885966688286910205801895955118159330774570303621371551603465625653873545666999279710919711328596550923784785936176549513512446093396597621683378076720614032040497303466814233408521204471641670398884535365485467638673801779148380601104671229707000957313742563205861567311009446453823361856229918745049597905574212900113390807312589385291132075609060425914445702432260166033138610460270274127500601376244641378828499985885293286198737083699813942793745177603656220123399374853021588368312182654365964600376257813048130847970773310928329334278159533853589209161353906795381209572636346571154148823729718258817886350671274225256818961823600065572422444163665135420472318552146828124947107385741767379027251369668102257803310069251481020183093550133753037948844960989428676847329400661727414668387254128733864643936018339323701755834521905775836975854301550320665471443202370465680256659183449467388168014192133152130508152900135673739072748930563988898220981952076778361218686470697896149502029962755555176199394250642660373753189548627614458294952590651399819155408898465488081352603561309890409213931766809370381007593487529006352110717683259820772733546720675353067277071654235412023018762745239460686092895138878179406961210165551488203229782841549872083669461943799133315166034416073589453776416941500038167114749242735615772335285697910084720885397770937025132583793389332394255262614065308974229970087812957153277158870021681374488374936463490288091182127811943499369755723755466274450361891679862306753753298915591374417012326145031375828880818406760780902768557381113842940767745889993283210845981514950721490858473470101558728386846432081043627365042998314654645939612859304437405282010850077808272438336278932961846626003534212092250915038140569437617163108628408148609597260082676958329956597570383011185080672489987042649328852223497578221761425318011055592464002850080083147225611919408233975551572031473444939652057571959956210285353411093478549553851557201674541064429015955273957558077796885089147472613943242667739130421354573852762767934961442562674473956239416703867214161144627100486088044130127811196995895419977748254514048186988081575402255930441632109326305791378563660491641962182221933566190424990998801901402651477383283616235552166193898162233591529833194033127819711731061812286455216930449581596720306174414632559475553468120117809987056552666076366405779276754289073215979374451108471425482028035535775533308477229446744087831382226353403087218586166739374980691074680971109561590630400169540993079006578416736929913257446509218778512080080987321277315227737943438047023977401102552988811900327143901076083351455714255058259954417413100120004666427223636650488342134290368101272660964936637252920192080927088604318777977998739220783980320755658216874392095223569789636240257954918698831544325528643815490762624213197019648890920936463775640866101213024699379597563999439235051427458364384284940301252023460974319974718345407323078024262032284313972927900179752127430763910954023219145015575807447722936774882478637924157396112749222451831879329399973097882778508371424015960432572026685950654917963686060588799417080665227750200148995327731044149619308808407144987402102241004938030788996741361752405293690017554460785401583818755591421906323852638079218547962265180603315777548434613329758036048465174394887398476755289073540416761049343088631945919935902923735571430899104459511001921516059467190592015406347425392289000728231719238708095938385955320825729011503326920635017165440046804331001043800859106904319377316305405268589924511894988946082599770365369937468889929928702072353315255994118789533427531069023307314894506833251523946127742558051249385007558868686628376985481942649471370840737941006631403884576257948588435398275175755929770737255711006534169387013025497300308987242781881827056291048577384620109313171498026775273494232839869879751042043448939752175393853318605517273279718825676090550513960337555719054130733424972155639272261865693391178786039349967554486305705233157502077807248158749327556779431763530198092199861586617072189288791858771450088526066524893038329540666592103306590040241357910912864786135349027301871890249048227143114328146322658605230935441981732052623113553218288672421159107641404614786967233374248802389272951686410614152196994353845635352036794139846477483019304714674593046951570486347582678976544470629329748326330430726448390187894741440627105812128047960026042977850252237465462514442734315688704947326470954665443702673429086612053280248713898688280879834943910217369900923102443814958747981876850910111394479417175960149603767840628101589854176501936927819583750430759641423702283857824493686786642104007819348591275034719359831446964348010266918745087737607275415637644119337966616388232882786204173951267735684076906510310372932062619234209358204350107109030215025966571416492529589078617535173495578363790172530925786273239162751326738685179476436765415553078778044815813110967915885780082120862944827323976010332467520583221228051048017689180327398107337182734594322928480367456009095259544402450326127291919329013876437445796822540338533984183919785047368440011786980160248807288157790527826643742429927707778453924224570044995713617624721970754224147226229908622180635525255779951272965040072098797499678538185874205173473909717727911993217129675027821690243749553812922247434575853065026784014923029784885275797051052439328203235278096334489693605696169754435883760862020334646594058645529966472689571205722173973953605540610127936325683895235216001801199805053082265639560537596043576636041139862503836045103462962784160628919464622755353543393882319784807316359833063190874053016022505321331767224159811306903230422575477253771149543980718406472677752522453232259344164379809066224750443579843676428765283300295301892029469711319428327695356411605535364370509445098084261233904917939922381324296458888165478385452850126919747603339482209553118151368012214400252299353664395557732331192212338717347243948912980187169756026576152810400381786856134074557553169170991494187073734054009985000721602781266197945403350115726167789332147632128904047558285347487279239772339567304113563578802615085589764160004689723304707323483877938831378578306810357759131415151965361240242869421536724979611707410442794528672356773893742613424751867293655481112472502879079517916390898020841465103900223097463653462871848866929237603803025384302724835531571444785687786432327410523578579998551152357936880022995313243065517918746342018211198488551201204503964752503176863064808634972705113604665517184772697686277210585973902740666732575449982417307862352250284604257989064338521975875261644157987409010615861069433462768749175948570703994485479878224847454821298260571815650755137097898560109831655890317041820836807899117484764624851371357848585325739970247935322996783994607111462187960327404505520154174264725324510270717114958199305361106360456246863992132962373789739382699082694761942373231491742134824308405339169597139049515325047639738364454130147314927410522690281345196444679624452392941800884514800943163220184260599293532162023279899967147266205857277553188823940523839221904791362509027126551807098634477121181491536729422763683517299246269793508071582489790505577657933078516848276232336377155262438834361314954960980899948920910111668345570495120415939464063883545143715527894555951906848677675669770046470074085800658875337602422237509608495953395820242294171504086592851722899712131970668079619561378914221964935629556404043931335364854448085293888303998570730541237720811340878563136251215926693741826633746524262236140190958667427587207582392132762139033654767029093479958251931165979495720116971131172469715531320160118954542464312509078749393476541548464980338132718780724907707476067137693574847429968484392758781595421676228709036785679121626528003811057496943532715423036863476482566801240992730568337926221737444499748547346057725264645879780074680158204800943670094508937657718833626414581326555088539183141740852931246604039280089063817881179224143305534459422712465725125299825491436303658602508467218852980693961354458589243516737432684348405296221857080613849668141912807371568087540031505163104670563847359368254794397988780009807418957414945697382440895744866021361365977997980467841043070769539513180182963064129630703594720232742250663648485813404582696250194314540984078532516193537845235077475548208051780448133245208550955257150833553306608844107391235113738755224748686328214401428998232701723922793735400516897021119878192328152679814676271849697897105402326353039593764947227376785657673527429100981634672167432421077605029440225837638231507210364323398324364808480967451672986608859867791704186756121972014481294393354361498884990263710944114380395704101211246286784751012200967132639790390299100247159713012658947591476758937751637298079859917007623624851626000335688713700725606439163924691642285114886879206627208010939565905979068428167323634028608067933032413858991861692381692278610391927691039414095804358155943889039607030890700164176054626713391416850093238029424980484899662967556931252900959590864731473397849376302175773052170404532987749133235170190517257395696828978133224278921638056291877276976980751214877581477654912875033499446155745269039294855085082778759117427333002079220552015628393780402210737859354907577602881959578253919839038331256446409797485247546287220973663387871249453322397604213659129953244539834356893665635701913481364254002296629820346755422891293376311744278951905871081939917946206061975328533218036635745965588700945697742720928534844399544626368304029096488767828788249567932566476353595359129983439170018219142890283344305735609133089153448837868870934276974935313324899602148951473186255510355469945033822679971476276315377950560214311793795461038828841128854601594123202699075193633386227383838753073232040937517615960089440269028369727892034538339816580577379597115188809231522968757521962663980141117669661682621733115709086914218991561999678393525623699534815465510542024836830105137618741097342911534484606428553015915272224514924942365296361368661004063431670058883144947715650369001103099626395380548311533392822698484369057592741363891247519916158027878507868837609559163008762298714150851242561102460069535226160291004830657034397476261185350732062219311849087227793098639330603228239534522205832739891712237866313892460980212755462994586174729299736759117542224979727915778172986144893987102345819821022963764485225972986004683823638892923504841961301541835204360520752571030419120837445913555621430110009087505770477819921880117318920420907541069827588728059270030029435151620082295207201656054408581206220924585760869834504117023645081526424773118127344703419150881486337099587613780988556358558284925139298172766109519606860476981594725343007684507799395979526694014007715817799428081601372823304088537489880663351819331743464434064996688792603989905403031405218568127817124831236703255807715787212637751225515504785880815087666826468112272129617001962787688483720443083280341799469829565363771538527165538669926949604378861309616102418347985497477830639912626381666232535830489655209482446678416587575336444622991712268803152962827522788911512268465960513035853075454607086950577668046058339596796903078458869560387052846302211950056109171839076440327726789694846146173903077527742299681924553954897414714995905552151753644690987106226783321674261442717095837865242158552810339708868253684441042527207838112704056990673256508359181054819066017091949303664445487044593017262220830972460840030365882495582430605182018005321237474333548864332163401752356929046440186792707671620128023383728877224913514458099813805496072276808653452224907658527361263439059831117612485829218771466214971699557949800510011327684100327867437903758232736109265113064789113453699253784705670580736959524118503435226683283343893650820497215379041795150114447234468125682074304366626146504467630821079907916861917474631975470976516901226674135804562473445579313997517816003622520916831426065273351836892263674536715089570431159973064101776888022046475081953088545271884807406626797566647223085907629612508070715526945568123559941639147142366736398376674970002964674804347595562885831533103718521868195629015716580496231673943658724649204037754521173485372296068405738625994043102895837238815385567844499503664483970255273933774917177259034769757228642950012837950973992329385429847952986696709064029113015563608816696295934083406228592747434044917258940549901342685240420963204079667716819887060603637681970637432312307920434444868591740431875940346000227180093814022977516627082225874939058702679476246793305059232167970110695245562032452154288152891299937353839853763469488740149420027354315535278305223345685384587912440330229104250375476137478247650741509382777377941366226692301016834604753384537579827982323290242371489861262451571064920156743329964178615849644034290880428126568858636970420962759738775817381212168216673399662551016897608129216787203727698773147991480788905037697305715102781255201612561453291622621338020060764771630330284298440422267505414705630997859870184476121354645755949156963124035134114086628810448565452010851914481956554804002561880707811540401897059980203909545076566434043376295255237818540225561173396730053328886032776820922633715319230747086822491363986658591481491209608637661486925771584509152430618573202351432071687961423159046131786618560281720394756718850512189612916934592255590010009684489028845160592470107091774207262861154741467249090478477796808579195901783994896771463224826669437247828166709313966367800282611537841813786581221328553991467370863478001432858856907682633572026269581223831328907931573756044868449988066584899926189326318985031986636685710527085369596579598388377288607363195438430371599479805914928635942670476781113608158491335608138475208697102423757534913490491043638580463560067039582186937352120273210763111703339712978021667195596330821165561372436681395080772107392817175572484444007708899791612060131779564795470711884279430779479867401871061739824769556679192338897936613908455722707088386931307811352405984078021279205272315921785944299000858501336874341557467521204107267658638211314139735920094942666232624674115932190720333006757882489077186603721113094524760245393232687377978635375980545241042087137879600156793992372176973037957987934436143222355196177439498208489661460042198996600982128418496518838626949711835355830396486556517570190564882089491459179256094124175463428561656708417148436831993533728096394528933864179146743479067076638598478128445639940606466510687136864242668048364841470388722111932673917134613743354916920210450403244380908753467833133959356767377982327795532319607570132761030641783369517924997094568633327870154076472833802781791832227040020094470146101784626651677279778775567390315678458983004500026299995030003784437709987994338153544955743914852676804236839788693074931336060730284133674669372899766074863940517774840692206970120057936899790704144438766031148927531193013585941961133410715719869193722034483997393780650281228382424505257872013661912421797950208042503658611727360371953894995456413456445526313058203358397576304643246041525458172094698280235632436401714948621659766495238560651131401809663947912627910176945808303222922354124763406088905918414908421250058046331868578277781885446973621764851053532012786220142366827154888020399924677886477249749797116609741986516861826828333268928706801761795437688859075177394692716797515071377954816990652385529701080390338471795312585181928203921303267814806796498685194557750243923140847627931270574309708349524938842830076571779167942808525717831883152203750742294900846275088898239409798056091275050284399324080936960435278594636557748073788913154638092495776765014273785534417077471915699448994705736229618371618776918396586547629448104839570933429772465963945763916542480767665336674052750676707676598822029981224806960533289872599849346398092793928922278798173033420946889359686052145821629406381887494522891593843429850320046052542472817813726425880448041893773035935508548988139973526024220839981846153967118369807670554705035089883338543213889587536643387830496395991178335485507138275086230936766134754949904661410849603161136839918144518558785720282634645340793425015895123919449645966780510607219441525278531490300756689655513759064046765790596214538628262438493513154637256711748891697462371020404788866583315659670435015724528356024136255233206768900439650758748785783417286864250401095761088334196269845762380513812023708890459564355412103807722190115313751001644390036996789547633521792871191356908890503159842892308039938365929338313334745586470303825081968504267859363751312886323078110099202065911799940184532871852463041787546737229085395459112438219708213229541085924305355932388653606437908402175343206093218385599923792331950725039891449418838936998383458669823667313601805224077288050399547873932183762724104885448518679474777480873699006447828881134501391192130369378043681997684236949572235640200119147992382664197083779527486840322346048134986371366522245397930151277727223459675468988497047259845418293793225413477711934971232860405169391202522531285264887951599698496426036151482361068992606193084110274054929256502492018058289682795901444819208481399493886215672222596949485616647913318537909819191058069634964204968023491780821740693142714406112064533913544243625232342655270306197488616510546832682630631559712339656960488882813460453286987878595394212994463783268014099140565487635748547418697959812823846908614214568385723082956512862071388682342550733864683870287556240746293467621479037769266401333467536178680522928713770681374277651192791475381841374318936325618984259501686634249016454082350183305994773784138752263554052088536435855198553492709886669793708912437969415389839288167926843732526013109213668375682995235057630793758376454175184320973764934476834899288344382710722227474882022154110293544227921855246044324053478303299560799481452957114535587256557873129062755971604758490477787429478622322324929105746226755687542956865600846482073284212494898318870101904187276524372088641194885194094692885180301848515346879275294291881905429220857540161957205332896137187281150441019113464096020331118681877118319535776107979237187716790008767275171238020809791357042774149736092268311435605766213195710480007567419496955743947954969537900939999908404342250251403485375780983874271680706546149451766974700900200983059154652997920652750279195929857478303190408772543875249239352828083499193088798134206936389985946465261895678933241819952833708822455904353011546924687019176813787915612685269488576564697135673158560438703706904433109577869221755075319629714797947966747243608830702745073655101963099469951359872435884867638586997492944966593747325508867866257229925350121129601756869067732389560115066215211688693914880166904370088128325718407234507285051109309921597328772338419997894121503168070270427519721306120596669692142071793477117611181208287158212387167947981460863247277947919980743342260812958631652963248355681054915886796748573188595278605044270446593897073909680528402985062983086623980140450178330165878765041525548849237545782037021686271489964886569332244221034407701221588924787041513665003096385942305286189918115194049432352437652681524276141545082674637028402216243012123225223829070778487596601068488660573272981654457471581158584753702511606321392718008185161703402495555889774998672955041774972411048708597307255279645072052533317158194115074031096031205366481323107589035668135390713340555104941263505651275074387591640953676090311914755095367215585492311430923306935432830900118036332279480253266016807992211418600422765485097814542935279151341309825356857542475748687661268424599039888949107363026256806695252775419438207896863050464184772159290936312757708212338200933576996105400144421570229322839020324545121150831419094826837886900985719753310659778455711969838540258964091297582023238096743140655410717797621482066006037232877509234480971041150300724360378383157568737633581754653499936075861655934686338577541322212798397681225755626375031083819599395539928485958373580672240444716351801538241913682641656100111774145547532384379671783256791638476229640084298891930216276712761696625826058729773382229639678555839954639116301793251724326849760063556924785762503494325028829860160782421449384027805758967928305341458139936341179053489379617844783346705702206811280956205719115088641616725260646352992369962811145044521052910074417068939305733874981383727060978055887524656206021703017023311281832912230474741280196650831684211623996208885991908594199865882526210760346993652725578189164710274445843949456115969228227696608271572396159909006206606233677288289624516615445125162979382679817897544241412353828407450945988832827377423345929245762828961884998649646984549152825559497842719248084298754536572614323919834511168363062139657253932020228362238987710997216997121595074121116695782367676620195977498715778246515341048453572939420186152182357720676028304095878947580666749509895268768040906446147209219651543146251377565493474334154464878755364884779234699394437032172195618354484810039515934758459819968126343547482756240055378843582086678151551518528709055535019347622927151670325433463331534372764650683643940962356028727780047935995981704118715513582205683626822435050660392465358445198169585284744140282732340057651932921443281366703112718564191232204148780935109983925707631090039519010506441778644800101272840017508210314674282459571857623244730880603714677444084491690446479576677882779451244293406330914246738628996889036184203326589619078265129914987629441496747817918961415408022860604304653995213980262560435190928121528526221953559446707725502912714509126224222581165627072193043153104214229746395395383325398880689789302342978314785370830991230428668753207966279036606310804811308858050006037442168702968455149157056641132585163272328867865044871126223506292414244435989610068782876847549050216239061391101653431139261170890236679299910065798818531823269418703491214257301915213472108420794516922461649497596138122907130248939166596018194331701833434776351813246278201886376521925526315287009998308262881814795659814301421168422999252407425537235615500510251907484319753453599657791916243570613302807534005051951962957266898769515418337921291805616628337099378255709433531221753464609346553493393290994431314951665520860496545504839669665708476682073741097814070464112135421602256298477569817188244180570212058409963668886534001158133044154576556135914743615593331425754493946341447214291146943399856118050319145237961537705495100777012255726916525112334558313397126634399043471698794445258822842028849064190440895006302009187476526265778503583945987585948144985843689247911891309776065181036039502576751772182167363607717061605361346309379605268307710190118100709009993783959124949890981773222747054293272771762942059862768371091123701071303831441478271680542855768599206974652900323809284247989205280041294357551906716813528430374074699943266415620716947700846925612448276026677330324967811898464839070032615807983730214284611714209349500876230888716683135049780959654462785610906782487110903527713503077238248690302440768018365097213130475706899630496484904838278384318266418922240283142190716733545963841377769508635913555217305070038586663024806733874543841395900275569907921069694697146539648163231781476925615151162312547799314166840116523063005961422702543190828838890283590369235738825436885039115168096541042585548765165055311130106097336853531521801973162349763322336831598106397443192285618164787237517257996853606893970722363076502080286719931740771736679490759153196154217404234662054268774019623986330912127803870100532146079564540880312842144097212252911165568407562207826722395710905405334571024897350980607881079185630898329150127919406813732874417578242677882958440014266456092154004253482767613552967397765301910739712874039175589690080005246033800898199640533372000510322623072008789285874768729158610213428559027797202260296418507207887088369747285716747033403832210578883345592279720275912474052979440289565200333391944872775621203316564479856445248527378784890929988403185604791307178014899810161726397513225583542155537689540125567420710779897207991170207255398164233717656691590204720751513629605919817331634775846254691889070287773174052748243280630602379287756078527459169047232801158321315037048806373973621379462263226744378640917184013988874778730261022610982492869575378184868602409691834061026787462328383723425233211916937908594550213987668333184220522792275981129053728576639702186841842078752178593466300601611796835197405925122680413790413743634851234767683229727517096703258011624941347493099855280875512327451152011303145232359577295185596344279488592439675504106931639397536530494850014989874098420290868728104871219249162090726844084235343545851817938344756677208712933933987569796930274406862503041505194319607053296371035043515258815429914750754296221811347483972523641574093627720188239223476963381251449399055072376408625609081487621309349684116042610084315184081571282826540872820077044558056918553064328786718689389289088926432334886671941193841830443149337759745780030562326438580265365510829505117996832422944957163945532237372345942108757418725827536716575455873790488967882972990140159136935395319397010793751141382862370197592608182174928659554108082414098275281920380978543686042838687922510573507066687970460376119548465793632499550256876747202108556414719836637325731145366848659766811601186563340279480354647539170784882481811925687335141371080475464452670577133734147124748260190193870058301962934503124405858886441773507899953222045320213787679917663143350426598603720504975759021208659083082695879079038772127373335353067913830918296629345441975575788935102426553821342902496009823381759568979559884580390469322825825841124516402629377929428772426664585907212905715906835653813193015943335845707187378424731321930370817295641269094249832468464902001592014149450912432262928940526892382538208260901525092819283701282334619214253172974768508966340567740458190826666255041419011080098207682867353443027451217902598148957630765728680835160840713562436330831766989051377790195923784147660309984428230090190504099255850116382086164368996072489179587133724659722936644117751261279069090172315147177082379178633982441627004492782073717346465136120618496557269214374002234801217115293584767602413524497274926282618758853773429821235088622094228203215699638891751038181482929455480408596034717968166049398653986398045933197373324420535815522441937571315957462282050840503407377597481161621694906933086298211705326163206922631561789900569411832406612685582692793763340211622013370006843692713950629655427459389367040956205370308540860501916432390824417231547712620339926097243680059815928040649004632149108842430066994910965650320887924801153090172593555418833651826214424282400983581278398529430854716929632199910524418286370661990695511016501120307287719087389426926915328394645818736995442323875274166157172860624978756951950012628368276664876509224683212118217353692947263605376662613783567352887697974841033771073135470434719464889088083338475779874948464304878384830328690791841684192478758641788452813370512678201412574918994911035695858504890403699566670814802917299539760817216951688608758329368237442513573597656079267457815374070135577465180317951595789915617263384275500177689425021350671029379067822208019138058524573068220767483696640729574403208972778684749535815336512955382081795757564045925314356441848437880565257813353940147437815721090697569302667974636613049712884389853868179466745491921293354100592389044263202207404593395584313429193090286388187009699317956668290730672796696890550469085703840055702011144044367838430617933206814292076724336107236901452925778359163030151331345299539355983951359774601939943195697910631973382900860422458387696799370994066184796731577943259861739832191810851132861581678272825638582372393955431721649025375755278077145824504568320980659014920822553952834920455601739613262430209014743800117954693446307779329880417192322364144764797058605960277862062385569547983212689745357825076005726984398998755808303030282178249510789695199452104779855389306385449279050075205658540046042189345083930885477949954509487011944145000123398927052413231324261598185264245443059450828590476817258500209193754308131088254281793322903526057391313601886926053150584649470788503378677002478666593545811648878052386595159782844484366023266622323566661428102006633515634558767855381803998262248347916724567049271370337939534620020664470963560702926234022807975885312527726915287729652184662209407508223326350357040912488759087215756892649107354343855924073782904238110155866294491535364600834751269729709475508496751680748271699872808995911420397683637046279032963658757748301048540309097433231170681088132492293225068476420923688761416451633952264279925052018463499654736332836380292848060199436128054781587680540836504058572932143712838105720643062824217511804525894208982991600927046503933725122055231793861149950987631646507005539805601337570813309808860597721674274339615054942904211348605733669088651477983641025364296979632623488626943901113210147997182716298823453288482019757902343936349162284440431352134422026636876284860674701466175488932233260087084205304402182197186141119491176853813701920852881216339976904494711800143405560446675901267417602850578550777923195858983955702572511368855361873441886137642815690110942909775510649189329845995022543340195349762949592807584990204641043036180480552846598966725812354097950230690217736911930552669573053304521028057539915712524627345492275109852754360809645442668339094790392465179909725805133528928038019170605600464420293464483963715761795997640389993815150689116567605841021041094722137350923657545564064261753234189684700520270198721364533076338765137143414392818530581078640243307020963411594542155679792965273561643333637489734282045183799309556898907607324621307141557512257912083553442995178465789737198319942705762294957897530161486251213379783428093181120169802066197316798267692767544576435797047296215131494024229180462946106521581504568939595585958052050089324282843154751756472733862253391027363282356809227466390483224023706499708202015996017585433141993834581678073721239882164259592852708413549423727958892894779228087837587154196991751406258031589105443245918398850410011842593896358562667374871856430108421525228996103671661607317805818536742553016885361921938573861299885457472415078613144893257852414619661040636218513029462406176724253850994057613454932319042002343698899407483972271184083205642273441306217397303342335928684939813638896873008758197963387659669922367677770253790591698193584460637281319589018160715405279676371125147898256929514499637150164240770280896024814121924797715524532451965787792663305182458040734934572268564945561912886251718046396646443334791491971144199154500585852867724303630914866673721422846782122730602887042868766140264549764690281617045243381903337046458294722108963830594117930864244287256596097390299944379766609039708610353106119442394363314314518406074706345469527263080030021822688818519190250385209541885978545993805635769213962958662923961183455943245575301380227083874889306422420470925245161922696595412538142119162541220721061273040042744190713079295366819566670852734968201866314901833669205134419964852285839745309233425860392409344553398532008546517363105430006020902870240606549941532945146752046739678019268998692398515464335355618844398025856782136844182550520878293996680864708153498982243702819235381577828555975748340717680417066105042199166059997840947702475885799074730243795581422372837679876638753363618147274334790638116359037115393488851109245880312516953207294508225257501902408371940158573985110469075751672703349621102564663861156293748506440476834382655381260911502754999374998014512661214378915281528544902067112448522772378392879684712607668615726069786937887041435424718174053035352136825085638824847634339683765992141394311009374049930086623359840636844649371046527973336976145644735159603144009943467205923757891253421163007279706010600414777601871020139436837626963238759315606544321274448390246327863137217878374723913363727010133364190431293058400406371678031665048603854669764831137416071806590169323789678176622316353688069534310670773040060600536898446859652838797296963412960897111262368198294275597082803823889351077725801673594808002618779225465678206029968380556901877306242631622403514428555830002451328580400572513459355509516342088274002292211224372162534543047978887464803966214275578803567478384318588428026451112476620941735129351288947768587512994487040907063980722931254391908697250019694268569747707707618779019651064451578464020362809063253959117222188338843943755323399234068267433706360656810570886455017633870290535605177098938930129743997838287679041935941614295980018404081243339224334425948040143101026326537495410835767507843421726910371932780395805139695559227816460686236251975059547433755636219658883828920886359642999903724171414378512941513860847573063015794950782840403494736132679999710192964421348611981003643071526655898776773375675058772379069264784478929562966208639657255974922797386320993030065138638079202746809743620735441642768757110767875956677958182338523901804093803007036229683402905923118568157109230673497901232154451582835694519080731157281983803695228909189616896400220442117161873751344535005397978083085748274802094296446024809698031879824081531406849881576264626102601276692282107657190202090998446054578219887552977577928054376263642074582261059687321797000861238618734931158523271737595980367936441216220852531550958659116221109153869540353638850072159065870048344338507537564348495137271023132506358851123472587853343750103691522092619279944301463446455953684089093589427550396984671693572800076205370327223203761024062889768963876949385645440864585417791022151161291344629029942956199767453229520643331972494489083483037242575687074815577856398230269810006932022113592517048101261945906228121098271352407199385202931370704269075794782592755834779349676242333109833768334606586094395089104998129400892741681333292827373624843262537908807276793401969237636611718441633652316436483655205538053856758043207075342338345927679934196378698686159295779663718105749895886591268460972655299880287594739264194045638218596824004920544513916094183383218279900810974741486056688683555535963568596712785468033945136540002373250529975352920604825635666226649219478584378667868594773625809320468114029155475738356808646259506953571951055753743623909834119324340966100425393593511793027247797781041493228552240369198153672121084717079340515832918745974388443041840041247478609386889248686589368318465045914469875468792973611528397716966202785874956344389630309563152038327423682904995705287785949732442293586671788927250640228134212196369287611016329753285526817332011398764375080103412993393235357024503746730629384879066555220905339520901449027869341409022102904652595660747857997750579740275915354328988785328432287350597431083260323444004668983858228353931999927400912029214304353216112730945712248506546488841207760569583876051470160988914125167641882409098371486496908267581366552609275889761375655305201579098321726712010880759301816500320997737363366386981705418599125673424159337306958689361517250046149411845047128342863433482948953900659982491811068895433185916855963107345225858799083072403376504019808840327525407438050215766827588652226503509016580683357911972486322425715712323064153834190616890549840850268724932106784998532422663194071881144258659240272477279746237058238276432401086066738063548238007034848892393222426969091048104990962197507231930374537091615071223065441376889923973616514235570315123888687767500304036856404447692517557722505498709649034290116122691635620410207709074025150580570585075094018031905929075658258899580247564186031341819936955267541104224057178533532842900485532525581106817131029147282194894641528546013004472433128480821674705269898051900333820769137683481110235203300553349115028136850779307042173096480130429662272865054068655324634369599645705722386013637067268967240974094212715755203888098337005602479864873644875052503573323004506942573704605229676559740314098731027836318620390913516861308702303336452147900007944297675590712106521396542545939640872290934816663137328514947427501694930495316487029044642048789031976014171513525546862646759935757670040055439818051148674192929895997731246778637628434006394763050107538372461040643150528764498661660970862791917717036949230710720955134004066804444923066959080565676453444873366458312883482640983561827010411435780020503950673456049481924507227734077869052799761532604130541035994910392634221421969460032499812198348429711320517745672801514387771849339351235174901229896238410717774900065695210334507444168324517805990595763870490844975796998436027763248126226839092668600263310849223620650347057993429336831238542863633590239512928856166375409080311085468301393866162378299296419293592717301523401442989033666825873511779074381604656569870983369596376297165634785517090293410234290587173092004146818557854227197503240140063287014264106804310934322336523150448120634953286374043917728994185369310427283678570511305941761201193205057755390628786137179294077165669030942763699071550440087075072179588137800114076745911857264437936630731522027416030327275181043340793553987890424393659294940493071229077598929025778793898083570321048806599160934674415844445257762335392087901408554824062846590606836137736327068060659180153774056812615556774406395454261122138901109364990004162674231793020609217810743907109711169345716758918532768721501998209608045727890476639126926661149382985544115782417130859781852679934088990613071963764266881133725660542822981951734083394008039830064088879972239554137690654006763104369507283056583744372677429521157826530412848982789843318188803106413580861228428022374428757549794838021660157482459497968355104815065807650413553158533020697245658768048822749503142484464037689364761763800948449763634900591476347810411644453328974593248357002055463395060376521261873931647052649784971651396500942107562309776859954560162714165624682140939603140574237694974469156905588150719706788490125628579181688025897289799974298833183210970327920806136096052303273484319186009150250032634832867474399332628630584219405079618821066934699665042805408594630354474343122103521058504530042228420177714557243723819444309443023681839467593776543224532667257959364357559760515553745824500680267236913487569339016208036582027815733517432177309633888889322995272884742869334199477608204811172091003959259269682775720820746302345741732418237191115919739031014015843126394518694819768077502837859867015597602994419046293734183971628234018047759051757370654528591858148305327080457688720144123978748536990902182935948343758200622667473523197835664141613923272308495542457064065672544154997788425749211250649615763473048888048436346221717426137467663804087226210817209265907622175785702808778355300392529390653782082986362915628599644787618111798886865686158862234045040231469055336692722635604419543356291057367401312356198733095517917543832204183691039691310786696728807626618113150654319998722861349745565617734111013421914649447000540198954842941320881893013158350137307276704843319596739517394941172835544003305193367833968260469969384215681758260491680352390468042222145064215923357976698824161254573304470079005479053492071675817921193861105992599425124642803016077960672294507482403626932701862562430772770824467647665710714437858940196386288155434371512115962068992880974495609069118569355536440615041009915444115058884303417230111023389409614266620172859782436443732899721153052808364981514746288932768752427964971655894072367899592036362596655457313970778939994777785388532018602939212873804596050323616958807927427939016160603722419168171748830035039956776721144485743061730795774748328192086272091910433503179306477310873507413299206655975527505805776742120464464533562109967310515536366845212433956153832960767209569161202552181229151677670795364681551993275246651766759006001077522592890303524842156250768791258186307547368419198952626227690129616402649857422604990193011655201552220504971155614019821669517346186690741978202755044340334624478166018995734174371281098293807478209693705810448462883086665349658335846842866106531793621967050308613685993332507269856818551366047282642608893025932216242771998872454803223994072300416409829345833798180211962386137503588042527953582959156998130039238164325017714114082862125087364623023939683965946892543307223449372479268910790099671348614758252432163193403799025670883917143120273260725193333417839622847593470444209863170446298543835936453207545358583538393438816239179426277576861082586962055828913919878727462092593103918162396640112367131402398964534632355889708189324604142670439426281225039620113596788342277090352438694316412674432467811314571392278941952687382127745088525382738732639524543501921012417868196591250299759090514053366117174805052617296172847604325411902788919232974275445070060931380354388166578842846408431103687214531287600036593791598674962964826276185593529327881613673120746914995885779133305911545106403874638840535203639099658028656912899913528626668608440243121897484836927716327395003005354086258385476189980350451718921938062826820719576855526567815060272314597804712383186854395751711481541385200527076496498177057417952202779148202666009172329735744490991128380912163092157854831820899898721825416614357386081623106062432400228427255761409592864032250091857523354025209484470868144599615077038259300993556219910524473368753015062311612560721758420612737320533151095319964460829770096537324530485112627140325473545298457725952339582954570019374214167802286357546932610901358436540859938740155655597628296021908069343361983013667801884071662800432838458433562038700884755121775921862264509171082954563505733114673029600618571420965013956330155239045990518143967491295381872752494168161177606770948640166001566040696855906829258003724079828598343223217144242758299157991803674457427472947155700918279065009444798765017110165940272723868007884189148252431324331612695153786435276280689545605629054105687462378263792489784087740373960465008623838051739987631160953527798171450174992324413563695131532160019744455813741239705949079491676380746712752636802460984939034098283895707617114093481462393261997475879131885397140478840774409707874434373786895044613604794854628519932430230699051751338913877488135192529695736718327703104296314792222353404580579588110233563589262921433964184921854006273746248382340577189769049924088821003688420733770717568287084588753581573313345220556781981564311318390249014368879365233012267657615807387689897577387984289955676005103228142057180058511057501560794418019452111573556623008114176623597120572948671415659103604067469867408794593749693419946143065674352931858264957761337948217521608118737633792349918459381357808839365306934420302966315701802346222901726404678458594337692614619768670225274540397152546873341546090460569622864979435484915359543050548685069367954799771058978221047860455769490189931232316177208825124498312649980452367232672525736304248407867992124943801573371863455077359899000758965689860512542127966684169173243674279697752598363823302255293110755331734613227693160981496740844124917634682178610959025326076837698242546703237183595135749796804266002177656504422100160680606245986795907713664937447187224269238921239056670398877844100957575913145464076461170637253829984761510053868214643768424053541038591434735596407718932425686188207310945216941713737523330579527831687833934771007633710501310900069248128647840811410130366111533875376705954449563190962689035709506420294118407617121956038455199168484041506585802692426216628867434364783362030455257007308097241591429979290715863270641460737908156637435714038729860444587861990162831909869103107429066745417766817730039643359693451910305529784741457955978341065551646316799868408784986413480552713580457235911561796435152758820132832056567181622225596027275194928733209619806631434203676145581672084663948544127988867619505014524374233642868953408846691464694011958708282556534210094178099931017535567035995883964522164957138517710121628072387931415040181626880132677060686488913889020326183409472388103701287322715853400948856118709238689169327612674773203973726203701013288450096565750257159880106849056678153345172704195911720500400308342943777685728463354262719169650285655468006861006339254260708517872543178209826701196342205969078065172301551975177709294772590755015145915793077746614326985151510871599824052665277420503427875032407827035436939327577929562472434502989563115406459399427863283307030372375220893936694863916665114515076193454869699737917608613116549617788075843556053652666350404985085577728804969297376339713066397879659773368779652190214669193798722877743558672908815195787587956272466510961820784115043279672960789881491062691288559960488056462981551582260693779860299775666902579737891978906454505133884365994720672423495137907513040124509684830902012729180247809756009708012699102755491597047094035260597820755417691021972236573350494086160872866023374551796156152556597547240352029337422288610201748739576568655642230790779753001473317708885415425791807263475727875564719357213491053286993481564069044012749996412353704054019325942982259362274242834233605953289876551058789086010266566880878647205727790115877843760986325358966304580570293925627462808730264057636977202866233076906522269398247261183992898391923634507340428323405664850667239826041216361199445545373058164601587044606172117458095818867994453963504519488099445982546694155841496443694978178213384029033406255044282922555835815547207890004080198302785793429488468307154676837938395710633631014064388812942517792235189595216495145822954378251280319521446997850455346904018431111667210490396989325545803437266407385993384955987164239972320079876818494905553064852951674380838106700783325232030453663022236905911567446070605096647381534524028986170711627146968607848937313454406473470857432403467976989833741201956463994729247154854146288263490304105045073447742876815278510101526942715965290023091176681098151511260790807987747592222035878350897590760134775120741518212917205050664687556014514361373438702489519990395755997028047108746372560334693564930963929121070821092396664870317862465563979376475542916746764890553930221116038602984693345241410062662570480227982440771420409523331925994360649570282168987822215008745880686780900031304897715449846181505546131321476771842001457533510215252337002666991336809506864881470835048462157831539584692092974922398482833111723402239215653994176112447211220497009559657276525282820473825847256801610719252257586405512916071295819257949393888247907824904434128783258147803119840933779645060899848063138986749479895269735021881941983125771333291049257775692019596238171191322999774184515397943621221136573450384664480561528361032836169878467192616336813252047594127645023873841505014765415951574165346693260246779479366057032385874229993701013745211577247512461207782552665086955013790793682385347261978003813900249962221788737785628726429651083005686042576559176418711091183254380010103878667504696935709610776124584559557746380137690825166528409510520910640541795190745272858788886996608893715108813104365687919210543284327671969884035863253807911193064233683929193569977267117113573991079020792362742676738520122344870170433939505455330812260964424349855237189703135857969089585294548969730992898736455703609460917580265565706185575335481201878461295398227918993688735224048452690216357290403735615147711611783681210661192005717123428519565806884630068856141623022278290815840747350798866237609505337256484395724594286855317981242738561972706344774579091688649235198559085845113506481175387573849656484436214891452689733371930626390336514717368943279825609864137172842162675876623165555463882120967354360922400612898182070798821258850530165045069017949211433366524134435395004417685024615179539325445221692268521508942484622298029833053771388322687192485935711866191861642732873434156118287191723102416450211323214371526185076672239730729981974784051395244300472912512871454095849462092110199918800800230135726715501250005869589498017691924652197529778742182779118754053367722808816092683321330698230980267412339201633001990405312725498944138277301750711338493997640717822277997989443196500895183067684121454231810716677156562591357820322008887475799639790271495679386648080857688808672456242966528969779615652054219766645754587543395325510788245218362819533665731420158737763451745868871971076006199082561237275492890488238290058749153387883973688187633204811568874566464707328968135483031769919532400175821769513812840418308603824078255108239251760881742568618743947357575633749189621097161729052074195747308217562400751285934147410247483597617157187744181676146747591202166859267987908678727655085341471611169748007448610797544149494181003320819493913702773618298197437139713326485483779973881675772259476532498448852017691986667148190469989906344478604065400564230792537926569422448657834769854032418598187721236576040711942844609162086102807609421384913821511829193207015274972437350218505576598514197798891447879538091131571342691228253797173205677439939066645088819946454266334536373026891966291894827866651870141089809750074503084762931010446257125068285728423536500874141963991653868406296422335686556693679222134282552447527875608731588970320601463678233842860682773635487118000376679262252919609891210136722798674922869630619115284207645793401052532677322030735054909751501417063907829875103673347147661543156991546878233556596606931001098761468028832333534050140998087572983583970112797048816384165075467306235315501639255290357179566853921618750598771715392758710919858145802101638593385227160051290948119684125337679663427114816166242874070516449829751611173693220349301368486965695296277597415945954741345251301346462451956339097789037954672569565954894285432597031508089970478172452189395022094186808582810857468626777238053460495467321757137324988078180903071124505126399120731567923026062680921492744984141744145431961780024697541023379112544071617170980841147017752839294492370284724562742485916971848640221591583620247178925328332426092974523632972410124594428791455364525265839777339820597878446793414205854862212170854439705621454998640144250171728375697803388165163595527505540384062561306928247772773521715604238277275816436177909372874938409693266807804700939508165940833018295273349375577344320344065408538122607508317134673151101913975534525339876123234723294592135298314327461731927769550437191220452223958967898965863428240230737024442128209304981579285205396253085325961910036634353241219237278910024337729709961196296742834095520642727781616039090855971447105219179266983963716954603262943333818420439470351709569812776589643410110713457684086219157324655404512397799475813347921023818975204059031106229113191508222215668028878587898024022810347586125670516772659768699220984210744497429974825588672053548497086308375325523604670694826182977877079856359181657680766896984291286387593122205423831218945944990490187776787813595932964057291863568387048995197978123105755446608681946795295063374953671272976286652902716550577082872719488775777715512532874673133166925266279153637649645409182317574368448138686141798147808553716429000917009375027402800293942676544677372305535216252814455216514344951891354005130275322146461344633323106422348204789911232999541156223682156171003834698193153061937447799483977361767154356549649546077190539570559850332578809477149728111155224896334811004890355857046528011521196733680972741860161746762923698232957375306843220141088469766841294989775354421838538202946271418446502415093724856520101165800444076540704894132161632987977566792675679544908170465699302936205829177186268314922132590972902312738193597341183273903326784806018809040671714531697745248611821059986766218583996755114547095861221219439867083942538885480073071965599199497657935507113691593609042250549274805440624069354224707613515088681289743676138105662457293205962675313924289436325618103762299858893293510789999000557516593177959712255116527435070187161011551794478301004646788840861219560958080286104365428804996786631127638803271509105743805010000285487699077973509527234720737702377945613065426499147743471495533774905364672541569813300083154425123843842137580043479529003721492074124575775892976130380644627136670015384320386680005835317897371203006663670167371521285201776547246168557142045651751972321178324335340968897590385750792885854159181229256248051456904079334012795416007439183753158938998826021224234158343936177190010147844991538395963367976548758437188074516102472543190626608920005793064225207897102358062194635995464072531491585968214826488192212745343890357750236328956302117079433277068935811897270160165670828365851597039069803769461835178425151341884554618580360951048827707031390495466806586668053825899827382306032610477332949296119775946305397373662401004027349746911074260471718792302234570752792009890844809496581427610805064520670538804448304019398250635434288532287712413985062947985885307038010883542961909547998000510295456041881963263387661774019890806718630137980663739266644775134600899798006559169851705755473263032453784769427697433172894057181414413391583000290127962648752035598377899024956950072374621615813807766726566245010427736194059754159169163392946060893153721629762637508695904016261415157961633541870253885147017083187888601968720165759339049341311105699098927114099466174634586307776281594334204292645584736010729588178641910162545276955391350506833554867145464641342497551124941132749554441252453143562736872786828282666978213377379407288261157553087533541257721696646824553250888345568683632488685539911669920755970367891808268582402504636486053273612586891677136105605473644969881241176341471440316525098193217026835930268360757635405575485477689473433056668473036865098702523253383014283081133719946443245941458200204103364713572778270245156201501945287150779405626486150547311959021496658257348494890849015202914320823653539920246999027818570100222340366713663845683521121334597031885933578780448400754122219420040458394530993739203834578462786274054481666495197711114203535004181020555160701294840590811457134483875709680496686620324645954794717387821144027754517414273234508735454606015360532514461498279790020788739443202288906405438617879984141594302843064814191777863024725404173011106112804013940267612320226828912018239454350412047653684294093023607463437759595430620716778519941727207986685091626693772904238360648823613353629841707318314245266763476916556594057649384387776724591234277350652196650935144388495382040940377696373720365509664316120866406548656310774364734885508315296719151588757015490330045035337729603098109670208829034863360090064901668890225456011236265801200541178784296228700398571866958625129918889329891282226190579994573625397076491057835908582294698469235387416823742902061442177392289388238384475091039308381426435800120652912712273377279740259679294197147847098686388101755504600149109481680104757962688812628830368464886923260798773107614186596571262402067336979853649717029298401515209252642031653912469542485830004767538952564554581194674782470494711856999203134816616746270173330674835650213370431738732297926650001919269834727365689597501953300164569055783229664888384325457583022924934663718182666678124655951411209059547154296104210591482776949485411032678803029824936656345945972310459059896219157636969236883249235707617055901014798166166292432129640508329169209247622759981009366040708677554064733819728699821268694693185851465735510535814459988385379525418419455131329677547385739451602491598562774392567402274770923986607731700817239200008639570543595463601999311837428013500215915390619708417409107742480637558961666881089318397777109457706994885712000145516545419946600126760511003668385045953290224295451427923882670972596243472259012881609314275492715393554542093109168577009280194988876326286824848792323662287599071527693992933685377191167712633090771903802303723077655678230220778565371713430877951629120425159289265791462463265400901581818645031327749581589889671284256497088243556466118274653684707850708016694224803970725961943394690628380451199407950028259290848106699047373076898998891847170957744177404441165041569711396081646001380802330899617680981088384565375584041012600204328052767062448993462652310686096699307671919673492488049537600806066057302648075256238073794182907871231678372104374311967348870638250379417671238906060079588591136286898865957580624210315771846523535613396300234587548409082392653283590341153963523605164987561689820685430895577778191094197498589791314138627001327690264694000974346382858340183619530853179670773453681614061027843616301884101612893355381695728179169708454070366919886102247143603311781302208260738587400358742705719062222928547890222895934049921042647519729070697291826712858340998405696739485868591511218932271134559884203328608039626418750245939879719888433209887449354390882663727929192563433776409121526343058026193289830349997990280754252914254948600278821029579480513575916447748114421473979936506355237010814034165341261782418303812830604691725014305696044466842547910439555007862658153269882453066836912589306240761616566916219746350549665420652792798614629773401097288406873433944529946016895622408681163534165643081041610252761849229327096090304446857646431414220190328728488843892016470201619268470920309657655967960876570126361307801210544903990702317839722864727106799294452472126298634434487873126315260070121339463514325482360456005216276071884942211612963864784525918361471951514811566842073640941941083340448261521210736831047317054164462931335363794416840094941503958430999282264187143071523217864719654254136270340733898948520330007097345797739359624286060368455836890724931367817118884735945141462694081985427831166679197929070480617685887492123181756611550358080526705738555836354154285583866073196000371591827881308152062389067803906931920838677716677543671224973127599653460302256920164118484019409845714529347951276932743528313421602664618491104571453692276652090637933230313292348332927601946001731697104927127041820944788663127172665648355861137170599969619544269038818022367452031969340992552453346017315537158603329393450911966137096134952314411461898862230817521230597330217516477980143673669779904464291251569466008707759104572931857106712540923960077666939522418767799256103441239021458950505618283058497020706078420154806373212851732727529724815001662116837296552388010012457148410716445827998345944100984828415328626727589433549461500196876115367892762029974081912426776376227628387387298799299774907451257865261559319634580005411046354850535992505223142231159860657782881261287098270870186184364993140692313657104034792287492342410868139607304633340424512944548716526183149971976407743924221508248874921544281612968330295798910403266953671050063750476749847106262246527934980950710535685017013024388266553591542362015824133414350650247549532411438285857297660715088135703973894167054454535601998966063666319786910058106368525639276421850588199301314358165250199939326054757205319781555135618734200669485025185194292358554736747885108211396042601207700697392122258755094976976440836793020687082025906788052406675671398803382773132522190161620877507058781037513425288250793094562292807158298971156198266744922375770680926804957119580293637580253717267079219373451228745830382148951016202281745024486751885487384199237612739085030674237842826380815759657891924264098717274045973940926027440447784261539817840530041468362631601844525604424909238527837846347285546502366639505281219763255182215184336214247487908312606536255835803225317335955814222311728322406325693122078648216631641329756327970713760029576218437378183718341307982953047572632183794691496789228129437687162693079030598465898945724062228518105869738018247295457109089821871769750514785467546052594692869761724353043855883190888020077891780606486355148656482989246712092824962857657515782918942062656557930465126871750371905767479542415479227976241597980117327709134538211323392997111653729654316331400901229253547341414725770122315201311707122504621997745316356788768464659577361680734557772369302145194871491820337298950975012812295514304713867808573107588757477606540460497181746441021903419654569912313101214506034689400051526701207390362376659174624722777444025395530712369630706973005279584000996422783465267549297379633377230318150277729892538411462527097053961114784119033993887485375121545168531346616329653082456290845187097409714728164944714841814464857488053136399932901353355514233603875269565456457279815097084432655290415262393431309520647085595331288086137477077175791856838401030473304337189407809082302871464768023705011830268077403210666601712770753319195365202640302389002630777268220891196402099101476752144976111029718754020290491744941298591721479014235277211225465985814600697205437122231168773005687179940830081585363351860309962800311649864590319394795439823403147339512942270361857916637874105278068972142775764125264084229245037580632279190973785221582775080503003679094195681717366839715001842381694916592547688836877310991425230925439917475481554221832067888907321478358870791939878308788820558677593246698760602283734344592239306516005285674278422438865350275495543351534875033996859717751042714148993154953806162860775855027687329634844915643269852749792044260575296417516334738440486713858289008900152810635407441901741706541343570384204362642304289486842993656857665324790854063751738366086844242826451754837952845154748793750475502526511255415907663562583964254450417235037532745157650012991813473361202228480172602662506112753003339319081856087810541768727389281317106611002049260506406729571644116290546447574888724280538920095285194518709076461710880939562456225496217346396303823171318045950136471088025283006118832760913982650912317401523404387997194096117135630149740253617820231875320094974852670943258934502743423253721844588235781177800764715680462767348005817690977375366671633928205675654946935082425907566031501869075602672713665463965475734602822183416378782156932459098778404150854301844973502259213532609329592652757543233767246625876415213420932500880326375668260111700987810929961966053109748112105827997235238486960278114842913321668694476393533058965772336994674324878202548005179315597900823586039653649281639408651266602924950798332421217738324594627788393013157865568093488905197706293002229146281930775749521474678141135558845374315086860947680878104834320345179863294972605389407005622284929211241294093831013679646235513119460523210723592895648052413876766937188612335897481649614884875772245465354400700456955029695054751175769189844516393204348982133221889955117777580732016664169023701086084799686087586601224795843388239218070526165535480235826757864969866327007594108845676125478180171337572894105691685300367828713780861678438910123101743580863546822295956888488639290348828248186479720816718816370667135084267967074299056085040289239760677252442323848426382065830435368117928397735061207971093075041188145752904354219579868819885486126992945412842302852981967614685160616044283558894343013137617191461573471891805754212690511015602677202406119579101132797449215938088821322789064311242106392776673305905547715203079515317966732439192071033096318099468936119568373326775258605467104636124315528950865404618112421465120725643415896123485889496984439890410283247945196356803461459930863207156977310972430227120151536385589184253388470959897718270845274856668167742369481481372503211994742844222187970514980496216341264832226717428377255397346763920415334546610930432648982848098536627701607474776801824449251987038907861529017108698310737482267660091826952686401716029511511746470119544371520203443681627410340485186250036651476430281180914778965055745818887352739647028650993667928638631775811537705039973166523683379205178273638792397743063208051568871252121592031171716674591037384901859959683252722312442629720906085097698474903380776843988128831381696828310093218802057077700339933305807600885317251246596920594740868561822715139194533522001385046845593878441522235963805543666781139163665825908318455381629361940563955576947620037594173968216601124776604819020167858663627229226375209044390269460608083364752569698836922780647259087871953711047883979745420859642582011289323748129193279696792774316155504203880209260052753869277584539559538135268202166578890114248508271382092786721858460009385637248933481283056036489545938616153372367618263106598624320184406284836440298607355469592429899553369851389248896960177204953314727555164292464951203571613124058047813499246594287445601046212794832429949742379794094059382477597438995176272661845129121058128042840340260279492812011508021919743823728175153436950763763889664807762891354605370876429719094150254282706090258729811332378512243006329541870698236209150294027706920739169454090334826155373156337155232855199877280965119920690592796867816167629738639126024725244647438720052236596716056885166678625642015788790068742026756644327513503173044961569743694511883068795992226597382795957583977197153906219040032711938145268107527528729754740101832396518451399959842541814719344924290267861626276209791099370977101814691224810865857187666075034994834964638904039480535372245294342210673541716899226322856693320178317985853141006115323256155981500000863131786301768469295376791740199987179866351910945818913102361931991102694141758487337175011330663346542122342673770493650816076281002853147482005131790537380006566376922615651531100030519849547818776366602022057972873945338152707372027732314083221270278588855480958688900016540068621892214781755113665746784694755323190580551683533138099759076022410375436347896228177584172732943649887568156495677644036771355095056308747613520288046177726896605464072663009855568683335766305281480982035892833700164132557937794580011948967603467053015594260622626089103388188994423821677348032869110240258878566552130285760860716480585460304233478685294596939023340475302043550471725831370701412886200796799066738253130116139413003320295451905921940254020106565924109072808392699799539263467526018178669677529478780325955745745446468269376409246227155085888210378132246086848766347264055401234933322893726523488177698791941327436159286675200549284311835558252203290992414318834135567460903781491551306517605142650528990319717150290610503120711619243010278933895237686139253711541465094306987785302695352832190645653248456278113883029314010146741906924496110756996311127617536622715475443365636215551367975990405233846673503028522115735084844722640105125628467305028374813083221192694228700313723148721850070271166472416117352088562301640569898849131642661441622536383327061566185118685454793836838545846306928249963895796269094245712703788387412783998176369774766174715248808285952530824492069672891098016842492628203776433674698379212342152220725842755303947933150366216986445554053087779995013780827011327272058376746230039695529828184563920645401910038836532857507029708825403972276622084831844508334249878581415106119006486845910332822238291026402377498472391039746913093937727316601802795646800756428462093028503923786952914906466040378953274889069888236403344123620438397922659517382563351588808275175980783142336614409327975115106001296082848781746942048283422939426112803939248615559282044704421998846020605557748226729009296537607769534190962067683647936612432840347677220471955078037408289990795475514116919320704079582393119708806934952018042755876285799883127284893356489380473305319457727914400790560140541718856304915360618849460164541961705309562336750757106923040079237107741110726335316676211425361873045039604195393138620238137019190762502265345669452215892573612991322399384820608151862990296559520923348054735330869036728951264019286313067837414454243096867744510732173169111948074521237618869983887107807134135733703924657480354463608742223227197919201336395175302251201514108335872902055916021015175811432990227059395439635133935813509492865839458758987784306962312685814068610830679536054808171452149546697461449102744180148269847409747302880273670341712832753311613411531904962957296479914880522026438218084403278188722949627002383560694986562208174627048757528875683283345558356904655947767801773145531363791889722822674859408546972159244596244213935294411987284846624620420870098658767599651856009277539317154466008365444754141491708883175041625651248513935344147615022498446773052592558641395372958518304671352251202698858919690331114958509710156352615479256579011483274330055067435897081867491302901560948677239549727310044366501270514395355007125391546813764768779157499068232686072380246630484114076955990848493574593089690724738725620959915729561285007773619283634373624061452352114032588515162096563586885784712316875446664666695954633250804137882343069134697614252759144113529416523738992974933601720926064426926587285548880548862327203655281109824005845654202048008533488411600186984252929262957792200459613735856858181148935802033724474280972884777464150430956871657943139596240751904133467690816654428041598740346007131200847219703809401585504509817296508121827576876205942958077197498261446472786521741325615911922612501532989781207804435759243374818699212049381852779096694658541776867131140516279084174675556840328480093400886837561305790769468106445203547318723582090280250889951304499548120160442564035768904563450005912180087592014775602521521223611540018396179372721563651973686580946671061361157228584858408133933168139283709135653613663955606552089395188321280291747719405946941795320662808350510584908029538231688868761911981902946610982539140304070812574731896954856094044683355220356538981938975972370270924922142586888651295328642253849444502612042915916176357473209432967663385476489698770154632248566477117392320638540963846724169845049716716201414890231336830696420805624421691863824115733243668993617877667129134921846317486641156360148557686802839242109763875567071650648504065769413710227668864725493007808563855861830812802444942955266973749734491265911963780607188695374050623794847393121163357140462214746157348772424068518127422642418942547867194618931905482416472136978632202415198057119159773782591454162982320853541352579094640266362724178942933233503200175739070001048454710379385688134561624620346987047669336150900112826308000748970787217083211823607143251852319771965494241941292276584951862678599393146840122556189413172468361134735295396177437812480687900581524715843961401159018570244431121858964039343939662083184997114491778735796081157970564645509177640644362730459212061324086439750670883792136704695560751251688009296631957969810352936763239529654352294382918180857652118308698057860870963508601205471178016142267523209585373731011414846626898614755060337149752261006115862081993130736658373067085868377270017069876777845811897300683449230641262369730066566623350561466044254769753581048889642028053488690296080889238850996581196475122224827359033882551709405144913623817455743944703515563996942479116603997311904185163533843056535217108408843219160476974649262030135168970275205167749994428712933595987081190474922742864668748652182123978580157804763868561335351889117905948410133012474363010086343252832831058172859020580462937055335809594153360886282653354369383117571407575983096574393897865432542123040052538717507727153543370780465964934467388286847593304642082382867571740857578219416944002133278298406926460384634707168479413966509703071122354467002364887625095324587565602702691818401563071737859931901652213951037552087294666546693563363163156663020126896917750849673587662021129664195957744973780077529027260413438465027053632009259895515166381913359104182380017585604753341231403589115831953273805126046662159209552322880366564997942645583542677982189605388707577818587708433695575543176436374129422827474262546038151725008267793466296123717650658766933135270396165934791044239779540204064656174241614060235583246255728811512178821658573437373163992571472349501507175207865670121112477877405665697550556033937596506579087445543727904434355689444742717228286863492050047516229266682209753396905219678079040863454461182486180990725282573618654836050297822222921548457126273571736423202249472976446227085215452552578849408326614125004589783199952788905666460595692909719800935303424001694321828097454662244389500725595163324423565700935601639571302521901084355436276467844321270949223197651622593700111120814194892401236112228190144455813072158574057817421497091325662482735401569213716542161381260946505896818508129625898758074283802352738075250654151246453170127187097421735064947960227933660523696466051455670880543976806740471337115686470653750104128665591406709720559971843743696259862761090256545538241396250071234242113694698634462971050197228360981176390267128929181149851860203710316316506201738495040555077700304940400247727753184486515915231518901434172643779701630546833098816920249777571953187972788541652056839767716641830645305119453528235016819093243474193245664064580324481694676333048277663930380330295233679884724590660688248574254887620556383751182843641523186310256782968480111642942443802944071605340721140762877260890894077339886901289269557434751205276479691188235688709124083836992143601470556180349943794595363178358258166249956708245000475139556969862070962763903621647419094503902111486033853109833277828764207318554566246963564061737524685164626972521047672874689345755357891032934676179995664124157468678369949083413313724187359370687880167264571716923684774324182359267633293925340839934304992634690892421868436146495319926250055169711032198656434846244562983147384979849665832685293998202705793249405953374775141033297934044296338696203178992912122819637934045438449803480787133148304987594398163936978874217942822662013849755790106535477236459798130391999385146484391872559895051883577751271968679008818808034969354702426946578109620141272840808441332170787622436033862712745543013314487099362737455302063366438098007951374172083551826560602432815794078337018648968015179783719867806132297426653331782603228529985738036297049248654269251684482340254741217093949938686335077396086940206029136693926360245805413550326471262353641082770758723968431041809425244528666227759088309207603290319914872053950585314315408385032122996526660617035024300835057717585138954341528565190821644652078375127330834524621614298507753362389648569528875572282051577045846477875835457950735054282289609475707508566961469175248513457149791207869077669450514753503056303598247488667408868198681250666544091483972679393499422305527961731434535731195196944168908019994245788241125546910384277956163042623827434405081856044480399024308910973050682063547857614436674151290581621146323590683960789157239136258890762585004004595201309987413356695835307196570868108602512878341085700985416400794571140940929211890658590299408076592997107944823737684171340104260216600106601612704793570517051800839394158002601039297450066752746346079762517439174307785075801709053319518095934873596600317968683823001983248466450416365516946180164327516552482445447445854886758918260011394814705832485814108093512846513927859319545908857108940103269983889534607068012000322322352783454180659510427031844034464851542448077052147777019884203557026643374926256971184228011850521095004859217647962967811790126015401344991485183112955346249379910362808759172779310892691004600824478140825971873121161869725453625173068683268689915445202788152656159179234807924498114746084896297478769250233974869453525194763462985412909066981061760001845864959642555206387247739046306866034265012716485197858104226100219542221285965562938299580645760717061501888119179797139592431799114335935160476795988080728103868348833026033486782803258925436391932548028003732016904598033722729165326792092594680773886858410430774494877792987583353921412700158136961273078972537891285465804569994131901599342607243963002207494820094809271472596699252587340102759216758383353698482825914437472071460291193877276161580512633073861347143346212541876376924099839298408539162475755528471650982327743689480509132603261889177282869955646178539356090006956301890068623766744309495875103773433290353261768200330649082709383462493709474619028538292969458149869045076060372652522846936078318086286970741229738431140470788445647770265422455020499044434417581191186666168573825406650635562940150805748274923709092540022193399716553043380062836076467645915728621607467435635162001307315913886106138660279350512819595990284256753175968021768086975187551277333782425558721917350380551574849493131825929691667100638110572178312352870471848194540769313254950924991445864516358119860243637537360776092688767850730949885924023343036281644126541654266307339884502582219648870987576927233692968774521888128107606872214551910241156052469839531524288834583733464676765920086438037306108665825493388429889043024894223463098665790162943957480540430932208603020583691757382180065237252010702089695593615915399878699999724225126396959064045149571430034828931537506887945207514135085839404607905607324031770704861959058858134346433556214251696161219290869693300762747256160557799923438893282192941459089629025757039741636916490401537359715738258577953047189553265846383849075815823255612274880059945542028618890496385851408610967246708042343039046617193055251006201345970876142144737086389014190585246867244244155154951205486388163876997175094067418580707701950187538007658456758747364207058141997275322385736053312499481238070993932544613519694560725907349449642283550444082490080455182104119880237711315484140781533461833641269086722850209911110180711279578172715312916416428261537771609306331324466267026864307667512931997908770072786140310209488347165159334896387055417374067687910974744373253684493438001356914076326855494915715615097738142772828932992251728057070380958335147316753251095253185840314831650798871605272194174480377880791704293985855786322882647373213943489351355440460058607077526188603313154500683736955120325526768572241458279726714752253870249282730779790701333261166702067600212781115946542139000971984410066707622157787709864947605352720396473662402221308632061897182944095633544205665293686487060056991123497551683909030385703450093033847457481554144138798362762613018868975834338273711884143897729151227747610679472119586442769496055574763341305483065460034675650734642900452747849324173674016607524127449024026562527440024743213540897256357004429927977005391301457968176433392003563831283026380637877916118759939416257887886280513354212674958626535893562095959325651336188106922821731756547240788583551463310541065004606663021810887118845324901442439240526562591503055907146365383011145358535575057274261102392294710259666386903227128371398825781265748626361583754282944771228687201119598416125600283781538244190122052094093759589905742043450338015214813227652605425078490966450105861310069074033303954277263018813674875339278658831422624941985491230361503978963940989878116863873011633724624808675250038585484284138966513601504617573081675031926464878904594773690412161808537763800590545901787542577393925645752111525093073692242953417966773538101140636537338192403453484352214230803051669970628623661343725545908890941972611420377232637850839652773161405292799521013322950275248039717866729266140327952108326231861861534567398239883945340643323089346880673750688710231693862538117340671533218489719942924164474820422892989241654470622931734956483003128351813097183367724057707728848130984206934853417171996367371652700286812200873875190608251169728636392995060525816141154253462861686975560070132361561340710711151260852840512228335292998737517647413043257841679154087702960978909164782794958988962702642284267736067150095648333632280513471880897588332258968236908078591088960527256267173574954124611219457126385320729281240327904761174551072262821416094801860757501249846374766078262672132154597792609285269013565677607725824119024243784332756453751095901140971681623753100152643888325623253904544515552195923459451140327486943771689372718717011878728477491755344963712550567025217845762259412178335887326333500910554099952637434444020688858356014382517532843330867849574092118090906023065412870116318635267406690319616564488361456909058813221174157371549170675201065191287350978301861678494817019517507559590174225471753369060431423415118849737113099443962044897013124941396305237284314495198835477375801687505334359588820668258294120159740838704274329974352891810960595836437820488364208544632264930704181213403672964787213811937134049543988485636109695820184494583359375235610934798660174227222544259849314224126385946063007498505929671088410269520622755557927973966519115290497249540364961354092680784933221492681851995801505445937534812091231676952513249595969407272743600970568519751323432513160959271271857307689585615207990334258760679908246829068231364103257492162227330285097013013492475065355561248161681870355641637513504999106427067594652296058711917145907205322350973799309319445826336889073119540178024783352195923896138217421790337357362242628720334015315347745562585119864694175971741811084820010884862621027415089138257377056189448518820507981097684271851246830314135996389767872357967538602140198060614127220567613004289661965976310978419359217986640833157124680117837733724496077201236301802667314486537942964989159073316710700884667209368706036259003766850477813967039042205647076042457021345436645511549857092624497441680485480418440458009452652857593876486817814794996826991013469596608750095278785569863485106512013420189763579118897698890078429733496175949482355259965523020653735847612569802344800934438309435586066929495679032148110260371172515772241726110463242826388343572800016009202774796079812972646867041362932041587650590395232940128393457391482774338643928300178102184537065876704004122314350378433847456922574543943615498958431147215079328831191717528735346149484251668580830212627137096682302432541759471277365345395368853667912515173789616594402110213383829907845419358613366695672964173192437798867132450634360130074295176257216472896481872837082483422143635779964730780886239827308317562246601562596690780084605186559074556287480287384088772196597858394093550189511636092582778835494789770668559482784067805903517606789522645536417063007834953133974347971831296035083781027619419407571227123116586547876087277067869394661127339715721259956950171521744573126116047635458062817554361050308800318862264763085261940896111543731242016271673491654422231620585995947975284865114116279783779429342220338837025767101737322671474738198058740121991423764980643168659327205815544991962353640005685344861697454528428480378672658245000335819474490700676693339807541974022529676803668992637920142861365059689251795449491540871346374811319776368585878392297357356447878395877091154036265318399289246844675442480559503646233169890587233426836921002825568593920023995244522898240167929212017678050878807002812499691095479083519492243842998269871969029681884524446651721219129071471667619354308470199763693235638502419576595781449064599820579931821336861685856805949157649633860505204452198360445060893317318973777222467081868437305431592267192641466545343398845954785282029924892192838478413739673319015069944247327111332482688104178992690400809142177445844026668116137983874220835178966934451381049013197991824405341457265519938168671741083289539733208730651898836926745723768685793761104473905930006978957750382264702742460631397849055711198090839239036695211636256410115334624200122539301609933899206934923904947739731687962072511141757681825838870296083562678663616002402718680422923839506452182262279359780483497627988491280003098582086798487432353379754558097554501505271231811582840791745973925164861026633635885779496255759415198694995564614414237800522242373983376858104786319840054062250378062316309846117866779404205952530756066753112813677729403396582936960450775376141563795049325019601547022807176700703103750353313147858150096360307701347885278725129045944831273482468594271402930317493820010852171481963375111271974146491110569627287361491324620514249298252495175023596823377971593491491224256349072582125144306715718215596296437462171997712509356827489008892974047962838414687684432776954970904610430694935384189389528005385304179318977177433418189912938655480359404775956730218357836507094184725060240263352960406369382746190317692326807526201276276341741181821066648178710827361497379182159302542055244347849551965942660213872785512880575166241527242716386342367647220428331101805125983849677030792479434802652814003852355438087505225550222717728337587896778790053975999116610799160585748129523854503754580842101060922749899866413970180557417981087671857168082048754081271349353113642006501281527975698259447936802032096492259805214147249849626732952129570324603621182583447125834088575204357242906018076703479841082479434200624726643686634076325711541586009396560030220703842067092656802524343777046833490289311196490569672891785552469746093809936564363238287736970222816387225943870903589168502353884900168619589830471205576749524748789783404032811060769671215723981284279859938833304628905203107593227541801524803635159261512292268477750064357031197158089588342725506682387478907311620830213736067728494035395682778109057201953952909149530156781169203428787307240511387080777073007607281494199515842115705497432355826173904590060031235476344722678208293878949672382732189598577876686315657140734913584679133308915241276322105830109449142717636522226277213779502527996747060465789146047206804918359330205999834996693096821969845847490656633341043149512562459760800377658916537508069334687611742884646827960548872431063275504354797566456581740641254904555171799840343268595979836235004980315726592138952998489773250865936434807370256993939951803888896219655906855662761883561052141784297264375870037418435819491135484993931201722831728534263093985363684696181010717095603239027589822850434071258088091459519732862600553651238205162114785607306122532675104605884930503952409319713662670330970331026205564073689291189342011645141826348133292487969813310388174047908802280378945600619441218882681379891476861906602967979062552836887871910637641204818594628312878213514671839113797057276992366586571425661507296088895996870172270946632373526456829038244005695196399030391492556977628246558557050304649717537398002963696978676871955832772810182026046730310927247840823424243111262533147887713186767075520332399930854492585093070154158028910364327252172031163371328107972944231466763266839435322128994299210919369070926992685143891556724594729676085609371690042868216977060566661095538995523997849175223916698884238285576944549512113576668579074284983175023497096670677678124586123061777972634014581026274048295422897384861339329688119080106661525075203786936014539417772031218165946258170696257519634072194544639867263710556863483527135697371905779684389507752429480188317816497833047316017713812240882228984639947266096966653075692214997372644770529270147223743744863351338994928367526111859777956314339450761009655371809603257955072272491848768041681065329774827440174160603629003594376556872810687377444610094422950833121089826472862641190403983574426886481812663380009175971227925691695599619542968230100628102523497608766442655474939140507776092794447919302748674652973989859594299918257432518314044570387551600597885882909644385234675297495384552513956240146183018111212823187502678957898549012733553097397071154600644657038144093553627385445368618652369698702639276459517392904820283747413092219552807293018524092139398554762634651737607797379024051839893732985482091897452126037893038487161939671006955595477846791520126689670885888164957424285750669429007212201065937447961978790046394326131842462798565837919057886174317949574053288872007750802600370076780831751921994834225365246642396446312332633201210322184951932361931341874955252793870954066921723667743568471662400317236573866022576253312713454199022142457293943395533310145315281562872843423032458605047564960095005995695627219263059936222870376847626030556562128010751285008835864671201684305815249324264832767987814893587562635356377486205399493405272279120129365465900023787384416938155084231939701877489422075708378935000790005957446930869492081323836199051638499131217287540754057038743108205576988803640956397280379142215468712820678496046911831428971146446655555900660649131391658590556697461733364367939316110630435351694752466322405335373214659001570835233109026733489154709158468690865781199606605360087836748877247228873119950789052518378162015950837911076262245111319892099477340902116930096439376438652079910950722685230623494487440613898052368059034543564354578183136137376233115025730740454270630450896265316029219002639411191291548778442535362866026860399848238231676947240267079519536594513421927032706780587613615475376815667919703323082590654139512171544388154082708765323591140931275137746383078690823170710854343186471257338202930691052627029987107524160507149768390020040432008163045600624239285668379478004033380042857899108152890233629519407830139627717826606500455255292862190622531004167129918352359797401011946877595176622507252173911650938062637808191539514264650931356658462380026028794698905070604032707197905648677646017343954343333098717940514666366882436614735485462766919179469237566647040925866565191133276667139649515482714301769101077874149484271597358163353096594710269455103031593873791950822804101713906290485565114924609394813532738576359941691787695561604104994668991089520243067478573479366421131373370699152544901437477126293788012276568561112701491425115040910800381103520770157071853424724960433112418179976862462630625365833015231945045884558548911257230831892150169622446869249884145460702408798920541501491680124084271727255081169452449120876895309622779554184683634444201817437619493823912662358781861314147731407684591061384509143493649354641047219164574880993919264645468354213959119977127806698768053105760469287791246079948351224023001544129374521910974370246741893583002935497577387027508269559446611936606783774698146409983663816239991832646970425967964450687246071351805145427493445791096406285794158135795777436151174597640879292325861826236867078910839744356881126223161852705768647222667461845517480634905533689549184790297693657222077813748874957146133152705601168549639299428825847191429732984298307921813609846775382642689996329675608681305765181956496690965397741225052476706272818973005064652321424273657896516495026865834223857779356516906936054548971990988594310338402150978591637142166756464865601001127895519395068926533408538571957151462857604182988423435534025503270661511328866857260328951250134295432054117569528851446179590123883560305904986842178798308685257067780717426099997389754639534449452463761205721177238473128000688319825673332502190814942079672480226472619134199780408051017423350927448457104906700026006758761688981251183649762823804931847682786459880329458651414442948885069616240291051577710456971849836954269531055512533840399004920120123573032836116659116645309146073306505685510623357926563348375000497180574162148060993804176795527103173921525516463748061008431777231271367331791229637376670002188235887162755033554731060287893911150680760814652931367979571619845106183341010182297303903148760264605310430876337560658665877069074002787433069366621123140420131540675441371562281899036055550768757604185283271706806620937213508105385389758898197190176879920705024097140984150247205517137059494376767888008835348929011528788437425218995409150946500494530623497473723800570481116856202096277439934695004551060285385857494874769094689336861835074212384891521677483036973540591076106923951808529287263573840722118248090777666809680769243006769566790818806264987739161169189977003207505757488226132127524024946748168795253277560132960456824256638569877313359313442859172862485292881540372261706185500540921792124155233792441939337423899155543684475480324377517757497286768652535905477681219755829701279765779100708243762020705208241771047044016031107609926838290052777256230380995582227229123565769727924023670649722990645816038193822236021352889787541845430250046080763278239722173889342587339610661567753315315556550536090034361880060996347423218637269099807249409728684741162834293835751366890015603265732368192491410334894243351742781902176186576921116577970704707405209061770941832613142810322996423319876004876436569089247787563236333158242066851799433103561245931218977070115648708469302134655597450623934438985247614674099630168460326570907806107766959537307458761401481558446587597696684383022503776694554639384806364213819826838621186936868097001786527368514783451381733976471835635160723462110355128508625785907256878698541658781190305106122470044066787481983856304133488514601540777193386948610491311588604772286835691138490469758829228852025749201990018469839972263174373036310793319478297346979250460283610001404911733167045800582440048658019692087998573181930808795097619823939271387674418668974820630996165704295351243543222230389264239953524697280972748122682112600055927892655660666047573823639892553179223192366847788836733970309823344632083394815151261189572842189231058404066121521096948807710533939428461182965070201431043729419253995142255465763053815547001051941215561983401966720133760583826429275247652847706143533231497297276394057027756828253231726033503701166775772334972962705427491262033600877243238857072419342972509996211156007603729533547040229812852863418428247988555351201995907822522647667654802526574942043745259733793841249405656556508210190164219837378487844715749909476322627416187805740440079678689060540547505013972374613771376192477641694005746613592661348020313945918727310993094012458900607264587257622214798403642197231157347149311573599934661828538077031994411739243825856821787923211161583926871693029655915238727556523918933063006071424567550583811780733522126315327887317560956432564970650619152328577689943807822484438481556076734297963662795523327337310724842133180228004611827694943058449948843694231174471509500984603918456394447931058445513201298675607206304255785478145981675252873209404961483613763644818953743261717829538025808079849788714647710949779797722008176157538957506888814613038785458550181430251659534934056518145416500030190775151439758397375701006189906046441734424632905013019345638914265665387164558154752027504567287424347694802390294900742675740249449749223795543561615088305311570895053169448365866373484285420975871644767250355150349284774285415005051797560314167852279968373494774563422579432055021956452587921874302286770210420782321050079007069783687424066613347100557317558519014275014255310121733298418380133684739755848901387202120106835429531522607705574271034591002265044891190206787768287599888860359417003643561046896283650758495940719467331045382697832219698648315853673143624468303103294479343704666894407726260996029673839955695373836263406461742575222577015230917605860826306294935143804173492942542920646484422473562563529990020662112067973839661826357824702302967426416472305836457380095357642972990248026573694444187297370241981803419495429524673640117947034813509149208428461406232042030531723293868692690226631866079392147531097879725040411092647935387988450296165452119132851530868924792904898481518547685761624184494068362443676122378819206678110361738120627029655192910394870710643216120418334248125597045498050239688770520084382857704145051148145236045821969439633036020504550223438710572435888494258805945794953464181493815600344973433293209736135901053838640257227565299041425687342916602108187541473695432248362718098727463365966288958604934921544664750843136048510367961102610082382325668172042655110897149559191868200140630862553549511395666358972856673508134343862895219010168830827301166888481014904714584075301003145646509525866878878400409026273684378271248805710840607466941085840483181169179329391239276397462816664580157974684631917257794520666220648046258841427736179156809414826057230034382785459519968872038304070945048347552163980963263868820434908913445031799220553353296527123852656343102730788162687831849279036469006131503550420747923635581952372281952834063802082706888817532853619357102040885988994887052522928403470958956507901936747871279173137784712946586310635733405695121376540817679546643116068623305728133677724720479829997190367582489092089944656678063534380226115291928317960945101950668840732917869017998835622049847270522517281104924331950320055147722531212897466767487976088130969126705300523676592895072520615749256950217613817565858622643117740073727821852683971655090824566523465364922733355544880890180374758248951475087456555140996088218839401670390462530999724698656462367366125819814710870278036975810726005375983006133367859676625460046627532311831924854175944488869856879798308274258976654914204258095869230082126537104755177764107797933694933651224251007104277039694698974082195149619561143308175433798434996554335179669566308483755925220713296718975814964263934808185533421120725514086319929097268903289884186821837603537293100368458995925233520718904917587369647731224473521172912126625165309096216622055361085773498075066406478313429237194445450817580626939868569901724510313388404581660652992319892254169164305499306150657003822216182954916323359849906997492286089464320719496210809475794218087876812752666745782406388310546489589721163189565627349553714344927347619257801820951140973817370806934241601539265296752174431370287143283063025802226475559324996586590636600280220786610989441162720027265055736735763751016329139748510940037023497783360624985836069097996811187188799177786468192178532759040474228847055230185680525563000174623270616619636172684458763724637164407041318459988944186765870636962892394641114551540992629111990549267370694692881259616713917849436471923308504413924820437479800450106692505278447018496387150835605499973405580434304954822518451462023951322876951458591203116804381452223359788114636411121908318650734628365254116729680573590479010975281533297174360124810128245003760026923513864973985868109967665312440270077982597566383000093739733570331670872858633111521545481623736984008172683399335184869952666256171525739529579860169911811767884121196748950091175267338997575622385770748724785716567236827087476273227894114360786188980413895057542430740552413940036345374201799503942110683596888574400488361920039554332380899627382096137351401230994612116380705367441090420442095891142916195754434153063786309906566472504177313214103290097971521817117606194907895439489418079867147669454023499871853192779434925337403781122043783002511506315492496268716930736187628783838639348021638948252561232947504362965633331619822627003116983652399465263214810512847103459085339259924373662150802951165991091024225276976295948165814977633251409874752160358152301494079899598446933920706903383304049158865757774955694208902617954320490260055862715801492034284540791024324473442164868539970068580151827973829994543966758463534681905471371840324741048915805335161650205413653343057126341766551920590379062712818272770667156522878529870286922037495495312843265358767731273203921725401333403826109870033693511879500290543204485735226607624095297116513881558004812605564741245950649202132334669218420697221773851392484063946478671413399718389277369677912716578308876302740277349418128206047053973033286287593720055141048750997778356460631357002360003822675372279481887812876580440700954242558613564932738995253294801807186257887780799160684179238426262436721806655558586625215080816509350961884840102738870425659822971664571350798413188005390378527498663223735868934103130770724449176365869927009830695731853189365015398106840062658720461784071068258835174703582997077355722434049561777532733994285647221119868492155858099858962545325245225245198964892902580508162814714288769809925113363567937592319336228136109630502465231115845833982740282965239870205995770758759942002526883589779507442978189091223766260696282429468494633128663545976028888417672071304500759649254689716434312227229874096700108377244268112793395932954663705816005694646487845799236277109595064706215833007327667615503516775065022207265014583981751101725587005098667011508169513746055515841886861513078274032211618842806234297627389028255591708466280266517535654509964295574563448167201807212405683329158344480476018851729864886914170613422495058586095659094542444105802291890022205119134147460455831753050933646451146440583816135301216458470080953081972386273019840942150176966122056783439285147331674153272668685076033561455221873059179748805140715201040502464516417175269498957288623143614759355056901231923721968902194713028498861498586152653593394047672351161323994773871319885910171572700926740806343527002293075707002573604592001074504662473671235408302571905661533495577653524262301913209349452563894564495549238696640362517342134140939992142152922055593723795058328293261545850833736727257740251262501001996926503420728093005451772983150634908014257505657970127883993328675897860488561021944742118193166344946065810046920034310977821260342211274289279134029963523839913949837479987720945274337669138858105427821376206215649192701336700704525538238565377376330027511189067788984062224883492727120801582174421135528392381615217335542777805315929931555045360980358303534507683980937255542202929146244965041460869237362575196716744402508781600518729706077472908246624970938805606020850128023845047310149235001431904435020759191706114366376865972992371025170177284964393554453050060933980975272092394646810678022792894565100683173422164595194981828154483768791051726473059671940516032534077880300216709008352443517027433556924376657028907565471369264981117198031278909098484168728505061841342992074778695527151454176949185851944549500764408162359814938184238443247149531362966645690315893506329858158317156890573673800450372360415757487956127862447585196182614093228462108880762145772793036266792478292620800438417437395742127717471630889622607389934217532286607256761842947619701909542462612089210158236014617573225101084063991633543047788205002425093552768866927020786677299714593971306269621345260783971928724477943582348665004968709348012414922532326655423866268221227642912493520001191462311697607825743516345532088322436196313568266689949486405800646577501969485939705681550010624849377626852097648486867612203571100489957966896403407639251923283688763400316106256193370465297973684615527664120701520443435813751036389696212096560660278511208768407324099221453857788863299700880944827991436518043943964706805590040841970755779211109295256962590736177589788651815406844692473350349110858003114840149523814295993631631177026708127566624175189273044757035019537094044140937450948266913281289655866747905550111045768111407108766799315307960916199936705125123226022965898030280779936350193046430846181563068156632436409287316320656186544595153717933923561741630145085841332216940449082747868006138846536975072008770863512592986571993457795795327639825211281535153178979148220931734424394476914404405833116819015016099329906502587819241698064281463457955258729639277544665940640319233141521860060997300510475749507184589685194993937189621622813646801915692731255950671451633074324463395406341412606588416633712109057197093965260754887679776094448890801053316502623229328458553699222639692849551623648691111497578971653483122070661666454722656650394103665236097401725874525751761362500429247477632685809695110384984137760207683682549892430324451485852104278462153190331938563925716067237176467672586123337706812529139636128733716843468418936271757884975427142101436182594602014704228403891879393624624290161141170066243087947674570838802262502503145389404861992463058375049229240659546101288630688871883059538234071632839241603620752755736953947753033454001421080853119337644319014852884770893097504895340564103151863666656116689677791937991825899894553777072294114992929557790255733552743701355352046615093198788073582111059073993236028611247680661363395792401455488503083535456065652224706329165331169322927497859275183633137694272168038769392886939241371919906459881732494503249025658187258489910315052928111982072775491770540178522982728688676542940260501495678428262935669038697972697545648771808091670660671147353770042778731308958056337542357845834623520081723919355189525760943638903349970596634915848385632490215636165298498510407624052052703865708113901828625090440106592432437992286759630258961774912620286547076160819547659530439988893947379264874289002524101278507069841502002256029559008864038882623742029027509100807673202671610874213694039996693996769484373482613888922799417753389060166342029908596684646428566643237813285657159896212810754716336084537369273176881141527031888375035789302513402558946472764173278971387492839428899920869714387517716526802789605610254042730290616484146166397925285968878993479965571579094773515671039498473808254114107008154004189359024408319670007112556692617102824782589729787670392168514360816073750761320700448559489962056656771717452152154203916826508733954131707795007848568954121208481360641080321219470136523538673911890336724182123707753789228155168617377181712963358868664886871151121091591992844471264619638114716029223304107932796230393973761262613880733784883218093112166251281144585421424157529311117507193185260849680150517666032242827371868696127908931535465153246052458740453762585761317859079655513988269204007880353981911483021595643220528525408885047715065592820941273421906237590514708429781424899448257406433155749819631583270724974381181457359478042998198286740184346680261904945163137372856217386780933476306707393757304132961614736558838913106243889576303094964772322184119063679201644864910917683873414108777700091751591084263165189558299876220898226750775600143589641941219880614564906835357721321107742483007677205056171954373783869236831214778191209184204783505835497183359582807229850294194705765221506927493556064016856641490364989009498196197570507469276485990387837638454976282764693086141672083223239725447809492426454901609501075613953691837849192184243676944610345952601512403984784608337054536463746564882923071939930713272164532403939918456887011629124364604969921718983080998629152664812671397119478057207222559473482736140891692019452950257999341259989810345491730088327958625811700505632977295329192639552242309825573380380499798606483084415766692411926954476575252071332666255299488874349711414045051292866604699961511009132025553683688016222506010503855502598639177070490469256474498039722047091287382819366876839422664781349828509970765486076230219034432229584211391014020056017239520941901106045409750534321434202621831485369763009075093202535913559957209923230464805928819167602193125371084903107030597283116920089143411665181389191585771384976443563356350578377913537214333406496022909513995324667787150303728743811422601673032274305023513544881143481351191988469142084723347541428678361736457548460606422535013546211599510006613869703676089600440951449401553611420807197782530114502928448050269912185961814085614231229963617339111303399404668641431457037767832080789171168966683849117289393073012854943240145809633924781751154305874379308740192976068216799714494954426374500187647652530981435106032550916788591813985500999589492729059259707253708396084654503553303279510461339808206592209906921716549682608683395025217566293070788674501418173822578464614261610802067042979280586979719436973478282643207131533806591074898848988995252977178290199375466322355794205933064471201461798314709846399809463551890709367072246426158964364950160703304487004263269261187334513127461069432661557912076854266292525887332874949340726438257088262669304106640955604901721359523059693945097674806126135659966666173278044638504357874787855142497685521308891254473909204928103324842026215407700178818079030444613698728869242924739870782358846518056643086527821103858834453695860298835444941768725866649011609632923166027690718871073444985142642608202733829363546585292903029921616254491022524676514725290845175402158472493801475492129983529898696147580105110548341991057288633139544884227573148210715520000568754907913963167659424554221046524343906059774692233797184717055399711518124183363438303360790044502919234913222426387371866380076712756477828011132654543800496343551329808643474345748316333259096180566236355118811363270223895861271319723862702516967002915237209275035938259587616807807380077544023700114819299767963401558365817767568601678277061133544220095115691932494479829257874584709067094891825518486467582471333849288453095679180784039714506826028454369071970812687530744970236755421541651136317503867821879725137250367662602429454866579979529996513032403952230386187438329222946598207850652508385034527516686806693476441159033575608981816681860061945585372852320855678553835844715782190589216519305181257910603639754287072252477877891298876713322295607840486797405900969031466152931314283833262823581689509935793876327688918752076227826411922971560295821028691147486119423072358992185942905762057478154132846168740241179679798054051469190874439086453682521129504039955641938193012596561307860369994099284472926932234011807884495789394673813330625896393405577292162849884437622666086493504470061552384885720114090978276140256677148155411444454780818747022662832234918234914644221623054700563762669005608255052206621812778515563862154326861849256043930977021734746061248519535558107444291837682694792386184451869030192217203928288574055778324236653819357574865714711261136474742842484983871951155844878444278333633300010771187955075199361207814928201787142808895983613512374646493402007456239745007979441940527042976076791342981456263501584027022381311065177641788421637844133514019150549916061201969266475180647572355475996883011725462238676614966204874826059277386979056535939970591275036932333420412195462572750606113950809339340476042815679526398659936145466166999501232291785987019081897492413501891391436845965945416084821012345930908602861893173336108363164858780275225172836839644034831185941762060663689236853366954013180584518422509746396217658331330534710062439859991817983440475094957934103067010052873859484335375566469246518107147078218287254462133378158931903142873180023011180775882668836019450311325405528444763210447368050068411286676395391170426327676555211180131488251145180106597744661485774166750371604610783090483434463836616589346744417397315700332292443747689830271427798140815084034169653434281356529060515610038724746752419724914728851951876177603990631918154935969142573829302380599174260150198046072807425888009057806421470678568365785656338239729246142010296146152617614519364755031241409747735429238059394538101539399022057050895544770098919326745136868381407085803846169827799344172318155802017764359811009556289049227727075265157824222835493163861960684643523972006781486288845168780229529676435149573829213356987312242330210331419777921629002024418020921562516960647504934763113144043856990805350585452140508425576345518472750357804059496574125015175714585873045446698119372434946188573028497356006911782835641731623605076163791721258082496312759538189412034897575233689748497197636350437620548135430682861191415259461455334525570157035441735277310737083871112316497852841971475018468109174742473758788227583387233545270090545227461330710911409615151054200398718518731847880489126923207619130209809973078715604792225958398667392062340184779690099386022186465940345377822601440065830490643893965389712215079446408345218383213779107041014775796634782388744903793302282823992375452236041880340947595909383710272661372000195110454109616038270816408444479517122082044121588031831942382957743135867534651686334730122674390415827816096757655171199165916263759273367987785924112544601259922486666798121804189127793751363243857991967757749657809098739748903448698503870821152072944093535461055814421911472637335210298245402464829202997041096233963265921596553375924609184005719436798858434670409813860875948603002141611918447853024220020814115662616033225645371372274427616972053633976238238706789316789391317333425337814007845796795004107119002580391396821294845024502016089153442950827265810833625023181398117181302566483503683526703813715290868565446515227647612539239801622847981028730229917429632392114035834104917568016831142748103812234226602955434916247476765977115678686657076425488306499793759579468123814507054959964893286570014994207341245719371853408617364756667621993990345132747976409547030740063235301602731902150960353190188523012981552802175030848172139353077087351218166187396891806244744726040608419957022232713089912007478836357317216269841017368239715268326289037615958457306023405848549468261901914344716761828509774439440921409121819495047098538360677664369891759817970112833851092541921263426137177798500301150696281357062876395879396564240289061419718685688914113219445573181807401656398379406159438145243019335211733487906961635957605328218940800767526724825452117281821365190075143963366939229422445936953290374858382350639604141593736580514932504553867428205080287305813872265636578081615795101819345154688210554032563590138375665525573656963280836454519734406382880385938036774889070217404891559632079613896204958471806058870452653783733695016299004410759614369919066219530612683535480079808893045051707280136028278839993240132152702177519965826344721498278581118708179340778165530041261077192516363364757349042841565113930715361768359757936904324950863919985422590444032600589895268775911044058331652012118723242569991965958292084900801763209343637445460948985158389401143942012528918399957580504378509056916276563165853728156621178325389510944729343852546752660292368951779504524644627877461678848851975645841001356413207968542162237923653828845775665447716783392393968938014977362591814546254768895510837923257874360286754369824777421002244047514905638707707735070623394577867154760356556948042851234711073087489045140508905373427881128296729938226295111977598389171515566691675963475302832043474347890799357278875412776304177475284349186950862261319870314077329119601643715507158027775848318934760190233298468624098975671023825244645110520194632946940176757237611026835411827201713721112909598874389350856202327175305267615690337856821967609188970161629576984270107689449523859761900020852461106605928326922658772709634487041884234296507171246462069850222474436447591713659154942539683077234213066956559687732882509763241442792152651494992658849239427122449719255277067603370642097068813927556166331074682218463222697712149034469557369195488313207699692733017288256352563173015447115351956544466353663501839947597002376729789088261735647838361134476779152633056437848808476274866191496865657474101129071301068348802024520997913822931215745800762927194602304384009814283235564123838720289427359741344005504555289129134434968251481754367363813613234162937958992936132728415686328855181168413372190644994468439305103680307999389157518975125720040093062432225290085459003820318567924344318042096622135604511356767600215106305774493410104239542814055920198568857117863224846654875449520569549023742876060829263510920294667949882497765922593752314871299930549680126871037268757417463371529833883349640422952587476327904512391984346856812196295300519401808311474363168900148621168333880468358993791867266931313023773443971338991031814504336851782801065670470932326594973358913349119981862737663478397007334122493477044476776518053477539009114007769455487099866941611269894543135173947352053557530470618923481630244137582358973465160052919307784070280576878239390083934484907613733121506212986847193776418954902803589656257539403323949478387894760372352814227150254435588858297948476474061842321331028483750220313406090816395095053996835115493243333724618021715659675092176449804107117545442677020521443023563890528350271399088251900566363333641024436454177204565279405661647037258180672555788406696825201991903047628502417213522594607273064849502199183760132606429069397452871572233903769372787546840660021723324474564968982112090763226199318304917013015775598331223095837530950322451807534633472183839570907831402041443508755323968920364622423948343066902438928300152033552291615240571053468203503620203799657983060558254183222403782987003796038546804457940577642786473403062080128118509265320026536106131530948968555382375508043407308918716632833474431356060208765834584124153761748200080212677758529826342167639911218212902785027122702252380390338179579689239481915563740500446492049289236790620130081269432348773725352365960880651929588362910989955846724423528625070861684883713184625785774414811840241799153273295177379637012145555482778396123521444313794090282835127451784405813909355078570665872251542739814518191557785592349835258129116197120349373878953391524569087951536695296867970923400009231081737741738852551953302750795031403007556141408391720439815358044071040315001870982036954058282873987173684099455729493264205960757980941572697028825495366329669599525450713248762848781393768386247896240047965120200425636077882219740422419839207490870683378113838479473586453121896216573328764994929122114295317253878039866012630755858246403157412567893705539171846180240294863399230113760648620641927138718731043821615965327578902844724561461127880204793715636135319502907830745845379895316277217685781582286828985119530895736208475022052363548200277912141541496092287719404827791062000377308362991046515603698989685614995740946244370076098203038999020310060713845331591523743572981051479574391788966737853399772515112653309315687068825676864177084434525397216706969286404921904995056534057263234715699741084970919049315075133948152194825193178267786073465573584122177332494948787187934771403409173287470719038204365873703495101086843953679252493971821282473030315588505726150640020473330524038024917633864261752024694201982639255688043041992225193918162625804944924993752991744490507211797608674008838413059977899895216240288066155011638841717801260544688792670484234828300630552604137741719522218590438207165202102909539904876213405624541730531019748524971636995174324704567604440614002068120041263178386835107374214787108584087219221583865880854805246975125951851461980247864493528256986200217495934585885832672114386691384487422488538853230737586091781287197805429558527293681894387788465395189946048459927868762715431597898759061252721819871179198708612446266002343965613911515748350051240998035372921089723505117167731653546746001336284784481565979746795145887112564777558046769305833277762949657320609268989952635652348178418964139016679882199691282876166010968468742924254069778978019520572081192919591403838426573154399188733156918179704647377641304749850377515464815184709537390596582623201457548920132870980685186996068609498693548365096995261771597962091436865324362921257435523475631872594161096828029131906361598051491504408488759217377779462173510100595099075466942625615062383242236420310814597732083511639951973079340708060565869474185693080744886603101674999259023229166827931095216338324892947060962032222637973965449144570589979569556732302977871120185196972552961751017563536001532170054547722373017421078370739545387206885381955509762831511275714313954954314395581916187079051826161947795078929845104689761961679616231011595824118524350039795808684971957337547163134294927428050272476857569829524698712088555354905906697533143979365626133073578423161618396060466753765055566426293340313057810392315855899019070590524289481754540647089787986007137192557032697973557165217538185561728659717945483632628725530301179373140738295026455953357345518886834868422635577288787804624600034256569994705499695462830327923152852493058107416405051351273715432011646521199696291066025577616714487402371988134553915474649525042519871957691035376632033770019528817139941670653484791213884333724256827599479133414657555241180159587655857076407224434971649096601577887135944002915803205498844618945770866811659854856209434643621377500403127451047529209993343874155291332969605207971809778349443703623541785534480763409349054762873102210348585250666076973334990944659098511024690344533058768073714876038461476711260299738018479559080092905076081078704407564522454646550805234201920445336515647777580750640137108345342403235260469070791674211944545874962209931434563744782068945346467316663441947187787598556854181338594176340424162385703689803244239877004234030708043431992119586337930716137266028082158373192362774711245099888441510736281477167082289802059583577733838485342658532670761983507327308563446015254169903013943406685453343068804231630684775961796905600370378311674775431277006729567968984465325490147561841094119227778077848167373406638980673859519239230821646658409217967340158488285069443864722665360910132407929254351209733368980964683287710585965593136870797774548186947128956208093935789315029810194693015025495493356308674754942197218861525492050171382816027551388731976637088173804529671978876095402623295671238481562494345540677470534353950857375091635482423672089498123789546190338241071286716995908053276774014943483064883248360314420002859902723575659897998182059935991397162015281952939937873344568030909300392339571982116805974231476674213676045028982953346264280375120093489677364865663009862126501926386464950068272120553051325833301244049136767578583808562465472835954757771827598808613556830174575331805601730845448041635615196623887314503672392846901719143445982248627768178467304875568251207772444988879663862778388886602523282351070250027865787790524499166340941711286079299351803498125990794644912366317220350242389490245952678320786890436717686581096073566685859668517602956385155653747235258151586117418427821815055640917959247980577062029633619247391593759212518684546053686890922074474337499730740605507004550738804054756231125018936908072711983598481153358388443725861229451715167690146495985471082565673415444446559726167825038426773687127950624248320930522114838876137854124402943240614384376458700900194070664699836825311780316657678515514687283088369060393558175452487990389982795741740572721991619043392102502296486737563991396228886596060181639644539540082440904826263401972609661029618718524682107383113553136389841212384674876086880836127427731499866038558788397137959961494429143166886733980309751974490615960307463022463324657602076350514917465369747708459331187751378578327346241597607174318241594401425667927065869135102798868685690998002559456318827221898760229247872488692800114496252725898837196030678350491423786147140074632706032741219195321804557555511125137720400224699059779251596695147436140976586705887192077797663468628705496155619979869378062948920612888373016130160089086699864993294146389428500672513527500472638950789491521256965994691253030219266927617947859844836326393479131653719516381719590456967693854670077607866541873428549606565310287645121146723924512154514010750469485245460967244209844676710686973863328920869637242512568421444379664735939166344695560012536198040400409605857352708297534276181880125829022087366215148104003157751843171953051712599907201498012899117587927305701837978371415912514035779953984351796390824261299862538048441665527449481009833321489103907209102534170822983248716281365918367369208774166366810361875368445647003398232198111118568428260501066659748504522228117931328480540257677891450161750588180581069488560700564820969037004379354780404804215393719081284861808075583342298458627387987313269033028151124751734592864039000952019643978703880389476567801967024579246146017020039852148111768012014196825865943770198959227066998350627695724681820966564127130800786698294889784512122348135031358185006535828697222520221848690913337379069565535427311441308929624143904690145089295479731284151996620979163566970535019537792382958847881012615468128251516532907159004164220396597338652201355192769865319282726217596465269852285953152979965388174839748623898417433664536150391614288465673929045810147839541421838989108474183026600184589236157852102627392333582487317347654279106362883037001007411681229461753898363963160624445287027504226745405460606748347141295585875847310272347076546740644872785776972512204241412411353718402646318157033674463335204129871344951412232422205598185405882344423180733462401633479047834178190347230251707142972012086963935178456533059987634967878419881763005032285484785683495208967836080933799739434697814496993432996504785073063984040564060654195540852995217627949886230012122921542587487174846601059583801521579100917526759704560669917003488956283302894352386814102643796493631759628569943275013686106720016579848463801702453479377507523579260166000618088727674351976662361784094867339242837208709398951105647835317962207700550310398770332181974091098151544360128101117201200734391242768773573991471301852760984061746960689714844314579557330036065437633854940792167886053525951280712545305475541530356292088729596062295497216198389392743477258590672865608137366309985878696687987265445665056698899281924288852699066484468834039294451529617923917312556530975614694732932041957544316231040523608496273429268622992370626063500697772374564950930179591702689633315236287012141681175091750287778057521569545442082988137945745416255791615646326761921145457379443408955586250996719739708195111968011282334176560660564396085672533691505354324673777309325120286402710513820041587630345803522443400548073580995065707978331264947944391883368051139021101487973704312534143270171175624210350164214905192184549927724346396468677333318461719451601635439061014137332819268873519951103047498663914067469915378401148630346944122997481578675176795193516547201281276102747517668716510360524223262404664421518650546508482366127985892445259934250051120781160722345003666738553509826044017001542632784670191055023984305089319393968200686964151214676995818920736333757005171591388991391581909786178478365124495826715265895968475027775768624495630577738200697468170952332563514921554279330540805320016726722973788365270135465130870551278602148966264504984354149566274968296548455079968773013487376776588720009114274437469362883540130660491344062114962364565453978472108776202919439201250731405801919776763577969797437840526848545401881128007269220637504064963408548381520387095927426635251840841047130386196170111767253613585806487765431680551569544702334970065370907869407638293571882661712519463494749937926585552496505217380889595640466917320900904830718021955483985307302692303724103486387118591655364467151967463251586736347966162747576128636810990366226222798170575254546810081499367353581304083043067792442766127980949375224638557414247113414835149026669456562595917258454572162887387668742210846895099735526980796137489831876872148334729980687855372901217544477808240188596187867083788312953135161167238607980470810847770320742272993362372907583639149271019198241535576979839494423502699259775938621180347254547116398072990410220965888779362424087554004536575226231446062297350460041811254119109724428883595837710267942963304733030099133408884628021954937482610144681982020868211025564492347498691365898251594691388582908357601164373450780286683693266408145605974566464457885927039922974850025790051246099145116954941066460148961564237043307111305124903670429798339302876782033620667911071098794813633686708146677784257189065912842395180306041144883478989272413106478805555066197873818497143888491250286501705562939046785903045045135161033683512696040604607364317668458638337529144935025468288758145173542063223400843291306898497595480020534138200634532494713402531003368772604089876027177337571829783702629929550063106558960154950868889290621597332172547316686112589976255384101225612384766191913386012987170671963890330938598411891729872586818747649718570367017232213969825412791533745388859942586492094800048494076686995251982850861694417054440683867317987148646915059231063581110952977296370945941100007601585022288879332687466509055423164439223454737595895160582499992538777767956139300327323319293068837034887868786756405577320591935045213257682850583926398226617251579561931295486416035758951150552417356412893658506730919263558435591547724994476169851464661475585842519789456519628675924314651661909060406124893454390423306781566137498608844738679593283521922933728270258683810324150127456186784470994877648078691655658660585454996636576959619229337779912197669015583820635000637303489053336338517875826132648474726973190624059469278821852596010144861288823745783348650576281938480679630055283108116676257359161391281134438766054180919518745836838849073347706855441027029675695956530113000328792321846651386019410590887359221328973140713577256895211021825662353787087871835004354060708002654324328213637684052798234437142606528012755645349017016486713824511991621924070407917734895941538136293025424318349963071585856237809319743208490650873355353309338837222864969295756670190349752736462706941322589250463535311289938802734555499273389825561073426329527342647786393027361758377356847134033429296454754251031427748715291593268068806873088482349868645334185673092397973565454826107229362325660532481833795571078528433700514676251590468812386402125332158396052997200291122808727226218677839091090339716289219920026319213308033895467392961002694616867112893396535431012962449240793275054705062143969527747959741353556545228270968615543113028139491316544876415892976516683475501205308022188303579567066205743863569832465716643108451576609995127488097462159329067720631836959158832027387616281010521054777138453874696363689693131236684056947396989588400860717877598997199835160477700553685286987322796269953737305039663813103313975175117028415799042803289977485125108202780906285876179997542666367957883913536655743988267567964913194842972667318805202974026365312346033905468913683854617631282753393220942056668587657588863554009924077281079158791896728193848387866158672379049629539903661757986712670373892194459680714979061475458619634105928522223615050606552597895753995329587844601220109724818610272448391474393431835562139573399054713508433665733909905940739848029996185504977535502818793851197115749565875670021275764387140845731232196369997929620935851920953135865106354193200891142793670522556147803465585548593923101303587586502796484850848188429744731830099273042651595886824630862036305073716535129343311513428628983758958492532136197360116354311350999913509475167334613544220436826329945245431032345475768553681987482311953391003289374814397847672626377620439346144875057324761587011757788355538426335276762241311657387590277017241092110143017845435409987274620132427693360447497654059738100364471372453776515977371947545176880715766533964984779367265072528486886139180789749014807421700430645415948367256083287928943908103038956357217794185249571634632763692089798231696655510419008507829456639390242631728041214230354419514207860784271248206337581103805093535585047925249923241701515885236499695672722180236730935018398783424582365853881544259940128402769038532254899119259282667271878723140806050675608113240896015266395080779287934226706247271930943768464840757447211668699420945364818741048505659979598782983077469982471401855571824705914895853004822212089523558914597381496407047993985618952804430179298927181559453258581360114665409966306009453564711479482124161371053802447406317301152365647359814053224715879398095918223404201921739501755879115086784172787190828056076044262483191795522905382926160583803180366695056278253351109401474385272401651151291154862398502927070497198220937057745182808120469349478989457366845606400787525886081860846211413434451543803326311226421170251580820866210117614333371361814645017266069708890990032143753172963177011868182316455594429487039317663479338946951628196458800892105779297652665321879856596957369794675244627901079883166452172240725783942417823008877811311358435021254612767932239610205270174362216991560948221098184714753763773588754170488318570682406515955926043450798791291306186272271870382379312161055499627559647327536117045089748499179605034913325319337781171165309786791245148027589806096381341423585185583354415599893638300396324683053732697386875632406108768956235206689348884155378112241230133476808068162794265703846202895975786158276970520575397567098041092312867009495624237948388117688972705283326005203141070186579376697299915568070661157684084665875035555729524088105916676204546324594083773981891311193738934961645225894970346127605742613600741031994518922548078322326025961194019645697798988135841602639913314385148595106535810337954056089399067603545067285995525978213042506710281116949258442232648103557059933388050988584303832454649382285387718550163383002763797179464729697257291589134886025361203713899917701399650264474535471170464677556204818115442629361424503317352794550621505876855970025933376622900679230445271238307430009533287264071811787812925912114495409016357043263084620521563117571723695996393518113664266630134856612262212306715071760011095977881308705418207792728918351157367375914984078661015144393469885267389101422036476947244707373506348980283317746642946911238617301824575539388997669342163349602016000159523223220318007604733182510580041893631936426374123341831564673538755274185791676750146618763122872623288135186775652513885390601870753647094556384036226423188519789641811713186723845671220356515234881224436159342874030413486773532181181990271504492917487492947899956597905364100636125593638779955883465278602271289862940998474797377181040572553283658100654693272092645470563282115482344819457194927405910365729895527478916830799723324685124498211077782291157448982157631421986341191690922591720552427458393095113839787945509689211914978859148306260259292781624035353528789126274347692708557913146993495772833369328279424601976171244217345704118070360693538331108216936571246193901298806951616957737375095807534775364995625316871371598809701011690884060624188905125126837514499199223554027154858908492928798410901990268072453135411823618328411227764674972157810901823346765222853044644783075219253263740178891516278239545238717432453401331435798459601830687612761124050005885847190288691224384706224976940885890894412562192384555961001563740818159914310313890516906661575046387548713271352196942810968709464119770985772746039227871877270307400559949899569807915501011600332723894276782801224788620424246906729744499768893953171988287663417831019772536805935950902751115313307002930377594026844094042527869498578005102945838829097288910322582865509787773583552896307806105650032418609019343128873481154185815078547754776719137333405254667326208288924122452200818237942570847323380542740238726780558949745277841769588417184871772869435456749621862740238979052773735682558067519988420781092167243700440304021168678129320940749356689705667410954323756012757722763260430634147769712720469822099384579282075835627003165207185180709872176179382804171909406346038271716962705875208867716606318544799516313587892282084292946255969613391598007577523086534430652098647446262773944031833219166017966696366979310621562267431077237165123880772171904579161525120053562153315888673969227151746027506466332491472275569224833502642894727861922154912596175760103494351616914728143583665856968924102267224423342034904428407234203238111448778030236708003168173675921695392651453620473844649833514118985015594483683867291296341265729846153536393191214409209277033967859147125456209628432938465971358539538580978683796081052472974076278395353310917155986901503780101119494737088899943585354925041810825971511460850410168063853423559113957144237310086218942961619885519657663045238460625044755074879396944459771018840563261411606533597673411176507458105689278593324880205732522074422600596857987429936655340276365277301616129987267493414385734633663617129746486547968181837476204684416296765830681517747688964079826882571513929061747483822540413001696768677804508763892221876491901387034908892111737767497549393766028582639977233753272680072480306845232735312185976102619212755320891628386437149646760425188398069891989953286644576382429094339468945723955632726378446466662321232039302428316484732310285579849137433569185581103326023876775542945484691878154310181416704712036181826320226613978888060130361665300851461071659241253314447768965760442386520252877456375744881990551997997444727132952961241984165669892977495890953833563958305956046605269627542098862705395812411289472954955530557164932575420085702718574298439263522964865732581146559648483193461239889712914144011787011993310532416757638814973143969757595395311422964625706923530805929485573970935740339803352858661285694213043460328356547770265872303858354939578909817248773484046610352944938492918358200445946293178467568364915292084305794852803056279125768990473567877421007576846005835053712621157594470074608003120596718005216151553366136725577721389147941023910912543549482976254124480683318796435811202958557354924315301241399203086481916214777844207065460174032830492750242493693017697642217829814517811182209882878018776347180983092823651810708792408730356936816152718198708722583589944298174190266769277345694413397445036447997046861705232519352090243060734085960388265854237368372484528823514682630141995493850383808848259186724579794030027561914724699987083480606222841755340173892726659526469320852630623519148642232806648800767680027561127418896704235888165090567086045976165645166575511705254555255306405795799844422211696169104672721601431457338998614195535639729490593218844806300746566278341117991918272811995101650468788638203291480598721554159739883679940990591322804422181494396039174908950552186058083234299351086481153761137718890421826748773766631752097311907460692313323726969343942222412224984932038851220103828885885525981344970391938907545592235313026345545706563757376761242758972725558074079665161753609647052979733691382355812547649622641771632208559985186528042634284363250573175580349444667517540254304148489982377729632739300010939514406905409344542167035067082074441544580447886983304075752894112575518448294819729986496130386828114259238141424451883768274273499658076137484697097035599860688374432674603069429340467641157515581935444489156228834807001220577578434352386301671664544697683445701647971282077715859255172459339300246528675552425149647913562922414938544906926089473869831522298899044488427224415696882214377901348945440492696551969838250341743878291756479638793668312988090150366015348565825559854297517981845678365897739363401827356835988464757130703908711730053235636938554313571530233229580703013621324758743660841137651717513152108192531898121324028862993455501016088637360505178542009138293801361263273496416700756502572811092096631130976115017064950907079533630318180943181546777120706720544080094557244968021173975168995589045698972781687614343367130472012646057350903090510693849800937639876629402360364103225051727889277936029464070608864256886103017520247386682061040153329610274840794933986058643031423633303712572216176781754397023935589931188284896198936689306530953551047480315166514461134741871819830138074989589448982575496259543169432371159267523330784851788278689582598901592828230006846682803786517012893494411226835207127385869571059321094724752586939733221141435534160382364269906947327083758723463525610842110159064969702944961310616865895674265923276377126283375719365896132088330578424785105617685375568500206409749575747720992249574045230710359166628371038250386225355392560505002132695936257913299247436338171524718617229275859275503779248648612046813445909381118655188990291388337276490068187558298516249664103584569041211783329729729462850238326216283882301869364121739086758554325619245107966028438426261829293544450441761231292901047215307886042253390868113406282962370712045908582654600087993519085676611639033656228536998121181743182810187669868531889595762571536497198555693811098877078604766878874177992555435323842339153868244681163347048336536944413096221561558183639502798454251066650059342285158563182845841939258920898005251410234639963409750018506417401145353402799695586430482912030362691208465975464196492154305755320335532868969535516213732429221970228158894020316012653305550685350059114766740595725372016542532633363217012880544311047503245561800399566123264101863036985945788003541324654169823380220623714982619319872557621523654262748422581306423520521527538361844086703859423155452358304415428786711483387262176833444646559193780763868541538641338837166591028588778351035054767270746794680616977103225093262439624778553577775298666833623822712055366399810759197142993513591285355393472490187829772627433099552429828322063862608017168612841295105274786922570926242542923184277472786226443838466857637643174523443752571284507433675653555908754911010192261553225701908571264949081315599803551343506075458650998231396030319846908912865055673168477215010078518930262759253965575699763019770266082156496477593876297391577107527711170257187733415253890748634007197176527575206620927046866033899587387030196140129136350258657882078712821425886801115742456520402529980614383412412133846279600599615564389613871710671854001341500240990890951240896574976948853022876303653917947437436943602635184046640567657800039465174767903458156320859644306014821757076088601987307294418178716737549630717336620691323417406672582479057005444935038915787108913406903217843135026555315418648882124487302397076677579979778202399995079351222026229430017466031538965959699987342765205586057814242886228700682792776593706393352131100388600300158269374818045804993429778223804478625393333205822005617530753600799179576758884211522994989058336357695348665395391013563950322996336498094575574472152314295375624322103596999404176715707760061462720912155444407658940017437054180405375069470921334019413879368484073553477481718093395255531982290260687052718842440449756419863763572011663551331387175328472648215130791614409962858445064297480766731924384578743093519589882331180535167238157736943645073229024809106961873698190760260300434307856237684079579582612074385915475644784125863709772165954548421589978672004530334946057986931220451453140579041736302456517045263435718556752589890010380078170583595119803401296926639470741340673494583274136889932620117740911022348975991632798378732390230335130028047996599898827778199302025173206832604428234990781202011346227857583983174686175040146320426392451161563731878899886793739566435690770149352815918664820512941247379420034833381789614916575801741371255529263720071918339797189385530894798610508553653572987953244841322280209145552916038082640975497207511760406721409091553764650882506590880686668891621788054165542523667578748617366198364190537931605081829427889193498722028202218572025024650811280446727366402203091572099848622760418170260480324907020332043511803242095281643860792797467335666701013150455123630198275190000272965115178146179418214223937258455677643549606700132673075955775722915821379847171245494216522100217297205476685929356654959871713193064133495806089916667588739872176286767229751198580663565904768131924322441275420360140792036576836986901976250885379951882777851168700752991827949510632352379815291748840460755970821174394200055646954027057557035572391103651277893570882677244640063767564723875414113063482461627683232078364036550187468843270394057337620752967961525669008183298142748373993851284143509284872835861057963010890566808142688529292709468527892100830957693717592668978608881129386842310791306035314540359422605203763492984591628555037555187805102586777744337817108038764819811577992207600158714829616687580303135801992413413095056389697013328469231814564354327720107985725256536076519447581298503472858062478519556542939095645216285480717032019423668658033309886498685923946071502916762961983971794761860886254024735752831994819518606097465152584908060690125676082305576847744093539183173636116074252272465721021230872873216480004978078576939648232169842860404150189971305095232227183153444189562324825156307428608918214913108514364328489427796192398636630408146114336128799226905303186664851179409077174839317136822471015911756738468754126713339544564178940695119424728942385703896194629064179421971600803865977594171100053418954726097863672708403642614356645531023725520847733828399784182019279208856371491390163171997734393175320979836837954241931804762242090798064955108340032078863584886768868413145714821035257260331134994267193084823581179105120762094861946056769546682927969458432427798872034930589313307569196566910207236914648253566868131935511409206563226303515957354506891143391355993972994037584017785091245059722459901730137462628489689965450532616124006129226547936886832156922146209005902635064446783730850953341187748687649452144329766613086522828668447273683238178695478127167304105198848408552785226454583171696678730525973094494388090713529917716111791067046123639579242531813019300419892119193670380421054172824514548459530030788217814577243250802902641700668749546286593275418676247391938979705013965691898455432594677533016095495772681765763610199488688510870777727463557876983666813992089122283229482924648987197722977959671709802886946271826167109703697673128128936957757677443162860597398760874405109555835474275085555572582870832440947577491751510222235090264289723344544626903456793982529277731276065546278946040512053420710034882367027004821801634556617778283643453045025556955202151128665504465527764691279237278213016850118324043990068388652795523794531313920750135258832292021631942835200419748917237118105209031300742082038650609326669201859134933236830782853240903841779178500459802907913749421139406443550766021575567386355813286848864007442228528391422287308763415860638682617737330105410575722190403213759006522084525364795087049317506989244348924426108498251746874185984997888455424915457488836620529715899362353056188988815689819105272583938160542587852006786010372793222867216512355121099180628834374472995956742164460647666334833092252651174194609077208243317681222314335557435101347682787373120478045193279351446287053903915211695666012089181120367123706524686377023060197143388149421127253190920439130293692447201875997828114552562858809232756326392692824101369820327992502494672128412456924462900616592980962335217082376200659529497950961424521923049924745973094917440322583250177729930985645932832993240771485667738676081029817458495089209192901521732042316189217335690541654628382326887950590783541237753443060815511803888995173051349038240796606743406677472465635144118567824301798042211805851451920414199575909758065019854825277466509165138626008213357941046096007359644220022870455676029986044105998999623601523489727899351928274782824158900126752774492383261487628363365874949542393016384644673198395708091834994738060462884129020193016558143703139542954861942737211978863727866118116391759672210930006456108857856203178915755489682751691188460613550622531547252850195816399290460033653430864856960463022155825380798338617277095101387977290565072105158163529550906253378150799003971294487345785842475751361153744309840646409860286308631669797082601424457039810693991254837130626895989001424085189702483484439385010823685797747674542122440488749021629661158616578793476126301698398780189982285977801442822341803196435686364577534903724426944261653753903100873420262587922084696095595286466976989015583444969439444061907101745843077420238953016141068771215110900698793731295312573567080202789532028301663399820017589071129994837643557970417716854702097724293913465124491944896244727900383212690005113629292969019383408498680086109658672999644476960851455383168833592997135699435306704344878722087144161138956438544615186525864335865796828502524469741939596997517268839335472892879531550838830425235598881202637366072156517182157787129391422551106240219053604249856571691073167223208777301538522469229723998074777274204344828250719543884713474050553768384815896845586013716361496157034205380932217228106365889407684282937469774598485226763202919752166499846747746754992311701510915940877268304041864968685215355193563342676380965706675787005606828575334183054005668466684563864891520912482264926546550166426987588362136417085540529315496548895675725736800530886182155106082485597713782784082943622837492935714082385706359654570964445002132336768493962208601253014987971792738469858042055126209476239909621990740074285564750411081677096678804712519577010664605117809814247617929279322851388551149930968290745412458237784652638297494680198939717360624434796673871092504976466279765554277916823913438936432470104846635852158424666198299032486453908067174176482568354127368117370103161248358170402954119994335722440118070091567672630706240681089232322468100703580722549120962879398106678883757761155502957681903701510082751814932503085936591255972139500448328081644260961076431397151450161747532676720313892022770934870631375058596709608818489657832911867549491531259394477113544193737487773998053282341289580883232012401299511357544938368879865162390871573728288410801247837236313938214889994646324387081384131154104793671743470856853594520301116777405858831744490077072362022279777863331141809413684809851985210831531006919152391030520417201731215191712828624961893655356249535242515384164948480904603986617750371842390575155941257945110730500603123075863349228266456211816377871709089481417277740837364727856666871210731179457443528417145689617354927799782932153758540360368725894108716531552242868875848914580224065120722134381575531361446657995123890042500146530919802014904156555533607332252628153984305416687099147218501751417717148434988160817790143665960687841503996868025715471341284120420208818918029782399889917820515910765200470163693188462061748851553646973674113495154449682958262681800559615547729798983998399039560171327921989244308939970950396699662446245719644907666765096564248288217817687305235196242436337885513691518794726877399490000370340740078490706911791256690212319923839180793141267392268327080816007435257164969889471809430805625200338152005034150734500727434905752674719490978904292452813497866721743486414205529674116307581427307047552828270587218524077222719820930315157917505439024172456194171102616642916346784626658089220183184951066398097800909137269288458086063406438811955997216008258642333257664658669077386966015618903696067812564457981657592720751089540157762033438177775464059196422836257657823518420252810240551435106143891104921360577572580383825408981627859401585405471306974998264925726364102451414822387589292293748114086917113573087250028197363569051336471490406693055786952697592485426547421770590552738773294299974367725348132167106332936980537949861936589571069728817126332241581921244590368004467293753739485721867165595142936747986083533607159288284881427075753011248024151913816292110105678849202167540017243640007881705046747727918909226477478241542295516236836093329989911253772119818819883383284455863360047498696935250952400239520295444278401722003609751508832191044715273806100141480095663268837012955553368675876764136873221822298672575422913122561826114095403846491360157904389400218208641612536622235876990635949517792485345644518913160437530673249501261285854448901677713257746829313594361083768576684627021118124636460427951568425290532283318328406574458995719522013996359086528851119519959807565743451340814078944026378648951255407847888640113938689584123128853116831663456494229654296032876704053795526989094807632341541688004768381065613797127431628072782361018950655255974169658716400826849155649103525168134125162459596796735476611944674526373636474494144842154960920722937696359099650169475102710515117730923017079225400632181461986791458734400998498372489346539188198732367042792462719268785957435874734666263312020846872030821051036728314026001116882939080242741495823019334034935218776372073046222359963784537494497628882355850374685595594097477714658328350542997199731339675652264290766410844940864577234519343210492394704316013141746703556858195471776462856822202218739817081619455920111575856865750921361562171026983197873007375541048151254680808750995035785630266915601780337946369240524122116388422078355535636087777460304165331587912217865544327012318089345362290942217986576268224057549859817727451642718276755554956983004442337947251480417136958912310092420571300583443578679216739205807957658015633913308757533460381533930614325391070778420933550974130274451104819634358178504271463731190203550014083489217926055978952494005401851927886378235162002240038780862658710732260068719127150642226400333701937173493799117829290165380791246007229683397630397599464029859008489785753079280239431092505157057297904448430166948051526032917861848970329437264630158050398260853134940495286960822038638345364365340130998592537438443512341580610272426753974871308841255321749233215501089998809982328851458399637314198917439016094930432464976707243738260881832140289907042790055682613282867379684118300123618963221316071422819763613967249707786562357350459021450250204636192453689117269567764423272840462635850582604777940192534281242989923448736661180520046757550260942514230760086532817065620758225542594274413462479453593529812497245316281071735727652017907686473995199934567505300144996003158151269062442454455216373972540754505450337852070246223842130220861219362758158491787248981420021850462839789131039959757601476066389789896145730800743545199365625983145720807234662741476876547437345115344159046940515507523720347107727661531914653634731430081640670020188094346268908083311950226536062553913900795468176866287616904971817653657539687445013193763740624739990896924937961792319309127139162287430236030402514069554082770524280272873082815352179520097550015925416575396816656350293184179214952149727436239571740572432546946333859286191730548208272620927419502129674324356365945520611572573280384015107264064505146680558616982569455644495246824484331480653913915261937406845687648776028407037379201881380101995328164296697852434215396091625501548319447058450557014069366756017359329344616671366500763920339696429927828057812697718066093394561896812626967474388399556835766704566196041330771628480930623880336024291818172098786231864390648235301245195680092659813714283956011433592274181096473803652504746920353965207093913807493085845192964618361105108850329761204862816087155240699146266180794107311046402429625099240549493376483953029037130492629403717301082294089593827531456871752852545496563114661321843008148925109603832079502584681277409378183205750655983384634634585295521513388982801725392894150896233216319019979219368200169450185843145894438602273115877118311538806388125844166875200374118569186934821265662113804910345461780763992429068698253526982171691961489210672052100323326011343765431755947233692734894996164099345614231551068655815353918761129073069814641341841759355498544255770887514792584610772260164958828751742640175294460472676433367061754833043032987141360387383387069613144362896993772408113048463974617808943591860084625935149471849890829634916336348048498181866006653181084041317165911898211827713362322917569275990433573536850031025198673227849750607146486766643038423843355806172867485967257585606593175387734268280272670469858517412234175210397509952259606469054117110293958073583841207016472670915634398331820687704406895564773153254628486379033700463866496239758061977244691933948791546085360768701401336947544048307618276457464168372099967254010391652289881217772180887021915611111276672463687362849017957394715213749584081184834627815776363437953354802338759594712188723684656245390557827165407009007149174847600603508623540494604847422643043909785731315698372935735599081153147657710562401647436278268539918472080034280243568253125622744755198659387595634964884756545877607160650585187169966459473067073894414961012659183836903979890100015385394742757898216292861528029392174594239834874732797259086272421572619444420206344171303748626000299085689153537932840136278538416446281401656535646815927197853948967170132794709027494926489524714363320839508825354307030384950082117177430414011563291458323762487008914792236284169002374308108397875777736946758514771458202045246580403767532221005846033120578958240797022561964722001357466023105060599017340537385035368286554360037046670378112790578516478988473410334112872460490648596746655161228612906421414498862542473027628351657294639213963219490406885814504457055347206053131004389531844991698828889013616003871463597393090382448374053143792976996601402800805665068079265847019300505885728935018412417474294791065011463189789773330333183415918657879063443727170755202513150074381296886403218932204739877902846949882744854176358086808354970486968637405737008030322928517004086984152527872647289791871946683180927913411025814730439863116791594137284181651232128058466378287376317425227033916072555030985033941099725695533570568292835395340403320129977293330232950259508401276588756753482862510148086608894214393499198071640669194047245413682417233547080744002830162845317256390345936408918983748647545965577391361120271036389166217730049538527667539356121497604893243448194289239161327539608291322777245377092607084790878100189447719161223257884293928375380925179486186581189817163099734098656142786485274633847841909981282551340405962789642377885919583748310928598678929715881356706540454613837557876333344044064341549983774866496205003802979092147436638653263551647369562420827246097544669417852479602139463097010825516892137936859390448817230687887923896436653594042394835361481266030474818721693945604343268750001016223369320109418879890571366004323498698392300213836176801049799267491557782664789808506280894374658461816030371530810848879885301886140268311922969565262258151906392911487441008319100384835704471008493735713200012656979441454416046954207251786972177069029711358871213198343200589897308909082560430180106675056309022232618365933376132828191587457234115820068068859752944074546647806600321707830382850039985120232841673479744786381754501680701973648267227343235989813197211030429332157447769574270501736041850955946049832229481143073901120548071900786452132378859251946887076129607201560307481602316908284462254691730614157646466915743101387753052654593233680502759392141544496889641711377125494056307816645262102591514400121915312268685626990357235770225236609018988172242147153024876734430374856818423433473943948522433145747724231499039817987999977849273061344976960812245746428106830166307014524479471868205094486966637552511159430467728840012587033456228454611697479133346863140131935301521255556952014996341027999182111769901288195713378130551640142305136192894066176666128434801247112666698338353554725264444282609653037287762056585012999939422495049723939010811293652752200483635088500394398433677997074095488819623446529637760440335458460548802186696612171628377346161981995462681751498678219497077035040528313538612682425132431844449699757812740977830453216584801978917860114312147635368739016451949718329612651037252956176749323974507654372047368324380953457674897811361083634907396386044132780625808725544720466026517337433794006721661250198197846147320360342360580859202952625737291013627618208907465195446636800560762300619226365064290487517376201988737248766056828086852925874835819671642027546552003889266002328030390725487615587960013833287187017397953222771235656267208829574381594659610489044053904337861143883100318638714229243978446831846289936588299718333290229587852633902172720448201112997484937666900585811548503724681580162022474924179266891042690103824878661550123959541876761718121082819840773452292599425458611684819635994156953861278464966310301827777849179685528345471048222402895683685195411636786688067313652506556176201423848999684624559935665673979631306762594437885614742903377475167723157583108466073630059740146864451675198250401651057057372998102675634678596851568003255429679088788700034593008183311114021199856933198912697874535964858920349380460386257073999277064439446156884561764819150459969150400406743666430123298045990203889512794143419148954936431080070218487632694728997711018942610452971682293032565854696802953284639004083253676777851787499150113996555886399859620690958324272342468669122627242204066890031384674149575628259038067760434712409834660665811722385465566652806817563393255449924401950969759517980349552624890835300774833013327868512631778847273881285231050424552195130090212690833436050578388270618653708825314792220303363844037697196147084505329650530816839060312323664570166369224562768058918975971274333172703235128002619126117646302568872730591582206739191788130952997231938369090705461576882277414973909080313249760200223293527771544939579623884029403974266493825636880620426461348164313655977405963423458676834792226793151054687056017717449281333846576433783071392197320659080553527915366580270289439015521983929848396924629174772905122386639856396095502158225508058184913188596683385969029948215318991851731890718979949872915500530853861166115195780856669088920413392783140788858761117817806873892699296827748002216585838077662211058558248032083001312242365084748236861553511824438331950772219728392579036713809165897149797091523924289992329906651773377987799723462600294861260598628399482314391583652422357428099347824622775597780850204296343796584364401628012083850545812304047385102174923305644413741222995298233478657762690069295286573776661911640185750654630227906715992475494782294193310804468961727104211026455523303542468786000844233006275689770160807508978169127196657006243669678724716643203917419279257870516114543176663046511024418438368521010611327241970901316813135772979040021277615745512719909962247089962277519981646066953658684059030325130220979543796441668946154076088416960111677554739217337908156089243836199429518619531191969827814688247010063502452281221200948709163159251337549959608150908371537389884845383246508598837054788721217101746452828869486757868591945114376675902153484298268726033665657066522920112067610448984332182154705762810928503381221634504022324996721965240531943128016703549235357294483601343318980358170737016950266460177552101412360591290844151262738637579435691738002463070408875279399500481124620984755817556796222415885176755400330178398784284572881502314234380879019221942100040827272353129379085176981050167692865845288128603675289733893081332261489985274302924245415706595957305041282878494513198154743849152608017107035753651998770118366350935746868585595573264864397394716783508475899844180879231062130249693668185299615318741646434876649875418210418545875239390199669917605378736925289391223352913966743470608882866841968451782200108520861380064579910683725026263259403975863597801058916098737244302844092810280514688647675229747322377107723604513268993356219913195100330181742102530521827683970191164782775652491725666476131377403024126628679497571509685711574401666201059394099154721604796073572455948840779770739168593800250020238843380591486087156205444340856505387244821433133437495877658020791409715214130749238325523574255187870665998811602995917932031508540792981401358621880465216319038209278958235355459365129610389326682498911940965109403399560907528673813911261484176798906182199050539021536750643714999048308508821277160683043333583714745477277797915567952702464447418203262747019215094053620953669698777976001419938956767796191533017444687187482411560280509589751094324839647594627826473224884906453765346787507487533044159586615619946311338020995805681869928631660553477836931998633220332629176531704828516233434050485206337800776706666902813522529848277596743226800062567037140781648966875848483058497474274381408736835885033119996144525960552583036453992483219623996388822858845351312806373592008389402895223385896699306686797559425716571399148881602893604112281866341972756931700287977550174335569415677011941264408766812697619513350495934623282260069557156342035955988579371562575659791663752534282958144379238845568392719511098757590474842598021640443769588502604952677163590958023225430862401314336778620523565387952190904017668350574800115182339983701084039412372709826525506246538217944990403747660906025767784754618015462180660226521884134241862327280905214003545019402701240844008677869098658661475316270957271153546105773552246253316586319256387405927530193113606392681717068943971013585386302594365655602034059285928439563877622779766032988579487991238095244254892727787101862118358854405906563422077660040688974033145737410328120586960044504940173340423597795773580188382490590000124587259262608034758863179572810453270286158511399620020989085463828391871527132482775377834731335482528724162627349924688335389055225898255584018248761486299123382006347855411043462015661297847156889200927601139799040838529334383986286458198694943320081772538952387756714560650942027525305907851267343313479790264229452331365333697452869264322720758550127346065015736915545450569450217973622827406774228105295234385100752247903982310436831833714133088956414401237856468534854934950695312566104674418789503818443066378430459896241404053683107955363598027663213784935840820043620681507207137301020008745716300587116431939454219598993725717011779253453796835862280654737841044591124686894072224904568871710249030711136480761682849845183008620548684089544188804213030429817712254721026801015956827169639022739913110704729284456983813268083026011023258718663182774912438225993939415075013442740561792422752117788705008204510517148341312958175959888162906012051160932938130316513384013033647121846203041901655999926858596222913369656427040211274813991609621989447018474697530162379473426250619109937625954927432560617489886673630524315222523867209802989972999666857686573527217857708652270836200937356700773266338507739737121183290302935802794179214401424643312502100126542220078047833452497588311111452224971103049854897773582917258963361106792902566899821458878643128576518506892629865464215500792421348328385295288903428745025579814283848522537542438841933914055218463495447720356868454524827785985338964877098312064258838564661594788193911356130730656641002863525481336784760323817050333946051991463523680294761142682048911337106221411253434516818613307355651306254238920959371802259897024190302393405239342854197707024285847166938925116334408666419074780517174105433547569314771005703685652677813704288074849655249904083943394956653378440912988369626106028554671381728903491180807471303354404694348819593849475677970410218211009485929214317871424561446652547587582847637415454746929825974281460687599396996158758236495818955186998326606897012356098963032144783772118951587542053277857068904885588541176077999307856528277895362970908609217983084339999578983256556655655670458857269072986621777519098288412635324130636718284962228156870755772894363719616985508057912464245337437722457005872426072103327544175079591278733282146809434634277086164721956299896781885771807511063651264330413167978279767220470640451645395276699554103602085051547550794405940095882603374231338493802088010635860114586464271154126718665847757070321648024069680746538435374369813422662357336612663584722291617307783563077375747218389534403508730456803823208056996535143666277497075419901396598651339078981572921625176988508027912394418152445995422765746878093715993436494043008459344226974694909019963734420488652219369865191748691253239431218748961279617332193354402780987314718840214515148716038063036834051083698156991205757579688722728244498267387978227648767103401927951359957548463315151155300809978642553217170627252084334775402770727899722455918397988002294699397897555292126096804123399497974955169341206898184158747605675666220588231239163392478043498450424924430845547455614099663756630181598943631873101238291456668225684379175724460858913018297290564452237489124900295730133198569682157227329054234450286420648029059800688453745135351318855766245415200093372500499289243385152026978228937403626041686088263084037399665322397577581828104040445330195421939726335573306999488614586980820981477529013868702736171129780739135687617330387167524263121381103223954306008854076349888690771937229899172235325990777663205934652213683133045481345551728967599891977844284100712659356305537881314728460364523632910006062158627464067554049068398368527605532159551822416156033914049216968198693993715998138091862466983177427471789722725630981081114393123552635283662103388267786731149933638451895462596638269958440218626867501186199078437466939719507494872410482715446691313459445039643431680164090823527062117925640569670397825100839204119266310715802937018264420348910301604136241551769274821685483467664087009117485456757450622888607181286195050062761414974731524778960805213413052777894467820474591457865622651928774774295681765570790446501177396108981043158934473591357374782884469587326955943884676016864704189142426081456001970263937616594798627912534115991625271157931162828608428410916430050436379538797711047307484268884099349658901097488466776838906561252548170518240323594277704013245124583665663276421486106473881006795566093257330572692271387936019774046305822770288803763739646007470929930404946914955756742639993110119557177801854732440032524013837702999047389397677393165844182594724523639103967992569550331001704942652479781619911007355016616169353140531797684227532851048749917834787215904774221531658411700657645996657358789332501481797840741888035735881425320962153045047416191064437287843773142421847074357371200095550869374665523568892138864899749303818346254234000327204000218483767006698873380959119043733070408728190310359506427915949227733196472171894463249953797806672427068365413296598815701873003196978056533166970455913351010213523897913982973621965736576855598117594877967732979440856333162655945422110211178622997311408374768225830743790807950710761561510903314350986899929059093099801540897755446655912919307428367774609701030567516236370977756118693269036003676748906691597752224393659174526891873628033845813296895009933243846537619948408371738309401286364793320482902642257356778867335605931832069459713523165925981162439010051784261077112339060962545524863141333710365957210020637481910687420492270816047256551204202585042909783631757045475322480018769887758658296589282655861589645480543820309844495698792943649580376159957678070518200216910137465829858119768445966612419166181355449785230698636684265299690343285169747214152605943552155906562898315318443287641454269992738499540058289910657747474197344241172635282220037216504639472395791712505276408553234388118045931283358960352124563354150119828491902265614818413290430625301566931933194946742763638373560190633668661626770468755729253453061319927246354929137882688801456343684392518008662740161074997337479359704003858338518985971432057154651524107693877798834200900780930233172709150688212018342971073402096045786522959507270654012503983408940133878102434006946911931397656442663261898353669188241357969319145127640898047652335118692335397259396993099257299866838154785136078384417609553200318576884203591356784098476449526017457925144867312106283388707283295893647241975107027055784446380668406544544322116834855392134948415456719940112110680077535115902724127736998752470443415668434543733415167839467346086520208929535782030719467828226312669630825954096987650973994001423317178219936144457285466877119855262850794623928658711826658159706843177033398198287650511086810405178769050775210272755580672553711325180124500161150038602665576951129215317749754819283013375012400327610013456462219634664132378790569577962358651680772180128599912938392471713812118820973461987900131739746431335583122309555156817944015883104793959232813097460426736058728509125834366524039691111211873783677652666511555011428808469717438977483198938720480072904426085411448117419214265859265833884768337104985742862671775654822409579035194410358211898750728899608193814520472733048902255404548738801833135083819470966133346078047735822384436380601601671220535872104759648445170180009220533249408384235346148950281752808654358872885474161837661230081909327809303436942480218064507587770284189959620373421343179334330901783607166259917610238065206840792947676553507268204655048659449808340295466341310325093126128989956554020994611493969221879913173845299867368243733041623877431022167688670304405408261322995909103428066307011973798151936090800268602177625245115164654447167973976151837791336685373174566978217114659062517235693329488698146839452464091360391410041638497762871613396995394745051697870004635233482136657247374665091520392671156183624662240457219412692342703885045274706138157110181523320314696810203930371677948775018400337880350275593631163540009567097936507847557447369391267571188579754993118669348802878996406464090318723726203922334551496476788925528479261777658299585929898266511132374295938788985907482488655894933669865624011610048401374373226865029594202276568094617923406465631035809383261243365204351841488980481208072015732947882015294552598018641109895650376038203654573446828238571225789224893403872921716696136836700403353585424948516546723741760533265338994677998865935848731841530451305507975122460617784544828724711599428122531794199202429146957497749335740334897929564887142895429984568673829911229739413715013628781845003514766637548505503753497348674421092838808320577138367026716200749798669543389519740871442810088842016941493634068203701004936601181318048979245710239234837029462882721540493905687940260987447391885746982128526667654496532025326843663382992880755947578680402720822539577251290177656957840723828462405092426831389796843420152432704771396978712180438672811643639066536561721704495992006399355724447763502902664522131923364250818212114618178660640850411732064108108782399058489697019010152555912554148095942899535812131334339395324341313770516051034953188531413956393620948838197166705215825964547260296676724927572108262589322776640067603650959935523150061846386725454879141494440709622097563431429575690477590066966122338599208573238347632193308228843362992161536018807131128888169513798454885776408008642501806184957322465452453741536483302506440450498364041565909345925467317793254680682223212570616684374237562240273554281236699582294708891114232076831925575555627275235959395523354733106763277921484206493634195899811858077509489749178338479262108533529463363226092183864297168410104468523923534573790219974963873992121221080343129488456429835460476020289761731807680285408718656707401003662996122759316276589795005844515655844961779627346225689213379620442229385706204197538282831844029392997534811648037872688859168037499038447908378672783895949937734552646444087816483444251929471348669383676806027248348230590017685907669054838598981975031925284157899840082954915275731455461258811720764613428280327131985883248413567564617561338356493425613513454128608397323162778395030412011625530055760757014554801896845718273810447927826912879532293072310544928077314444766010555058665976433324704703745118098953549394969445311136525935077443522162196583187390702021790346442771571878883111558664699252215367980514749285222571272431631112635401342454478992239610379713388587299230845213439991778947193714819765129413485638558510093927322217529044510639295622427342063356913892002147936652686254237678046459591816558267797569682343088907460353749950477933592021054937236632162686034461047320693776014810316223074177080590257735750698409513420495160816680645551880051376660955190403172941191545349557660830794488114821279419677992291784252253530640323505584759787448728895990223947284544084272702898605690600579529824936683066837398585063641099554469414948643504134319309555901980999739340858811534361980376754826246305056223144279902429418479550279857353604729785593885237179523570803874489623929443133220046788226432259163130403095783070527014436529083342940767677212628487306173555638620960647461325458940486847546193267443807642228641529615043412096250540300595564721475795421638106662571344651051634513619789072419934204693648947465333367611820634605441427099563412889260845513159612794964824572950194074520646936426599505970656041406480248406691278610125818171706427123227942779982790742740334722485387062514649354164155680829027971722257486497824912171392985090275354310852785198372280848908572164689215592489510786792060141438084168241133676331527667906307556744506264133697803008318655234764618002819142993156352334585378901214581736469543499806062041583954373886296758067176412059925332826606260913225727445451397734566388159735326781473041243784733328794365530482999773414560923897691298167159143852182571173151003850500689599736228992898103564153690669140487202789008767465389850070179022482084449191576606165324341455514515906553741118878294518531575712409757090723388561361446785881587772683084559042410104536688895177785703886869093432017113645722514101291209637641379081399648747980716262300513750313628898707005609278465558936110670983774175636485902089443996323475921170238227878056181373562558935092397510340475977643713013800654262916810838805260849950863771025427578784661432873031130302010924151928454448715023062621109569210229491180101710231561476253096182579449953232643531103832570606214372632524414479483200582868456130887090282183486032320243552398623759099816640042829599603227907396098538665159514652404842507523787476407285567289302194360217692483224264346895549585321237936620671918911782927747841609666733876031110879913135335985188020187447641676193453200525032683173119987348232301842573854309794501847574004945128540232695177070524647177957391095556102536705649299264771116173684092339552862128456919381163607411528160231294259266122224650320836459140178612003072038226248472584177345771541855285737807145698146394266642898653204602574187546011692971812655717227125306808351179354986036189177469622860062776681493557068009558813552258461648414808983839804332555859688823336704474922170426606282606633155960816503829497895230883044906122701681938343404658374893150745750723586550234665454860608369566344510524130731974737972383121108770332341347790868312344091039610134809681286711463875293991454001139796571831370207667195554849528157791806083992245817543758512854802655841806846575984202314355816752747762806357997236156413349581144079666321710197187911078574642949297142822614774650069416050892830302957631272063769528570129675625290152075064123007683771664407920286754106708451199814008376221661660704504299894696858750814698283732837239375173315734900345298010050319839262068444973242849337623732841160139050427480258337744420197008294575418244793432571016771695853343874633714710120215114113519968079378218336028521212724606224813319606825455009018459787492812854545580927000860227112209290010097974002636767322833920875631190003555851382039960687629631349926397324456273872311124963442747448729486732236300851556208404459725924188332023696374373236965690643565948498537842670732656936653955074066059638709424248313520128000190172551422985659066712955132205273287692595656409390609299072880064485945993915428936375032650171001262670878705196616911883698902449681209280820119189225633515728761691727476448221030838454038762815560958082392267003956753528173380981488087188026754929625584896680085956200422180608755192871515766004575381584773202228707971225814240389896160246574283751935949377255791885354768090386923516900743504571681919796572395531813997168626847940291291465567252079922260220401002179034440075775699193255253339632287777753171466845270130032326958985535138738333442529082539347367860450412669215785356848533717468845167329028624696162337707512736607963508400652643842597903603620257767990370264339422984065408504987486483393547487787000000546998875934445473455747774778561262677697759524845133397109672186052403992653733189217420240075677196613115757325801946604899456955718419284578663577430944621924314149438583850260401158095179074399863045007412088433967767852748045685680205740595480406201238104172596058249547843462703739079503869777281485213011066529063071767716574669566825065287986228741397058009671564606150338555210582303114187330274412448079305717984133933887434365837879123816856927890316339298335400844038431048950540979784070017286999608569433566374242456915341646857062285745508363865433768508994626498910592859807518175065265363627505033293320854451060220823098521793688388849584950075982433148937058584373845228682455307777435423052441937398611215070674587236409583623473291975320951731947369598548039413115592110080726173449152275620774656870173372209840162995608937199116231422806123499552475025364788035544518561352143801588879611248752127261370445815291977755673287668422643017190085140764096376843909699412983364684492712510853075195993655548418487437382697821368396158646646481027754845520960397433711760333328606931328622684333519056043118294494185411559312111708410347157284607124570706016573386723793192145758311083188987447359799307320316219592135662790426497581083354850014177843063443055714385985608731402811854574833050489319697320842537037862089239089894436934301656075212210981424110263403150364236166958808403720162040373304878708433479186329430967760026713039934892373226706445668792340126952876928820063102291656296038768452883392134756698308628235078722567019612096237496563444766470613281554887172780407587431516795177117324537751384914925689061202182920231960903057584939878930359118127613033933032104957748129372747200086232419760305922322167727833363964260503397982859408640951949752030071331457498005556729790970156896115635456302606550663665343580922649791502649959212480621962505770307477548497089754452993094351930367914064175364825670633416790602041225117328766299970583381062474604895611285424270257933330628988477218779385445929919922949764461258660311545759977930193280024243216873022547921909467835940569761940897766035691333262328347912525258717535047386241203721751498758124745649052389813222023380467384677909559849843040211605878401861127084471853521407151278720248392856798882973200115871056448605759412653610236055945438726904246755285529830987009964268668535851115260752145061176594795032251253200960973602368909178040174142810272484343441226448303272776049947453101743146159989062342004213056872101017575510453024326566011251511270827409658805442106667360069691322399051884037406226382892737526054805693882093754682035893109838542899959585427167360381239144529131118922959604971987265219953271170997986671946858935713748275217034704122922042599732932608759155939469850134136614381566271704068557445120261619676675697567755607380271375639380033424488280831471953456901602305142843074489050935843205499098909591523104776663664827244460255329751300772156107105279867924544202998233145983118571614641507784712414351543339723065369679384424131624513079885047916470094556037385725744915198511770495253450078117211673159416211415112239337197718695534565980123885780516898037345792748572923683897462222018471364229009965317585238381710578061223324396717609706380684944097174411504698970115342571214529730398949660091503844778546332291464814468620936312474399843820072687148510525787008862698613585683681770692731547902266321474161445533203153227630714854697234542830930647528395978520205921426113702111416263544041042404686891744169119545354589902817107349223234789185945901596651097471346332759114095233034389185506783734974380243486421946035264787171863570626099690744365005850337289877693529508194301709504251559475799065389226625172481157212928699057724723032091149943686004644715336008520052163518631909454078853328588895260816269911019223674774008490789522943178275873340804505400678448695805389635059160381951477381349929416940810089634922340186600532246499423053756973724265570491776651721253483788552766942632781523054579247466191662707038049727293558060517357108747298884499966109284954519232334623163956242195731615718088098029881671873412277771985624528419358268759166160118482262582772316724344261865564499940453622936963560670990301899127077308450055453890414011575727438066331676783712133307890414088409423798422823571781681351468712277564863816829186047198012688993616953950722595482376275274985400399221987702501940396756540507443423973190671805195990120463073414245856554810287312599571396686817816569508990771141685192120426040403292008335668906240452203195458756720827519185261630629602871330108960022240550597552892750089631974588409553198317887543029103218023953889249275091155158204409599950874111531620494977295018878545765756770119537873643746253897159388816004069038762797610883615681145039168018531460318919763406950300446130462223718908775438001846435227398397948300786277406403081383288989609873396179188168585981917551015934859963354984231515894582736462025431214574396287683421813075693642387419987909391082701396095342612486316881302741041355509930082351124035230239276046678338615057428827857794359778419615929406609420436357265995724205863188875840649938577587076348609012555956373496419398273515814105003753390935127718312238414695376978465624897917927121663208075828367474189757336923481877896667272209434021331897724483888644538932167547617813312855765790431438869426679103709259854700881991790692449365299695544755131315475854324722646387381202992394373886025930664207423865074174228011541394504155138712469508842629801141039411349722071850755583523056516749653783096961535243688722033801172212557726042858101606529009599620853729938790374069617931944600606617231052354115867364244083980471447022333164020515544077820397871705551985281695808879079381222690240843903176583459842788686896888494451505876585852468657305863588014092501343583402298501258321230337669977552757347336744859009708437500260488956808673089356183617030589738525380213401004113419471418098837606052711010565178497891085983965099681643782000250218869831925290763401149622924898757681630821350629830621187023136338066753578289955714935429076994776392497515600960219218957711966540628503788359934826133720779099209654212094075633909032006895770774740945835247243921777946307455290834984363600250329966450592924647795515673918071680015062774244797043647568238168705933141776946743062013975953591080048095766288373832187083800225000040813623181113667381741854881326751012612953093260828400889035765083142763583450773323774379734311170153712100373326673244512219979333608830063278164644675704724717559420737332921711897328195325430540194784870401991987546930619161382003361656510980836361480345478843897301688601619978607009618373263690231292129264328838837132740633317753084608616898924023521583529886065155313309366302848439506291769532844670142415803909249615685460034488728867346452771173737899973608569566955500974293096234640410356668855329222833148559352293334113369403937171865708862781703750433999728014665180333388589984983127259023651533271136952111995842499732788896500842524549305558854649421676627035812747972997571618874972166790129666780861377454966133199979333692845343588476618994038600721813236184527528150256975268579997807992986578211235498185169298319683071011853126006636830759673338487081491867868940118156125942350844389678744304143692295145322910441515254991525064278361778139876604962600908031807304348230880455768603845266691286267085521903672928937475257742285471143235265214234833016378591643115189933037343481684082153653126972849089532794167284625813534588808685657995650392816275279316299285859090909901213101604300069657473633293843578415371149390175486125865208963645736475802256029620052666793055473067850541150303842421406399309606883007126246789754264462614919585987720896401173644836475224128652652219565308402719105021910833988784623187650700939937726971673046431160036773845696217284777369608553704362905601414423071547445296053108333740480950705159788788771126468496947961536987994889816722965857336390820797213011015096988766879277339434941047159864656618083883980266715929741623033511024888200513868597485750553974840925441865868560756402584179182516308948132772012390938307884083709707562142761416566416625601149168359444049897093676111731896335190303750275247473361112945676646970803467669829791743077968613541657137108971641688097830189834207404124681630799966035431356305079904240703010682325482504711776262274952037348033276312668102598528499667134495108664569408115705650576972177364694257770799175205779840073567898795033849204649868776632282930217555904246555661450483155443406554233749558922631548561858560941877211154154964366217136596348498970616008549575631782904357451518362829927704874146263310015271662603505756722727544633995157147115610003276282055377467212851377198081357030798657373497147357653273407248571664074209420221307914803773608092725354150413380468118756936499199811941002689412730034309844075068837299799409682309282861297762507351973945712465928453175882490987071215592250099447943793627161198731017571817675387666516229855846021269313288504572273795949817989442325013516449245544684121262604625518249031981067160859328629156762086572725209446919477064712024078908325975191575967875186360629271004083615345223032871294985046101545633827105752256393350309736364954281224608215627413006585694059625451225984564496877951067520082183682447563127486263104094222590719252493211833105070136952015140116302494953499269659366034702040568633763377674053522739493434652662130736137244021750986284676041857569140527377295908875459831427746016957227471284131591417179015517671916474795965774680768825848395278810081099155039012881116365202923704380532565955966842391334858912745886541708713003797573736928013462247086330946825629765769657690607300757229386697765150820823933796779784180785374713805450041186874266932224892545405487069969216812372627243893083612736166472787124441376681828905890521382672563625189124381524279434751935553187005035901113432218043793940442034758584486604746523253620424589750536573122475953609668622440612958644842228999293688439861352107808087679455172498370075157230223119794267475334415758804853230152803462507071751817540490324731594063778458881396316441059887069821206008729489152480269678107160497068534135329964993796866660527624679459945316887987194105647429428587382700112888416731775223660707128961882585264608764596225629107514348697920507451839391643924091603253614786351871031901384966258942296629624317679261239676233722713879174767519022579342893535489619901757819427817933593161744595360665638332847918392927659955066495641924641441093907302519384576926654307356251850184875331866110170943318627558698235413075997723787451461876379861991523921319469302737645796131131902538970790061114326787943118411465433173122941399914171444069211255769235155386410860736931599720005933289721089672594870918820784498976268490001636997503708595166526264717906435880491631963574761396746980084683339351849619422971681256835435096326011848789480232032492998090724425651232754775131804537735483747148393467844960670663959742050559401405116978505143354351297571864505637850605670594828257352703204372921169282393677893880038489311179880361269267975794325820437048309783433076724567126394849681198367222750283468625309169479256013739355858190501186263793894102085801231150741100856381949971113216269700627741316417464326504654111974238383994615519978581513509145089890491602188152983532939107247663596488857093183995115015246426189985287506422006388028981905723747804925005396767479408894855251022203967810710565254719717629379964488192929081394527868110446577482435519439270750408387096604813314892331516777642423979397525725333381939527717017164936429467820599828859551076468306636450267307973300922124472278208289671031033436209170447793647906845854796002505789440932648047289887511639497799029421754840107880555939207095629443316909000537632663845173865973553908681399848999068860340073833326860832636730188972413482306523753846177202535377407930801061076110586075844156469892409324733017532341832575663499892399052517016767139851876803691791999632561102921719396739474049764749194970869989666433612162354356649131158805002583692888493278034648565214378341232978854151569124473069754197927080182190606224687794896482595684623819177663672704358438514383120475500099073849819232104517612816108082534660658707228886863057945546339979626612693371105637207047878301532343313721688689585307394131820925496857472082526374324951498085042624871011207681259226553229833431433870440641859980968616888256284601569219695540703766744240807212415449110535233627154321006911075188830206090038301832340876173910340465572492450679569677202013015271255154843532031976103471121682463134153185657194557259656281095976916781662492760201745173016210171899080518790938074486615586976854865872634049176316855646895186224524704448452494462442547739254307863306235368554149243177070148615302747175121962209233799786020804874696407210659122918909947864384659594379040059755313885964857275722720566416938427047335498442642226264638782352890201340490629761599022549027778123680771890806673284015186359100679251184185241529290862764073570691275197566315664305284947017637218114598604716331761684059509022549514939834826213632332612770140600746959879293826382062969078708081619864963059370145876479459371195955151917159825983722953228733923206659457347582468256328381216542416160115829329207476150007135358018337732406522077220741014001415853637643528123923532260692994178353616834742429945501119004317612062990951152662205911116341700214553410575344823491043504578875830473592064008848261791512318970295049266757215779515377620747907317871305028416770948343717593250658517838540960937042936927319009580929192523972706385220709376283832256831539608354504523509117804427489392569964055919890683912294044082979339704157743879243810221539233954058355041136217686560128829922435760952981212209263729851756570813992122093694690694715052328077459229864228802826691663732038393091735460239003176018105496752302588882031353514553890163755138161669782250564807700621959942869416952786829887478753140212139998473883119786393577874591772486860312671628268083600027669552432991228440207446373531463385311809602295643152796469593931153310461126252911880488436452716624901692931313843640555528055220215938629825067679738446746997160462117301788465036921382010072482321852304396886407266624343463175549936680725326876465707431296054649657420147888587246423430684918049908687891262743226830983449564193022689464187915082860849298593546532013424279174874714925827478475925183917605261506165976617674102070800222106231073571455306554016445689334764347519281791798470631383914982038685414204365746374385926388279117330639041778218904168557232721953604043659584725034467565938077563496127307805179119531944892597650712879431631194138505992994323917823527258765690107451538624193759842327481821986397431559810766094479394385509857150183427508632159811107088894614481063158821943948622105813974976640633464542387856406138832786046277033452607057425996733921274136364848877618643820395683167724710909811550720988487009280479082886280724014562943571340699146780953798412303895325877144722435482447280212115649022645292269273333505508019364513909123534641768229486581271163414884464871389404383837963115598489640878724792941967896017048828204682167661834998248072593851853562748543710045361375358075475937360984404829982513746149857434320496948153908318865262555301372780855322652968254330610329116915712261880921349298791035451283992973173936168724209013741053794421961379256273372512851988002560065639065266863278940456902283648518061542594724961253689548843469558035037758290683977922534665895505296126402786481442640429141437663771124986133839163750355519479692496764183860762888540604234449177947266985151630853471023288898337446012779578241258449183459392834716926530762282560489169993590442687461014301090026056871037561995809163191668707351331265555170951651809993839524437888179706960083078503068038846262126599257807712607758808800343978346133099725900596031834762781505339333500886524280041528529854443080395333745013207173989349516763527663268951219615973031083195747610274987427625787481248856771095790059275024912592107834128753027900551374524760746339353860959092224433102444982052983235321721183797190916628906109390500402623348585681650527343821854679856425946898029924257891484989803170295732026503142823893677165131142822540680034288951042652723736343632704397471385992955719142741004177216651478786480623578609519875716526435067359976853181702653627189721606481295654325578084160919119958610659837983990682892181563376630041449637951877218149775446065674151225906116884169364580731984861745016435349170400376736770328233981724278764186375600319900152172612795942237779115115387253474801989295807666279509070564251967696745213108908654791447318221842106945548177757044294686535160512320364282028853971684293178285051004175990737274574029698422171108411971017079511192264384307281702497527365115503090566986020287161561791014790215862855974599392879420817893450887298117557924732967694268358519930416499672902231861563778892964944911573486281447772312720269262118614983893781747062635469417322242281601531975714688553348540672121139133362191963858555944566943448749283773046074791878827113928349315163552102115461678292901198848162559582976161519305447285051033337415114766270687811981092458660030776611723726575499690892278010868732435878896409523666447518076079508787487845663027117509282913510667204086555391687380652799477987270440368568031019057952513247281077426827873708753885265274289672489125295960568398308871152650106846755133186400745915485529818991417256847293103329715517124461922193758006829174965569498041661180060661646418302143481984951543341022857860040755737222223826835168724154187261227935339159494984474513253119393888676383729951404823014084601714324123409826669960282194266877460203500444085612347384489914867053783110630337420632375384018160441495066857006860291812455572861669455723104286127411579676855367781282069189672565176417533988355892620004724989783101758684806416106877031905385741668962109957899311981363554846235561644895910790621575065522409406116580837812249285239344419707220239726421485844850893833816948753200110278605597490416883598082127220994889843787903642123264009123722136937501324324939748046175717573185561493369696475715145010410182211462819304323199487791240635243329783887021469755885703587553372304357942154147625948156778134289450079569409217527505391004979196022651496789365350417858164887476636288923164506215792124477053877485929683659340015264347884565719199332455934474761076692380139369118787171697038163803255573454807384731009628047665380576419628186164690314989589073451686255412070395565076818033800321425322130969146277135177502063249993279869228596784262989222327312739923151297440072869082404565837010629559459827454376872837458732620549605225854538691970472427955258701056665499276169791230380289242527363430837855338799122823178719144500953739114244894206624650520462133264029230077291309061331496001964854858526888504090524545823858966860742077681633954095970906151333518921728303742664261210795353920844976570758800700009559643497772958343429603999987126600212409786889627742993416133397607640362804238074079509091130486128310858023098994019776603252074629322665285442315231001977222658146421952712113684986105160804965079031983230679008630140641956319437313687140170325078532782512229846848047680535051533099864144662568804210072918746744256304054622179872808787988020705248126287075325218586571336844417383971416909759950295615211273951621400280905167545359911354060098356566940306072463573745761348680494253754167081066376013421075866907782551957701185049149003255238663736728204218121293525794245225930456367062961015889676369559976923517527754074063922755256893357989991637660062876813242807020019728631639383924433321763185274706788353076620560605539272186088879269801941553804432711303298399480093321999193500953970120540039922117809068015163195389729693029426651105154647184540835766013532320692289475260075795387140018858011500687134563140672772635818204108662034486505928356907221571891696817838753508998068188407745418158483287497494526177425323272656716880224358488667383090009095414176427461744140188159983326065692281224853605340612136782189503820883343696456682051211456982174261869108491611143500965949566925024531728704596022798192658835585777657850862906410871932315167405088483293371575513622993033943427222548430156049886855791326901606872143815448408977297208602502628701747276974283685649028705897972966701240278445898679710664095590357943526213458731841714638552958004262630991469108253447820609322621516227356451330937306062659179975281426567504161762843877771060003598604476148241021467006519037090973838924180978947798461757188017987790284840595432602930190803132976336394556332258558770351367923434782799263460182262438370102967548913435809360623380902755114498389478002427010165183332957961091843734524486807631302188286788843341271074049726514005617854916224579379741839098791108130123850566489421629280175527794355887808000386601631852093081783082274078138572116470482132066006921750489241752776322641184837413419129597916244498637897439894016470738203095489630576708782990809401246189862394193080258971036787409195732090329992909314232739957535697486049779146232868572559810702106869581617992390082726158482849283957362159297333847526015440800373743988763791120663127552602092181720397891422937879315489160642267221512029110069862081935008363686334565576071736599725219738489354261513607795970706514904731982703838692779734358733380432587338628275322504303466841489618448932121985294953211274128520690952131318086924570579281027302615871732515191519471733322350739193894503969786652754905855576129264689991099049843426164548229398062136925784305825712134946988100956747091236149854217578024724627853880746576420884272849742808541946620112434603058955936156263633871923949560350557759331102115780258988105423394810420976173620332215330746048986906569049968263991201122582419527512826930139512055387016777719827080791185197916197707609703114942545924758511271024341987507926156400969050821382267456354989971785342193038446118944406929121494425613793617275975990032600676914795063425471654159792500736762870796854315265259790347625207073168634843918593836663606040637241663490554890170418743591571307184427914253679593195656331372454807172215308405775780446422338287344842208586263304966647279305733273065924363013158109900042232647729042237048674390922852921826213632000100184063717479760803609387198049949150747306862108255562842227778036758190735480274224716924723592375923146544819585527602375980384666369570929250941793871867286191114353127649697923373002877570185544188682535850699517644792776807683681428714172373583022830558557116393991920068864708077184062678483975885046049219895478016442622654673710993630273145011669046843793757263898085131003495724944050302455168768584797126682003810537665528479347783666581357206216433346853797800852904302040576808988727016807068496860145118610901835855313273010050047682399552936429749124650294987550593110868145788324134909376809665624527918269467237278464004372598804121988816235541287990043633095102879634331407334004753000179701254601483650493008494901200969865165240028819632296926630584158784085479024428264032337281544885248335283818743466204081089610341604115401265677552729048583277509799530992879174990120449267690732709694378652036193733452896920831021696598061392499563015838939492372724701023034043089877400363483390828284790160818481379696288247127175166094071649916920880206373833905913548025528539005356957388598543379747435356287278076085312006658441737541521686044599886117586432989965034184430301870334938203136191107893466791446327152738154649707736426281792653268174678306140819431470398738656598431555876530410721889565429664806683085327935403287780657764375056472374828496301651859633457313973324239035162619758179556237486947156334795625940342228337756781257397894335701955353516514412719356618008778697611776883752571349922591714286585806510590053832670154712530284054597915097796690398941857432529010869862669825107051887615026997013411359730637519674585325333164843552568926501955625879631454890139292498632887047290888182571584825305574161858235070984409521145667240641148166986651468335205449792177903276406716728685044542163729176578894602990230713681129075662646521999092814920799208073123018037074055332323586355027216501965915192178027297733868162114608467643853557706862055067820067581748214223248930264205671075574886776207155035022391981069901930543195609986691010982272336347593629362358408006478081653760219002250273545496391300697001500237821639060862443497336117104845837293971155415757708611258782531834257192254000913823602246117468954324260760567528301577982693529622041918724142504644324165979865876726133344349858210248508133192996951625299515816548527096428413701289945691444149620440080166604896405675878990807328001760411492960587181016654104545249035986388748207405535531646497966307655039226273134567715464846005265543748330599658980119972336927881919023331298719350238334571255753125254096026787808518907193268630083327534061136741801995207009404626588978389350217579202860076336610945542127347806464174263816816308333443310425147734456225552561446393602004786392720968655004787850257868984713151164485311059677868694258988746808049424961736574615595504399449463812764742947916676921754995889229694934221327873055870909179598820981519144063820379559186086253875772611017007654239212442831923145710552328869601176314392736999773243862074206430733275397945451735790301428987555319913502142299198285622751982850651111612873822186165312252887939522330514880541494564632221878945439889393903813077000879598257921431080237456460174681157923587482052347344746861025258522656957256657780622130006021445817704289917694841843962469671156004762235933947608806329214480355382287100845333807763241202085227436196571541719352952573571910517740631820964055791384608688243391114640860779129018379805598486766848355461333271338635321369647101942374603372998234661897992329434719314169299434307435592314964541023205758507347688097938428559311384841974468063284882907597042819630573035759222495127602968783967338257153232921513749618773864044555081154859575731029010818449099301832644054964342671234687623007357646662071114901051836452117875394383098324326769305179760518794367605989301957852424527974527956814189601198906433217830588350879677232372958920263733197734509417496872142675234075823863877680294610564716646499151525487666105031123227509950601572926422941478551368388726151131433440638984622372544914212404862218360120303461504614615878792083518221174306811017123332628467771235711258294608738192781645847819414795548101554979852834274592681000956200212144806439141022904447954780580366456707812116407969185231945651250982396494276260714812575671812083316160209901135835207370731352897793418103199536030683926905610220975853859992525483414949777859271296041104684860150036340641624020634842984258540802194711321568318389669736986278262180139283764316304819855134505690960312583373597267111605659357565603168137552035504707303422520638889996013302955199855948385264662195521866934852765143490687798230110919340391909137616591449065120916077897576992444491901189792595824234538356538089854344147093297542430147002391258826497362659739117123635861688232622565884469970176858470147203478221493929563244831680444642237218667433966810281485462643319766980391131072863542324275486834145150864533076769006913066264857553968918425253193610254335938846786247908667468440084853716109397528037782902709409776067397812655103903260332241041253686060368644950178273037783527497319204995991733816446508608048491611143685693021421338027128265096069931490764106505182863315013554158576871872813116652205495867162599330743182305200709352203731892897596912032813899700032753140838302049970079404346174577134102877183086493902567048056609183301182039585279379828490422067776767653134539071583707352087697284955776487168394994040431010851788500870340272957018308396853775051914650333884356607259124010661840359401404608813695234903537774362917446078774254377002454452663662474586460521521932639847650619948819269257866850752237267037820921408868401329362894011897090473173359085839824463349290665516823206847745085122791653011916404126600902042702503351745796539824994799281975488578920208057182198276970716844784544403680671294954906109715985855018680832060135111428644063503018103495665038542806291950124129083446264494050456936516660955625647759268485737475806060004583547601174164475903988600397461771614590514092069698890596238437986869489478901054433288592038261039004895755469406519439106413635422557915617894533706049905433722474532449348781024377392557504531001760560948489030682617047194652379940122222508073220913247844152502849880980593720656550409857317340683013158971806996356035872133943911595606296207304016875051802825904781612068876466760337382804153294607723464874635122163732130270989503489990930410051501629658999550047014413632739095726193974809981426105640132449792693761414886575398937194268162134360997817429716521648035723304401596066218092645191830723120786494525597809327789032966503697349874176032645169043711469323144778766626862764507653586681999025414612033462105457705325525873610717044999424650844481189709435942872816858183209717062984115401278802978406374367171376207873833193995413068702323632219636085915786281366686858296797698931363645863165959683348454566631716429837708511500037723860959032331903395622820331922124674525244710939030807333622831407309360390294079927419931607926639015854720274262995073064166333411751295271889504218114408893546754603721212530028833772298281544622894544281016684959989553625263667917390680273625474096540385765629672473875260383346390216756595355051153587255251451731438053477697502507033112808173763211932547433407603638106520686321748197538617158370585453466785673411351482377767775345876966751328947100291738086607216929468553114582705135983868816264438060018141926263542047190310455893895343070197791301338020742937112115546401304606205365865553318282664657807656172258474619563574176583106862559480128677529018243617397120974445092733092391575207758575816362376714743808213779174746605001470055331028783884759301238634059186376034046965686720970151291902603551485629769337885099340804531433262416620341401382042815279493864507548488764632729412866717171780717524322485562807776431868383059667541917999686807961247358786418986068303864195229631438024890007333970479858206253288928111315490262101177103076604220879348716432281016376294068614277070840123666967227030120044226516584262830383378612358147456068674904194565775722043459353498070316522105841552123207781142547882187818493372939439678964733489337870529236918819988047722344214986742621289259026212809424267470408493247962172399967595231182537546518217005939903969456585466378323447951852564948841197616875988714706148803695941809514812985840825514379252655285628426622873729882585626811639361022177278230929449619105493557624580935613688619763663828493091128294519162457024826451644279218564873600168684837952572568289665713366731855051373290841855366701777152394957424060508383782519366468219311098552026392389473535548104878407176785651062986490521878131938552104545926339863178734302624679160738049510570138878323709263378116430936872571488699360662289617087021791008907509443315890984698226353558348261495327711937451420175952537347122253291499161666331375025561824789531158568855263929960464755050409058157440869591918826316002623320393467199783705590617652599206715071179816543197652547613614235397411297290394679109262788187483902488261365795250334889363482480435954163034689226040140006645122362473100581374516809069978073171300207367592322580318929860613453792589069640797564987487459686346878477433456889960216061584021250064411445428871878526964384944103165345782890234344192586334650478202008074508156845156599152248269290053329292395349673411015842973457806472102219217088085216380185558932981042594876159907626853181422322424197679372125951713646105051644930672870514641759124454290891340013365144936847542316765970744717833386505452254589705433510969977516389599979474317665143270856830419130249869521280853966349318982064979088843049265006856486034695917576608842775967987107657172666879745747213606278508119045064175427678313223714335713134067245999563618846298422056487734146228460252147264333554094872804474971901412864812137837038173122458787309559988554893462323068166369225050331298188189287750200064496254021329745570883542111980186516657101309535010729600306094438598821982125057818970331409108170757541334619457256720134565900049463323351042555086745235589414472855053221254766255160857904670856100665609913528309161423402799406986300001785338284041691931821644172012406352726379903001310784663200995146876248210678663948275001850253397775771713551848473927439413693200638980061735485537528392511966342802061539111061104785008991246135541958882132155164714119791128809176746693639156395664257783600522042984011572516818004574953187032025153571366891329946871689861939987938405360090773098300599664281770575885509857969592857530945745014426048184836274287606123009842516522983696864456542552045355715666373929916842448730410077240639438399813152410161902501770333452086102974334088301772794752981273748562424185143969404193937043495612264667873656080997865036728708540733987242048963667146742418027404225081394675700555144375470573258614073627008134178488795679884706191625634529910639909930196735254985031458278179073790247758457903493642562146295532398621704586758605340135685670842492509945672134389089347433816142236840195630238941509293239398111978479747922933480055100793580763740738406443167456467120572184839069111845939343199433406220734077957692354706179838957063099043541776193859565565229416341961084037153206523590263447193651228791503948312839234276752442538174403216047797011438745976380975364049841867831727573478816113238925577293890389194254397433469853409989440824581362326057853455235751700783382843229429478916690404909302291285254849104518255656171225909709563563978062994941852014474652243418129559535950082769260615912963815625460248734690543598718926641772106440733061305650195962774865077175995727264615481235640291765715200342245960701927442076223516019643095373971798416643584575614280155611270449483734994926482655745860364852224569897893276071045882106666846047061723042223442426839725309779823636716155801497785790584506969207748421893603592463480133482467623749115359868197452148610278765253604112184493820371909859931775880435085876773243072858253945300143720954761682628222302974303123617955463958437340460588826065622978609619869535947348263386957731640002114099032165253375613849097947806685670258424180327754765230515185667196256916667913856892132275701214143599565358621235116802320531742609352228019441840824855398706706740576049669148264024846455130987077321746214600732865998340066581632524767387893240006051506601266332044065221195078414784171430504985697096649640918447094800527913726026923382870119865651684786542770006245313614395441442211398380117059797985190131484543762464681123176527368953162013125992041093852148199881489097899564336994778137260148126779565049993350891597806401019123637334412965975313264882860350258544344447417498949970108655242012415568637226841001885226118369548937457605720293595549384149802916814904497884456650037995367204647504628718938419123559783594367011936052451005814307355565929225354547569809868819882446275852733107004398819875534699909777237605333849894483424236874863093757386850828622303671921304623566547797703053142197794264628256422488872715066438593952992433570206980465395810225066890315741466069914376019503341946573170130070862864728784929149254636249094160217221973305125650765540555253246190213217751926138209803100857843225387630708700054220400358365924992270742485859800079497764978216017749668288018957971921788273186406223397988823920162119401768071765051477478268809128267612741917357519856671858949227012383728065032289048795286901921519072690468418600864820678089302628685680396639902161085715144695874663069453865385266814197521565162312157400712455712249715121278485197990785439597784158250655496494291470894517869535495736963816927729839478718473719898657175408571297670169659177501094675912384431523996141062378756400203711212817736820904360179142696644265852485857164645039393064290315672961957881714826371457164510240433005866855805188209935269938937938030764557772921811254629039314977555715988807400014907345626384180417669616164559324114655621446022308788340534822814890333329649080719437853885157624281359028899028368274838344034544326613125109375073188021815199588325648007755038893025982318801798389239921623896891222634466399284997272258015981926495464762919062730171521079157281405499413546400527316244613324902164062058763995078829088498028907779769081368401513300020295814894050039538707849529229421204870650850511568175188646937275840409177630364690209764757090673646100185183820986086052435271607411487261712448597325237937554052332284738257416063066469268119233545907315994961523040680336623076563601802724762438329114336855847593409529244549537454001214047479670490124558599287079405236263571764156937076570173569875645101798764078865620885546252736995480630354256957251745540501901227270108502825830365457749196385096126754176991582404084416192943509739105018592349345087401340376439936873936565280580383725303148275386614525141130728652760929814869783234631939084960700856891462072043385592600381170267915554647563245096253649188638948069485998621100698990957610731157771003092499955113475554866364758926899529266327530919539329346931654450527529854781588141286913492758682604946122434467620369097818503372421451090405967439781151402968533269871475459599473349527514616327944811208472416881392058760422269923600700278837336319823599646574876076410656845501270959612296146874309563678138293630249993751535806900302905550775654307462868311777081821264105288565196582793423589229044782019030660470681390468371963750412420783923917578318741433351909800594989825052958180149183809086331737615469839160023040432869536346393626759395581701293334307875817746110955237154749979155633661238945504797022748629107537952389109575274974152592516761340408323552669449692984975796969646047022431652813353242862274801462879801140369675786092731920714331797845925143511732468083028390431368503814122451922949969429055095005221221208452852082757451911506867456007980367252502317364568012967163629937165618540346251334177276860288880094190054287008519828792475244256534439138821762173472187819467928911826973343633030641786503754863585853415525886331585296822659567249085937216923507505773565443667379709804666542384360185441972047405321192587652623078973890454045625831288202346071032111998661451495366190781761805909907979620531045380086143729041606905065937815822674388891482271714624155630551098257847342739732933864962957776983607422882975502624039666132197293704338352958931866085389034962588930240209336833021262756625539588263152349291690636404563632817334062680793156152817026119821453437470491525947960155401044593795823608089753743001901221895191252514156894445683734040187832241224726500242468563289320284496143639589483349504645769780234434099982036021996723198088220670235179130780600039510728615354139508046501601243650779331447150959136497312120041403643083065533856961281607692256241819670534849938630231601208437148807384443002870076981089821482135123766058931651250130742342047535326834852751473009028283765838885688539157829895883722717694733949178513248072052066108457421470985270288152683822433809183179794461611913564811920776053239016100835598979859235763026908124999794746047870427195852529579538749380051944305286107285487002864070215699846005041304288865201728593852837189657740573067012379367572141558732381974165173539778766118420258686915368939634860263462532241810019500904298522634985491696641851099858311612398498604242017297592986905624926481812993691773175486225365855123938895567768631177147770993446349763959110282561888848280046147790157306582695486950113562335439787852949465018968313266579501792939107907039316188810451940624554526240302838730460483678333479910289478907535968817437807485642324599848956395342957979938254412460815065572922512494169121274605474961156582070064575750636220726637985784749008620031206188591990487581090485349419425047618582637065634994993119407054055030277520575875790374933845301507086634985644042257862322356192560093952583740491977056940983001839765408005008455022353368073771757244595330072862838621905064741178499599309447641210873505657389790018612739013105522387186314441539063503969388058869265811096879979165597234666085473595844589295946644382344701150902464459837730975862481917830145340354529240838725747420271922513899765896497630957397711317236340951328726011021941056904047688319280545561084736748552145014390506421692064604086178325171136927501678606727567773941994035391068845583843434701126754379569042782863662570183485928668463884129307461850939195693420089201438105762145304252567016583562687897902114550755993182757021525734128127634671791002299133703268393787524669208189487866304332897446940590722422447480782948813601160112009880197066014541982692587652464718737503289033513056080899108537747297139099331069117443501177070223078777147648474286509086614199363924961179660525198925792774631157964782195162372077005159518786969438096692179096401408078835988443558266118305609383550147718745160222409184564625068373084859674733541476387967186261402448989354392311071946957805992657381087450073437540016295994717034112097164884416945213002055881220001214088450850931711342463668213379517613218513222915077700661646320893528894594725338333947820038517281182802905288290934414098868253343348551543672326913545074281442017824993379483174174809219665816294657041446478936752706677338029731638597309838621671705967386674992680588592318631899459540004660420104050788502673527198673789581240484049399151414122472460078148790091785458915733637367517407233461848794318007002323597187434965064523673214071951020791834941238259107882601598162496344673598431703524536314082119298232398305479699103741243878843369579173489274366034873122799365456592597948804443205154246751139129045822190529843849717295611083982285089099240027126032976502245154351855715844468888527214047240786202995687548746824114697986911703137730440915221989319964126406842138408259253040882104173585511139811223508458653961959538784616036058670252483709725132159346417994020162534195623645093650764957116652316399924213103012484739123763655015229354063944505550476304177685099942646076033818686416338896546645530215683930623271780863610406580897461839659869131624702593262587163564049010893723759557807548317192849718026111980463941184218068996912681179430044505631938104142115754147096484296895232876214505725845148991042064969465327791026642147710092446377945887566202797781188483918513934958280378081821152283053065909708845864880467200725417416231420050651278758594172249455775156217761494001027839471641768643460561600781603757894116452536488085460737218366507341406910693642344635413756151480436175857567058760610438021288808112257597650545308242127211166431703153861395757952472253698278399978527304408064556220337089675940298132467292099352603060582676994604260881020606979609940168260554565369340136196005727696837941953603165331751821872717172710306377435864545123553134102496837072649742876874273217574744632238611244868611871478178959251686262584518909675567492475359853408576062440753422778637124443682805900596804319318521349757839019660199332344248094990387845081007564189486957318098234679126720406803595969826422634406368071684871037391505339797386894750242332703603486426043046439602446554190512580210817868733732009684048374482207466921153836092387765263133753387445124811930772294068030515710809722345311784490516907317023886351315520850473767526930411862282209017440272536817823439753582592726952044374647332639519943479716025267476815590063802662008339352438151176350247759773730984410198772823724981884582189771593481420098591085979165506119885508444914501128495554882951928271038074753900952974941298643196566650878885555053953333565184827510133396897277897678006139246953447389770779114954025727340749877206763447159871325167814050794249826436608140273015066677450392425463107683319084692509673333159469574760338703834440081206459307660140585877467943945185161121357871000030926332848398549761006557196901243468902209700566918290902721984709030916007029101806229727576900963917935988151140815477973950815148176578556432180380011347855908401654928361813170562672187487266974506886813951064374369780173724762403061305166065945775026364567286435275907552679509737521574936319073909298562717599131997679887334953822585654133010878304459614689733132459746576008809381137388951045680196734013340811542131749573204832121649765456602285418302710841082278223262518046841786119224293710956074355913718634450137366964419371941029517889075612579624272971941504489122747815392288648193059184915557371178499941360249719579729531223134889004408695924155282549505591436802543171920637316527624396035339037694309165126737610338279944177776961678389938537886543838000835588499280687177920071844076329117566315242225470326985582171025578064136660913468967550473003156550304749564911968071033786511787069740918473393660277275655468048176962675850649688969170873515349378611161052863435375675874946765275371065784836087734590647098562805207572317794948052024278014111840728204342821346738069042960106513274254315284753238098005012090625543881386077207561831857530516492807263807022109713538572638332801298735309342765050031919390351825639965300249404789491559704597406389459088575428395140735495446345332901484034342370574256429724113941893728783542345190228512879140933544130736297647912335961661786215359482950411386325558210017265679042577629614865736484104077047592613454501416651654115392464641572547627043404934370667911766918348292282849427503772091542092753925744745428553022160823136949344954905126340895895165431980716547260721270807131914481836919330515638200606044298095622895426672128715932618870686810394624469120529666855782631798920638462931180862589672632022379679881106497198094831107747756791962791698766177122633831236173412959388751828746037707189533458746271995091004002457689690556518696801640203613500756266996256774216648979649287214266596243804209130667130383649522651724277502197572103972437338084525207923810055870472338006364828325430833263469687560626874790000166461525156162337508538101676888990952674660365164410977443369581579185152928112966685182851178708966333975312307165291135743447670192076056038735710009892711975598065162323184568082269420390666054789977771126984268719978626458660557128849587118599693849390575736568290078373285384779683221484510924815010906356804455468256638285065971756799150344893523785047357555959624409962041134107462208631244346442151948929012825821094209172833006595088595948879621356323380953885167116694941577889621011208048933647815361940986190125294202123551629529643888744422643258272315359711981998098953443810796238311916502289024669296384408922226734542517747096469188661219069302501213457338850830567090906521766963555384961062639332227700756086863503567940759061202757782256552523260779956128315530666836458219406610361315348868101547154538475251074510973234115196335192068182786659337841344850296408815459127299319611309133990203845613248354671405098140790450816349324220534487689723830587344827658825198661030937109351133604508718625430209174718168567852053336765659184932641053801735337593562982767557624563205386219301638355346579879304333590313707086142657651602448284441292903648299306749575713225449060676285469793646648898606915938840418740966984502835984673925784130676820245300587633957429920721058732250313817602867398259842120045516119299207892204487639821519776211186717718036022842571612291180976092999627576524629026113391381093291856807808286888347529217219587620304248383297997036938339595540517230142330061909007604319852146232876600121198397839456531186741009347825595052468894568233957496174582202266967861293352590635154175463329465957229928754817520199574873563623029657862121402121096512378012440580111120213092268982656315236303125117245144458478194150933909364451675873514922270972338056794535836444284493702593310762091465037458365833111899727544151511595663860622457261601815097262801451413250585776175996892329976160845998986469940788799867179062665226461864677561196422421260252571583893643216673876735852350862923345835841145257919359477443535502038831127989928783752659679297252970297328291475493544880173368054920420540417415217361300367424792564139244460652050841900480031134456782977739802427036881313829480053016865108970981955029822759116006348761216048579113481274492904800189835910154738014811583529188374834086145350929806678432647208067218416161220232603304854594976204857106587316222670458373940316486070476295855614579869478022840191851293461725167764263896798391314798012970108887561496285339229066327799641374835497976742302013625460036072522645273288403065779375855262501366167223580980236767268868432438196855787485654037563674736063035153772157226660827454250621294223520622462745544721201464682539046590062437838620315997659359271874186304688549569543760657121461618511513877309626102419637238584708632829044753104366535186436669160838483190822957317006039429994315769978280532813839599047025791985381871046390917443036107072496693162060004073667307004778378952034628001009807910866379942616602131761775097931324036741319873969976646945414922100108586915148331790372358535758866895906927765602810349083072343682125022380757404957571429840540416503630994410489343928368190836919587281863580348820377892810363051700941692535418188190674273743292345050244763808712872399630748152719022422403071806767378569796306138848023472309246127342527909826678665443652928124212179544058442822716635262495782684337418238456382990961624005574611635297224610752367587416715978145234368299927414374222602409343124195131439127191269409146684442225261525961704090631477387902822215642376311275534526406978026987198047612488492816335967427042445880977393249918080296908144343794746822220542671057920970103677018239016228329676408918804203352683484344131312253308975781993086726303712413014435850822491513173672093967232806262813410281172113428370807972877031136735756113467692832589776481307379279398602351556135280769545931765566451422765304482812000052639378891853502358910435103833750091268298131699163930238645684392782610197307280129318415249983696174915459052890043128598097862110282180628336527151415959762198394807419105799191438100026438290807571099416180040803520077042982188180528909763538006312990301333845475536563264574635374487327418115799940026061061323714030872000011794561354018661968984898724484629711094954953353548821708558861744368680923281501595648819019983849500152688632931687272061342320885557609009372881216100810727252772900582670431078825429238970690554171338970702773839735237096874502062018983838235368731696641643253290994610620439218921784622012102789861415462328797796646306948357690539990523695860731999736381105808339355326638315278258636186165125622601126484083340072484125503338786739484236797851323081081053508445826760488680586672799069254463942227063878063483857350231705852682818704819063452184301938609887864454314153452335287362055466461740673015185573421975046839780728757462173888345472019597921256789095861515343377889854541689799026039038789395080742775709070198232686675116850297147521407378750274207835096752827653138808450183782449916938439074827763702982332532495148917847026015056924381016597300418004478678944699371601741111441422983934050137039862938500119886769063452555858572982311021474589612113571998832584478741722782019553385785333762555216531011602909625478493519485859104998755609039430696560030913165507306035661931218285951422459554140626156349334740694969276566399529735494287170348525326939019857305623835346513719006772902048411213103070514268707682379326541754460664580120883585892976667007599630276151583071423019732704812374560966722070501104497112020557412716355530307201945467967301743529851958160636216867285450885390591226355800813079145199904787334711424346483697922994509826191456207675481225905643480597174389345266276391782998015802533702938182953594537610880688289507698213390136691823413240479449075161772712104752375228330241165234445428047922197789538675534571764287544365314397357330318704335678175203303144311742667104127383964950541426996023042284600084060739917312658630441112432398031719388164361055464458380755527464098479452540936167399108167728338093563082605288741967314948005906466092921574365054213222717529514342409363789579252567090403021496152028520551213609922887217559344358950665798037524019396594101871012885382445997299071689295432788609539113143228997658666354584230689676416075157229746149351095862119360976113382190766083788713634345018723944471573803564477832314848087701048783955230679261706140318411094308559424218435372720396332431140699562114726160106404853553878079113536947601535742641083367466375888024717039365754448442029796351351850990499606322201815601237483672261167907282100165143788294312180046183447833547532904536095422002593790216462691017399709438039923236560213250880784809977206116993393695147559364014313987938955842375396278622594059684844834363867275431732447195608539246933921547654842329235268144760564612484007228225998443124513463080900371318296588981636842164671437137119670122552379790517530467391959793330158294470193884872262760286582812127583271673751915524499834454864117450368699461583324838248217352745614599622387551359651265919282413282405553735566629108180331181166861237618897638291921960716620233865986696630338123233665395667345895621826934080104388459058485263751873355585082796420083533778872557478322836851368484804077533433127302173510246706337172747106487089749970008685498709042183107205444109759601743565043454299042435348717173386572719542002350526103834027668988945615386719547745949010981431156574544343049582809208706055820852561566558925270395112202807506431622607941629612140079131810201616609714147710572707876978635900466623949771119007131446169389300092014664131850829828356403818497268937926606565559834833805671679531695368451910535973307995535364802185109557386009308729258158686747991740856173779817889364971361190710898225936703537982303144773209122890977815060648823422096467409887383458684839931499901183538894584614980587936035134622628495093796826801641685633966783958155163466091812131057332891163903552747000742803772996840623159640168846455942193546158144832066771463540502620397385666076916322572611414188461557172639732131692293222966843342498997445155204136764025375974539180108550070213837906215175435948450943348406091085196213570634867868089343154823648322099689206931301837303942032135846486947095810741300208544188201592116882935434539188885804218114897745352369739268511753144848776152627684463589827086411007502309126683995309238732814466450309289156739928421667969278413968722663405765386301469155770011809087486338308455708272368142884401018790795645062197718821816242587193077279712147020840629264825868804726753637487667640843571182860885638894474949858108656478839989186614810438820049948273507829159927359325686153478424233955347690795447655337919244383244433550520558780287812002983686985015822941148091565467819564090434839735528560578646689424902265120275984438114896796818006959274708574464481276634284306334137180824001638851765354793081987707791853662382845488886743193785672608359625453433499947731853585608256903215059538514776057390680523876091231516355989805092168659574757251428747811449505938786609687700543714196346306334207974496096373296148533906812428740019326523173138366336011835692951839796060965869977053828030964913030593286861197769796651831284785135023071331731695074051015799524386460161793374626310004142740205054487682278142423674847815586665169099254514552000674202204085539034864248827528721986292854663328158758575607733947650247094403895090224123160797241254008271757287532222291452325000508127300142932998161948236776447113688629980523640922069053040607320769429927296183919405165200432378707104876875875471499379926791997882190793456846749566749374182076812563536882505276156836173118251333689049118411539624576567987652816851852108072428531323595198102591476087006325988030735221133291997882742906214752711825407196698151542617227938978707318226230651765358144797241254744460839740878500244114689568873076404759601355071143505659960221279252567853997474802979631871685912068702578506795462648215852761776730415010331860978963741354746220803307695850537638619222431091231187344912797486790706741853217292683740932830852263161168297608373541787081685063382634229665113468884510635989985754494807952500100333355860068459407677014639680414464107013360573385948586198263120427992540965067552279635201850128192385450715234663929326413558855234521349346013162067093062729076965297770108957462083032666331482739109155096879224794488579825828205732182565781915281324956753167709842654271824776115101866820959011230517674651421781908084447630816020836190880911983449528843763280831143502583695598820265657024198284108220889272240841974347401399758359031863456671608982911710831526950555434741331628586294540502912333037066481855007203338669733637981076974253894441076168732394648792268895586631943169267798755848558738286873269542479456397174703451253222001845684473225232601538871198802461419062333997496890617074331138960016343441107280187530114440168832777424975958379403947778835156646751270857162601877005659413497709415542888830093551303828187366838775463127482223300313052326766466842719507033147985622120800970446972655023779769613650473753949939483077456926542101845676267067421304216772166963844224715636893461676271091001529163264283413553817663949654695619550459202224292322827878113582315672925473610207328842050854570557767244590444881757264648649601031703849184093819220268354628477974496865298045360479228670162052747561529435521100809500845198578464407517193301374140773094258474998684892995436845155152919276052250284025709974378512062491192280459262607033249792953796657262152407159882784465534633158266662619267791081020332009328662273578378155901365219188080601385279176240781582755186536271191465827480233087759826386046161452214001683229574338774240833559549452950898685409724541759107027293264888234283358469348350435198206898399913825110154613334473253392693622531637836944884610929899846685212578365793275893909628593940212447612164988805504958698111803387129064256719117008292713203169570276509662814546560272430625960996734994418328864461390304296179253480160958273178109401345441830740423272383052783274087458840586826076123359704548125286593673907227632353558638947702718508957556762104744968158807627362814190702341827980190427538732299790582032542790952414526397343245682846652013221898014884010700769807318472471447494992460092351517812667987292836590941720054801749082800084099419356506044333555395448980731721400590880320993524598212321530107831756352891940298632288940023908327312183055751877094578344481274542371828581185984044041057221209992055464904385510191083069424775142993363572822377679065984098046515763113771680980853448189329463405128625625810915186631367804065535788977994417544290461707655909196172335281280643862318627953659399575427438515307653304013607366929364552434339399148571348200135033445709826232111606977345560274760883038723030506581437632830873682731594175393720007130056364215391353166291503713543967816276277491319976775308361243891797032539325467938313776989141617158352943919351790115081694627273305615047561269990774658062025023041358552310680223074248426915212816585595537419387271594835599322049044774666557581945790488725144808731807706923944747431931041360459050645306301748111415456506945324836010266296212454776142085740056096527464376899498407160524325136502787789111355381942298005542959321782839053208755089767321237087450283125914869083504485009320612886490251323491799920310590279225116837276899908422449783016935559122749308281256543444823498768853735307561703021964332875710073380594955178928661901323773931330609035710744981834871332505453099604132317719984672669190812980937351762851333178068879897572255526632795333025635438201770832728833850530036767215985502551060668024722609538044201689578811868610156207882202101947964047768081080871117250922563604879510487175338949381617111128110308773978496842790615049431357786972010393576800976144210295327415877434864494596076042834878047526993719294673638942818423014581904732174201354259939245230714654447940783743237014492268094581525589283434413942053083284435295363045563152480228735480131728224232476083122024147709617570149036867710527183136713308096385951092063204850957260583590517483978125121137920448243160016781071173468536308045746359318430969969838819623104240615872967595357439492864833087791207017287257505802578724952706361527727447137439128979232184953045628632110269863276023029578212893795395049897585629625566289974058061432287636859621799465469097822768829669520782057103959068727462190434209494297099111134118952669296794375996225870971881464172698031028800475987908445923091944592866406583261221782168877747071669226548434970131469880870056620487765927746124410871694613679499002490813886528907382874148318806437434757916286299722202006918494470560259499298938073197614778189551566941591995966424975437497953838348731351391645287242510253518506399199157307550589313162287513233617803806971766833091825756685708202789485916394351542513315028022030590299105605930186372051184458833788299027256535312686160514571532105895014145272803788712205949446199097713050484015954344015964940749905297260060717811551809863589369375754574190516526266181583666773193090618852782629136269084068504369781811828906167953410999527611569318116939359522513576108302761423263527964555075971048536566172201826800259439049344503331405730435304514377960841493449302697818499212401425249433230039959897941640671533886119761968172252856465032562283274218005271884623183763035185936960494186907815977121571939416319577709680185645549354452013667802662811395393410408069899866987635324158096952570378731193612498675032675735983625898431898895988390562869211859333625440993741617240195427765581316708804370432011452289931754774753144682372227313159147309257471043338386411409707982629083852788522856390871939204903011399465957312746051590798957833210745316742709948541140718733397452211887534268600599298650850487879469109077943472007778443028306611042388744884610082653828029840216068331709259357985680258801613993095106812279707275558499981296711316542630413647107250452753580575306607112013058254821725700765192924374440059325678110617355663621585610299923491165987951678608805316281287555520320865016181699023728957281297742126473661808116722329255473750702566798676570074847872701528657855284701698482685959555048409044607300196664849700652658856600870767936344692200026695553681040878101867703610078613154039874998682587881358315082948131959387604986629130215130314164771747542775796743576342418378006941571553380637431655712882371405928715207803946430925297529882523924262583321664649503516412800801588166885236812221523862586759160887893507659008955161592741571209911567199567969602207066440375195493335123161484280464353675617931132493063496148410707331355436815364246604222203384875890027518425468308114186083409685662549559146222881023528276897753722544687128469662020529826964252823282534536025340175789276169242974248825214575142603277339605028517998433340968734691446976189935640588756119847510910998852534673055059627011631914146723052515139618855164055091225182708987435134459942764475409536548319762621286607610779830602382806656664184611506121681255503552251270195452256303642327732658001516247599255652238254688125940536361157339558675134710949526883703211494119292798400986266255942261351727610166803760065246775201816858401172220626742269662416200903734098180835143370881521935507151274942633955869137292685897181485433144313802004903683299928103154380150374817726177149752231086458483314959463489377745730035751009753005657851925147632594092732312615263975372396875889218559507950826913350464608635046455949010597958752690599106607466738124949930696952771624859919274260080088449789769783966465416377847642313692327726968053379652345765962949942763968110317027578424483983877349030554675828821048735033179781892810745928029746191486936784113197622213640367202215568355826210580439315062000939650809803343201710765403059051405473448320833643319407779355377740417646996447497202055014503618480806527982006389055498780347367665765071153373893804069673575285421944287739847660457290591842997700250289865527431944493455457310521265829822248903145317010652078893447262457924392288329177671004406195544670238791811192507381638124639738649243646601301941614986364517549802159696237267029107202830828627521248858940796800775136297076267330759834622457924291329222165166346732070616172330633141241788279771760126848386096937135488902477648681770988353071178521266502027683348357304902022150257264305939232437125899153043778629706100983890686389716376347286759784185490928923782527528546313608941877604475194996578853070927950657680787679252781929908534286082318376647592595816391115753102047615172505301277604038014391726694905016100562857078405384267784912273555160354710757366807521898155274152664412345933036586709870416868802463441109631320190281992706807424414279699487580890618168242937128996909922190393898182772627499195528181230233825359769963300713702436696183256231971672391178855920033669389901294227996698961737919055403167327902653506241295606717552715958774585852700230463569417141213699699937904803817864568976563385902753774811334272286780803313487813899384852066151170197618926580970479299192790449075074008225743235184901891825055543622635377318724704640510656285845719897301804898928002231605312868836988847664092394534403723994455686197506548896374658129096538698653509855306964206079272865482544136582150480241853365936646089150948529430279250798576699582323068499207794960304019886188423598182228764541082312073890679896499222087201347233371268568927133531550872974356181961269438938239830757970329241652100250915543088897803102193463232348190839408200870249781735550586952922006385115367975561177079673235438067412514418494488932849835925859652449934282220248670112239324866784521294937525746839474713360307510427760823419481210899364533950384802792754587621681943345621696059539811101256256192751186935458279444725862967722152810122309126072315383384751958026272160827578784295323078705273766359912158752804316485683008133451348963098788083350853560853082739964704136440820413602717194053741947893004172777063361761041581224196526912218316408294182778238186346219678714876819046872036146234033463552594624901491743806127735581241756272756256785270101281739122526783743131869437085983916431971144268732166954768143435994782809094643563890670135290517693802652839654093401787303819952009118903694044890907374061028173309072704516551272959565845861395892350552025495617431141679056591144540040618217049194516932904873828161489192907001585306677795925318931454990532685661753096785433460991136492692917991951878061329048070744298300076740674987503021235223295263987843315706928804135781181414035949799319537994174695618132313828355351273763389279424236991870955678299670646211602834338706273536116137728510939570469505316699144920030262030701115733460221611811140962110232612794507975295250672404896420599499981853111922352067098764890474448320358479379777089881705580551585659003575710913010838303952048489536753897939591091456852124426746346606832559883018855007288449457734297537482901467306072968621959950015077980431874128687419726672324680382292664678731205133980449871604074834930661166953440637702586485725190429781616742138846290477226455101790621990101064723991166245178996306841376747614290773613910599890516479131402990129874001851155667329009059598168486423024281388551820450924941349425645161764438024831981644782441753695904089262540896713293137672417971184497881886641208500538501296658073585911445560234972394110401145615524276081418037006925282208168327641105143640153574972994893742231607297932846688596890779529479049622774184931407468245530910024807546119711207497840562123258456736068054598680926652675729422881406450993468358928198550973009991035626310461940730356061009786589359486291483333890852349035226016116267311446144885824854369935475255354685970970012005981056167495030237194603079884905713479666526183524310329605348660554276444504687869498531934453062179768591989190527250913975087304947225328826392861338131243081633610044989140357151600108759995996203276239973756006689326216632041271564414718553992163745132571787569920045331793734215392554957301422189144445148817659003488084946814467645187706960097211812601131936079883761087506199583298067505343866438560342279149210478085670871212686110499475512364196862159005355189208960454911801837087351213302113927947949498157160689254439283935066231954258302225993904646108419126977283911625329700899993604983544205589250763685161205226873792836010453863705169396833464702268162108047704317588916650909690797846215121153405850167527433048957831728319550911254913959967434804307493724232093563415951628524296500143631375493553263200642733819454036035016471292095100620300291035916923877115341640257130903323748011829648153048860911525395199582274201115288178637182461545910141535073223798908102585207913123261833783663973086725348955880826566395904698494586645327943651353041329623353826462598103372361852919348742087087405531674261212633731882937687221636803492356352005450381560894384404796918033652023351402976755746861433333050208387838111541268925151166116930274296000426113671057593007530339863211950308033923935794087416870532450153670572923374346617729991193485193153195573999537691263697163367331179764771187970106981594852818917269069689185229060502882341966125844911596623504305364360140344435869935105208842215655791117254130937404161069889431686316515578886847425711435293078457378268381913669237471873765036114019931274788955613142720362250679969666727376373195224645165671555403406941284959423784512097673759017436858546715560385708069006797916099574890855980086291652161786679405219875252687974230877054749630423028293035258427612765298373725206252502198535700584024882472881571439333319693786895013767534951472748248357170591103305164106549341448296256259053053650440190380040202119684943642618549571897538200290157298536474141922268166590819374268930277118424017749134844691016489250387237200483465001201970901451290948959111337775558325485971778735550736760415422782088532065005677332973421264736659144908426144499208939625766086675034809435890690348945624497298523623631671179811318218118983491109144324354709971575748761833386808392758242188258317972873376426584738419959429063460865025641920729018922939376884454225160114951712985769514509191963635889005402162681622563351387321791540055706200344549047466943494357183394855708615827904260730245673126120480774370352283823459959560169822740070222158536792396109460875597226270351571618216645216224885958641204904458419056864801654356011243206126652245916123841780807997824843552246179405853478344642156931094236963465846509937007349026356989916371199938940366672127024866305173877943713902426423067540464969108152829509788010760020123834434144501356761975935634590123911593375276828652878589244329251305094989943506488296096665835247177063141529760216668828967756246178265376697131371999006207021132131686344793232850535267949560065946849113093180985273308269830327604880888179661619217295908933911350111207115745768701357561706784912286958407024018892419839846947947860186294518004580798730670629794017057189300439386598222495120441908470074696024781553050534193985289199261201900910415634141099894704243969202866161029973321609245078347796930747826978070544462747588271314769239671441937496052936427546980077418005218458000279654650300024060631688305185076640080718047432203703900405826446593775380817147553802600796494462382105663523215733007367142525984817682367350210890862904036149138364274503328574834156406432066891944967482789403633474104111297404488698772176551031480762487063506781546650445641661223866587296779391288085009272305309637101886532162105697180469696605342353799445360633686950691477088621314741058272595343658851396459192769106881967867859266898054464225705203824870126220348504870506630110619566228812194698648369471955375533963602112120030669781670677096472357811461251891701323982107997284379513643686561171373758443007614371228676780003570086020576201376889630494146996947408397911735861565815163854216362790680102258661871360391970173114338593129274967143614467978019951391482206318260221186890760108969565291299868757462140499840714047540567790568868864781724528326661825981822520147316264032891928511282389812055422159799371904862143756372884552099468334373378417669478051400007976422511720201857316905897392150123813358811836227753481027371036493208492059417838731839457812208684728227756599800821735175967119939959266440743943861132541162237267684977016981507948315745510965331072870062552234413876852298368265419587063430817574543916402757124975942593995882390956706984473099930595517436159115400931591949224956471791893225398295963264919322186577298676773041578017952093141384696530034320727054200059566684677091373807093343502310221607655845430848729513104722871099633863509699483084956053298714565656409231823813321878808500847147047359852126560582850894450924764761709110612383756326890158168998080615548013958602451075000122381573684665671529114428749117425062941321263036560495449045570927786158816156683020990562584769113680276522606064904091346752999703318556047658275131229240219169651878590771907382930062359867982667448203827053406296010260971810868508976136796240800245055381772342917013518804263892617146128907201025907604211660929222870199660751885072021924872189371622919331927171235318092499592290119229509641961153790059188004500904145025570946717175258093654585693622458566354661915220059393761868621821466023898004184052834814751160552905379158133422305437433388318996041967908111939219889134715180183211177478047446980925769539074038753589605909910794299352756654123766293200336240128861865721764111486147109287035610998679226197139349205798702666611852375300919592361535465246070468674920212476467523759951715618152185443763998456063528890836613922986307050368529712585169863314423859806212756923449885291725963007725086541884992983868379245117377952260668774309225912502914379185652876912411057136553285527926533283507316097358794594812563481993514691870088852143186336574078744095627139034818071779412954081483227747027124560137132498014901691611629673637634210793482177779347438259047995831971588026201399378812000615910763065020083826800440433662630424658388948479810470860881663184489018980871154950053346646548284349184090447566792981361115047526424239296863181361698013258881943999321084257991617306994290303997152604316694798586770535243587816826442965340469094515945388845992097562551603881591693165664681943189522356537860034258865483878222425301616483121234856316260457457447991941258992523149941034002820375572358511833856817751019530782698048454411403701324118758998780641832379273741382729280004318421707017136863406461103274574739679993143536351359397713594714621090721912105589030822447050879681927143994133227566857296683111888544834758677832323475375547417534008105035236357154004800027605538217410307455890299872947217077195116596776267164910350567073799823398093758486080852578538058871618001376326084015142001665919759155985516115643224963697161023201543924577841093084014248766670477224112053207559779054495588257595781570587654433334172966369311838808669164183658962800382306517317202725665788730673054771459010496301291648388183271635142289983041248064386057087327779763679498444805610668812900550132788604749946599217896786532246378692074300927466411956513286552741068926453528797043229060898089934618581229054297506300875435485175622185185639005198450194966677078665946001877167658962247844279685579292417854580890625056363348568706330468405713252515405830082050636415015172256636638735224363627597468179974627429171196018621618742274633369510185147972029351959131102624661296633665833604311567980750020410739835694164363878901466431189916290702718352478832299447480828808214201220932873845745802182725709244565687381598965693481971506561110585234071766200546313387163435817557854851517126935579018752981444487781838651019614753795131317385485524185614155503648343346755462773543134164163752710135205773528362100629052700717857050160117590934207942397804357881611001133903532835423279876848098676979214295639854257037487088513490365351026516262389826734690486253770910271718868748039903821611306415340972002420444786248248796934628168906425742430142792747111966751437093655065437546469559285367178436151633082167458908684897383401192921827003497937496826566263599693923629042005970134647782481821674175714662245210614369279022305436474852277825311897754825557770028295999065523608655632879217507470521602476425728844660024559015865293041988104985168044986610303471278837275724179002077459593830360111274500354964463237540297931263914159620928156334907571556246376552556375223356345900278361558893867980401187621107746505862837307161502393261924593304121790221695922742687552435942926178024442489812694044327691375581366468662428194694418135732202409077307818795952481690803832370948334304616456962770550864426706116430610315621421516570815424351207196517354745561875548213724714986955490345708589505351143239402158246237317991855231874968068370712146921797522952776549685590428248768082050438345443676138031522377750502389340889888817638054719391891736839054911703524171390742819895349601930720974805443474733641489854699326691048300519853441485932835013941744576147232119303567351679527965180880921244727753732022520532547963995360259679964642299846064327546130047232042831913657589809062988465108806397877213628158694690644663770905999116655672057754520531265521594525285609305083420098497578593372647175773722255457749305673732267599454742309245428053196538884826311100660197048014368335860797727042714324410191859624793742819910810764674115664585266909697467237197008221147889949822505049506596209632462316260258834077128389919608311980139825292731681480834671760222472791312791497554958247041100062807251584824762517983736835888676510131318946968548907795147247416453245902072988651869655092777692429219966135310404808773943956375638717730068905898046202028342766150443431192858188425735355070803792286778152000034700173975579147263093207872707083228162678149261037627765003703793964199047712412252534306851707569112361054658692144845786263759060980798865292682846498009041351265641786001887292701503817428318713758659265427473005472472085738266463992053374940399635544502872162401018418432545261450497943296200208720178257542776900005666812833168772744193770051629511638604875831823754913164140398124686470094382187644312138923793929634901597004225036964489920575583434819889649397739805627997672829981670706143985663914511334523976116720578018898953445069095385051760763943796660018573260891171283705591251920083221104955323865283106634848110827805666259606195918654247016251201701318174967724181584290624011607674750922316594088427350097712968503586054320749519575811611855538912706786036392828563695721943477338946612763299148896113940952452273396516644439956176446380035992423073764859018277233807014791056571263382727070261810374598895761984002987016868016374659259588089576570620811808015788245235470512319493403010897860778603558016256474963668952266644297034750973757293655215957205018380011300642483695274978980488669946312648370712620175835288983470645632987962527812423814972340269923862245553799485227566164182094297284938152661553100382476458941010631066791559388078731554225148099356347040083852563338713734005789665118282648417522204303350688567673456703495553783291284572140874341844662966193453239340102186602517225820244369698286892594482292569580501473842032234552749162420536991531864251835132393123249926171102090679208777081297331878703254358945819299157922805909629313615804547525082634659987958292821403960671715491841579732776669604006761432161372979962879694295586470962389699846152883945119399866680529478562520047926648025531104334482182225375355413143198789842444080937262640971866322596396451409108638268364912283333873204238924585565961231467157323664576166407856925815730177064163262773408491365608012574138431829515250315688191614312101638047668216237140317556271005829767655973993498456511642712547906884468423062617054728444476329963710651294135427650142263767469742212676631934514820117451729366819512348454810184828070389799766164332625967071557641203485357545067392252078078608458853099304390756822309941363722218810657474734407718365747078729497306288848468685885509892782698668673193115049382377532058098194315835426983040375068899137050166988926840535519245647408292679246585580218926399943633169156591990968485444353997200992769810704737366421869025712126960845786029245892714263440554861734395635224522665796674408491362816523583507583693164682895404167836972552473857523876498759152433056242907916161697923747260277756820967581833760682148768889887355900659817808858652732469911268246578940497843423605889910792877680494259713368582031968619868504750040513473006793223432926837954984642333505247263460082690068256150580587416497636645560901697038354464898578971378176342974766943836393242204257238379652358937833265993732944425338544431136852105145832185085344227497507375521585479886496527046750978569634379985928566957606237908255374065993918733488900683707746155489726616930391741958038525420236316279949081363400652774248626138944550673590388362049435427415319751126340575592208112892245179435878060940908912240877214600264516575734886351840493636414562851412076587021198616414722225541119232174474798899174912396282969229904038628541701808467475656375497288352641939168352265091911716387965696975529401617570874128981880416544974424432650797686219165253206781232677694837429664274422877198570625317789009163812625149268598835683397805868852899607572612324059082101032768468528289163892886962291219615830219522140590952205228972377626878139597405380951219895952727502300495102059121377517497365540730407591887400539984780761585134218807192758602383601471109843561136961831373268637572744207189509549635640736905992260249409020151463495614064290221465656120894680521708255829751858096181033709257858600807838724053485637997824320509476609337576351781081771721920388391768477538656929309953682828387716996256693672496583637164397842074160549709960664332221742829985099655056667494594601913868672654443173397918383359490266481059102340343599790310442218904226364686067510808226902546675198447458959068566636994156846733845847585095636870779635931230765940437498221894244750281518093959819874655731869032409794891587446913819980388681581918671230448377568580829491220952824741513947607156627309898236541080144691954182331228197046695559611558555558315806826102545264309773230627583922003237786026453847280259878024119832286203580916875388115444827489547270015957334586400959176457689844417700579912331788126521625196597494202791280207150219806882664821063030190168241191958249015513411969179182395145052466745793017346324703628358480999085464329343470861029546207578499327479680655603815266584241552414020100328059312423538009786819459704872308783688630961702065151971064359994920999366507669845874098782049806400927467458343141042231608218534406234598159087081778504888861880769353476191896021433883786317404629749227411627982391949176987362361620547976356944624376008316995664118957255324040255933632552568401402312231464177616622326107465822771940305047531829005256782861198004677863617969440097740171353350450635087932262008743082216996466586769129528166291852371612532422635252769247084179519780977668153327334285229232165810202648568179844654769401370024774368463834953838136747214167428043136468815243707106704500704876499277719360884026245748325443296305533491774675512357508435857365050276037637499339477411802348296551573732414321115277551759957194569248002812142576522240949051239537058982754192861620644976900800516728105520434855226955027595354140108032576077947552173829991639441883871609437994545693681521187688944537789582106064276906041299935917059133742640188431275188329348106633293922679093949994775888072444790297925359054631740103814939707976348412661573835667093452579242745789607624721422283235091970540000446250776484927851389883571883509820130553425903791935363152235488858663247667642880777793088879772304343640361006875164277412202261396683280778931927828318080173077350607481524842491867242661649204922918225971382402245955232481491157686077707454695192967937878911557468450119742629166667933784946411560382743455589007005502225605159027581616487653295831957181357694357203992998082214737783062018460892617210744728286221985909857169389336098290224282424396896211744287452783331326237688664358206856526625386067699667080975244914294272654597550660926770315649639644011468325168860699878499841076525272781285215897959089565978155839973755150511717851905584311158007298049867433393454099116902870684346774183377429817630212208162276921974481075829736332185436139245593265234717907058104746873548245529777698568920795629452204538286627419204574553597537833995304548225920435181972671492648476022048439736948336922302639020031594711705740573963738051270044199045112315063745881026613485787620090228654099282412837723676723358777586449486985207248605120598606668137236359779005805426640784046475170485341481827591362494352635349029460881976590600165871375961754051979690088557206937236134813942472081174090438626568364038965745127058749124499542408632942795516866065128663688957056950222040105703079685542237024703234386442595318728474297221471725239969992359558082406786817244036583223196727103007237001884751283268533846058342785102726474056248236406334766775708283006833629551793581381740550546932832426160342165393337478422362961931248201738364442549652131331618826130066374597499137378576328741407978447934588795894649894552741972874910295636324730479566930857896480790763136880434588757811617173347323149958044338822531688624293072993485513793273497371851002577967983216782910104931542166293613921409938852532032510832762973260840413857062941311330133320972122366756072138326769687593371214362849324725406139914373900179096556169505245236643999228915756482986923581537372325651736293269723423670084361617967387854123383366056254733185318152947002592276428174807186861248328293644512048628862147681847514006874763269534591446136942642700326831223619261447910638058964077224302061508264259374530337172417643773503124291480197523909571974474894471533079974013034950682792098108358639863429973463930468960924472573851739936872068214980426553124365071730918612225232056271600402655700278727743817419243515520551967117280928505141207034590950069842139567996936326451597238335162410921815315970864284736481795259910509554718804277692194704591761767503716438190866972339519435414088680762293025423945883227965676774363040678792944127606681212535222023118548620650443953945083317510365836703280339483588121845313265177950256518289980760433114486012050652750154004568370462191540667988042420995760499319254854789084965350534854003843031756688261055554959518487857341765539294820411375375159728162226663343481694023684802312493356608609241988399182166175892530105714016606813126943060349673628302915682375578192779443289569198024594974519464312327361949574766488341324625439972015075982843472339319579448206808906058911339853122710801865677278159411985404897754605489197638728560966380495400861114708444264789236588316378356639248789769507202662703057940230514022240971920328906189822192809785726345164856300076620242128204348556309085217888747711778346216046160551430763787059226469008671587597444943783484827161148742869914832164784674630436152256539382979746707811837307823031182423408386521576534752035424137527912423982517562482544830046653594008312345405289677874105136150123640259004565531331024775186861590995306202215036676918568220383470112931858156087273329526603526550112324992659325690032515293175316695961466223811457424745620728303432553487027576987711087291135495934721958383356328265835481184496397759223788788804436984685153674751365048962562931127022799542884989969637590462367888264316742631006301794525460633268122579201781830496635334516031677367017446842652671673716525822963934774843320595236302662722068770243720307763273495199815682918279050247370481735218687366782485765060666895071589449562322741856560196805754365145452163499602174412917105422092917801861524562245072350571441467130403039358952207346351997864884901364146099470713194173872785580764101916730853561516619724546545275684887448977385072760144287081149383249718853354015861254856428609434560101650090159934047887627096303981102422520396766573992654399203769671109491733084464558074340343497825755427710037347739353400225278438031973240162990816043513211577735454283481232149109630712546594269100558783295870888946902463632663058336725986912272431303745805233776692442176024614735441097236695980802113245363183222943755627311682187443627167156865902401795932928320330785340814376567491408588603697367284457943458135898650159679058827253879537231369650073356384647560701395234970038110832810510928525699698852291991158461945653507960480232666630688608633987220835991889931237878949945252639718438218462630388067081032211489318936460897996233579186582620489042372626132345670542865386782381949268122896104523387398788104893150276916978748292787975482880262227977741735202538719874817121221558965948797112626324662819003402883206554756811317376080249891788724425138822908637605497012348636020485109623527889360183170833943556228447900858658657524304530236652774583144513974633411742799858675419182932860713974754182903093182881600776813410655737116532291770559810560144558291080392585379541843151181004584899028261018961873538902625164894334743454254110519098088258443797501606145818983775077927239640207714633594589264369621462094820925742815904560269205693498774464955668029575650636345026671123036640537136379214682539054306930004842414899829485505379797418892092187473971609364605633779444175212427177322686778295148754557301102539201550916482184548301513687443998745610103236932617348258361211296245735172779677446247706082603269447083356409808713064989110619718771690313121640396700014314465699765568719400381359077481983458488069548263943482156782359633050694889740723925238276760642988760867781995721984737227978604150425088471417894366256914080658348269071944074274998415108912281119130519212485197796047005120556731887766065592258181431784995010340698242269933830363072589928093363413290815077357675544275427292178784567663104536818201326275824307239427308857844666711853148570372638761450443486104693045758226315809711704079841175655441013242991082109637249841971499680026611222241162765478465291521256157524919064171812278532638416660637896345481391373250743333493295520879255060081663010472911117321741343447078172085076916064985364168194690932941155625806367483114900503455216957040337679281048149186780494952285536822431527384190765330747255647984194653869199876076229865675353755011269112941873597410982403051019627737910785848528830286786577396572602180527700736317467032734191438908872576930341727435167587122056230504077497000598540138301228241583094504827045811370576208343616635680352530359167909636463573744989209307959466470643437870511971113547665104719624871997652218021203243636055282677508656722550249612762915672649340360300886137793038392984671641648957948831806547836258522437118460743589659453285084402500706315231943932257057084383848086084763866608312904492194270155155720204743876552281252106725802887237835351679073750482042164696884838527397033244848661420067030969866931273273940870191495790733560788444375931681092710447337619051716799419427243489999918580079771701921471451672832542169370623829202378483101831218036839238530027209392938004636784521955374443733591819529351033923418836346718201227574951760590258685793758146968432805273398714513942008314647473866341701331961631022603526426027699713015379981089316644115238448534474895229162269065724906969825357406008098937455425457779015498346865358370136057108254084475623891831380079542046920662527089821931700916909072748596982575461757549914951837236642453526375771612466181597524071670039401276405265419620765357956819846412171271721349678005069572424227042346135573761205113050002860062331965897634402007941809250556601359461067965476388267169384091763798674806888167230165122403532687034129683858803043163679714169776469088496492518632661926859118082295548214756293529657416124503192951249448707427514816733602303200004455057166591847456066415735434310065966815538147081428842625525144526594238756618850993835982472354600266789754829134903449296487985300382562524565612240345807351919324104925688553019851993658746025129207560471552780424997364385362512383750513996206672398272504994273565164331092157819470821173546598444636385018384421738531896817325070749894128644664562783301885886684672289155335737178683466554080597950912355083939177062776567529041466481399111145590850537467101860325313884231577613882220739615535244028504588072953643820746413349194533910717502654107241439177155855643770287009009605519056955123834386008654289643049952418724542213702923378933585012475075463632205518398039158001875654974846034054682953754321052746346702506498875747846384625981262402930366602172908233466822021686330046292843101200154888638995651030545815126488517170404202635494645768523754019874458766460443926706736302674268383523828154786696001870328610980320371430929685260212338884189324131439017886514897294851005382610339907249222569726715502213119715015796057605882242853275081349534380252955652401248962164393880615763376480270364402031031899381350329227131578222805288449007547205613319288882880301427933998932680360033866353417224139092555725885139746739379162821610216445062959036952474530282235547693105491481970189023930952071324815364872343043934243563109943301984010050255075853004124402642440423885222296159988085637743105250556179305057915105822009885597150405451247956076052606523962562640332078397670632697176675193918322008762850300528137033630404734693486328737012064404002470611575756363346462342085388574250868312451592166225390665035813997403096361261559455104227855904553097303951549093608151471238383079236912339875315827411283310119003024514099970465346509924383316454555350747039260460542089167905889637220289568993846966037811665260491047921597410383933574686135660148449680085492376770738940563370648526664083505303509750030000232348075268493629732742905590507404654862114124199309711434392382508663868377388444664988915339067742210344250085829119555567413695966424713385708871773642066810565646068344045689134189768304282037867259532979021093287888423029447860515034861565465097083711435797652254301200845145265719130140632394775115878994927703499634481812746223391394498579984382021651307476512325515816105856538911127524165339180171751701403365109650876159776364266832768113852094667783220760015990973164094914267857104342911428367265713325111620335596895771225479495800158251719864324450778683435899952156656089596324170546123860295697868079363394406928720376886394929430093467194237112999426715828062697160220315956501993550456143461980362404899019297916838617612699848483862825219834625627527439077416913115243508183815484999134998849118908671335723414821513518709753433329334117864125477183428843611192361118601572534777303771790420145052442500265304533746747274247241307543686827352169577782366362285722212574261406469716907023631855265253313948844694441132213592102575917442576444162610089185819590932896831241250228165687230474970558548269994285045342605886436467743207740385575616021926481784189348684966755846588426831056443052330222059182322152064555441692356070265021628312423464389928978048600969082699053279818843835162931189526210965761526917261483318518079648547878377329541028454635344624104968256047365511103211895261707578934075839542344502189862405580135523875392369629974295680022459156685866735116577937186653136884598757172652058475012367316313714039208273519864111222750401779687189258415722478537026569434975944609321990644909193761157561302152111919485022347414906313907930352869681136780555168187461228166402877961343639825035282054824236296951282564871514808762270954716466222090180028479351832719291469522113247516803455353655516803305535415205342268509850239079036255961460125341186620023175689111404158688062280100065457672718651307305533966871734025274557382377184299173532291004018364304403105539935807300996129198738790173676961039006875822473662052973295051266221645515160507868398803968551187435672901354339735081260092916888939360994352719263469977561373424313959939568202542844037193024591245658870410995186249481278788320000640519675128652587144832353429917159173489812944332976619902302015829663106848405115634609610429609663957887706302738189464090292668777748730774187018836037942339601237177137111089620207694470166037648120368885118373052507931871273607429834890659100246165987442406773985385123045805649367146087741830695765359376060070140563539965112977327928143047192408525284083055149052762390902387607305809083414362841005473369032911371185910961720062140515362032283392722411563161566312149140570990781673140886562112309133793593152561354112016603854068537694209929282007279649086871907709333610759194144357805433648744948304015733064821442793312043041402545493349813951084093101581187178133190305351591215151871660170828589990442877499124799183769709956819940701848737544179754789456774995863112301218656691586033447688219662075519620082899559891646650879573688004972612383079308233800299882392112854092096532624688573867371667377250403117533636571281982530565990980506311202687190513926870358844994522021549940557342357801066085620771804795540756364826167454620040272635625473404309409600892469591212915887300034688459434748067129844564800901495585933349098371714450540566941246161613444251643650041227385387113342843152411110904767157363458840394511553181219999287909451721595473113489943827370301380015649485196344498868180656430972022772819365759901891195670286825652242981807938563226873658675315649182570707505150141291597820883345380244364270016511477591482805286338088397274022913414196169881437128915062105654412511982119083442119508926880645326353618948879380716965982927814705873414181255589115550047842154593816326090114093190107698494750964786910513821952533492122918434408593194256574468782605040203040030922234016547348203587939611198597395568059622589850874055574232428253467135677408319415331770395881123007211984334542176026009760420037872880045971380596690167954585763966112755038535284531651406765401303840761709625648550598589161914676175732457246920104104106585120047428768416175965754771526509497675245561255554505123582180694036306406574744027339582364542759795435237727125059712768384844596059418280894745815012199726183752885126723238518586324996347343810351080008318852064973304981747077677541238533413099593588428841587593014099043291112822844025317941849587372262283674842863128018910431550093261006611312919720433495099962380418809158536822694517600012229126775894664808759837500961458896540757101670549373552231940451238570771599610006465208624342713307017068059637184234252402982121231290494585966668460801976997277527239243888305200770784598409217012081775907247619840886714677859996931216314094403314469159787103910258486027281107172157926631753042114849434133601930993430725684182544195890753185944194586878129069539996835573984135840557553389714762654569039099879767814965322495807986525788540481177870850587530852670643472615598613799178461775585519995388906648593869312275431468463721434450274384854704537107157042984458938979577492521210552912979966016917087303538703305373947158045050988922488589615657477032720322125260124583437930610652936623040011924303165772146370864535730493394754057391869142231819279159027325661155547750979049058310377893857721212528210640918283725207367093091812809352036703101089367871142895165893038612280750869455126022447776524101512954314975349524785545679917572659263719419746849723222484065541461996243624631930090296883283940251295227197643189632825832679100856562469897630248236853381536263941588075777852325518521850618298443170949011001215405451868446267030515744329445962627652781083233306790025354991317664762735857591116443733540215524720790808459654257852461811964709576204891001076068977961606606780887827384645952229465823856796791467952836532220887277276500236474623946677743236002587481274582860779878367159969330963275120864464931041198909259283935691517015642821830071447114063087538464214549077973992837457541847282682922121584625875291926143281157409288386443443742806386059927532849573400968132883950660844781489897150671978759863953521616374976696116842268700537352962066504377941617001954514357264848917499396528605555064501263805791084966502179096324487105933598588889209499441399911184260524047840824001504172082594439649630405042243233442341223189836625907165741132211902491733987369897908719190669258792918436837503776870813499008459637462309580356259531065155123109334992194654707069174726151117624969784041643149634714915681388166240560909823490164550486583482132210677693478079746668739810515089723757146094738177518467385161922909604867099272150513574201471346541680802557037843824213153608131704973294543101812416306709152305309474315302409130507879977368667097204670298946534781438192571666402154608067457973338584478130565566238613989641858486650556767859380595264255522168926969252517695647230007600239645161809663235926092583895177938403990526765175046776855866893072337676228872658228941535011769697959615624181358009071892244217723287200387517106036514648298330330537224956457447981622923035899629167731409047518400658041704030819834394381654891068288206327462119824833333898566989529290283506745773869455592449308447108296011158850439402580695039895469399507596706033103880720646856096321009032981369433711906635316827971131126381557398474363341054424592149284481660789722422256922393677698710577504311870518304084133003933643728108299653373441184354405480561881531519079117790059472071373225655689017631713690530039449867117867765760616135419482026995648769679190253527415105180531804790483322995247073871058366916252351497379588381290782244171818481419201402111512366257572973301524423958128638699398656659672257084747162982259672706700530278389166151345353868004947749187295661141402382896495192767314552141041907587280580965454273881844851016467216484128608181188485554281256531960416884664117760046961927984695385084891010095957760848958110087780931833420011471107536645178249540123127645253167685989110136138709825550577904482832318461480123867994146497941998319865643012421224200975925843299654436840013292175343954831853021121004716189080692564921648315239461646650153757818763628572114196376063459038080448514444826889630148554736356717763611266552043045803286150878319507988100647065610690592092569655108470085543421756824262446773998395864395309621857601668502351345733969619291660067712130459392789808851074647837067643944600943229024046728376468774706720898422415579793182085269902422050852871413657941189781978550458738975725287460036522703236252764484177650608117983950895275753870667305846428105172244237983592543648898675919011084890853125856525684909345913787341096700755907871721694150571595207443420654773078572014949096550591123071560836535517441138230098228814810601217595482842407428260463697064340557627118067418788488630588195405009462335493159835079495123344121357282592678031545232905166014398114290282465449402952371057522041040871985263998564256263787905489320938473810927731274576167351483930693276505665621651027188503924062119973238449174489819845167183697449802157801453791884141920366926886584125176010877742186145774040901699490718053971086702189654901377106473451411310618515349059531454745136755735414168347216633211254224150718469598954501335069163130466253648545040289332965583031119722704469271276844518793698664796237089708379132510457884232670487707342600247012893997363673819729183411986221437669289669335327964514050603966401346740676371786828739304827643225209023130291941475594239348717695689630324201712678267199325039815166783694080096602039614260087626316177157656067860554208847731562147464750836930868547332606977336108807016114555416283113834068363559795477759492995351169142968351541590653117485145304963802382112731951390088568242577007613090437491097080110269332870728084389742814857162349833286375567551322651538494022856069789504313744760121653559818336894674275742254013978959492129253549975424435039311366077338531949592050653580408662369888683574177311812020448711449120608009141404178855500406260051423898099858806062599859387816762660412366422214571667887039386174158590424638645107953043210707575261045400432762419587157761784274443076739024819018946071905814755350581023666862820988105086145331798152103609256255584994722709730380619323590911471597996454645367233169586162155770129131605709672450758806329488970003360173200314963396703128323994069915220005975958169940848892879028787095714877910489968720701332669102049083337862445412743638600382168845743535734856954237600613355919813698764921129635454580294503884508230060190475916984499974928535678788877405578993497844299903794184281619229166488125189281594786441656558611577459304032358260654266312826906915064661439982278204011136702360519053093062067390302738812069166120867775364462572920419129700792654507460775312888318832530961783961997609554412871373070913192929747492398885794526906639315373718376605862638685104074392254614692998767574888757004835986547213354835194206820305663075724184818740575309713719080166744237135048959052868976316936510041844184192931064121762434964280724622079507779270777594085018478364103681081430371730004789322876869158874023275295481224378778599443466153210307620319324483273002866154343612500607898006493306770755172384974521838998556325464419831727763854458940203625892888670074191981262963370456445902209677886713078072885117795625545723617531791834495886622347011391964648993419625703241909554553542963116635117192266420477169151300882533242342318533063823930799972802683015644817446280667707864924150250140697608715106095802657601863685876759522554848679593091602771905617183110210007872286023071786879167190715362093299053433685096922507454957335985722691127755901374100852537626903226490476245982390370919608797549185230688739685635887349584882763761356843640278213496532022162025390015646622386513212042662637065140790202987558326954360410046655721339283144932369541132376620692238307736489640581441332979551943996506043269083373664886436600286491109559072032773821785489301616791913589934426128202254439754822577753902878081239006588180437550974477602713092900795610176087108213686265668564033403327115261997999546067173585891021559489871189188892414310278512244159080400513508811605005310024212019277797686686766392780362082192136537890553149892660492287324192573905963204652710807352812164719313451077065820126146202387118614701500297074020714669628944080966815463011972005892139093486574986557942005145573823194506046418349843916344149336874974083843470409843492905516335636517364373976372182533421553977413672765462638260850745558046710307654857561724562075113548871979562115712816459467797240519847340294435121810186101346010377134517919667029853915051226235427124100136665962748256585723817758172617743576696198559931832068173283954483120554592538025706153304808341658339480391021438997926469047391929437430101677948822478509958248181032809407218526229428099485630965041460314445048781473327478920724966271710204105098592639718944019328825551301234179887443761681365121823531255731233958949203005402012671985157412756120153017742912720774273943596504093954199364540141234099602139420224484085184848332198425908425390987985210295900294077244141016654654873469273559754615434107642381639206540366015300938502511115562648931999753448906547614815812522512560562588699082706447409727111737291630760622385173708214865980055492241775543703894118300654208876792251773889701873225593493196204540543301757747213965759405417290481304027124161138680548085002881786941092037720337981316067910743433191577004656678794592800171659235707152641398092653464827906166236907653569706215111504303826785439983502023131136739069820670316606844735307394804808796524515353348488435278303023391475151629279408037998334631466660614065490459459388607826547457293236087102258383583624487640096370345302095864167304797051070188428820290819678374594653041512418777137701935713425943558538736601595684488506681552421045309821548673273278969240130933424602335799590773120893993636269652304911654032303530793294594086491996438685562855411122793033310798701713696178568635767919729550548977940033113813861729521200719928367767161215201262303280594280558175717047213413998182678404810293633317344294956929032560881174570576923381881684558345754760544855033866992256666030241323616268507495127539653560103617787890324550679135737480709431597114195070892253942084861077989788021436933817394013370290140994335034242567762844973564330040291235858712203253099170338139092829310339353860183015681977760764022303760880097990360924997905914029315543602947279716856747777830882078017271694280076658142315674819228533091885293974666665895931085184530281968926162017395445867653210467626741438607180247831235573376803301715405315480428403404787960321484549250295467567481227349440803475588942431143373043706142461402411212099516179053157687873140625716611035089695725872012262962168395708409517656735052348085445616872847540895773310523185885654052910055885404620251269117840066322887937493838675444691188408571993372538488439965923348202662900366989484899540801334474906236481577190747861942527303074214959086431066465256193239421965914242366635016634998693594126866369222222482772546935425201038754907666045805665689734995035217622046591290619802658268334087952438949828517494903400160469340358336815859877638730219958048215425661590656217935870904080579960586844626147142705841719046797852251287234880365995204013646852231145451120536203378558560864899352464364322937127605674391279831434055205610400105501430054153375748970737378005852698018777152333267201700606414238099042717483477648837453786916578767518456949502903960865453131651556790875630779599973702818445522648241660007297944177040643459902226069181252431042829345014119895441630254001612814730573658835876954192922959581593519117229979623919759041659480700106947633324468387044596302914495586886590179788765783695347363920204290997335279441933902190580909382307288175717305104497952384575165471529028785909894923508265700475946855857768311966830820848982626679126738957131346325334052903529548867563349108049893125309954684570081210915216469414861490153995077243378100574189900606693325835047381046809369414453301423947377518213179806893051551962893261530509746958127417208402409719458999527749668382372563444148219058044997143550829532488225716122583015672082761540668287130050327141843913535004779722515537359244728732574153753034991764158809964303915977315363170014666626388293853296681159260307074378349493172572938180715062357327537218262699363827186676101717472859495469571984543837804288399873151347405781758477788929828485913453395015232269804934144342422970791501955236630855032892744166646745265231744759082831248357714395442890453243198733285098707110075679310504066200452348876962098360272571530489223643411849427732055843261582846021572700419118345460000821815892759556031386747432076375702119198906335226109059381935386962787213405894643099310931672292594209303201545120120763563505739424400930996671175227949248011618198871456715695135664054208776797620624692641499503081730220478263264516467787690279893935775180730662032566381310024639265703856177620523278956802976747668513444475176447245258312970910015419521622604037955642485535376402196633191303376813994426710033175743066999659383239210167996108136633285159070243224754758290857648393765178360991123343959468337960098971368228065945297746445434491643173749089986134365682572488751513214961238202166634996724654336285229483325007883063795521355200859851420246309871193611776095011817233800545962407163665886877579801876043281920402050253852643518492029157968922663004568581766187961393023545599084674216906566065194005675222985195908703895665391305994099122387586849251535109322009586765511539614926945349453553111487418703067073073762823238740258107067911870389654994048383178902997420247467498503991819954460608574878335866524706462320848454898971455020321161465955189844357428877919531709989618645143272900186033120652878863339256503373888835809085824505643946671712631127365222765179414834143168394494582644825056228069501372167870578802531885005058960874295673127425382893414113514109836327988541505149679002485724238672673691805875561532039795567263543170253025356630663739776208741968670619931753671598812221121442088237038107076777137595628290593806216583216869007668154133453036117384683393955177937753994627960160229296331274113950352838281635891327772556109315981976442552798787255896457661970963237823053375945420082077055629090442377252837573508110404005631183219485475786109505631350714719614587105169761852958639357577092454115019934309488848458957387958631624974178527859314927506517174185974951125191171329025534462400496594781211334835400306189304792243001524693835214136727845826651384912903320503135720125618140067375400439688289943969454204245655089655523052486747853094181946744093819014628042007498122032218374100529786239402123482749095802769942777980523749211359552468218896391058644776634658206540551964125977106681895478628696309809514172738463509286202100179292347089449182457456884662285001382686177468576630059727671080981917841346689830781965726813325022350128152664463746536716331509770497790390182291755774507379557600646472213912092042930350652273596118082236730584599004846823045812492169295795979120402568657598537278951193786709755763040094704613335373137328107644115322695237231053757431339894280068109412834869385111700642631717926249166481519887437530404753051229303412313771533780044996881132502543423829769257101712805310629329135477605614556555577295296310833587113574218521962546305790097450301791395338537202838383239650271982402202288468517193912359389657353434443819679868819189721380028084324365903979898299755255265615100220791561306614562154462171214057159004161290443862220708341310270604207500352937586907696060053295778993676737283529788896975737390416300581051474296568095446584870871370744803629574941622608524867574871007900646598476066221465086785553748183212367324172473733298481214527618141705964259555975594769606995921153687692024947208930205658770613534441244809663175348980256935441467110686655310403885738942699158158756763313819416869526837528039867984146524504664791372878904688702621258671326016012736382858092395684523604537881677282127733939035939845511624058786015972762485320481669053324795501766156439829695844228515407200353558480170272536000627350797256263034424695307780414001232930881060756106980124627158675108922397577874608007459606339672733531832911898374431570166493031496626727492617519531516038755245868918974885987343628694095202947640437152086227207635050661194474888264201812460300487716695846233988373413061761016097487866828296113823302972951563389247450920736035213224165209447877614171224406424236154642370720878734662426323829152503431813961101164014950426382981291208348880708089816021991124210208388691344131897766910831422819711684317256002914744233582369270822822644123014307636995757732132314945634125771762839177530672821931502316060047242723249592310916587962900404207136846789367874402799512877786009609955358940585296362406924977510586643331711946647675963855256389094304883056353737671657885787237601777198907356625457125705404419567156378977260698799610647882537840930386036287875044215423710096163166247653628541610808905168724065508031902300404178039433963229447852492299007335945716638803662630733219184304787227655637476782910140422893076965892206271437800349156193138943497066422408719380464987442487817578987089679165234331700323562877737697570675813554169252800596666070081549917903368245503652392650369066160000498643055710148907586223370986977189535260420969380543469086094557271822297420105620963121241799843325335008077333508134064868506409850106089208220531299184703356433714851772031698051632899323256377879370186698277615276970018995170835743224711358909573655967629680939597079255653225536712805691294393971010405758577840530214745169574365682523632042765452142348976729974398214114706541366845751840611459388346872777691633836836482824003481963433350230335004638534646752639162286310530873782876594228149688554426404746919686773623099563534611657208542471668216484874154810646362432849359529367145192505673593803047424649123510906071803201235684114580249511155126219637970124753905625513255606917386568238143501894114240732993434396575698338204640633103760461921959189344908134274635396523912634990037907277013460206160002266957891054964852458998567366879499242752029982106991858679685816544566928485857172858417210920087856234697659379383925707020199264753908928890137334521995646215057532608904384637947067313914954978288329377780027857680029528076635576111422758805707501548434089786726452229782340791712414193817637629286876308080994446543993936036998748243462636059463968557568661033724193311144153202108536961132201475644730695644237467072453670739121831081951166786220408108517947802007350937077634473360338759461757263015269429793163630225527142314831867481709735851362947092861207478838619693487966647583899624772001029951321460271585460244489664212210180090463277114079833088067963720499412920458627430037520466724580948003250525473360160269752123024870810842817123495800188728323300223659734819946633315140842854413055443475672404862021954674607130497185318394058150301538579500902955734401053592569678627422565190243586243207434264023130374730291319348764868021913575043664178900644196285166565689923396929465520661860556584531336682729308119220367901199421986722716643869060098586203460543508415633513879866033811548690325036554303719380470738377022073323076537334377387335607152767485780644573771138908209752529114993016246720470178986020737116783129020004422745659476690201704696902950036498771344805546569686939566829846617150786100559290054268664334320480686388512422067561569563376938732476869258365584075323020890927426460829604977401614653003264296633953818013496226789761706314613323762571055930784148667957907442235352063968886793702842017442695943899317134859186389234817289171837864733630673096142090624050147867220187527554436361687646847722328995516324614837555036265716229692896689941980307211147260604289939671384436074731591612219786278657497609357000629230206258304095645200350827374822652511499875964448063710380701476398894561606146579235058836629220554347980093240565082104453666852804149117363460139076861455444801558567129105441854552871254881663347032357614235424255158948841413246336692601505004531547310081793842055806846496679452636922997149757414731466086038113458777531614502581572469206526043997756538638120825115011915699600740178334023961536579187030622534621623677666513569180516618806185209794381939551344511871679838890491678456442524552098708732706857021700801012690868335988645219184634464539049847955330848243058938352614476828425651580728355669264395253387653158262894027909424281644970524954180434443049006834103449671525569685550727726396371947489206805129670738915922925190625023792390330929405022019802451877382785757728141177087398479161242352064213926895550030818349444917337044646648361575408141183983208664587485584169866892140065726422524263371881531147350462527731475478172419080052883345742258553535491720487554976161881639677682753443929971622248959238756324358467968655906708485847211082811143570220789931647453837578804972906278470827739701293344175970721128127138026231110134007498068507977995452707625076676871362024925948324637401083308804610646582907595260287909238299512660960923443023537155330975369143962895898711282192258834313464608318396184427412051348374597798745050240324695245618248711586129536910288332266058550658223684726660683196143341222287656201303248152467799790473637822125551141920149315914011962412900594986871352880757101649329503964901491057853680560731538508988899125808625042521448412359067303414686236103733875770827521242945402403388481955149178622091898818788392381480553670614711672744989591577560809064620351553918770306381683405886753234285525147285582741701451041464867893332311953805781313414629298965262433924995148248838859394721119807356633432469280062287326624457116575868462665997365196591686303434463009490919235072764719181717424844239821739371755498134065027664099431235839587143574188936723243279353667550663798496372996340737093681409655466835270863037647563267754199633755924056647656687116148227431983833263250792991185356723511845246918929924122039723848232726360503310495784215149999531283729032383267322884904558291845377210095004749980897123679564363564450539586101213751565047978642944290710941455437545283324237066600731812312828395050102732442217382179654466048813419731016530925772808623211259444466512796427306062575657305288443269861622690932554499260183022704281026665059891570254874092353210248723732789019750565585188991162406180784117402033958140081460975697619314068446208368954803705057872965964919158787126738447006572378628484942023143435313726751926397407470772585287010883097690743342787882958690586559181159796336266106935486361744527956794025357337601455183208664980332746473812496988688119834414706744024799880270116097404307187970123147710549147816621857710725994163354194292226178718350424423524897048860411504214280306999396380483860367510111602121833037793564129513713573590325846137938106089024554095781860563987619015391166705445231359729957658311708526671516771639791628714980011090897141686215952639352041557400026538139818416785894832424370904512904942160135886437056027262897483397014565922728868530825357552498466718136524793660447895972995912071772157800180128146189197029144120886366049562124914312893425853809207412931549041463859048006279315038804538605878026831842359367666322499009108022269382676217301873969077756574807327726105134263123098110046572517469381725583111692120885082463855349702666537895616322567911454955890903017291530202579379517109365744351542280040226809321576395990670341190098926724347954611770270324231615470843394077354449825296589785695485742399322978546705344392747410454133606896185771937998998890174734791727023454008272737127621773240395214143826984596013652897818500310033147075626121080881289491937233419639203862303084435925900399127716579019038054975970509461242715536116454505299654069850204144659198125388186287971490985350214913584284311836955033647352942005678788489698798507164626052538205482973148451641230102013272258827202153745791855671116203651774391168979762885321245443987789052834587442212357927404373251260178150205303999493994666637047731547186061271709867303604704417012726122314812130719816423875768758450416219288823886740436119936638865495697945988973505154940532222421793262650316246130750773660043698872006695545964481196760629082250433844329842698637261610884915088808858850949141169082408392033053290829239865397569612862716048237219071895598482361972871195859292077492542771629766817566371219781746217647243027820267130982284872971018571588816786644138260701157713952618255677855861982551624654657006467994156250961532410705570434880313365416634365004196400413426506250857219808853972416504639790142021076365831716462144629064511459048532250474927751352976871025225580211806484658259376401982309427038004996609882034348566209119639207813985067290731084507743202660009747262902537071117179820742714926117922574382686669915514453952397224763490560267858499847290796572907057114037838312785431251367137408485149933749565036311848218842992263229983599960566232790379541347046043723698508474054764962358534455985677299638431420649231249345584762692020156530890250772469068830541115623193746818278520853515723639746791023602107590770299190318893254378628612583729052339407024366960420879008767860420568989011085973630058702497050682960777944294910461413551696902039024082711710071624866823751543151013170541349119841434083476187763613791379361552772295744192870430399604226886189978746023107721971708785112127944130612305725385797176689860715816809874258542596991164933922340331060480458807373393395480939291841132775613550168620737377642724727458998241126007533615453614460514058389426073333756522445006677236071285663622380824877199732491605446311323302532388134278671307298854954061446161337593077796083397652173707242714182944872306415415134195710830818303831887091855551524146739270092361954659303458731061732460307724538278650105122543453299505937099453029219091804604626838884599286882096816507895254546495071997866337256090768055235109540046825056085094884698670513390425639678465338824259111117061677713833689668754144984288023585427339131668554352942518548857268933870723565963720466388586599326405159222946148417148410967972075288306285420513711378456036277834753357916796173004294303538308645019822087706264222580793539263346124432692407435091414030433856564405098872872128728840309702599936374017664035264423452439271348652492711982649189302975979097532936656828439355820700648606620972597792666950323765332411630480073784111114445245533901571269578051720292878370235717719679646508004500413278237001591925010746999201533266504069243164941939898282676795970634714300442230960898263261217334018327800463378158511995655858876442818435043595108438852468531378181110818048695197227403830245108012185034279999377407772728086572184142278729677153133074123905724264064216136322816205038219385394336378760478745807621422258481233466645263535297389698827945984355531433993402452549557519474808215831708176625278483380406973882363075864289614530304041552885401618691144154765871289300055800230413095620654176803253332472934591700065330045566846969098246525977593850182048531232336071546436409299103654411738056373092637256602077111961068021382196728162018089116629941766843279647423121196326442252201791544776814976460357306094700519572096095869811980124580981771718115953171404840553935925105372573522948062426846997075888696209665993695697735918100860645199351369601232438864742416680025976775194408868413679939573832762965866230339672402485409925738978071657214655468963163448929719459094100476799982923077302999582326845566827616990418886424194766643720535579953465695607711410727928550104418627748877915863267681887808751461838893498587937187515028676675012848942318794103002257756603086355878333422494483219722570020138080467540721641741916973805578987554542260095498691076751097565231958452854951254533137971593423921816280739283239872688106910836116058842379403055431581584742466304382776568069535427387097440123727633999758565702619368019531336558244664140725012912612482469515935717631802950906978737290105822514728518274887205199823488320746676010649849880364994797377095273780291924841902589398596010430179098419851164850270930706516283878624829378214117581291605783709045964502797630680395586515812153563772951192766869600978967791217302753950882540331838444590741843758720139771113896501952440783977805029915048941286862487937264685657732163936930063802942828927915145689795181529915471057800878374052249626074763227854451963839354066281409576288838020924418536377382784395693086931493772915482639028747087305699723288475731558572237570719170945642038157756693053544391287508221993801052450298591753099892615459425179728586054882918019560495768942684066173161861550458718958005987236080235623552133520343060068903488915901526697628154577619366190896785860659384245436513360202688638916276860644549394073401541133396245820782406408581884432025781410335894730992666728241928328884242536445035709726894492275040450941726887089918272350431273052078827623241187844724118260133323228842122940596229736218745347670341001706560066604378875917822186915357104648961582258044940105430900887200460418458805115992891073498947036209771520832027700262818048051741841999061387810488064887243085369212744373380224206588985065698067945563925673262244111952407301843655821818625626465806566379623800903384541206005800139980863235752544411933780400399267456394210272086958815230668802426742881329508203222477717217785275982692870694386122074019154786524302959810384121154900489550598297485974912475762194090426439903276402359160883608471520451100851787603946664290788305914424753818777713661123702281519501953580904434779038141147327614804976041785219250262410891807947133118746986676917520732020538852609029752781348624778708553444865640346729022944447281667465187631339880914247152634248414000048804943911830111299501563921689139067594717839529236420862361780645908590954446600938027145943381704069740444245283864801286362919365281022243150447590046820881776551711124298582210731326101965301770787289169093195233892714761304523529362806904961165926199348688180552342463318799829172783394715995351269521792238078695303648940589031314955863359699041150066094949831021596818366796391067807362611087452485454783460977012347325181427363661049862908692456197634548939088003314769468211542703382827390495078948787476737625534583104754559635158510292926741634570498702234666915253043275373769653321807220932512722519888000431771823962199372537655503399257620634632723726133908265912686833824345289852251537724198880378677531710597796810665726588078987415741841471227953876706055801177584618417206930140398633850515787401807926847455466429012290440739217896555301559495018629521691048435972273704347121367877180907337403039206770893530512040325752700045989612027406592149482049677516908304086070787905529945169844243619792287691751593450114793249928839097313839638288026301792157953420820108819910522320509603833354505401415427637138838522610114572626700438679066343473600840063381097704451442409938296140926597837271683182950256099202357290010903319161204801495845179886247904676072893939404828710482066580716937979235668525922786226051103221685915246578973360063733518277368664505973907804777257300065998434152433204548516284377775402028457023239646857918798376338486654615576095669248484021440541627330981234175507435304434416429979345287534393620549380140290723502458297701136265235833891006616689984600960712639035893529272001582721574312065191597977374814665314015852052708864012461226224625152705075252092226421971538803796570394869762481092586596239653673730287862994838428990476727971877433911336834191671177567689627602607164843911607739090261778882303794959907088106476276753539759225252547836475967085792134991697459918210006078774742493697683929661580345110583155127074087021453313619281954261003354047948206175846149144903123437005426137511247843785784656078405455351992118581112555428149552355941601404745366596869911078431620395331286053098306503674850737600011073486217027069695024761709297607613648476984066685133413704571022710774482739565272643596179170684103429856495885089893411687256384043525423915716086632482593374670883675076507020873414549944539909332127130089064201493609522129993285559239704106725418502623683532314592732150208408334593571010145301308910008818947148081292693719998159843188184680376283315576442271665517215719079953468178920745427552014965012139208898515829833451578094052507629669897294456789910698272634805436531001225005240124461415755130292741378627966346247046720054505089322435061296323030622051847523885698470892744953223596150329209185266065451422514892298143381882742108722165726695675538240306467582640444707618139759581612486638343303573945773390934021097162892151464887823407472956291190731051118315761535218564780036671749188561626932385625313887962238348863649910996541877382398407803132404563460628731584952108853135076222875028381678761318066803706815790233366791073776254145311595711277560695192094329438264596608738690884732919831248301460011795531820254845968638790622921244201880229117836672746072288730734454277811557131388038718879991319179572304119050383094159772043614231955761263291008956911487970665368233806282982128185598738916288345573000906246332683080151465298906235658627228036726679632783929388731971153838937769064548603057847264218028492769503493509026684879771153201402076348413817343233959783375248424674365421477367813565495902226568005501856161853555367569483449051372522760941101351732950743410745969395079988300080374352894981127609704243056855608210784852092804291459491718819060062047266076340025729180541286165037101023494179521707807582435121154437713297130153879228377783519620170212378193718652208956160647346992797830836330618207123068927659891064542060433132712788549873875291180243977945042320080778541505642932480485509670110527383250128411097708755930136705900739271613797972949317549228986254066407436600166230704610322302353691760892423722438401623019736959313458986351903667490008280548074778534018429717308732376019514312262483936030442197351244364097053667346466566611713702674268317227728642452715904723587393178765697322305301709335718289620161342908492566152180670434650304367530821891272344745739944376937669272200868839076560932705061600975053808776045674346952108078016226164554061140614965530584371079589321112947501097888109505182017859332996354888136787173090214403979206021744187284467359238345263313111390667956747312017695279049305984195992099117796525505105119490278487890856381225527489966749563111199762690727424847817308805228918285982347468102198903389175986769300314537460808982812853264102786855371524165674861076773783110347138623313486747333124552565121364660265711983764617830087665576137546153143762438616931098642768250970619571377743454903718795882065191945146128438727872904788596040899890656935987486008835923496291822286584276212376289467183907799935901564986920437561050411806444293307846180659302341499099425526544801738433187758186969174369082400477384237652031190677061204138065435002199155284622326374696813486427452533005015175444182047470187959854825330263285524874201699778396850912386170113840901863179144774059397035947256273457800169123941250452545220231811183233484528106029927622886582632592508463096363771277121844360840664934732856774593608146428979960808599445266728967343926941188425912133674832735151428279873343374199956613588582544717987349462371459703232560132926587159730253787951814512003419232079209935776701648177616619431583730418911306886266008495622396283036401185920803901295230200507955037367828146613746759997254387433903481412914330487583182795307068510822955334688560315196487141563366205180730273682021382587399173926891097257191723882612850608906175111045828934393072902103695752638814673709968174417076651023597870044921834969394448769920475882888642139554030217044411723659407074734688146057492135157202192679159583543637341781011008987027631205807741755387514597232644673548502090801232043281523832982653825425969445017257205134224323691999408601055574155666216023994985463187375718776760558967361223611081551611119589726963647576923060632834513379378239690556459357694883922601246950348149197996240569806324052642122499761834686461289451917711288877859742498910451622339638934389310105337099153135177883640007558880867262499805782073524300149360541096977404322786121140388114979687147618534327737531975550840909537542352856198280094516739978210236473034623601226115001541385193518148571285510180956822044358535512325696142868216266327977808396340742046437842909302044681017070314603860234165554584706946069782212880216867502111788931132850214456353041660378583780290678776816286351900630251619614375594569637005200734059106343910395815048878080673781363294337771580852090966324081077680787677232532859978380188929115616028333503916817600714202779093064008103730760872787887032960973273699201689364748406422584861970969925169037553860344561045586310606628957247104235057005319178706847588512635578712159973802731561051057102525482608000346694557275633880245882644073911114540182445227456896167088844835725539859575790770906923746778436924553888300513998912622456433348405728147431602041759562059750906064115859786475220162043371880409532907865398903390009447929808962542610215827113393946983627276394688295110688968304310536095998514600711003969925110172731151211383270159593092555391139692622668488968458607718386722461280642984659949913199227779030078055795680525583131880833794366648956193842821736715783656127840311650885609063842243427385734083196056100303956434972314770666032837625790887086680056287858998694853189908906439055790602729244287416622087881113432411750775769862369869480943828047353836747857607255471776081893031228045637018845694883301622569099457719098107232137162235767719609549000760337940931764745341754577476866757954439428066677159121166059982794986536167835948278897077334983822342031672698001106058660682150956188190720951038891561703034496278051163043324475267104852284706933317039999484147368612677071228213471219529653547905540208113344846769291078490958899504714449868644932444369178416544553139075931370063460006511169499355394202731521848718096173623542820128812487713038180578699592460436615410219136127923166157252226131503231845293203265202998588904005134203115560492425121219649247799728318853253286527620531008595194096167153297076562716829664806536925055304309576268496242042136906662072868836599345979546776682123627697572229826885825168399733575318766544797253870160633551443372964844398733302028145369805561835799118435445239206017829518418641570467253319801256081544884189381402929165878653499137010640507964434842013371899103466828685673639414589913674861198188355347661012301691162138195982625968826208922423571462088983937528414812813030140462888464123526357104426289264895868385879835889267400224695457533125492363974575779769501592612390959991778400849101455121027249975219687544862679462191582176148790097046819360922607103161896925020478898395015523219536617768249606544842461213184432889509926292569231060171981630251786684640393743930861400922155582709018253586442381870226529705414774463947809476470537966762624846359880311019258472339545367030571795942530246071541663289495239923644048291085368322643092171809227110733061551694068695351692602864298411121474675801698699206385138602060235144666101955063946708309209555326653794263459255248505498284893773775344631841836928233629790149371537036058379154412402287581755156023403082074906622602102653226019917084033575643973221621290622987486134743088197858291946794898645360264551769251576848448049955868652575780978352703211804598119533002134863644761632315419479833778023262278871166232698356508118406401806336611805504900955922508354192172464414677523675063715532894053714978126183460323438194343885779877060537847412147707283326423486222328817271726479750321250418275885313954196583600051849222436753404544516578496620653753818476815991806743465017916005840907899774331126083349279145526404314985575113663720431326792922001339708623027301707886174259067132120580683736259209912680534855667127014723258617967041792305681811940294801529749040324248611874706967268602071662692752756243415553147923571842326747664578854346978258826726580200597082125118245211221424916975509409882546492815322782689822184188930482848669890672204121225457987348350467412340371958140257433527479958245076157785533479113316007965591087892392283210000131458396003574931131210156536951153188248318644511723396530211617460190778683108870801357184736886706770857477672769459834271924417358457927461903469537127889192442908151365853714281173015943785956873672653774333595870269992206284969981346018439546355299351327202859920235864298965770263011170569150617773187818098828013797224038508789496364521937223527947734965130477117138084435771082701548328691151932660266441889292332141273606183521626256125191646926085523195416152230072070553373544134790377022924773304586973441985832027556093898278055207258046731689066648151017169915042377686075039045407760766483845160334880160466831787958205109799560872555161286598732152268125381965754254127932616995878014881291806908087488625598235605949409846916686898110810844411984371840870000181246980920047117743927440561603384395088183595965874017066412620716767208758302618234863863042694235234270235104042450142304125140397650104998286578262098088677326722907146520926566169021916776572284246030458484276702199164844255807860604349636565106161195069885020947072396910701067725857993967189825583815811869211993618245656566758687106224754336936377296635985459505068519729341830948676655008122833894578841959784445659320970502433583692126442216023537308958609307654857107099230009343120466288491317414373162860456829528978882985633166787381444246918624478551052449795355719565046204644353471350199836316717339586595171061997575566708654652420434338645361698913819599905050796135046557020727613094429418666723048283881173129260383112167437855787704564325744288849210802522422816160330408341826627813074710605995185757958204655192259196212489761471620928667704306178908089295949592033719754297562417854640127497977501817180236043492082565885576822724530045091940972681259424961343798996260751884159787274735475246292431816774021469261166573054896493629602842278305623702131590921731668855662998381020036546255073137675443000201469168155142149415840005796899772402798688111510003271643604204772304927599741936496143680925784675888244091913553325486718660734259352228288348413860549367366507771939722532294423871828817624060714827429986158510849352013447724291622077723663820379413197722635305358923911629998038541907124589744296438284942776737237769746330437459746243063808682399585093977170381525464056318668258596252120778512104097669202184074883296654399129597830756074172312776481359423533638730738775075046840426772612202928557157012554556503908270185857118471709323035597479418656261797879916198535800096470717844953295755068044250298354050345585291440641466125383946994151074952942147756560776490939402817042619411862001763831737106785542170965853382710881666128018242256137990284026204216991416524633557462842662522037100901318193773299301710879256376733655299673733839587282377031029941543534934785202619400423283018816890769397666161351416195582126873155708298589811832657122299892703563181131469062215952904164251304429569668056793435626679621227387000507463283945751698261547375791643223983449981343151053800255221619080800323103141252335846995301237206412810118329872430956224825314830749700599331995194032053422942944021341500435950636615722412047952882383637473477469374135605154695618938235990759780006121701701213968022773891442614607747851237775896992173097078956773697463990451513002029928362111541687050628275345402716118590666263322844761478059179421026431752618572108470227701400082818475501147579566878926741109078275575152604747856472626008213550881010371490261497317047376570762818892523736851942040363649630693054652355006205439581643223661249059294894631406145554522470472997576468825715939098860157597924037366879473053021920676581931108996197106405196055189318655402919404586299557782909145311982748168965150118205307692770401034543229097097008741436859048957581207564039412821816037126627888824369331773233597173072662227248374135809879991021555337327403704753148968686540043032243255731638028001823710875560903753361713822087770058058546321377296476279330328284926450490306280149827692732594828645303085510573664213496208625509547452364861722909993131444957068523641073997850467534238467801064400336638829302133403901909592952509921195398754066861565999410463199642833112324465080702421204947957212142257067779940379479019816876559196562855031161362687718891035758339240252343504572091669034336830140491746670775714574181153378101632288316865767463488440753727334014490350872979760726883306493936910941394997250514663325118164927432744788930229841699626269256519027120936089521983914148163802451935562808106646099427088951937687159305741307857755080348922653982155582161409719218489069793499525029616734301295943384883383364446909904686045001554816345798355699572582831939609546928589947996510409509380398531781787602859900995027025858322908957080407156694546018493745543436360628836177316850077544305543291850378783751617306209406443612025194460263846082430653956784073896343756663991645581455630780318357476974114017728649926919539234482958639551379503681341025417817635230026961055077910880233954528708981237328706856409318976443512749865085811869230759315850330846904862211791872659093614870912563848422534108772696251947055127578985045294752155431025143237631745157909380515701912547358800334683947374544918184028534013721780077686259990873790521457044133802197687442657764622324023776672376985875059848220928669337540520432344059260616258138097353529027872616666425863002213642087538645821532676928399185722008332928363751162300341295568871433924114230552582564967160636132251731634072598387549992397277259644722657359591663339940700829488433237885801013636971713436977280934010968996581168850040415346391479110731326658842416355398482164633159707553094812467642988269498970219501524919667312709216140357295843147145274165000463631659855116158710446718404706891809004967023761445708726992810086995265278948706989639090969657222582452023381151411641286394694957380763551271455629375238349381147257527232373967749542016064014823938883334573366604368833486950261560786114099121111713274936599069177466396845987943376248787921209046121424112405846724009109293722502076155657635444849890278119251813073953297196799824722784086459631267553246242564577164557793490950715944663768820237357369402741019381241092563174701925288145799630346037668542641950607668283699003694814135584868670417964915132726454014061417381761951711852549479781002201281743783581478864173442279298608165826863314314687860424409916687681734979545776443612601814891345860177712690689474589940550582642365566458035645826755702935812695711354145149279555550423345407941873836423263887189674977544513655066012478025062000269468651036039077952006835093249452645658756268845299468618458152759754174064319639104665605210597201186268000944131832763960962256609590984609063983512632777689082463330645549596223176868711703386618894770145535840579249904180211810976813885331143842521250800235288625649028042975273476761926798276586226964954774516122621481537965641648102662550207482234846125554268402958096970114603766124613832928458371726646900589188644844761481692544879264390955268362726546710647525302366078752692760389704387341227026298875672804492956206615209895962295894563445312454550987691610802875315882587972297985583455863283761792148785062575191918259679433688930287990993005718175509649835094567071179644993975250336584849015527587593344336248642386525561387722493416984372082744469689482868558201080336417442027479173068206471241043669241867741683219794745155658190043687545858316849243810153424805656546775315152221550339926685263812210913359126912388622255659298289118888955916187919618485104988141472548993642921539015257667094476979583151031657723346691903233326130673510970679348586023959751507449756862845500480603773050006774961277001572475174307525099223048896760749996325139195762946192266370620164345249327580771967888580552772970812464809899174188395672745466998268868325380476204513630335875384871729912198053353119509505362103223173810556520105636126039036354453115570343369529051467960940829579427464540949345218136614090515533609374607131662480357179873965997802208565618190314866628487773565617627752287024658812468888853357273947109379195430483345413820948475063091144346211549934365922218197922014456173829891406549327254296756715981553012312703994608674663140640128705195946688754715499140247186428549897822664464795800289097161278926695851275648308570575576597005859904245119192641327077990826823614269156788512651380812825507483400676694048240728554503402743953651682733907561629085435308995266130080192188247507829903300179789320267048262311488714442237768882741669156066289284243357786624386203411191563909392550339541651535209498075403313819494842869786369238278063802258568806776535210062279934884740035964932691104126732845950033760248812207702277288408649642943668766109866040622040979406786532829172651426413716698823796639666959249315260825408069530657005423673098374589360005610726976167856562972702769222957447630657165745779275307053235284234764709521516530082829844841357846808990661158651373064738846015563837595705663285157755037078435990974859290981332450014408054522034953086541713087725988073468973688065416630013137199491711790854269250301773432503367207360514710961525913383656800038867180327266328905662537125869283426202327522955098157296954770579776718739155959128174452986011429573945797080008848357347588957509262817451551333782929384145137080091344510984314898670980002176053112386036784745596299795349424285523647653982608397372541701686511731083601370069024050719939788515758763008360456927720944119100644617515955060439850733313296236379798851690080924936823833716654074759963743868450378380408021756476756381313503002978569514416549495540272000067080789078150359511048579793130526457326888145614637541915822660319011786659046221571836019331439670065278512876493392089830841740858464443437781494474652625238015977094185822554189394484548034961172983290183791987199746878281686400666632156751695237173267662813917213593047596857822869086897937903828671304004182039925367406483239919248148457105643406884548357239476537415708535542710957014710103482084946507193299493311865827764198182382534202120714530744384690733818593585245693254699099209715137474874629960726512272114165001450116195224382552165818808702716808386399652450299153162345703030882268048324820594428540712847721416166273220642504902318930688417931027705901410369010431448081608551480912387148596530387998809713045925159872738926929407570710915163666846679687502320864054116512620600192179184894152694057404668294825171313279035626189420832244910263696431110690120579290300965312886050501001322283938914928530080636500849034875232168266200619739877933167096765091103214277905307259410237188483284773937973967584017406784300172449669783282282433534884544777853146514506776293553874370084317108098999539273695729697337643835881875731111112322537280495143394052607832436492083232744429587004072294736280374892982493606609796670266658120030236882573174884479156310472813429892408189357598768067534813934987584243567034034645401598922591266038880215911298577890852594046588809718489214456008475111418933329968282544573902485243014925005507392908367470833900043064263403683193834849588606483214369360524285729114372573707686210130101518781077267922775805179191196411274845017676867112631901492060135914089329830294152212033875823134338476536464301742631745434711690321500754723281121425982146596732444242757154296043663736685916052925087583853667843849363352242792198567915805739894644982476651824764953668690524179074343006166223201356131047440390133106755988806298818361294975322444251389340785470268022577045299524241123728508050025904509460067689134481310662793079124923341763911644738442693010503475791805009267511444016611451415952498286537442712132581123377994862975271469879858071619946900299095406517010163146359955927101901452536929254266571889042229418712795479845849153856437837156288092930332828168377719554382927541067039958983682092554130193701730684202292551977368284176405055361795757738271181675844779363877012443086994630144410400233603193262562168738442956304478155058678790818272531598171598095101747861444812196875156883236213400627461126924019521172893488327052956476416466563180011832327466601038020583363209864491703426097626189962362806368928420387259971156912394347944973764572973611396172132908433478958082485672479643864751481153945399493898684723190778222980305982851051399539884737152197820044622108858330954052060250205228798463544692056385081822630619482393878749500756013320880678309430323336481293836761896063684971246687630132720612109976515416803117269417225539177194229306077457056791698002659513872576519834467504931479514651508868860973516281381097473718870204287182061837349324833866578518934329639600642337056824274174009139381246095981484506665996289436854363858635882200684815408975870381916546477690783442584376542509032221427367181825316482966057195816588891339254602661420495576184065594509426863038746259378026076704429856167186059411922449546916415509728602885972551288433076862556403883195694263722403041822713957474113416684641757463790860062649491986768755071215473640580685871848035943004995660420870606744897612387489247156909748109822837746238382275716976054278383475461354665576721654929291877287766079192308481873009550591352654666299844363710373401893567110644680361069796969786714950707044159076019741235192552927935848660485608957486149428352453372450289310428110007039863256713318526780261896056678259862766309083101050715124962068330814463707231297692692588354514503500793233828118543693737262281563111189970061746998803327352855979378087951258012777861007248481272360573196267001910997134100943409214076603220381132478041326089480194403488588440836270098490573644404997223208165352664823324385231620849021259773776794691374674516705642940967609377060633450897977010132545433604350550349338531212518189402981735056518484910818120527345029594047822237474726976564140154076634054968154758665217346135457573640733199169429161225891516213594596192562184133604180354261498822630165813139476895597205657665419097275402112945519603334757279134575343162516742434704156801384818082126198581652673163161471813236289239297247412389896503794178684460220938074430000462800189971980813018873793798117108767099648633955512033075413065681713884379213907304100766601517212797185568540196728263358971057221443492666815193756465759789093946789468503521617703245031959643690512223166649841665928528563876110223901698542164128067447584162597794417835824260624174123316840449958883685107797691583464654616157109589388383093291584667742548212911515977749904126062509237845529623931764774796232550215776076622715957466273668209335197949842328125063462580472359195516802795130432967353267575462469348505037354365942229006331260631393393514699119380167391232114865451256716711848905591194491877968797930237610501773537891797539705493871533787655957821653599867308341605208269342580982571664278139211928187714335986973706905479761227668076809108681968150079588389267473329486629285953859195987204169354075048542707451968430862684639020274081947153873776236873209940397337911665123213445942542325463953909394630175633700072731241234197795237811964833150346928578123754832858895223008952378576991692696939570200246007103084684054078652326810207183321143584210267495217973015244811969980837511635135194848380475268229138052026560003915780844090202957140493449588366488421920374898086564995420610823291694741128790403823542717726988233069425816993156088936529003547005706433913931590569577557871476642629655262843927669201416040976379668301679922419265627102859814910236952840437522527813841333407324147161604066067294074415986879356408893333904424871055364546039337795706493463359577866900429405315475028578257702916665220554396238703650288708488322242958420631249732344804368644698014057213121012472340198519724278481709771445970127658744431853721241225084090991339337449553585252816471979065159371776293169667115680400193029023213590974912355393456025383190644282939627049649134774840268507192263805720913262213548278011979376069726471624403858758523489072875180438201881750824914773295175389898300778189289267435275748976161660490374787354629714312870101439922870650144075960969903291724392972881207988387422268145793722804944649102189161295127254473598330552581019535842207621796652041418184368166024451833369128363594672808182595060051660386803362272432515962121534379612467156956564049835430119319862900240345841851838439225798936872465276409101490311623164669675194214802521105593749834720069462312738434347225386071382867142442240225658461802217726130548449339600404778365500564018170875557784135927820181222067000380660910356736040817486197608492830119493363194163742181788129154753858376927571776411836472593430902630754651808518240905985404745482291198792257212814045724905028569194824666509779041599669884713714301271667317920656851792065555736421232042230347849291516959943810597343071483428303792157175500670264318443470036421375148789833444637939315202871568001489261575666597350587976659670087485425167958263258243934660987203630047642170028701381078543885219917839463205882215537442532548737470892280995741072423963408015488903104905672136777450228095148913959982598528764922670881748125904433804450740638787447240302012294250927991741099626964065565635942425828461453060402551581906207932601510643174824222408480693920311549194763484581690330235195645804154994864122630340935340716017150633726055534089516242810380899469069596184930985299501227437449642327751187385629319902414584335341368713610615033033985035039279328735118176981148158780494113708503681143044369373990613851474878975336558561049082299825689310704269238042354365043071145965428770260315059787147142917169202944529852696888092052578816525723407217966312492571055471448672084806856354569717596598203064938033889757646422862862630874166192978755739684812390198564405261011356604090178124266724419197713153292246361231660294031784405601830163314936355442432277247736526883696593755503693927804263845608925566510134512205523490855075524066435756875173849002986012107963599311684576980975371079297879461624860981631454400189910609527258012249159440860860649379181322470985939268142994154793759065137997312608796329278228464385826829829543945779728678747585815726955675607794497100584083146722230645732752602753704950126751005234528625939270197726586526674999150101468548464277728900393826780975793055207248331398354100367440835741012858645105645720631933628739319094458249591555293174225752886848976739751390491442440246203409198116919728746323150237164997230957234747762325911700680987059285202362652450232280047807105158132556001651240043051091097382834332168030501196629809003965845914223822602933033735898661259601930113552269240188133165322860147733828619489002087958587477515535862501757614016705128166656818122426656119811124674598529259571106512064927256007482583380241122036228587358028179799073078618676680789281118619039902362089560527933526980934479029413968921357816930448552370431830286232263459819253977090944277829940280976717380789628216036931190384423112787374636490254240793531425322196346989523433928816631555474988634454837719837559447869559560177187759090880055632436906694909022682939284206088286093586000318603298124612429675358684277662118468996409076188893912917771313887715308976278334355639359387511016041134409872290132611441729497789796896581550626048823161772404776075518114324659458423284348580976006917620684031831789646307767314470892908467746240942896933833733902210720589246882672017576083234168320781862846702896712189362835027743808999410780344011360160391581386512205597877189496037481567291636728983511512123465872415845916263840092992449819325370795776625380560419342599713903739258326852104897992475575247703508430304793415195775325429215222723723267982944143850611283446649243075848602978087846522872801219129348938537722791596855795400293956935230592632115923438041769286999425024783310627075945198121135449558985963165647278224344946677621826946548938975012741969253230045551560649276120366986707177629842090599382428025133126254779716710063875263158946176577256310292902669275806472942551272749265766471925483149153207170006791937941676951649438908464717333890116637155412050416084545719264834888785608424839951665773227479213592119700228890220076597682361569263570876072021417580059188884215782680657684970604918616792587029128476751340406954049741303316204269388651668130715030775577729508591472795888568594989083999900520311999134159990760516727963047443265457583837995379855375771933019893206974497329823983755521123577466635879163895125261700365502448697369211897300469755261538836263173810798557601549271345511727897482104364192060738576493230342916200071414616819694735799988844165033012110264556322266376882127386253526824194646484846625219522831997925746250740978213637929340316845148076176400123184301969763775705824370924660987627833473794630225923628403481924095614901081154162857467481678746514239563905290987577841865558109367448848469016630387882828777999747901032540832798690997038324604759227544096854395691547526343778662202222960886147062778284691159579061245809116745389441690367953338702506471319273878485328388360052218418124926645520989426138052865218992736528468986639542300831713970507715736869140762806671489728578879549962312693976155347040912604292861151974047272139628256851422009044901093029409167190893259060206159503165894334095607128050764296409366667976458023039664045275360529403620806446984985462208792634729248089518759906947398789032992771047038272471648517224224608872549644875295977652586751914045817921127544905032180453213190790793431039101582804910890838649859682233706260752979353548978663455446141513267832044984890265778346060797061684264136041971495676729394796439173144293052133525577990645534740470289841278194537280749135704415976626616741722004400213677443438113641223274705885200554518711226439337940461647941229677113932146858716337791916514420410253686795770824423160040719192442266488351036073466738577257958580065996016761135204698014401408608689075823941768090997382493530466935134831609197507646682455288652916824293870672174892053663116026136976038943608853622553228124054261653915005728772743220414397818929828282500970719770811175846446331328979836679381214479000151051021085534765989765760458912410668715708958832057272464398353187148960289781432655889675095040792134211370832670920660115452027946973384889807590927952957600580947761681301420595582744529629859794505639770523254065818897674999391452106779958911813888363559938954077405328013102866254584210666098540487384106644710072993893586221463465983827616252428042397701184191937795156822845677229688487624124200600782503370054861728295206372105898418479020925510172026999042434993532106535481678523078250104721312064892237608900787780826035459105716407343784620558314322475419106854756315537143763533200802176952266829035855200124218342853257365220527577320598331882029848111058786330810133992773701107080706670191055576093031278859055931975194736282558609577813479235507887163997446808077029902678448281434430268730042279656679170757692837956207754708137911121176190473023461347084892909047961188556250695772620607972173041267853740588987460654232331727034231040506610930513269454714657613719575502302839587469299874321383252655579673203517410094371342349951984202080293268811920639017875106369100343772379237299610864956536853655536548972389097307643186307245331672783173109191982170957437226507344841427571928618394214000508161601263254477403353905048589319359742984483533170644362421457684962494131436723353516319165664394669925287385688146407531467881360371245235088031796886490128313198721001162258763763123357923822915596402839215520202918734722495827612606746873691145633732511841262058434496598652439133129296554593345428198501172713885770209579872130950931436201827129155536835275771718261426370715601044924586612932232259920982139763267911455986623149354666748571623310399667530716726802273968516296291301249987371239139874840395012246767239661675385094603583402269351622729781810676486792101667565935547350657833389601422500614546980733093478142045757958958069471842873825607855292100571134975707943011449639200035564941565660940453603964576629251314005106448822360431848602243709627960049445732382351023325902510998468435399363896552042660976525352231563567476639536218700168016890405643796647654556967992024251879436938989270130046063118209588448620567109339963316922622198655185782231186944089269473608240347322141638185690702455960120656085022198819900534310048711233576268044938246696127279450356206512366849876204875717857992690866843042504148746758364179561404946503215956383915079028955195308445738558920837962528721315909527759593531701739492251252841307289457561034113808517269273124137339853416585819247001393750162915038265187459871968999628682840187001083253661227392825291509625984085155967464651599704817558486570647470786052034391627741648793856751738964855781822044284937718006176085052597899127707539953740776424030372912157182616302493294244698434949040277685869070068725775828467892095760672165777336181069706507437932091199340222584133303436759936085992755300496801288612026301064184361600963433117305422887995933183049842503084651646559979283686465691904789889676529821932048675446829667161596201687437579852715212581851846121128577992168153360997805820753554507058811927451866179654388648164922477963628685648052424220432058262635289174747130090824948206263674698824113726027008584117721270904115208260095941199427849655652134456184033434248073598287658586448139054955119545326559974050869598737952854863127577394492444355183949139993613692969268528685150838404063832719399917839471844873400764674287379839317218165271765322313421038420192849901399128047651899939576402177670353492344523232159443560014202426223278942607144078638648230673465940460331278300513394168696986264242552459735057306599770199741220884419568244531122741357204944691521761531881943107155823207236764657718575850876905230912448451053854343829561983811197816912922018588973074906800925505607372612043474768394346091092302418386616805609127720169169670955758273626800157055379592116435557826942625903224437837246621986398095856398260097551717617642040094972096018097250908478605199893629298481483105867730855292626785050823184819027209383845019242652459914940399103029492779203266250723085567959088165195645868541750304134111564132297775247963586686902866078613116440649266061209049050128518508275358684252833500091587363265338930232730367166767224763776227184756690550328916302079193788271775939689959047913691889864787389953589395374622084052940706859165476553649050062211931423274386899056590688956869046763521893598544629514740219837272728201458715201022828911760252178214637640615003823709322982992781294063291696827973541484026331342986050467454051135884374123625318114172518382277445508526311946083472593209010919847939691698020382156870269163025526643838279313181221133352562201585077564611045565577359193209213068824521795628916214063875606112054851422357659852211800876988391164151070567587771875192404065006396490405912429000553103682075186271638979556810258276094858826781112625147923033720633522545402047992729567163724089436541806447763274345077449986830874584041062265673210383454784107993961395370855947679031088262562445028013713446609219016129922832392077133447652060105223799719852695675483781711664262424752311951115860998579420309359563250659668613461920669593594262447535045069091204184456350399270960594687568176730583208078145472600975677277797832155117146662976561409990498983032371796325992006248965521096958931408080823924569325726261445588846927112774717791254271736037931885337412632275480632189742394419019755750515442222034352538001297506708223024216933888802341938889395554966949854144521172363606308749485134819359288338938458429555770614320029396398653626275482166092543738606827365255873134388215394146866817741456705573774651788948158211891701941818561136346201003867176864969521481862539060400863218729909047605662826905883793801580751504403879007316720803996321627514966546104014792004040478420038235976163530863793018766636759857320551484634747560708998811491036875154989768158441583172696596302940471880188170465406426548232118780989600519322209647305068473968272373540988819215510862744326457277805505064205516389370349295180575920470005618472223831436406869573849539748532192548319968299250297749082442486692223670879815692653364290848548569342680596880708628329083228050617120808475122663205246150072868284289949147452877548570877600313754983504633711763019958072434252994761738607467282020171043017681616817737281651542984888460649962713878567783309873705577586920229741052251524217792536567185988658432348176980365616763066718231962383309380240278325412829845666756449514537551016721882426235745279003617058051845641251016082907795651414651169751512463439519600274048624111179823710214586638546979003490758969375342251324012839555391063929504719894727519438315849950088706540481262337569936340713833629596753765348339649869456980173777033194337312282448919970387395047304013444018247496875358506006613692120003627940195347192264238868172685891020394289680016062738633812343971114144582344818799908421075021191973083678294680515354188195921659398690691178232250801474276095536259766577896342047881385716559012960961505867146723406707910274927399834993738552756880017680778349795601283701168566325920838283223405830508938097263188137703942467504915170369464073830295048004605759269764597933077607654906475533167842812250481142507183080907365089020959967267115579362446130319054416880083803047181321694955038189072408006308379191271956436600686665314241267302744610093331087013620316400362741507995361124424691294928647973016962472817999973400906370551596735689198250146112985422094585128511992898600035947400898612210819131032464274852455546279911627807320207564836138317111972563815791182912310552051064206750020531839362464898034158647950277348922663380601669833089647980960102620162099896703172300255430666088070122547382146690975157802320767319004286933254198942711721429011111626611291884971034677961335815648327578995212490734802434064994194237192444080658310334050801348011083036544789705752166684640462544411822806715388767571553511814099198595810403111766138271247100585036383588195977633044922443965910173762215578069635028170482226823370811786335187744074772287878028686597731214990750275871821955006049919822071806641003348943263908272017295187159751768097350769651194023573614883257870519635450053110247355044079177844062869077131987781210312477304798932136048228109680606071741181782995787589271784648574486023188463225048543123681086914056986878356050787040806772359607957457883175240455997804690776255654905442897335599476385906596231179064574304373902753790091537853737317022784056908378812085309738338755056275750920483181958769339114401983238294090382129726944586796502585567467233786297623868798384754433767655161105975072384524827249024444177496566299041395735936435853754980455100335274067918350569481039133701521874574260684150713230009520034850226384511212113586952408556022391549536351162230085789053624569004207722178675422827364447220601405528866588485629576033440103815599861247281961550022981647600334970167657611682539508835525792634203486127111838929071566190396466848729075564120816018804904699126720058994193809756522965110536605746550458397815442490898657700719760977915878096158789978518522069645550325669985256415467455502148315939826176094860589481173272993740044523564213354459834368877182228361042584876798582230727546612830208670924237158053067859684003420589967719154011621749872264042056460920937575762807237463604733761333217490036589392770705970992359892353743745011569717461188627375450048007409264087561618295958078037681369139655426528358825271450046538221767040904799329046924979455000281846898354737008921999341789695665225003336997499799362347727099349209913657823237112733070037805695937564446310515632769571972613273245240454878364608072611070809691494846136820290509537355088987554857580167684522922403951505676179600447100300534362937124945852438385187268656514648239149028844458860045354407746807053948031533236021283192314786427432029702227529042550106159462106457129277558010987495349313176263790124594804396734215504890117059626333648098719377448519937687965322968959692049501277273359484611456291429757337811487069445931298779391309267594912252521801219478534608709736242836546895947369305591337148769573726198883497876894168191384023429811250608071105175424537103965868246693265769006694722400601172748654381709441015355969792805702440504972188408721057148912549308735882875283637579474091379196712170607584463939714397321097436190855714832015224021306315322819502364143285081526152582710575402428573431822356733456084486686436024027993415898817855020873443920540744181280291090027241266731022443313296443043123222475812010656733008041840441289073773042251373554035154182360471315013311491924710538351488409576591144392451053639245210253377557147807031153225325624825434082559714221130451039230969224403100195348358544175711788253848947655583562585363524855437406845632986116536796131227409522533109852409354003193040895675448043744573898073259535606572066722460973500318193539950473247791192938769577029441504526152886279198003230615286656706957586261186057860896026400889698180342162471292649026863721394945203879363810029042810361064359919391708460729529566213819356252032866769191526983091878993302223312271794620784899173866186935651807973322800328606338425114281968700865088906775099371484474009219680418268084685072596782966672751421067698288804765330317300128181628826183692601427685093980586495717025886788815330503825236459493300275439184972859731781638517718170572825431143240271899193257786139370534811616206789137825070794809483389821304127105591494812314554525298617296644020136189306858815592257386028996258992389426938151139142409180887263863159804700599316984026198939726396768977903659678545879527471414741639699849664078970187176400123058245903792557037510931706689544139424351148768360271414100384060967555869073307507955793521000610947782587714935671505407105742874676063801260485031848973887891490624908823709452673763255459610572034474274380429064983662508463340998214282806941873747951485960412777899542263150646150487865780669866106836717500589053105633506282001822650959689756791041983763313886792700619598199369144131344515012779471675462955700895487826993281392381991613268742035718110496692036767460189469647284832840667316026822089787053744425979457933754997792942618633673792154247202989348617079020180981729907994537957091752142188705423671303291723708509485099720365941366131238577742117494590410137513317404875420416331425295559583132184930050095384554984837377673728294743288527799573611042688267489044855350588839288925405539964683116530093108867340706146748770013430453873334602883354562849087935447904592502923504414431849662155069441695854529225791973508299294845168292890847633151683216802174481559805985087031685625427023609606739890610311287655878760723073023045519696843222722910662395076319711841392496365146821687709568277148919088538080214463869706654014397606462658020385909547702667285248527576844083256820681350756232591144731535608247113516801337246972315450220264419833390020519450148565325662811297362847844050667583706358400849849735413882670223436745525195392186726358139866958721199284199299244534142120584526056148482376137769118610233585482474588186425569691332315149880848274678246866142203177627990967243579604183429721703229060556865710600503745575237699142066330246579039362361082414780261852253800901217785237959475164722724502351747539627442073218307521633056223197192378732454278161559190027293908736307220492875884797886204902910142651011607361704014288848898653774587085202573367269602719720729730135602215256944329864075890695067385261284108355653552110611351874464711164426888749391649020717542064833413192352789775509930173400078132013865451421932538601760149554450777099262020306358230864697832553720520559531408893891323365102460914382988955124978190872968189432369838218125719281757417467926097992535246145916358958857056487727249953244905593436212565455507789247810244286722517198824406708079844127905403809992599267270631749273988412821134289913998663598199588503200264183020576456972538151890629277434258467524409260536560581481531633264869613194231824572091953995664495460647274933501838290187995085898735287998082790199257771810981056813951725078226312796080002333265824640587821302796978018062966404518922534073068412815916126192804472151708854759575744529233650650024368221316389765375806198369605171385097418597716209413683406067376720974699035163589926288039371602699034890333637430268840822590178428198898995944282117255614114493424789849539616144342412559796686599465478613233970353419767385456018258689819498331355267866716635276625464693496936525831146856539285245693013204051611923035340818591218340680689558075938759601877407609473317287636125383103810303713314209549548822523512233449098634507451927285213688849608902450511929094868293340994354619956852285673664053295984872279314773783890318323068322041325599872516707508250605961942657029121343400599746617570068820383667775403293992560125911210624332715497494939242445636202722829037768805780037775638549455931330504581941664207260137059778167835698416280224341251489705769990919577037327752558694120023566227903654645867594135502055971830156693721527288271879005091395031029656485911566736290297866171408805683191483203071544929743916717769954462270819027059796089585885969185709587528937832516069367948336534628562937166850912531938071613416852767561164349736455829948714433537472979017059383543811153180270964182801438922405425683732526360119664457738768937247355431983187263217330730046635731833934425355571262352261855914884454435554778087164645124643063483532325166922527947493351391437139219653010532075248440793397498652621644098097080631498758227554898925848947047807176188765279871800794785291198771926952948002088075938037728931847670693299163856306762094708309502942990844584805657508927243255558356851705208879414960951356858275895601559753256690156857835889096793880870105000312446003484985439274124655068136436662462548777204501033058171099661874575993543952951488230117902632682405695749783271928513863942821453975404456009123567064957962103330767676267963912902106246284749020073685044080745435329554151756473443146523500720501181190434751432324642605111345379951427487083782000755273114199860782127313777661245654137531066922781032444226021766969698316052353186048386791939220147759809946903267882025322156248083574993759259429575013071758057139849566436391092284571332773046727557581337572038355257257382242558537488738072029239480622183997511444247334949316169975367308805311648070053917103684644690156160073740273872807372567507219608249534823411049047763915475136079912707182120372072657553546689561052979435936210791188545866096002470006221265701028319096089124193232736493514263780097201616020810019537855578791967266842782990480147875469449789061379858497947424612116945734651375480060946645949072073727082430081358414274425930314616986842708075581344020910057970753010960612421965221406326570914081121001304227430029946680735783702921527418497604782466354341480407052579233746832378331323758775319479802250500933200422938233385411300980285224803521448835371526173384795350747585747800249089508527296104294017147354897994409083131252465403418141542692617041488644600256291891492303027582337330119128452502519314493419194592893247382621272310613633443056908013408732539193900154143958937161233480579246804937015164106986297289899069055763657148093883481954063727438153418937445508067739209782372489195739669206895678055588974006407295921768911317711710660731674700601570449552151696268168013225590523912939835150518749881660378239509190512359449567249533886421750187152954664247116891972636888136948895020755769676802957677245676611469863506514427783980036269867729015701781218743852656661871110140270550672513176400912846296071749878871527219631111923101272606906806627567479629603123184966105149467674249000533683376788993606919888441758076759747079623880805468590242374423977433431043872249478023550490596527020192744709187839583844073170944970981786030925877525032714219674396702471383862908663140939577206982425158668214757209727477568302840169999880730173842893356486827004534193028254469743611595207716073097677113778331759801804418309804014309298078407363419492718529368273722730492937417185200723806612394818567690830605311771457771240008932138021060862027766466926900982793995030110844064606701940380484226115618755163944564765731289257140482000804032291127379141064199300791092322401545520442712216786969691158447321066318482572211465922762874762608857433050252807785651368432075228363224503682255363615121225341455153321280265050479656491462464849471490555819336105574457995179464963819539595233376876853605202520838259847391660850454262951937194777417556706976880880176317601455996760432222620102449420505718727672236238142025385008315441110658333378574552341515475420734597385830193478599300678863466395461273335629702197958258049140592405369519397270577715847053579897915480260319356515960262915568029321751183716456438687036897211386604649809613014563743950449056238224520808617847576240671629798908334296672749993697075113067093948327724326851258898196056551295110871116091513630236407314934807847620354310073101541180743224469301613886887053711336397571717493472910562751636153965739768309837128376292229951679813043641819789279299160635334590939880249593622195102878083919716509997568520145088149618928345059950944347841320379702701907289567689830030169093677305023598330015141228276402531684889844144786761798171890381598573249004077246695276304855126223194835136916100601359640210141199430525652012864244650922164575105850593815497894455728115453448314415009752386171750494718835466508638511328793157089105851364442990928883453312447673420003543388629944703928709241122183599016256341144011205453914094553466814002504173287163092623334557548847146980356455146481847994294121274079966041321344290228313600338313753773133150732037253486294420473160705697929565064178874888168876528635903597387557618072813239337686361726655528881950997359375461062200539151742384776449957335695832931920400182093784934899794320602412786838502244494643884304863807345252801927333774537787764973220235413248016835369145121985960725070800712398435070017368050658604659413036302852567362032140999628006137388157561172160874531393046378420596296892956663553466306475396622079127007674758060019468560398068310939805795089840850979038853811060631919831132233769276534712690756170244554698668877825318121606096729640465038267975854840492587603841821273247450630641847756791683900835472651603740337043958052420591334889127850600441293222749192675036470835396529778964913104205517698840955133081508140221551531973481651698970454248474856897221075442149463132066432520064504428898795990421509224616012331466515012114122658867055315951717690244293188455848083881388424494879578680423642585404996461880713748453102585198616002124209797885361906554552722096788230686238999043429961320010628776791449116218789178246358789652700595822052521174956710285514161907887684587236173723171827374881510450984705627060378001635944216961342586051631092251470705662826726083619540347938270056450599432347589076494573220685166615914054230037384189744365534389495186971631617180720454167543581001145943175342568965194986643064562712541228387496723469335631947053928991902863585881563630498798538184076601591427827693193350283561828113273132450479855177688872797241480555565729058049182931300884884259650950370298096746176549289900417197673032818192366526415861705880834308839322490069861703073663516387365192726085086365488868811102173368430952799182487498854900132149612639139960907977894856718192669885866972240522896782490012484874455386598823302170800488282953466152947209947485466728497638434486607498963490574435597795850451725116160518098296628910445054770059345936307042680645749301267987649000752537726185963635650733813081500126949597537505768889482605603560954395176860973667526590156805920648893206423903865126040789351871590998379442031217110850981630909953700475828924801280772495220897003728737103269509188386542935134418931908773088599672724154248903501408310875221946290133034700435110341867312185247325024035133254799613920299700551645554704919663310314633309077239079544820542875692858157305886906391267273132368472101389255324729848940836070752387994878244581129437915046582202347592585003287512641819102463426391594679443876282831654861021409282951819176116643297562878066065328322593490695129304473449686308413376193828386995778259653261774138122889841655646886819922734680490659179871879805515678826371348673236917947421803493924274544866313312238124226715520629406899535052983115187026489617361924961400414668757542944950331436137481334040148741154333627418973398741813714409137211858492238469271973441979595367938115391234698641607812362726023201729613583026193491421686797935944168077158706030290478871078872914294132279486298994659581453491689878123922299667022487917269912286301595676045115120172595172559899679595600129402209262099289712958463820228882025093377179977622941090602200710232084829873021386521527011720160824690916856123594617819445088921931873050067400253729995257944568195895295675641477185341841852922043516007161877079729590637529172380604467884803793254909327870452563058774792757039504447714012779413673341819141015326413829761208845707501535158533936575247485099968730477240769292926933048587607318135538858498624647248456494806976848850676038470087132623608902040703468665113277291917279230671782770898716162401884517364688072733784845847898865390556090819981007319832558843262262256638118858218043481022258732038130502263769398723898792939123426646221226036495163713544114802170540499207368195416487614791021630590648494340869865061518818405403236758128350794337757664358638567718335131925387159887412650949256263019435863357744992244197270976996652743089688075924141086244909722864926744903457747810777969445280066670516332484638232444803596189596012311729480057445480399217265828383405718264464692254797595772591020794606596620287946482655700960568476417697676787598442411191975016072076434924739911894782179423470803883227447578850484598414746767798676618485667156065093841283671038354253409830407068871970901518917882423690454156317651177452261265661496964612615888444604583655822775782040435267028612665728391197370137339677392862444031140941533813001465210583118473961741521015782469076176671743268856015606498523540732168120062497410969258560623076665414064738136843612867089535778576422090474079469160634371036831276652306212850929966153256511019709158533528875974096944747769822743881770302403129661733467758810298184312939472389001529052772909489132902881381825214399492803672067154452056485233421988755757820243069199369369173611868084423782175198341938439172077470807431030134955038169304265429431569762833352181662814309433345379341479284431453262848682617484085917725672208767916291536238482329518581890823601993315149917231794865507681175937957868996807112641136958194182915952826296348913428564041452873182184594473648145476468422988205686850540005519402445148026906315361961839312103922264121741110002923051104278960051165994911268978246714239128720379233931235413388077082014882906059877040826330916729625243216680486948147095944185795661575901580087408668320214580812679781356859535518446556828652014906483062346624172269985362248283912466923182776844310577630066131226179667998988430530617592273833109489815632947988734114381753116161172173453915348223518780073202728808525082158476969253625787121350813618768178474854282972034693484713854569607427234335597729797655263961622060776310537053272298406051097273603367819525663588926290927554020843660525448571697937494506037830734892560249678496193903548360950519679362388238442186098028620194065211672419114897362641563766689378864340510809483214285199009110147516795829726864564447212695743776944277681524676544415250661799204580870334311660376747290880194145753852460411021344094438956560942156767481186076874186163910939286148043159595881722265436373196783550128979142052617975845340424345297047552085019330685167204593057138536730807960236187433220335399895171487903153889972653203475694388206868595403892729686318607811577088974075895629880647296147556987171895066287875483517763000547172205255558842297394159153018904518428071500944556633667635016415056500419868780225482744793726499960052872890807850870885160329061182672073605210595764469596892941722689866618307792352664110916844257132601455834622437206855005256141499859384847685097967796943659998339395588586887137854923443655700914768929502674274484034271685660971462970303732098204725720977674112530240538122612492013755738713067160838580776938701935503294108963124263774750046437600581723195945054018512965163430134855530389140690272214140641628802186661613580545799722082403953383012554515560745428236641488706500206951614455289038787526820745204789503435309411339518841692055989143122224033200366136250873814650441207326187589588969598400699224325114561747760081565783618440764755331910726832424243868382741032537644364383202816890605822429976234263681460129587027497826994395984972022857871465507569398115789390306108030822074109782592686664365355571284085386035082248311977007390762105954494140465893629335845030596896420010581741345045919258692132652550692744972173875634303531422594568858276350216776395990289680913281213648138000328724611452087524689696478388720914843707165509638324415487061256548498039223672213812117088803416987132776735316483498108702164536513210748897843251307696544784124719056393201910952390678209595629318237601212753917340035721301969604154583755393316546698874204401743672082473645942900079431784294012873402026256717499223606948999759074819145895213265285434950608375532392833158736839804859913625715943459760624708636924937058166353060311552567345953961081957976849490775185048980023745165523246790668182903282904599422872236262727348431908142647343369799156867466283765350885964835343955605817287853271150259185032511527018592248184516993166824024813719932768225856839115503181926709261644384223559559895069559214730545806565278080964684969252714443578597248428903484097405420149036998714486699664888979651062031296623097275669461209275558053048245440104203348519711313066489418291606366131985050905371074921858365114816424925865139282068508199619486239451341556756312210251811995354285494412707521699030987550046244698249546142788402725045249657986993977867778908606336550348465289948651482322627066431208460719185421796384904728220018931882424001380496459535464769879061388460769928166173489660569794285218507209597265714905109745220831654816977895354644722356814482942209342161589077356226401332499873619920583307976429791413247840293351512033091266725632218998637352336375438531808758196445089950410197026979524809161318299354925990789762272840383336047599615043864476807691293664997471113963052085438677080203272450621789906352489155999395987445647218261390612148917319641856157409102602486940621838160018814813289500648833189330226410654455489160645562766911573591987099132250350833606342350139311924882489839051742284554535348600897736837977242247860250377444100187617248714675030942433518065343819819200703921949071160273190653232945568673962960290799032948040647012810773338196135641624116183665740332063968818689377096529421334521713728094180803240437416712735909256927449833150707003509300889589424048396872898580140960145145468933764739586937645736009207282222997520512227276122617412100382867314641696497289892035337627004837498006481604788133967963810120882501451174372126425831690684034270998089046152418834947390285322986033308765946084516740727875114782835734380237932592385704332986336603161331540604459152215131859619734046010662912135834364122745530323188486648789102009603952541695567741800011446196697052372799068338666490399962805109899043382570559927890299613515195051369301133279868054148610498178785421136189492218605707992983384372251363130505502529497206164803406163409383081702964367498313713318859773071660043949424073354723274292640421218943074245105937561647923959680851594834713287807330630214763969161160115214972092942936078237724628364892341045427275597743045552196835491985831493325340498507121801544419106493277294438033495192106188105735717183542203254571718334763090399517780287578193124003816919401588513506349226209264681700986862258369514693682594864746399989784438313893496827396330389299877526393112178321346752047754055118851268322035082011353992750871842028629054006130876336745740191057855825780311222782899184072375162441769636787312830933073906029193207920098956871023123455389071816901726376867870129996667677436861874700292517170158815385898377994817186391517663336920902932228856077456052883005255252156982486466547128417470429022638281813331528553436534228049728263850524445934300535433089197030063568772961280441733617924517745920484139266985133190691667754934022133717510186537951103220424162498891901925298965435850612540406780591996564661501017241097274853237434749235159008432792365774057631072565896365660916605557817572070460316804486945521595591830421793926856549251651773902368071095218175387705062927654577472715151184652204152770201233150571364838906041606331494578773975739543862929310371041014184418959679703235210896087286743793030718493858334858337822861743615668847152890918039448057647136579817243729024889356387180171286938516880527310987616933056964979885948523881263663522809627625011982289654666122345102174031388492859508223594500382661718023879607936566348424731472229431518823165786479936023003131385961207082569497375182226182494710026090752974069430748769902100405378227731687136403358022926751371622821717645589288807186075313360871120149871781882567495443875206945830494493605928625487223669518194364634253423732960246168147070893220203520195386651844543809052579953659814828225285502848624730798919419958088128730936904863145482613535838731757753258148575025471886346098640593643589571784278531532722040410652642484943659567547603149176990750574182746569489037345386658696152026841293046659704233530737390138156747682661307073129200501974028964914447682792766481831725886620006128683350249379057540995652660813053775980235162508291614670145395939353328086342048479728119190549268187651990551126315011297472182048752290188891480034450868433471865912512202191729830662425786475411735426298126753770144308964122083930453725165023096746473393722989862371195178043767917211398914682238079488169991326113751901356700068022409744896028650823185869061449374797968667179577656100111923026981354271490848166929789562223514100694080713831138310245111164054800789090842534908378700476845916098243048103352047545161816395977728628418300067920017506934385152746561797394293231310957689495058412217604865550528199725173566543879846571113550314658481433679856466201904967713305653275098687065597760267609741086660042539185002985814154148327241822962352170595648360846028547455112638815357580311997182741370378580388957605932172164691326251012668842608750134532238934402393775672211710825173226203022445783672877870984807857062834701842266742080416494473124311683290856023716051444653139155798108967131777668211125671792886993926440473801053290378995653776484177353494659805321108544017884982114479606058544729000134448081993761130945189529676374702198439830130311550933649026924672230386224038230990853562207786079552000275966400526772733852524733595399257978553121399037250106980325641854214409610772312493687316580364061463938967310904801270924670476292746686084798873849131570558319630198113784480934319128293838255372073996078049323997072901182437644017814347509164354348699278928342050975861886223208724898319545218220470080656188727238838308137918251445381311454850348042524994574205540109894010801449637710168923111155166074720922974395142029392598770683223974162300215263001741964174087082038549914401466325660619680083434792710120894896138956992778782711009227898936124275034900995331154434739053707537307635567340255968954142915604092596761797781375350700705433883004555467294256743925609714870714651910734312553955511504388511331275206794900647766641974255906234275256808526299188533336630373823578669769502248672019985194733223155654833649586210450424419990085893652223783200119557268138518767759239579694661352287264519588929419515589134604099172884068795884128007182105075651624402177830275551953680630472404811755432724141757830154780572285337909674789952819388397231784097198534570856817181011645973330875050929030735330501224421434446161580995463065566867688976429250947106190423256182736267799660334938636860887159551812785979464371988253992556820375389881822786109768105409699829238754622077877908817018118288426235328861395422394395079239543355485036363488183007237496321249315492006624534467933172643899063667065792595814926518226200499891718418123274965373657729618913559567199530442307792895862273262425548659581692560711569147014573161348439198648796809563203374574820182276195404133194141818700964498325106722614503497945026888988078074070916665052458265652528918130596701317194537499857098918713805353544030875437446661421563264198757038000240545364092485626041008467330141573879679041883451648969638613094732693547054243346262983969785566564393319929108202663567320802400556685369489437655668795053988358005338994726956022499160719923803711694294001067232844762662902994967880028653039756586602677484872495086342182521840289688038469321664915616280465183094908073244455525112714360145998825759744899898599856268786195065491682462885241155660743439629118550498450985967184291028464082438053632879290770099538936108920775623746738175599262338155980367785371320760533825993650941225840165904359174456729101749333182293895248512253998116029061724072698155700163629276975200130381060757543838063760484872772157283017886754835033636760061446180769151928834053213016360529220072830994331871316703851284444231460410008127826092412456199570452812364260421984285347910209446616068369461622503463534932561178794557103509823145333227717040990715761583544396005158547561689874800593843834954764589489117410008612277354549686598904543903084980373577743490873655335423360273536901468715924649997966861343984892258849863847841228737164696082503760145368038423405437091959227111866834493644252244960196035523801269593448016455194626309320501009590822037746829510835920511491256997930242012858838602936694396426085801788277051045802089662286812486934233216147132229925870584931077744941898114234275475990438218463088731156977041314925189610756665967997555036730710012290063888032440871546746968118231821356014623089237967514944689268234257391101004504820965193374642197410580575677213790709700318223830201499776113873358237603559137136631600180039270986225718050590752999102440274481182049321303625212791465802024571522101998135612852921241345423176007302669204874140847876434862792396889144928751603494609640396263822353589295831453484740642542158011167639493856343054142643318947755097427608728927813759992116021491346641955428348033088105726531141987378625628351973124471032083564356106529736710642890821811468084753367845658460237964029540856926310948205860669975983252522484674088789242409045273703590758481240828924334394755371556634692297326465274789169792674927125930878450542356300298772054994648857563082418482173382810161869848421670658140607263170575634932157535728693137523201842943653429566328366896522414619681626670353447475345238514564251435532062350217785060612491811915818621214213599671265149387449813487622559695185191720034126150204676187641039359288669954512765066501965680195988026602338117800967296819798072273522478036370023172358442450604716015143993211607957491943529081315773564771593151768934933444382388462495376353514650959332284372249042234185071259237725796634235945622059172033204945485977572408338159716007309690411046453219334666606334666958078940148813563568283844497023492072829372198077416803870776220475145531699018263217926759901959410773090425131492648632094118379192160518451512504377028957397008273136418628316334649961693337344868558205759248821722851785109991023312716215169894312311268997919884695415142221601165745397910414890189063653559306367357791891209535380467387629740448612138802932000744361644850463815878408029048173872891330641075354088267585598866058753119035310070311365746833166182442566088450556596931891473473987417185210713455192681277248574583651734103924896814123764644576527552297878965696502977445419439790207328745602240410028255729130427473527801485982599143181842170048306700383660407883106446599623123729808163777980055899774016470265242847151445919515325037368661587706367090484682809506595609708421253122262979679267660679684370762560788440618307690610152930560031523245091441410172689649408653874945871448385774556835483357849457196874270613191496708146984821953797094571959563633479327395941622531202734072946031718486302109978380889844136566049203132319325361825118222038579705374640223930360961888401658749431616702919831178288344495607425740521491777349464859564639132693239110004882805966166739177971700949025951229233165029343168319809936386333053603112064265515940214489937849196647390367308703108987476939255683628597774501405375295677172414775748087037409804398687087202621468694326971383921728911594230798126859538137574300992815443649244790111754684276878254397110348578455859670907539167765812480908777079507473339315509428364719869240231124686904137124000042056618855017682231764698943613600877179762077197732179959907887186524353282882420304024286026790096476851135749719444686806954886069962276588511084681605062027666597805766169644893777299680718247662469192195624147286152083965338672316628767377633211076341737939028313221055093965850614239860644241880925118049201060701057761793425371946888090491446505504462670471156078492337087375671581335961747578483245010398140188768140356943183596240183916596322612756763528132921591038732531688565752695110318435361190878419652411565787889012219910100610248394229036167974133129257273388969357952645474856477063880988275658996525803639527927525237286546062229466816794289868477415288251134137404854728271513645045965246606762717648750172309457768375524614588421846900620211495205785187326599572885487398725889555715978911415779085605982909421416219923915397826418638281338138185156286760244470046738975433831578812175609925857533551974647609159836135290827037085939572182976167992225132816652426855252345061975709128952088522229403836314932585753988934165954603409213085655489072501652477692294806262425783895158199535952528448235683504127368461172474210856668823714080108566937639314539990104582896168147222812965287792427817118075868604318895374161969097747579419209377022167237840802785002208962684009258765688468051496381250824911112933364583615534796714385563649390284953528915053831259010495166405752864600634643421734980924994781933004047776150215638232444277470663222110931423547763561073334560235450464178998761556261124548511753468625926986313614518633845678720671669801051823576895602367801228437438569318700895347858855528700826212047757175436758493596075050893792083619892593266225235340779353705541580828688334104719373576884355438869549219853810679889359101023821962191001616482365272254794657551734616740291274387546109581917375385052727219971224929586979235472777506357496207396126256718671142375627311209906081744520531414122107058379853385955336969645325359981131703820288455339660319639617745732940069215612414777258684325192550462908455880926100671260119167137716407537818787829553781702621684416100585925149456184441693275050451329738408833972558425344453349023836047403432126921395371046170482130722741568760353437428795469337886958730705832601061041838637792778967245070089174210773082194506861080734917346493064530748844350532178764549579220401873871011704384072875881032706620746648915347772150327535224478236925787441488486220747079521685912249800519864082651442529718729199143863313072896454481889398218055602822982507133113733247497117482807948017558865145538937389472156840212471611528839050229523960995886060843303836087250633526274140623338281704312993218408389814151079854235690556578275090589708025600786452317285488166908550680102966309022655796817214097968317822385419547385585544338110306822730726143162723651731991991986564432994134401191014577039936578774453221976441048513392218603221598931974955151150987189166365846484978642862211323601671054678703100229367562320244202401102006220349041470701224825782056934090492708190922167101685903308624854525030754270269391478282097201223453118103939531129367544517424931724231918016667960604445072641754488483807854470133441246035256990804018001834439084383734703514005145611448279980997774473226966096751169706945169249642292955529660851124794790728535773709141746622249830142978657243320734264606440818702786962924592832461418452964872085175740913923203160303023273571462363083318199798454553472661869096349740384201676010562598713319027919411086321301800427069918803550647121149593864984187596530227030772746775484078754396946386933272563109020950973452471149562186028598340350346431548913739484811520534991828787065108073074253727125042364779473389851664615335648951881899876830330295348785467737663964033983964646919682275980778601133321295837533732055599892381670555315514243456307479647201615043248731043211692974603261342984427435399182461135219554505653089984153928630062817133784795160707037136126716797611343862173111291664796615805165088611567141553513528574636302617022570136320541011079790604013683006797939426615758113683557243339524940212239783711547863132387490747663727654410558448594644499695220200517662968167443668786168935898669285447747878847235360102421902805945608724299969043784661228755302004040069609232385507416448904489603464740925329187693939496401833112402728773205128061663445384217380492976098003528340125328728150628961950682751762636954104778593008596987345635548773436005714836362187508303417209379308357651120580390208086035859211532897889694072657480267343074461108041798235435690769206096304626085362087755944413269035487769548753782090101890152167425321503042062448624502661188961893125128939543843794468581916368306897684969604404314405371865867894399038938495601834658219976893311998555251460203028148034158075721623287128600930977866516945661223731244901068312795204423199993829314084816098145561472128310285168751180757702738091516248277292608356983831226254998599461658016754468103763300697710445998985915613467890792604125288237714200585524307022670366379298354810927436272703415234154695864530450158248490558891960015740807662851776564551263065476383651778755590558760877025381712502706532130164430055388916696394586940787159590249783843542522448778482812131987003879186819509148655488882615328436257829006763956093362205762146635207596470420472220839216912509786862781654607416241281054775556170433273494636592991208511473295185277168233138727986353990730438558720938065227923716016178157338683710420709214863192801845105609409105458701847908309479878835264607516552790464070236562826668464934960991104403701315909809749091239539697545205715195308386998270722345208715272666243193619585538106628882805195095618350229659878306488785725961500139877689157066437370329555813930083297260796561980549744003832386454626431673189326950131846319782591714166092381197307357345878538284121760390449252145713652289332985882328423561672957602045152330973251968722053080814362593689627759903982894672868410968840012379452007298048106326850738134758174190777859228302744924515717584677602208580053438966117670344296373501625409266866374307285731001428325909247034880993875943275397997349299482028064073984763007361915961634608165801860599708405826896779495533393681869978992983559959868386947087055684162858996665988405856373449842896575132610328733729407782050188685946006753398166653896384558623802876230445038702972286547636716291714349349737825829985902903890891498612947465532434160939605396900954644477618399136534938190184664992655090077322151365147589848915085715705269302525210935015699280893659764240639412765997103541866428234384728797125754955566109731069855401681241622338036817834786229004456053204896013889907292835049388834855478392237106592799975392101480224408367899126068769876960509116227784227831573093401197504312558795772000604448758269145498186189261252927349901134971332976673666247113527144040394514387909228811489406710288509679280342383394140480197753950573714257849237419912933606789611843170844650639986642092895352973578144640657328383666840064588684621715774190431804174359388423143689640386059675245077098509548291580674688854722056204233101219021150413296847584188136537557700680202077182955419874823302223557992664939668897606905387743540693366185412871603235844095693558094652460059896614266459412819186951402362448005360747917739144749871260860915992197594561976149885384268116495834603210065845734647743297931871748914844499695994177380347566068281106151848379211963897500103061910903485662241778666590756958354701484072669812111440431756498943311118274034898762837254574991213174257618942998040651215259517225186749918055083858411342633465174628967589815544398154843336624252253037162926932085051005929710475691384754860851118034887786981617653346944983548639701462055949768406388238124034991437090054916583961285780544696698567544736863905686263121366071349457910370051535176428057260666341707335368138341683582006409175507347135610335423096634789541009765749684651853309502613946285309617784629509120266382203953926536106186462154062373530264369575125106451093890379713922526036293634572906714848186685614524908674265217052977470841658464055338879222060706891321832543549917505741912760524353388044925491764660769179296719042359552580021926417376748700336551271445190574165566340712906124284971908928369919756497228595329755034971401454444939711338565583248522467278382004480269868145186209807096002835864440298465946568616773882537934606871774630792087101256272349480366172046376744444753422984503064957166804070789957231850787982044268293870687748651401843201622457134414231895351158879036412424458855097616948252657322471422554303024057005394593491852283493878456434717279024623886908605214295856543661675758103887853802886459683306186010659866898494860779400331438024440900397990860880147732052483306358954070538146956348786130029687797259228091191573099390556598903779654437472436293427871391354278861697623989202061285446070760096417875753100111072704302782023615222553179051464017039586876251369357694854979938469505032126357486607045502852528421557136887899857362288334148070957420243876260389214693021340812106536812387298313680401483817466007376348419036862638466654080888038702632301373199591209343058335692623855515812726768942745269621135636275514545655935894710497317222497059448404832714509192071196151292177268582046129728425853433433282519059722800545166752750001579141164357323408656892956796620524765844913682386003098753319622899773913155190122684302023302556141912248105326480320733874262889733285836076924893007006189191935593100102229936913546825819489708957331029912788568982274098448652133894138213822978811981777646579131139608372143086899630656494685853631665084896588339172659474699591702895037196005377226238179212457166260867507230587005137390860080670014194003874192675540688741090822950462408888075029338579838870095340597147974259688676852069537964789211358437916187441369753360251134759300518000033501495424718126620547475798874034427225938459662564178635011366900101526091066079150211454847187249462310809205994854784781848900411720691575797717664639803260016321383633386655978324895380461672003130947557585570285465505987921516888469820743374726604623928611113551495961664178392210713501426064670358316761526059217218325897833880214074701388213101935894717563465029438480312693454264838649848930228043768410054171712698701961799867703749295533217615575243932822688644682638868553574552712868143092902855903450075478266419305939575489859718470663623593043462524496917131240807158714265154827994714869659932706386470112644159978950291026411634185318728131040084892164764213837348534278958180220020402487498537638726293786567769051074100463941882283207785290115744113261166996070603959549637082068598615028161709223846505390944497265584101477134821398683505651898664976879964736814748112632864752869525718897172010087490803890657618291621210629190831679328986790392649194507376720451249672828738084337584741229144526468976746253797814999273948640958019392686513422843863597088780296934133116840292361424415740295454320443876384706743624125021509329238442061974647807051394755748539913109773284701713386222719311985505687389161096367219882696404444362847877291604351993074137026272294124589315133919524994532343464975521904164444838192817221422897936697060374093250547354680806747033360962266442322440220154891676124159484911143693863730359943990654722702043230259116373908514429982629493859838003142573820218244686857539785612558432332712487785093872667704738822244927923405533052409758429688164725453190915023149916674400369208145729297004970025040256526405339524784524153479564210882979912334297611996383236675051970993167107599720353762523692502519382771779532950871982185833269594152286245650495296492783497768514919950128322716913438664505515692954196992545604504497582963079385242837662221183230982332937911497429618504536395406530078250511484927898146207166392943211835756128413611930733207291752955820392328150987232298510901480713729965189857239744829253390055203042907303453716450538232288292695645294820748386174021851918798854352199646281846233887972820115051987585069917040689125399485667965407671373430092950131240706496354234349587339973690732162841624906036472788645012308579509671999379354557232499996727283140582979828297166358674574934221164818959970523173630842694565078833340034407353016984163288388650916633167580138628729464511439952393181582607112755412016485809955026328146693079363345697138104991038675139577575373173512799044821738428466914091328978643655001545243061193884063160312325551068217446729813620593689563149594034665082740478088395854347560655276984378899697756330162803958189943265486199702319950449497726562873780170464985247521462604670019208604764528792188841194394464204369877791753468323895233441123668091755705749252307450645623123252215418066859343373499875969194321466575565971080635035189072717712757221683327991770936217337035558075273157338019335815517447965949190464311871618990321029438830035541039012362901803491596712199588843629930884130315977503173958731979815451378504271734844346797930147395994680057231744682706385624236987996753939883360425007899520860326479074657668806310007233906201370853071484677451544144777531205748362353569895004590018568754345847189049290732647513559297699545526686771551721271230382513141315543248046290063011070794249575766368382712733188596822291579286878786947058828527004678795536293232566884981166150798463067786261513132112218304402824611069345348278767511622438721488129667787077698989057651705078276904666215008736609105227287998037324904868906576548188174222349171907485030704179222924164227149876533930740482227511576779348775640705207617167664131943956719356069699459036219890065530131417811624594244841497978601429173653994985842280437796804483029061534335136393097339777935636557651186259983593177228096128714715317891646535044499949631579112515975867441975918437335602013487866342166138492981130336243782182043410844152319365481974987405075208288368468690673619716000188724172646287175575359582797091749490353647047487882183909326142561836254925986632059274716025469940585952699242461166045790192490063429531296084292810624670070275165700897784806695033762112071595900905700846946232164621589321119150833292213624776160223765674547585312703001341206756571080484705485516910852032451543134899892558830375661922394308939017569583620858847420816618721564012079368906952165888755384453546220114011927354990860274636915019776531884962695164429366936017260342724754027281336102613032491809314707300163329193404191324779636210867575758463919264253279615046427572156630679459018988236198187080091560385304231990958848474578625128544391078212519962993888607445680287692606281599550228522043736493517621652208127692782514137947113304775212156916821827629731023847622649534010946666557267635273214020429844425692700109172945027863366180683804729339607941242381195297157395226157926462940533331039740299279583514794348583601147339355864763600601572965203388432662864061640504329768392257663041508483015173116545863680188591891892088210398726748093663790230443283972349883246653839602650155081952393357422665539894238236412452946315639754598767631866736583353452819060803560562142371640359659370993522807335486500821621451926855273824497251846054469928132582041944923875728170740273726750648094568371685701293589674260171798395337114342724243589908740368970323487101214575608026244996530540818021442686608543732122032134034313536024476262145083308940700728458145551227201778475724601187829309387418614499037770862315122884027073107758309422538024254225977686929003437831873028958446859811035076226471464835706665915637436675168134094282362929930062341220441450206442465553293321245901323641640429676355307398980111493754168786256831497937649386243087904859284298393148196710437820011003559968132193978312353573786479444045893650109910885960691414606707491146322196157735259453524280997975179579133050605072181269106773611888282818854264624943143039410117453149360525464505344537808930660708592512717512294103783355448907079330397276216552676005791117739796912006980627485888075414341143279292074349412203198687250332333458359408693838427966786170221469258156451662521663279229917376968204717558071292713684373903550598840290555056198665877441126341066963397644945704169594697387442516156047580659480486268446376389546965202142590535998313721065919989750262635100681670836274046559145404594697193513854005845888750988649544542560433522760987233910198940115653846567965737746015677721183804205611167170272123352395287198747762296551314314637416435557018213769598477636319906327519639113532219170174221741692030796969394445170703860316362264792941934529344080295828956475297269557303344945511805908353053775599609895289384846281499090379780827063240084390171929222927567995475982087526244701588526847143488951226303077319305029087569229610793556409658085185642671374415710461189633100004721804183140524339979376088861171889543347071584024316187570948291195107019592009596033180067821861690835516867306928401407560564855381109222710329665581288208785646084806017631746831212088054475478818347622521378829445876063994742482512275680062393793683423296365215417278564043479379337528976612385157145534709540373015531153735623436007124358549593739072018662181136476836520695449568167775717875877297170300565632094671931236864715235522846894898788300090473843041986675545943624368355034014987866244814870749973005912905438055768176768587566553417042273149790368238133158197472932721174300543919914497133021397560664961113692512540296307747676143075709400022064024296963856723302444424618438098719619132413031027697842932191241432387910377724485422849414938407039515151744328259381311161034510103899334152099415453554215202305308630279040940745727934401117376030659951713967760628328821848891349502814359868906069253004218779136202550288075964005176261390844476629141357754155927039637834008298980832213963272881461018519820031162056376661238909140915102590759617453909248435765996686671495068431878604877836158675172286913920603635300751113278055116656876316640978482085776784565871804005512852488585571069490908618907368453435332818332512960073022336363237507473135699461579622713953957412035481273266690448912931737700163064102000678720008103382763262824742218904370009851874283472439524110701289546082732346112568376949513094771257099821190220567549628134661366483955749454301813577171559686239614457130793259354395435637050084391069010373610055435455853502898575762384653433457431047385240632733817159247473329123283810904268150831527610786171629373630704256543481210766971327070453481875584492476722259495231802239855377049859412031042621437180435009156009379711829740444923656531032315318992473711249739319367354512984422094430650368777048527904426776392730180320752316039233656069886562737664757280195882751609206083294451723425002100242149873492316171186277076916156959285551086018584081939761177353417124753586527198204615882230520290700772919867259462479182935475627050598389388391431498606925410550776163319135974276872434370005085529973373288880650284253660348813122662514931444483089488529639216778278836937690905464015215792046187820431317840396663028471936550367785754852823355861884739954007825953678793651122074638942569967388815629450506707839387220025335967658605229963022855510626508489953789165167293525517548036849658785621986897926438157086092495900588634666356276322635075927480579722979989043324321992573614610401146450404878589298388414035940307500743662899178313795318395437053475122341745422081861913479019951416485850947454390423521477047302027512739012300330215366223918290058427058274060615409936125391281333024998668620546359832676921529737440973385239666122404252156253372354980544095224983875264325044249277478314712340433035882646967212682337301606700930942792569318166268684041491675685018063179926468476830855742155202637498487436685296646027925727551167430365471173399922404646562463733857977440849627412359595853142030918080446589017121001677471649378538904025648632685102653667045410794625347833578242043455114840796600683748409785179304866776825803932833186995721580177654924557308712848291319285938252081745199550023849702854159875763078773680537717027516048237982117334397103627709936049416641046461854995230696252156715465859831337510779617328504873893720939081935351327157956313432667994883573140596491198363040070251797170617219439242895481785937164994574198879581339449331659279042546234950697054647371061983042755296710147710708210970034937612163123692070455455551704183295579966744033366452589688454975013690702549220999954293704313924808586950897012226623766693594670994922117591741110521771981857353950773223495222452546920411715731195824734261206784969881195638196977862498929668182680714658202013066478051963182407255971818450402272243301936569583473618593227782996072858491367149361294489746081027082158102246257694508270910443145840073120142527405835758983587073229062332846261765398992599988730584678747909508302481028058963234378200684827003221263447986517213272290887617077170016394178658523541155033146477696570390112820737876244064365384692270337359208195989566437064946263832399757987513086479331444890376864162340879280539029674285219360863023345388539766823326116974468108068927590045459916024791249780916012002237112972993959534390666988778544863607117775032371521317538019394432620787395840051396484411986100827872563517874930206670619489800557614957122558314165533083619029180192309862243925774625236491506286727733483038626926724305731395404495388628540939479655749070719350924155604670950644829022571089602981829826884794530905452458956279008660241496006860932119100619348771413721912076883383418674418431989812959263659576644879577051096015823041446633028323720322964898142745840494711167925676591239185443302024772947709460819446728318696495324447798361734416865674450012533598065257942420247008239006567873405881389429082355432876545223085786996907606718240226104582730849299758955124348030482275512833938037989492779546977436843810178239853159525821380676220402535498685280364440468864651985684591255644821238240236569999649755346546673537697049287677250918801582282621104157472372852215247520353120632319710298237218953584803558854114562715773829763515121486662732351991316819375664128825964895960967102405137757184722657995693743833290188400300365225451594351597761626523656710089672032807727609610936120904838154425490529178248494493303654057418518029534980270007471960601679121311627123626832533210948473730392773470176451146885799475366553634767612325055951553989964284627889670145960517892476000182182242315564153314985610290001968397513951565770939082917167816180682153175039705775487812592963829516554011371927765011687347750299174237836471567739755878679719731699499632845611834958215356462349609727295745624940866550194181284842083690080262212669955123604425010287536748801227190924356201750119811810766070795208092139458187979073619709403761210303798979183596329087343750404303063305692423740047974694563723389969493717658582416152705483381410648050322425905677603638113103660591076692263774444416518871098572572277263147242574054763036772742704686123685922721790227592776912074829694166240735882335983911543528752093765100340096064822213081756637678142608057301007545106287181310689889093782977657540319020732535231002529624246176242558899227575734251609581386366527795512744883436297335736492382259130069906510712067281011468196362352065026420439795896147860402196217358956230234580830548591712768673973144258904788829543016598314804125755382565914069933867204663548132921360181625178307091032920408770843458729944087716499852443301532455479904202308549762844457004808425350488044794810125089324868646890078019080138578820080701202122755362099724584707134747717578878515352524280429812565633485349834345221135333559824302678625105945805336749798679779176419163553560509974533444415594236335654295506901826129568450192313764182436719970494685328812880287327730092293043024199767852119302620873447848254521669530126357043168869532610951149506513999947573260574599438165859763786262794654944191152306455441278042021255558485231982270306940253206156392713053345787226722076941231264517093485431577465879473868675877050978434966207400163228129512239050946168391371401840995196883353908015144019490669122299569313564996315242512024788238730072109696775369931397668886121615375723564192780662812551006451664198812233703317827864680774362900668671711479777730820236814199605696615122041721627642068881102243213647067848499801916335818992268413143430196627040560355897481031111965144852915357397786196765959617920446797837460352448787521338657576213833545044255160293923509364563230173390854122446090806053364838100886666508928925771034698948090435288289047623997204146715786161286743437747507578077727695850688714238034149568600218087518225367269915712343160494269284432634384365278037270577774863158824705198633851823586981545987165440709120339806391947009022569745580796688325549928844995547059747174312795946900465262096701954641111451631718631132424155156325673449468552527755669438589181724762150313162752379414000321546259276098329784018963983630064000898741689219358524528502279912725978852919296611647962557209144099066795320906435919691029714184958431139639610661119047324084831696204890107434213083271777776712669889658287470028003548508428195823244144523300370338342553837210332149281188176305176045313356500728149650488445633867245296385350228720002906155819124579895067955687282447108676408290221737193086942522185635410220213743727246315159725083105423327870041813095887689782852834085480623384841147052041156163579055768229624523729995087313750594413825910372128489638596054900992888451379705144535142769665965146415561778437000960970867167897129859828735961824973694843348608424233036731821104744605256320768433201052261807372761853884930271134544212649326901488588872696380485133418628404614216704032825559760841672780982744568953464460188320504154931121145804157312660057349498607185538920972153890740401680407868856514857013503358704391540591935747975988500961838650314418636344838663180892425078401927807163664212183291846434202729012490488025443721442419302749566123603059120488818520931431309655578249124960197587736462873131308595947191283170769849294279711376602230284951641789970967489017971913162283796915662173776040284399172060011285550737504440739796257349076656734857180005674266779141433742668470770820907049279770536131546064391087857116684950223311574145797352717467378742206404959131374590801670983487460444168746899772693091897422650758858393502025797765985766225954905745873802122024893525229808025367961249297177644816534374667054595055960978376569549989645209234049419497890332496834123968446555330005856877004277103959255221285569144916883724562150535422216244139772991564880078078695574642692824962609809674483177081659220832150827572122333921822073063080890699965964488709986203056316264151434494521960523116874088247549066210819292129919181489176257896409043000265148547323270205529240432771801963351438198499668278903940562907858756246151928743123691539935817901426132047107938891704316221249333151352080098008548124398358166694814106464362441612342080511250019448583333428594620758846845900688729785918013419848930428975878376580135133360938914144434675292680165292227878777461993273680125199286275810339164035763668664995009327626332574085968343166181092336395445912247979886700934873155136198973321274590613569151928117413012605296346991021156507651449550201116842103631396945576894428248525037390754075492060070597411853573209095111777476514142942044227539673857387940614212788080242948366789612398506098750222341757393900684396415301905824313252097282619538048219997591005728206269299992054826417234114486896113050140225398454531631345933289324403428285540366465193029291566650871763648052382534785182422817246170395420907171056601019217891200400002277280842428126140919280167640979699978147184212642966658004707832904426889574239409698672490525190394912978704646967420761169174447719685264533658251572998412354537084889088379512276980246828152436205941022109971524098181543491764651966648056371563804536914653443705484213885992825447728591883619063288869797183675838328369798988174214376873617983630396240059167379709032487735257690260628755927586064438912628023317906906913827043966272836787280161032644939566305173490146117794447518874347507674852948972660145411052910067661657845631309885171220331026765753311606965972789367202644194951639297490252837711556766019400043398247620792493171053805347212452278036947998443240299344192076709270045967034085602914651448116401236099911478673673700952481404214410954342693379894210445767239637821950544733285528591786981202146232211610883573675834189097206853280569051435514820152570822682092603653759736451729411575050106465109628210786895298433993919065242947578056194820761019525036304885401373060006468224038577081923139553718195048561212855526562375044170053672850414998837814537604237465541180086760383444224858676049721104359912535468766127284464121653048300021508190240624165116435598702710011468413573741367581707841012333007291830681137963721866029384194264875318475872599857978173183179281926777011941989858356617176296316462593428738355248161698782368745774929128273080101310998157953918590183550723441693108041695257969973966591643236454675194827907538487939136419167725477697571658218535398364607737730053774601487227312806141076982094654523260677815754580209724831230324363146787326919763829143313197863352207771014530091544619530753824836246776955207955747188024012202109017510250033992139243382509190427579503174522641620703500192465252812223704577076865487828627876032507236119190492140840800094614446388985064459620417597604994187644978846171392542887596853757619536100222506126879733813922045882204162354675892154896900132606035295120807633918561412538957938725302719134923831315838570364787301013239536268431396451656470964614450052972084519432043925615153036671474775221595612585299015943427081450957082106900768112543275717219868560978659830245187136170242339952097288564927259423766949717942150054431755876602343499776486217210733584313157321163947188708851740171737272963855227999746870483866688958656361644469054720227438928886763609017954423148075256265347278454584624442600839394025673986139398907449389527977478236568163890069495754229917658551528785739456950654230935665536856776279076016840404394603111891074415096542168288400705714808676424976050654284305554399708492281488858647262023145495727065679077515929425966129868390538881309607924683563944829509342223548608592418849368214289697105842947683378634467618065957007193073310930035730042672680904697621641456102291123117125064272053087371527469839545158157572736473870343491042229711037798886117048722115155532401498397390761782346876895943330582564062689212645978262279037342894781250510003031503839033821965893607787178905465929360695086173680123715140236452959028154593777236617320437645573877204184764733293007024015039600689825869909143305002389837262320094299274789211487412339499382687605200999607477747693124117856437546841359300387496079919614882933686623443398617822932529501450836253909494073601694596429377709874466722338655290649301718615210247562893689595906538405879097592140404807828680714982377877754393893487582955571823811498589136955461614984244547384326194011176838440079733058429271844509037292013139772957381102274034696655587213818677940153696072808734376332587647845964561713512273477385060391593921800212410259874186017538031823792330459063266492790197287391941120383906108536033905625454577994186303451814811897273187127860798619419982222027253441764092917790499488053694690480206174815415123572400551258624303777297513009712975381713279548881089890055056488595614973261447046784761341999395395237827462439396152774140230305769803036035801928740496608177662534174178463219831353820680448213457343524211092939902167963954590236465883150381463420424051236210030135212458647623858540749974583381733720869321730901573243705847420874310406851432309872171822394140681555938395622801068590509329097706687144648552797185861033472111700662241404705137704021545019249394250487619538950979578287278217591790711799834491377769795393252490605560610584051685692138176368166439384600994383392962375895451047623874187683612914801926018609280673065324640794150266747928956494019053714473538860446217729774408353735769843388334557140856887387495030863302353071501855026902022418875155810797602891074852266545488586814447338731952984158823848476896483897183186263833881488655054439699144097122069839869567176271598334764688883227416225666909817989138773516967417914838308338268822619496398957178511001255018277740040956782078437248700861460308207721327283681318735761604517291328148872782359192012667494092238766779841195353629003289331942797876386951786850997812696406394253176435382198979518270325665049701333576736669302697588583579780732435012686303221867843502123795696950585428044126980241813607492989043478640640534879577692542305580984573450331774908478523035231368315508084605374115272608707269217188840122415912414334026904330228931470937900650074461981806596437856426254877726050072906767985706205492561806357265249722150631237890893842218765641956413073180765472192286109459030076665374493367010000195787827249283754273104828701527011292927161978410502682239628610736412817019176306574552887499552877950502249430916677863064485541529761539150123791732242746782623403029949852051920156982236546424158051547965377845879813798480192528451411549754519876562403982779427954106652114366733466596540555135663674532473519393158057871549885289584062209929221674657917992249809882792716325055842264711707120172684105146979868654952803740250723361901279325182582698066069717253330602480441063540659271441925954558102825835898952477313964987797088943444109647226814967342340667754026930539925477829013675957396174505750579030326792337151284495008120598976805945004407442727638221827604516700200885250698663753601875140498515988753692902328248365498838859406909766539016859937702178955758664929307525707791805575975798244644559151284038806151360615134132199280192724375498683190254751583133103908448393829527787681427103118629876696783677942572839810982128144958320637045137984308760789601491950663220368176783673159206467664700365819477955452493603833235651083063368692857956414999456004584964978823261020077318801153696195535721874256024293228776504966551535783865943060793459669829348766434630053691436328927414096638430643396437968724684951327709314609563076331656570729173036918522194751826115333226850848343105071569116195623771605733698949750689199143016227350131866618723698584264683752348325431188660659728886903671345273671397250534760122011047776817075320130232434192403056805611953184255045134993408931141636088009961039975894297342415203217314116165396871762343158102891708639935154568700256795587937505478738598327543804820381450303865265867541747057703618950838784463895062395688029966242782043177671560113863009030813876704307059078119440594866850232163854926362960479470060702914714437381049861559895726021015434001689818039126338386355691687543280700743139910212993397183669119840279849539949792742268503498975476606075981651452349629815714732568590846788068046756918951163039249122769306545245384358409106294075833676335414395787273512745764069683596686801730292290803592323383102101638891886588476930924489604127416084053202791281804344682374877014739382154233733733091535747076388733266673877498303403772829294215072556340607645410211829440424338924681600416626377037483937714390006162566346103683626424567015229325356014074203610403869091104408206088492309604401809588871572538798454629619596985623588755330874778778269329042664182469261227485178343040780182320244737199962810411906816226660631750395257423389444885590466720528913602047153861451463638145966444759891967209854571193018507217282358363285186280552272012901333259742118351086110637449825961236436435194934739676585037336624422469263377551935874859914575874363200362955073089882638645899370769592719323495180923014575769400509459363011512059430794849376320155801229048495607579989984290856621761829396962786524629463059962401296736273916655384620488037356481558134608700205626998866860770640466715375415376793509339222421215289175870558580013049636114240945693149360414895889773849735944169867671182865496962174406920149998222918857618320853118724169365769013368421235375666116821465190901795569588106077588845986039281415518030604891232348058801055942640903113722939326989391195001925744023847623865674665423729803741191791292079661513740775569681860006036968255554914459921660520527905432609633982268529908599899052245596677024891664061100106401263543520413152920291666326929146564541790600022897813534433356194918573693010458860085216462200050007613100481161792275789871349387288007390212240505622267132137871434340034587035325561794712471059508375327985787745082234704073955859458547702999710900559468267169646288542792069944703182736685123499795194008132551045688859165339084431041022049021040202448661973280850743516007349702203209129215106671458425767481613136593466782806943117024519860313145879235395104352918213938943612076530657471362413092874211911512381432835194921159835354216332986133810977937756269599713704953152829983461105193117885571593450686864995981973856875270690016788082811377040812021316130694878312177410769333413682005426400131598785740236093629663615478576871492806006833451194591347470303385745229027995419695205288657722561420053718067848984638353522223579812458537980852576727295415990641808359980482599213065962246615383042978958209467131680070509310042415822279331044083058485693686184251384788786868646276585827727387430307212579918850387420533240897275696731618650770362211718556519016156172627640821537161828665192865961188109681401396445666570524919815812962315913638208104666181836014411681708261895692122026315973614889460095598811485147747572515201141585698743202163307481359009284892078995406611035962421079762105783718935803663018776740784389013310524114831734074326821053500485751253221366388426988036718707681217508372681035570026584903799534964730422738013500534625300365192950293073233013696673734901632987256727824187158536887045662375435712971990292114201797296357904512452162098388812011210730243774751211916407192142824538291215575103807708469567317903741862830005845407741008707473645924996983464139001351166936721588165269286449261671202510994047548619427093525606909377526368303471987892294431946507407641829731137706558796417997594205691710233106059385443613742325862789163934803068189059695405730569934322917008137744073312923507708766174122051604075922440031952882198018893189633892552089297772126629629013014328996357368835644647985230069635352280406450876166781156871202937222526032399193532510736984833072984507253325187806827440346453510907186499693387149120496080607587491475799025184475475801864022744699680122706192042295811662422991874809250039051877018762039910264411665847698872566842018767507006334032907318338794188863123160635389903566857511271527984194418531574958290829324055054968558276040336280922049509474481193903400213555175282391282675785409772678592332133787102989828926385451698542084361231069380682675153039204189214200694128883345218657715100019936371456258100469600848176632689847225994443137183018422144374632242279166316526152853257705843635185464007637119371613279170009984764429333086415767890700567625575200938387765737691816891333109927808510254910086221261211119557122492734690740157728976376591519323603887743228139676479763980961216462370739021471314791577724274042106540295473307932511887584859000599287746891581536974576345906540473036862757465613209893995165209792553551095144211926515159110686820034080371867367239384758518805621076730536667596468289892080344487613458282423746234374475760938536615083529724960444657596301100150493733035562017690569260389181626840079368395329188848066289113005555978166507130122801888945229066791100925110026525519437093168294811856000920609217300267885782685613029492980166389704513029790392290555436844545439493972148328654975244795964925204404073139888656919446750663526433598405627984895673217673760899740739627931811694879801788574523643580541340992286714288717245325652502806477686118219223812280920259258473175937266740733642381339259392607888748602944605050744292841611318803424588388920043592008641817724991561880289243907044516958013577994384736356384530662316952438742529381035727572576430048411241269331118494843162322460464915871165525825310508415886841208612037368302402495416986136724929754790997629624677795826224892681847480371440970385420879921935807589816468764167443281461875880101789296559796793546166001269443942839444074768025438759099136128556825665468785590623778338312063982795628539059019033369496117946592946261659035973974893450011620325918333163620517277217521813154072539719942860083270245092222586656016179101497321269560734597969379117422356840818122198072497599829653997520781339264839659820639845695522570811352074811623631034251592536743594113918137153985080087702940798785838278062960543236760469981324702227840955503792837006708721750847953308728940305418000038825023984385215150545229796348738921572268488095635193152334800719564110181178383199653950827942868371092625383195756259680660384272041879988694447260336658953552025439719016894363348925593346356466000813936158495469209573729506826798577614591371346547462409752603781823750271130376320978297497739534743816014809922468176615614023504155567746697752193575958822697021180709145805440041389770903057594436602370568628660603532119436820060669910743277005328378433547256106666549086921561587173729827624874788462925840717870473504501164506900511581571120518658278020951288539737123299384347248586756400890318181417880206511205335654974281079003031972954551557672294607048846619690534199809984760954727260538978856306326586477478732416567687014489129388235736477109244629958454845619288751573457110208648658944527863443777711460823680259699357889589737287522042352068673779345659217036054393881636245025978869003310820006748632374253975989700692387641890681401987294655208038056137383397095330407554526867838526682543391244814245737325953495497461419192787586972413792093718187887892976044765733793927968452698904343764690236380122013446088300116669725118088621300158874486481950160071441414853564384033592762380222125998785023745771399151762907547669200505634430650425742304771082569182297111123609211618819215004782503641072183560713375113671020427895594452374902658476322043965810158066553061826747703288162930922448562954861692967737670641034350998749628880110273679725115703770397937665511178974830970269115374589426777444295844590749958542507846041464879109598763733885943476936233295538691620976320135040736135123567156255284266280405058709710684469001742104605664848331300997431113988386769225459997391114705983616475099881371932546038816894981355537445421413167242712220290777355829983864096035139308958356646396317059061636520177042652747231940072823371379449296741585899302463689566005180256118256062053698285695110774131468252585286851956794429353603279956075612683619187434405297166832503095784499860615025126071165825097778436754926450696639837127426437437071224873716127870759120070045624871368357332331403886791493287368587123881276307099358949982637867800585477609494255271862736888556614729962870898516981845497136879127127951368033490679119501430841090857932580252918603289862802766997130036459890106624196309967118050122140994534092670735144589809338559568597382065573846815329704610275407246775512553809718171280938303404877235270690472513968193057637547737706177021651566826621765281029132139706164856532965982799565622663652490793964466900520037654547924920439499687930535570015625200828287380919696947778602579589559898350795286966342645731289614335335928305020099863860158212919750090058170713970219629977521322145434921592778359737951979333774499635347655284975171970233825903208574669231119546311032670590986024221174394073318258157739882447679758439110638443578620846877070578121257073392505182024668968732418219295836286165253127747653825529989668128997612409351805227255048743855305616524673796059994362346804981771356920042885416984678207839224969183751524310223193856251977734350314517554033532927270231194399079288483060110664191119865642564942983625497337422878035359162393592072646109893333932861954573175029986746129840961205789082693070483292543414197315571404283068141521475517302072847243512237423999172982690911645398209618655278860727228029348734708997754451856464275861520766448247168149964915728346334907757576015782153979313648116156226667369781149362438112402653614602646822966455376523900987573857594265450639134197027211875924571097309203789021904700094106234499294862382300534431964927220781768961419411044022955319886703213897413963228802514356678152733107661514204237778446047932688076038362390128890787245152865934436210522230231400899467333520691745274097995319175231418164151248626987273328105555343050457631517053106455985972014442977554842662286074781680123466139304659216786582790518968786713046249956449061736860947615827180403072314343457835067104517947315314987640648554971884070686139689652458510351965020075757427654780040843215999274680094585881912529442386282291999553226710197849599814744239192215104405345506430002342213757878286890774281995328633682822060668132576957554967629251583274705401523291473497008712546384014429411754349030426038052472982122125079334468593522643467594047392328861885536071499127045036020502515105237501706003695896266751700501475529105970915058633543204631199721976135136291304516649266013122582419355202021940413560088928614419335475152377813420706659213169985169573765819946638137349832644256919839682824368854260337155320946912321363940501288815748356885017135913228160936504566615923366497395181038926551384457934043560467311633026004855177630799362285160637565999744752764485216463417377329217226454788573777183560402977323655740952362517980912083434049796620537848162435177479644552838990041386722816623683087879476244813917086738826434262088888072617549180955714761184310837955324097741103989190101916108465704423401971998756994497209715272784832904523563719240055243554892495893804506002359164053150698609724523077420026467171522661903150875701999065682612237475075583922111357069755680727348187615141951013439271039976641315094589720975222507317929435753197255016411549103167492726575128248485711648261903212439723097291775147656627636105600940882668530979102038425528758776059287832924836432355305375740442266595028933569482036083265612964765631228333770912985168464209981164398449090121982130453360978685271654453564844019706443842451787619515918217961253187010968048542613789932378784628837843526323907363803572273583926185309315526777184033951131654260951563598049135500627471174603371231118475807536570493825182034388466881180472200836910861965902617384716071694793808108240464979371217149080373880860665527194019446399689436529241885129509690416257275955868573003187112210902259407862183122236463576569189258653127462169948651521700314326666172644511728673094350044832345565392522755539224029045824560530252445097056407511565552033550876269244478112695310881854222252550678704607936996078859213529666700918066123274681382563686323301564399270096663997386075988614119308616380684616042832654926436910147070419919029890946519927633893141019895571290210230498772670003874799365706030048829820680593096738527488474124938161883716539391920958972029873382726498279570999346731048075864762177531258599962425193218839603698622656506697824439850698141524008430679774182160883638277631379497064800991061028480656988526140810012662269892739671744254542693328327178030038709058449441110185868457953795321107778009337613398239350523142332267861502793852184684948831363305572831716959746572512004944916128962662255931610790451487589086901316649842734692231686820584021466060643834083184803328512531912172066569028310475215082752187287589985929017584281310592632390896288403586364671646816276669421643357185452316835448248181692446918456609209383585455535880344566375620166802386688037750245067726804163341057897231823622162307842426248741566204438674435192582586729177981642985382425859039372474738865807647883484217497630388092408187523981121268016542109226550864640631981026595104046666449882825227296207317410631248383757822114767099914180728620761683391476297038486617053365727891737182111523496512240486771207938972784394582913823641312526365086354385895896086070195719937940777128516477731561369705488108061103907438024851813542424834686733506439385414847172862660259646129258484202864268410669846066736912326034442776503368870663939843430532805998835094735527320686654809334464088114840264690203944699404696778884796994896816225260617599365577948375143944991300248891624433754925404875351853304727640430296368093270163671469000866613774733861789622857392422185849312066102095110719225945845900627057058354542852742939407792894836878870537342829689992701725821580764332998418787117634962740504503238980921523339886263703611750900348232563471676050229552258290775012813028169291790803903548119490411962364541455211084252281117332091658821403036758537699133446637331302177907724342218811372848497819980251309524725991379010192306573042132209271832940092221924885192973265171111659557000809299101108253051418167038803739430539166726494083364744104969213523584672995516555867124098602141486009698328726978249661150843007054267485171898740366301849233467151834290277472506681602077525437288297866357671129117096457439459652269501727304876407825025344239750687272036334331174743235467348005283582064140667878334130743876227059694881048373666023084157620574555271904760868439780974144443523891943255469585548424791182592807524850625437844666588259446123336266428129249458113704779960987079782518908935346632129881961766187868300423817607044950805783558931607050437229521632709366363181880747654914786106563968645913424519500166330078160875431394503008654396190826464961607755909872410812189661414086753806641785618446994828897313963599742852152652365706858285986472689201340562246030389603469196174106679970176246149310895116408268986964053493926209803128803587823048516711716441442831948487710706064331308989482659161849825759251931915909002178676737609808968327801126356628582694718280552116018169405185382360723713836423666899491083149614564146889116146331234638369164378582250036961973902288965969519265110797999202293306976015697725605789009336080907483648858739194390794678982808489682059559732867074414246470917998784520465207270470777716985861116927514105149726434274333333262096576890375190470728521227617390271407706217335632245175768368382696387382560334663457475051548873784031356209502421036105115893881343250753832183984108025617402470497666235165069443655489180396205903573522993598166538117984388383183575814912686851651084157180878427059132035646273120170134277683430923415308517108729505946033467835114641413522533946412538370178310825243453337282389417927011237390593306507871821170682196786399132672158433874055734282092909657119513423283541371047226245833432191840305641174523028495472767597626794407111337904305939952962970768877008039478691497203208666796874401059174197740535974640113495439179681088920706106690707330055749375457759172091146742563405243597590519824414741653017826383433591991716971185857017370687156844789292757052009678408044224159825456603617254388668811867258721861475870660744792954566685264807873052852433546228505352676649490073000930869656581158527416996131246571295175834807497374400237023328344011150912640780782598660298041282208531574145734360905461282792681306222994561534253376338406142535440438386521668806840655879009049503660719652507189853385410126718247113480986777939342528586429906109071700961779470827211333667390996739283143505861712039202659555887242923057143295277507503118232080379857241331401673530486594651557843767671614026063846672946345791658211903977134478984271536282787110492816746701893615108853335495947878473957737501467507338538977481574136985625667670409258887212070233980451214119704076710284141907153916270076992915413903370655718581138258158080476587751350017723095334185654099555904610816297331995775839963506555497594096595251492606443894583434467633514504574100944238426169751582710551866796055574402098221660263598532146750868568801410403770201979791210388699936817811472677328862699920513307897924848935007211696068169193606429035311792230517873669871421760821876715563732358778687735279832322359468200795413840304557617488184540567623916388239842217596298511406655499951056049959563910243802935387401638345570405769556670135841038086195047106573844457833025645351845082524244740438078531384969079479266019842268352689960708220015334753751560752328070551149743110589078021144006931800034993709451220658603864238886564857780684423545996577858613114937316611329005712874464122382794087935994365909679434509579265502673456050099548370351996830203407696296089016620303329460578173452196205430977841507597198140124660622172344543540825923042557217869551182996225016632246069276966624357029489842574237590025647526677871384938608542311742230221586355844614999908624987594373381448180043226191313381755559294539008330991363481014916279719983025973081414849000860022108674807603460105182315815677661822587989316282190103692812263996200368683303058344336314282710456614883344875160598567327415195796588563936582527728433977056821585250409399594129837672813596248765369840266283703166736595811201419160609847901905868487697162300208018618935537500159984131777130586681123540834176535349414536650995336072473582475602220062780063937026598287060378015630911816879650577916441066465863480670824350112253765867024534673225061958015562181993616079630552271564949695563218072017133011006347803280578826830380835827614508411277594928976733965277276243238689468082655700816367092159702634824795920849757075357375274506898682997582971825073529770628757587533386214528210502119086469102010340649947270341102632049667116818203260704404524637688423420504929159458154000684479753891713906436606764331299281506496738045384761541304663863602951470762438603174016261546012723510645390977709188624015585587026773491940369579095113849599143599273922804154318629430124249857877170246861139419929199824612145399993190314338777584549265235283515349779072788952506340666881116663886216085358930533087720402175664932348811923314955613526492137238463584188447437684908843394650343146823078695890049724010484194862917162036117328797640431998038411266592593318899603263197270754836211678012389103903540689016535102038984391978951102377465230791742942086516877330605729741077549142413928752091366862217178966368482205834844352408292473266463455881523946107421298983953327980970463830388360991811060808950971646039492830804666945050065040394499520373136937682838618889892961952821043896137950651942773041729259885072436278596722201292021117345821048367669631317709622874322145165811881079376207080940254733061152015426760323925951813614502750123218896298841783185135603641986822604161511579012241688996151908882260052915445414917650085731456277763112399878824027260071441177623030748729258548934582770402190219750764745033809788092380634203145865983025261479316857231060929214177006677099920301251990221612351713848497474411674485306996864418128364720369659561956174300576183423244417987886455274411063904230840652886331155502377776253631158494534889417361062629804896374421896344530194795028732590722685654734054750075678212499524380464853878278964296865327984587245057972402681424557985348379297424825170970213185574726473190558954057427601065027023634161489036809299457174060892439406666897860388153925456330574998928525804877233283640819861905135888101371905448807333611977323360415393225127655077597863781826189204256723521779846459820769579617124948692441977940942964436177356284689456522483248923129887377265295707301683068799880200023007548007692217710450286724243729903779430450514106219583797166165863193830549211937430684588070902565166084689250015486556595871441570731879261460992151807367930063034281190639957404053883886924216594227249104615117660964528114764886421171412723362552489628075702461730654688747687560963512203793285878112325687676825409769667649730376737241073020835043783532692980198855703872611010970654156497486320644210371494233683265766835480675897276470520286177775852852064538413013989520974866344956222179947476373284823421438572336757184105430269217756800296631215994849558621772868882298047842855912658332880677357589300314447017698645638709599344594672922749662027177180341806744942108258400940071142899637322508792612103483742955250476720208120700614877930492579340485333126450057574616749334701687414683613282906839856124565309665582635509990079597163048970966919290828246404175454516461064569707215106647218648493048840595097139183022464909630728030738357249412062714449888210446537524712974713276576815468096969107576516069717500986125922625501194654716858319671316498453180648771884041459899910756396204831971182355301943699187888938850133916636769618507578645513950004169956474893360244947095512070198250515308267590410725985039131702265975010888159205438600515059939810084856373825572239926720537111484371835796257350560274822109802746182207929614654540240068663596017932238138466143360758757392813347230668270477451909316276292613214202868493154734464200017199565881632071104322911480586896269151287517240651560146330968017160302350979404687327081950680065512361833471691275220616381501708167840690736524197131464567091336851047024135366395334545317960465246221713882476321330777610032495122800194387976730400559969406989024700313605878656136763515307947831117087908932397584609332099099629571333188585034527535169793811705393886058400350468363352853462962424363948393695357590565899903615534428336634923347321638832227366136264580284870099463390538066014902508563761332239181040498893461798148582983572114958645579382594214303482362201564552428422623021699667909024574827979962841706347496734791764411913999468934159437616612189968201404810201121208860061736592785442795190150929005013653184218966778713610565715486987192220740113650671533767156510846000004883555686022781275231966117357075644979063560521419175684804754456493863696607375257012423591088116599345050420297010681648051325282222348947989018294656944288614702194998279129392164218750659374759725794810222163714759232443732427134721905007653270697434370387763847870375799024809876701593395111746967374321021585273885428601910211278301217562685132739186802763721607657205177113324969245047746033875727351845364212540847834318806416263770140820825134526424414366907994568440420443032332107079025521396610619019873078271586801195458709449133053320675196763106646480591427013372542191005135124427041406214507189924050348850453314043777764330633365726780940260262077676744344181195802580700965887557469442299762546549711793310249909088926088193675505812071531600220856379176289399186077742554297302132684122767659919621066173645352725085838917586023608333183079213618668697457231830731316510172009908507109996677061754650632402335175196664021937590501424593169935717890523297925686252252828343363087919170104730174425572967847619932454527562770363149214467535302253945291673401851424757041839857342772036843103534824018021562153664028336207252772686045316696904858153506866961945269319929892566528245040648161494723927174221342783306543246447743108940769718368725780617049627958505757131879027206758466747865191460884246738472614454179636819582264668578914468538378571720352324052309257516497589961775782390465087045882468975360487368200628079426688746118816476422813172095372717453249918005046043419207265703350865763774858685971478043312597370026896295329681019211904211657324484291291623914605111880949346653677505535218156723600017417243192078350399057327421587610726635834502846838286953884651976209147089077113130852520502841319601021766688643763963165140190799184537986489683515041635805977694990929260504895892581693162205248211876112521175821702476777710252775429784312162653308029508817306929673498748082310363864741737507248201872494289064873647848128240032904298884750626710712754064768024056938496279169600099096920614280435854999084694730335628482370168468811588719497342578060268178411433992103794626933798204044519808920111277862606692360556404178649880342208662775714313201661601645780915399432317259055081906602921589620429336676390504831513419312629946630801356058019194412811102944407457013139154065363744232306176141753951559557525054167930894595033308414249707294360608473003540682568696989303873583230789161893787154002547922819111364087428452971855293043822189148480363133395967676630810488942798193977541231096063638561927041826360597318999421676277017630683864157746749006174452324401127237237009681444279501624037529612343197947019862123733500063761098352554396018675582380781757937777889482439604867219521890898806036139722266703845037513205350438234186118718162251423521494115554310306198175614048290879902349571922201012084551071134654062664602967491868205002506502619159227882903014628485083673235256278255865409259393979640550481951992147686059217360939971826456382974787236454490497285577732919716668097012420180273571233417169636411606225827428065771630747912144265195632798079910369349257129148503212168067493010436354442884139816783648789176267360360301517111464957500483359523804912845394833319357950150232455073657394544188517310184902401087014701729631574440659724046663689166704928976810535857072669220158823214001529483530570947102758361118921384407319903966124422001191163844167084709174288356728247821068755939281804381314355962139014404182565659549752762167827020714717095501416669300627048331446640529204277744479961214892734397303233858104208981734834240204868784712228137630624595711738887660900030458535116416185304937118935221507271908990252232214165310163395317312309991527343845044859642724706782299937873544067735352579014264098017490449388335009195914325725626255142056921198763201918899939446327447205187914036304668618135178649576848356987133063815436017269068659721450193814653032820556636849567489840744987589601709197660635630290658779638373854046342529514700058080495065823212711257021918953876951862706825880891594719607852126095359754474818451181138214438071189115162641386204780980176417930774615604427169117605825055916211333090525821308992150505904338129027044098523409464691321188895829037279768287495402074376206282636751095540417603497651600920559988957323041384892252743476108676565469996710454431967045557609667812448341307249424578230661027921577310983579953578039565299892574833258692947622431613332435274575904566816266143512143732120741434226977287207982591008361503558580296671444965237287080981571142723112547669629145574853276288861248998965503699648626185569765223100624906438243969665719764870919833865261838224036291767000634657838347143498275167664450821448793286590346129357114731799670307036092015526642380233328399866558695994638602488400319572488236385283958397585300503626171696961956502894653506264036126212053987307670592168975610466320925529812833813150974237860951282717906316471394644464593868073078814261661434891122652686165957338956025126076824145905448354359637773328950943933638801382883891639720798430246923251966208773060379183140485427611831581540447449895092414756623704846280855893843256884400466578672910292827380785420443528427100258220325089396223396015458391524826109565117332296387256511877553078152820098077270341744855373433008708445777570202438149562473725535587452767740584699449926118902782810522004718089447006884655999628152568577544639176669233805027558727618052598678442987313633152927114617580609558619586250083679223795005601698774899580022049826926125123915416703226041995002933800204714018036033344926341595300925581189387410821506332116030529045191773516952247737362128337035827537532629496537273214533534554805898832666437173682553125422923709459839020045062864144988907329054532236226798170595710117571409175628866446259646821594770787593195076519300164152286187587826528592879050939453428878032200732125546798324884603167157339350856904972902939392863829259106195057894911936046610759368585662641071308989408385372773266496895226981292832421667395153796256198388725438883996658571889273662053870161013546418915429929570541763100510680673963285459467988746752777804666947715324522688445118437275203451931935639914340260561484782997090595248021192159080877390141784961496428931202822925027270386994157666780899761576274294047301624165848128927873563638428616474319843297131374420003152585351231219430953953726426527882356485148713412600089896350744056115237023403061628303717576974862176087677877002505767489499162920264934466174175208491927608078779807870256033715214037127037272830798131220431794811083189844470541776867649831805647326061452407564690319820736114058287645705455419400602577432696444622483902019034102603561899400619553213527827653970469519763703899858451875863596340659420516530144894040442373385301366615312152766515068199004841241754963620466692611800758081507688616378516491943851150926045233120997739545467719052975368029560910201993546598430430035119434335114094898444160698732279428195370242876508063219572870826587904250796319581042240802001654969501266166942468197572297410325727514783599243898244381494714081519247394074882890806773827903413656853335730070899137294416069474957279810447462917787369998266496189020206694854820275302908447235579657611906170698551563456567552120802007691228697799693389486131386253329206077957727398859236435601189309824253557254420324262338204151093148515954529935917378549085267898076980392927828018487960899975611889235390848509277533324827157146621970014034753305795477902144289067064167961381738653666419851280330096296345479580207959808910118503020615988084343013991403588211011804406749236592767012051322708220191744987167262127467398921893258359764004484358551351850498745555873428583160636946881747575748644547847382131483501994685049684522643260787738402489268987176366245546093623004611058338287699976906999711424833720815913907326594333069366113072587425893388793634721690105053838431930340153540733259054191051939202131327886997788046868382270971862025296635334976008327139364874984890726962661986001177842523007531728755630259539022259238377295290924199531617527232435207730162796444866867383123311067928056191905974888164212754736094738763761549877609459933018665413972222805991310487079155559810766167225167659959690772083980477537579752676086071027890239123197072470224287209171063025057762592265638691815768935425037627646493813976538928017029211114655769231601688067980741486798267565876610047863205617258577509843891092558539805647391296019287943168978330511429810401960498856475210491169057467913576428079112832112854640686401597634023632206710099000584535295749366378072577817752779572081667403452978391302926848521816430181188670112594776061056632405345137055048475343121817379239794125558891103206925626791918949043703120431016873243939855086660279543711885367220426149060715274551892491458855839521468475267894589323520744517566606350056751094721737082291389888964787178477168982005062731317551320403502131737921893975877823439592536831784160351505866851602096530506462157098455757697463135908540160036503895606480846780335121842329436569392567443523173493648607212006720217852089831835144029346958401358365835027094088246585432153234992053664510237929167811174122439463991900980506970457999705240735108650940136186232651877319159885610324087947122314776630721152345535269690498187871714433374139172446219642131835839378153090596517931921346491232183556185755496069920994084328751636306076436428139041067375621367880242121643241462684673749903004552968344975125369812092025155413182713471323568157735922796111386202576603579139077613260699381731925066573332539475646736142755050243830297016029218696745408303336454937712140941162418832852554346140927939030135861321982102360020379062435720746587652115546728475487237864906935914196912820335331331195407615489394374650486586348561386910331872665561572147541822067993465679249209383811927930011757343643685816454154264685344043413482657382635577434532847335074072394615768391448318351792542096484995010092245044515433232564179548540924447431094864301799884583222532279607233155867710110359778503806767185416819795976782384587777539951913478074434303270880768918303300162280037801806321919762779787651069111068891681497573669988301537289463993987948118482876519679117937386415689734083207181171239054374399982867049794468936557908502087951648234638789822160931020441545188973426273870749409468849973350631139588288025458253351358167620229310596946954350908300146950352456115709964708124062008022429733238871314352098122297090768432903928651943696255901256435352831139962331815791330124444656520891459188408539423784181460747639818990276274054275855005457142859611758837849788755933272247024434036429910348230185174816602063060045167611368347200678679283359157758692337689589205585184484710770850159497238195938048686912995766025390123418890213233191934073760365773636023177792061670763678037167693483364698795210352727429122589259669769383088925436004704935184678385660560470090985125046197698767270533835289799830004524296793801329695752945331613828472337916258138373746978379630291231347257839979226046208548537835571620009958234665256923979378349286689742900613542690686099307963635494499157210361807263976496840594677362645219510513052035897428434197854475401179360945917303751370962271973736432763987922019977292247124650140058746465457365003769261800977286185852203843550007070992122294959787945651292706587521089625700504500635571456207671435825051243837062376540753076885163929084172626947682441066803727721322861275286298644536385946366800356588684178117952021933043289177874332416626119028802492502328470288489024511404394002439021290036341966375740525914197618802069174565017123145060356250068338398643834812734576049813642704025247741496296440636015956057513810753333640103939104322028044508674850863540682478026453588668312602239581937584976414233467451613854785314131191401362067504375685317647797857213488585632915965659530374472949617624860523018320703420145057084310324620758650363411934576049941359321896186237217872523749114762373667079932468184332942984000457047116393207240896935146095396386859395660869502087709126392608675584472547391527294243880047323637131555254074062377695604764256138738203049467571282465818240607713749739439204688593081375714581035622305797897189126329819093921151288716141043695336829998623608422182364279767934466541141537448246367999502434122315258499950875088898521665568847466344939676317890230802278149064118039749914516527834661945183314755245631421732888402878542529335812862926982742792957854269106543459203792060789181395691108837680989077824395394966899965409725260340519830938567465160311948828335458524041299202786544322100347667274882902719198657779572013404929320940443075024878971564943028689907731610406800670609875363493919434522716066993735966561804379778390253080908499616999103756202364920786560448542077604594558114174019007236777023093946757935448813323526298244468386604987329294605484985269070382465787111659123322487777070860245089967669790165312431705495660672788203713397352575361440790637839313227069810941814034079972839951167998098707227222481320937831755011737887158437821155800107121834710190945396477702883378282778579271572142855288612754841544958273824626571247090961477510515372621622508861772108682383571851431491479261821472178562758045660514940912601754051053431712224750025051264812534867009096865383799044687832764110233610043264474345479422725897524819131375138213009025432964163774298295997625333304501752664535647809536714639099172684654473794069311553464320113090797258717856049058603646331858968193406459359565796266030537157349317087190208530235069432927124492484634798754818838716750441944824768607749935011971883312406840954560837553361327986863855138490935048548856685973271036408530785317016729153480121272387843993085642582839235520861204063807886313766647666748901127268668124769081013308742688202607440480702012985458392847807580545959565652287530120180720046607207702815169695890402119696218521962666438867875258203774454065469211895280404905804074753958283994890607770955811130919033950275154802357014778684849392057503863101931513367650194150042854357007664597636522573134298314796005933975296052923511789144198796043467451307504817356440142588552118151336365698610939285522388093753284369066914632232724917609095213563467268500301702972059631676024592156521610237891395988329404368863326246062688060041792228282089364164713604713655059884673441672522668295384910843510209690845289521265699614322729293631201506812487564399110898134701278085161114208634654660205305292949679585278126649020011597061232187652555161573137208887718939628244918164446951626568051793234050543674831757991109423614666105336808008829714786307831561097902407630482231876573368504155100496479736509864973645307299616334395354948996442726629826556069062824233467947911852552943436536247368928961677703956870442034459156001505529848937545880602314633052680689278164939886807934318018656716428317944250337221324529488642536836133397236603217151309078807418880229123956141534719700230657537215243705526543118000452967255492570148348786773300340445565204837540378735971179160861928711017239962448311419344030872624960523313184682526709828556664693261500648484294827411730149638151989929847716962378028316569089511522762243066375118087024030296002703983833278464117254944961011076467157973573229578826434875364603160834297198446558569727361013436142081822763818309883310333795484311239325309560062951645381939277039520282550823828963567512349347804788533231142661747442793997566400354481277322937665220503137132528669502744548182985159115851650093351420982077932914601102379421083899526600461944880546633944713189242883977496600263870216869504395616552281059644923463424285321788838675812048305672615567767006813659982712271968346782433104135515840296992545540991917060186792265896532888078659219170244910102184271229788399954298170895895554083648374086733052783093398740594239712706987667010476907698565566587855520732304233572031076868640128654480063175235300231210384911504653557959464800523718947106279076314729432510200034681033566198021576420397705140340845500712762009395135919751825872783562298427975142405820134958367456298500711232318101504997427673348945497469199291296797948905351891258439903782046175885904900747966149896628744292225484816692018955456590566308041432023909590984126260869473448287312645131683314605527613945222096798867846246386007525533283131222641375263552564734464888375709915091312358916402054878907807379336762856780612586423443185731768298238513143057430593853508382604206789348794822891994121134457428234529060296788172965899286667900357395093497271433445244791341337297068768737191118469420173635901668659310576941044542761529916361934611611546705240008716975067040449097611878439938267854683862925556497548777773857131148533482102624265275345190199525836085671960659571817757936992614885618453977970847993910917756265877032325214787594889888355481894005812820721843035825940517148391167345996681330082965780613110448718893118146617532370408917207485890258210135947709054176536441131962544973782440088681429419036041596095340011792065459845583692477736402176036607123687340601315358058199476382698143043358341506925462032515588907291758211146826477894738029733889421591188293093734803198271452094131189967300568899578828174715160648260666803109911381989653229828772873199254402981917131436797924584577401017077966038231499864966320123984259320315394825913674292726025444206122280057290168970782394278658321365543074047098550546104349681775417294654885914809577315131283330560904335221208348238495481147214833414637977027720192614270241694489628273149921622322109980594121362792440370993118269514901400150212556706463369436038158282100716121306202791864909929327362204083083111864301442759302325547600424247332130706797303256426933307426331277446081150656426510308998891720988218968269645143003002368142442407529600321680618726200807563677084704120491277475800774378407875301236094226973934867793082811847994915371643971978877598589601695387789344994076255668179859648182721891444800297122602907918034556876203490339354139939104552810633462838562914997572383067562736255095040762367167121481071282401980455445467865440824861504539963283283440954009554325989522077941417281937665037859405927009608484596911587843209978953715948053473058359822655840844517047965418467318639644209629663765418125450741803322273914818033200959418137100008948909632620449876634979104333846619346245309169675783309968180170504453376366958367980165389888487689940229837342409174268002153218551869476413371277039629933027414926361627045671718364465679342801296207060685805208464004592146467832941878446621551477606975120193822427616398867594152005730943228271689438097104894771446133098081654034657521205579965778163656676333468282174381558351889159026031765193393714901514929850822059979645742797326160609454212441859999217346056774460033827069316370467345948175197178401724101521447634637296654345138145438862982526828905113186911935598278482730987550004311617192866762009492306021849026166314745381527686978775467873495480329921986701924170198812842823694769468442773070147996417521724884052991437595920129510667739533399853068290389795279289545691018948285802770889018877404634900936661051389777494542491944012205676950243260450598021315989515629427160704365346033103533674663491726829224746595009793040298671156367034400844493673170768830591206655046193937191555806293863940788445705642928664986644130043290732165099783864694747257124713734116962956766066994460114379755874272244449658386021908048638076577777858121182612721704734933764838254433109108290281092976361977859992509293708796972408615177335915757625339022492412548124295287564746245059985081428434598618564193167623301426709823894682667968526002596103741809316214348488630315457244897748103123138790475123528252661020414777834861228125697054848111143317208415084361228556816802452776898673154093735674703671882110032490603474956899773822369378015494368073309547265824869246899264443141070564285962178973631070856030139462203788318173285182643491542381475651682804880400247683821304849075144302322599242159066161806554977671389053253812388782491915017966615001807443154382029672778288555590446082900645668645746001641143129337755059083378484590053041010134580583708770623051305510767757405554022008223889139661738743852347229736391629808806123502329107227891840273725220539579478703007189547090406019734336014564714548988331702506148056091577148601491475767033498188692011577686839257975579043440154021056920541737492690939085432465497693674113184540945686511494874234405229905914062572451195184539644389098901436310175867988278331946888818624137078799183451128814400172637678354709749631321456734365199799626082547310487669438265273230835220164229998710911075566435015613560658529563209742845424600388305497237253189162623833078436434318647989234426432007870629091137434939902119515932635525282220143176044501478867873154730912658897413398755300138576056610702601455169953747851783561726709962349143262248841311340762507006158681626612110916464022315405759975912206302271030844589397219319556842424448345500781490777293056280612825142980736979003624525336303600960167409004983218828231751043932031280762172505804106906172041373552402967247527875488457514244952337871028747065911659878007192646744243960202777977288311647232171732022596213727369433434501299335387542911189531575600974297874346265206729593463336733935004627174195753561338219729807597512021403765913626640684917356413859288924800594178207183272424568522712438803438481664811125883325573613516437960065610369935893551062666517522570191267031608582272624362656299723762127643758671156902509599324077389738031580064808900508873967910200257529820331212334575150086304339076570146318450139123868283259640068176263612761180714129916682140649934887943981961591525952864849910620406300116170699589125586667695269671894980650948550008547272977310174095033355174502472096873169135218002456157022261237667942693469583087554974781605007301935375868784888273331633769281418090149197585810431820314326461894794534356508404139996051940895189640799862092832033918378832059387372580657842314746243625091124175583892334451843553969679524543971445586864623389246801261036129294235183200228976878475564120512476102620861437378283778922855532712319036877434416359018264511748207209294477840997342675052698404119988876635953457427027352146721148060265537315783439490951113858453040579561627935631911320180356080592908147977298525332276430989211506464637819038628753210311237946749561992914362284664344165812282814047226183076973645949171590910814986202130706932376241436424708852422455678702993309727193295976261944464268932260245009928792186479130743767326727079780586882212975910586678234571016243158261413273237073330999988983719500654002922259926794469907285280566178341989662562810701525507297442009007377887823635336953012155218006069494032831612255989207703107817599111696171986056042533312057053330926536127573986558596300384867549222666048807998165383061342576281067275731859049917599907728686688808130710952261400652296739839129177937237693031022353549141612695702445385000085243833731968095472821527549857703125819548735961062107319482066739842383936659371839421965350399010466046143620046311377806784614513227612217386666843909972191159152782084691643722256093053657973523650293322040537276410537842475993472022507502771147540963729388886755660234187344260742101687010986100086613227190034057259880068220530829711695373932543336168262262004158495675877876873963204667277677023105854577708842889753793852841344300755372539988219884387762330229358943875435098519288009943263888591881953442419116945417154761759404587934738051994134125461412402172899880948566357385168316325762726390055552390249802846287318465290115473080639802311522272754691650759248724436682748814754460540535470720085958357667320303859484478911430704588605605691908023678154544279873598517523180352589730929426124253398803752094017082585906408255863353574157457822755500296123420884181538024530303478225323011235318009588361603067522722297820426716924995993571336335872092559582286701741807426656543346856154417713846254986204180301124197814469235168692470471621016723926979834496249507385550699050932713392036218425322370961987674010987919149816833747971534956546194478331340048081837509666254736558821308192258276591453170269734859255256103098865931657696414035116974384967793542552124644736752844540087812913158121121196538422885694493978160026585589898225109768897503837763990125023395482452715064747307138879564313338956247118724030591994395377367924619061934847240359333011776252414394583402690607840653637183293657737302441895137276172411359265963172143929297085723417572940291604804168650770653632279414965641873824266881574153907473988611202005450889591932866143608093504832403595780434384557834082038832781721653186805487560724232327878720838508112237785734839374627258041037027772961819238063680487322916466657592240004352112742933316444258101095610463383461239702416305307360071955616147682218673160245249502985528191962496454313604549512996291201387825125275066361074705451081561744988005076493048430876881572330962211591236755565699796286458041551818933119384593200543925134090694075763224133999348616924269965630167135831908669957851982791253009091705620975836052651051765393538230943434609123090710532044305453348920008290535476711956693560240421537335442410919858251477969740052938210745075388302139541011920237434354968805697315243637882738390439337884073356788190874952872823332368138204461692579077928598311932151330004017501052205420303948046150288132868344098808968700557212192939065398086855423598939601619771044724295537183326517655523819666633339330703037738945633453838434678649384360200494727933065488704906819043606769364551433898612194391033926867794478438437803880716924785414408728555496682977466583009651841221728521157363101186254470272076263749296583792014627489499063238858233501400819179319377845842038256960347069447665695325995974159526832067374565679975322007578592435122649419543648265555304627658022030151101305103848965266715330837596637679107545859540876742719053158481299345020970908167354587531967647013270551660657814662161957985488461504747380265042572190005361279146882811825376806596589756971835381847186064953123565893769465999737122812939173925357192419644258670488285432416527311372068167367035705837304970263530350215281823697672679534616906407505916346267603048051121016582831077698494630959383794282448275686918430276352562726215336373148903222092451829182584784156374574168784638983214369366325437413008040556146870977574253667230474546823687755066850193595909775455376899013830311120582384559659181205615866850360952048518182215767947118976588693719922372116581007597373441722396167737727097947915473342043229032444253896345820767667671965609224136650868500442801971086443798741266594180795835184096805967039618749150346655843205879768380942307483453866645260878805387049796747425925622188408219260136239512054352965212991462585529249800356241498535337211705717037503903678581861849071814425852977707287691832002844336087279223986766493732611763292809087552737650115317560900314599297933646182274238116191529500473536197195253974172049896393237479858432624144103378879328300674273412301643270601450796475362331385490509045873678664045074627858196258189476667457058295843294865029419930375406023012331944394081833658312046018578805799174842982779481760063348048499240878343836501375251913277657086000969139688445792110345023727295953944478006278424377028157940915567656019151314799300096256522047603876866995828395862987844593047014023695939408757626528390359384885813943446161785806671612046001410883508414668457320618296213013635744710698024092023540149210524679446560944539589678772082949180904300904529781714256338303573022504873107704933784153685064698312340381876492668123492140419145266628639469194044675712137050219189835437320053651757442694216344428362258534973505228006505133642024496313557717280335423010039886189838284708528151089523048669860966865671482713058235449487775884901525693311489727527931894490142477464101323460977940400675860123999968314966559437177430961122777602504323289622591986845990203367915823538875981087958144444882008792424230421902996963365257958759800348786472712423651750186619805513342851036362134773794107017391955207535403066871251466593684523094230545232719541751766001579623426740575860772916485932636180277390506363983159492644713269257243452109862883559530311431384715780841685931344343662220744447211024530137375574041285416691528132454056321158794960760736189469957422765010273043226587284125874106216346154382179965721021851442593386945107259396442954446678136022722423841476736213238156169570647907069267049211900018079236471336522940814911694401465126290741497352435187398785081985599767171503687182460807483652858298475389753474720884531085961358649054064811964186079501017322997307800382429668805415507745453285125931372893963692029340732675500525292305028352835504569777904729717051135298191222831810483493338920475532199114201314532031548490375692297873917032088309355500351652784954375645205817639000430486294939023079714030392005039534396672706610642116197803168172167389963094396728966224586601316494816439113173805436421160135236081939028972152991318117489443334283237964160751549583984397175312609692865602634514479037794677174631515117568296783045166221335315931815304799793090279715938427057288798927912769974613710242793268347392498632354802657474681018918948606907275094850324136846303418307142173080961488924439702854723959693529377261916668514038421815861848989419171704137068270262447321416063828579481475067888935271655526718980583292517108608902627770663261371481200233220890886725526539836265236156461601795201072144605146385053963666605842430477015970270052963822385932943858603364857690330678030235522287899208876797970410736116426660120702253564247483923430931814917208589412363823948220540130654310021193927278092729323909066201777502398600898182488632006529169863881048307900336321350212665724567121244340801926929644266106475423797070062718784463126826528013563665298985933458307091146512524444512964598089832583459880810355277417669302847103551520012050514948067602339141256770891863266285268947720803456185416299875097683586748783175312710673152333898062871835431457012855692265262245467285305002571777049302682406789621342440446943734390589300332047789745765144515393311420670683477850977770697536971285238052367385304372213725332044270971391480880828612913217945599426585310828088323601977706546568247411248274541083339285505199521914011489936730634221212898999762640720020825529621985266734393295352431076767249484253888162607010655305762806589466020254359815942571343036952716445007143486387569712000257769494381113300984780321101011294674080444679906659938466273457337582480536343988140457254038129592582085242445304801595404084819073679306863971110773743175149149638415669520198938804290251168445382561374799390510337377679449449472642279865836582967730980309542459079560748621121623524613622738965001691785829679478912681625564993206113479862645912529083104306005182788274333615361748256377238915019251804960544535332095630198174586586496068619057080193928363496828409699947673411765368639283505897214346520734976350526054004747568106394192477983026647991113738159155274942423327797335164937476003027715099801482889028447623329753331431425798689562866886803211333142323579926922392218886795624340306659476848626539075779069227466959884204106109413597160758815969598494563595357371881647663820911155512848773096891869518264461048835888522622610030104316014774315635081235726554571920401828601753611794925641261266071898742744811174453257325481763919288382020422812731871338835336749852323679378192928868270034446382767910765228131791710820628040708565992434121899727171017003261924288600565558146435130547976379524997399201458101337253924497047535036907692600670507078950939065197295816890255104509234532625899304887347116693288828371910056481360608340344098143040402584566930556436403216440194356041346738525758714865552036200108185447885739654894743679752177334072204457791691739706553091701472050174497165864144499566526109841043952504212946825809082986382401427979951670108162428075917191096257470868014723119211029003173506972540308012914189660208864949490397048776010138956222714019982217038338621284715860245684051963427039825075795338337641016079025678984193950730618764806252905764291080957893345877691485965434872659565766700526460772951789727755549770872890750050424835325638714622020999416439710572199456011113527799308352772057689227466503799213372876347037637796889472968059809574511439095723759494443670512438085486176934561281202938070808986772045367169776361144468358379659978692450396958010074282919444359499295240043863775127478968186686084236593343200399870342962794482031845454507986396261943262599562377809097960810312116345290052367891782689745508680687746404961518282322591973814075081439202809654442473024221765738662303781321066912891550431614498844477403739167380497900345626123704637842236231607965550707766187528827503099184202233650325322714030095979422342117338175816627842991794111061921376209440386472513605181958701242625506664520422738751803503175344565681693042983884027270988030425798617606427047696929902908704203442852196832932991776691186130117540096269821455744539249120007489873705953430070159126226261928316964786871194433468117745329658756877738690837541637652680868025650195200951745030309415690279408198610769003180165512515277478641991701937299977602280174641315903374540482269331583911496198027022825983744274102837802012451980492487816470035820801828752417715659468289057096538884503845002956071961726351551260675166661220789616895221346265988014006563744788838338366475469225650425937127133591800608722535846086313741979321344850808806646520109200010206728451904691279431415533857947880030995921797485782296165747992610636344901154614774216270385432597876982075827194422159662131862350120902653793256238061465681662705480011405935729722701767674141014532432305913825755625373972969953523211202946895204741377441383119095429592452503735158376581799531679817046894798562681739318251991478260102672773587886091906900049924062831393921228353391823440762943918838433231524840691604734330108435516631817536506961105418156537284608787156243017887027511205061291124771625313428627205573738687787071527498509172446106992234333368186239642276060085786429790916889028391254385925215104599536328772823209916875095717102018897573866033501036199867529939328875872240688436228016853799846342292955542477953271432776661150906529446668284855448718926398410698828551944963909712852073738994996304283248598345288270270057726602624516462773056126931697470400980938415530391720396914075943333845997378292381646815596518126832636499119031116110509228999227690724492124611990924100736018393292666557115822352476668557202056942440972713396529224204642922027966783975966032964524965008755481098606280300089442376471168040563091484322602789111561675059534023211391752459316365320286556578857415440122593146480235453321583818661934327237487905391713057083299953357023261107251868739512503322796395568787359676643880828252320255616646920732879040726839907844549767607709983715215489274348856684221280524669165942874588664430796943690166143244186364484852040544457103317871357585382206527207123031997252057238371569324129901014397037537436397623900914310375138294222318222145345271724471818383954066591373369589594549092294415083311139164111536307382803473796306218745289270418283149016796344742777218457018898405541442019552198213249252618082122430094215784864103246287483968504780778801548725957202844708242032860797932951572595013226916195607449236776789130618056498213549314086828287607030666474276308566148347588085046803595161769696252149141365206031897022136839265891126907311173262458950720868168230900727768040299159273801153107568858989357744724470006856735492906467738997972406003042590789364982299203079289993584909423934057772572091741671024310866372219829767223808737118670760718212800788921149160281560325312494055515365916047499608074235601647341781501320619754456919557737626999364393939354352757391151503832759489571743368847535577474710906810550150531826915384535945066893124392992642416081265982895582711972628562905692274849081567294524336967669344524371571851258514877252007791916400626493772194002205600013003065910067546131337295769160904638145280490769391107355525105516735600627644133460808614389377462689734641297451796949098280279044742377739797006000819113474272882339282704545522516009901925141092556085734884783349739764376893342151544076017254355743675542007523994928032211207675028787298030466033927158492798089666577633219614575313497165125135603887862551864158503052807729239833894255634926562410128979923184073489364479159071424541796961404121028341745051465425952980090573571628996683973972937462329270340713493263936173760636887462114614770332224338730780669726539832597009074183374371713880316131280937667237566682625899945978090089544678726387273403795422848481501020698677096676966803956152721435865872206641305236268153221197632427932608325564321438048335991808114160780564895367295415947051179832410769250087503846653595647641640492148192413800987694794399558889683934995668878100885956684498046483641604239698237217617297799764617127669127316976512641538358114402376825448207055118990087276422563107579394825078577183697017406631372776517735578815455792344864227151336125918415893711230852363687390088381416978657311252567931868949990475151017813920654264044359757665472829358743106590780636096201203884161501527539536586543796880817111151961664826721464775488630335309517558102368985071693006922301937405354569090310618396991856913824835995385555495907364107193832735337604034091824208062572135908652990679985604909286883453985075473677088078842506241674580845334903860513343816200047640037618329342111448751033675576961636687262754400974308049103474538804304985790801238438511643247743334527407908036009231224260222950948426184270942076100178576103416012757217871832733168342007778353858167705746767241852167377376951418727227527654120188700157533193669840774921102739271534339134186605198859172363811809198053076128475409954451165679067118022941584752449600837772438191217688193184241938765760470456367500178252768383905615563482327429777733509954435213057360682337255693400483004450846125094993294345049183924262476039536049537284793947924785667555470207008029260918431050010352749548657755521151744156560815051689288238776658566285610619184945622838302279045226308080244370001189459537211462099073828740049772864982882761440979503661761454992569148346685836593404172861605369066298981649392852153742855971296388936233258393300963654341417914275806412273385627644148839090689808826275218254421895565192257883338214845967513378792851090515893922827158167033381029949380315323951506725194174268386514414057614018835795821749911354579017148850035492719769295397697363157354606089253308486695039635835569758871523573799562189437052114117754531363703539982004668863761194293257246183862160302375338089294543386403926990060148166207153198428743741995019835859586106925854492812796742614137959557901555657969984110874981851054468511408002095284709740325536222957873318816718198534361621220671585979108201281502430257363054271364548048404767774768052320442567452794592356874250623243334998871197892152980718225415947141181405483164102101802585047875548247490289180056124028692709463840160970536802904747790109741523487010749748715700051045133037488871930605517604069364466987763388468533417999472896613832293800068872358011852752291847902959351158867108023290954969628281539040815368909429818149924027477323469687822925192409938173388197999945417891965218638698201148817464362795179863150175067931215850259235050923358976837038696944797070073822901223576067108871376681710016950072960562649308685816499824890844737418363004021612113268844925769831548810144912185438688529503272759729571287160289727864214149623120157511112138183245494922509960348931570417549405781664651347368399205284285734581778771204558043142015451716118729758190330182708642728886273182948918858429185067589889071719683416936793862139770665440752687377743441761468027786648096845347654869972521184375488796812447876256093484807817016897433361770969302555665691644378422615214271976330993872767123908812279478584564335402380648983363466457982113202748808637452366586151491035008305645170038098985648678874836509261634566166154823136343857513730255311379184778604919109076663775894083646051192181750999339720324423212974905943392421725857530672748824127955183273534942115561167205670731613063942953130346708575751901591696666679967838843904569257213296257566820862112277256096468613876629143532893673225821161117507541482153252109768113038807321653512028627402180828927934983954526973230699085614327049637229174934017855909546038828389749244059914023054898146573547249387707875849666595692557429083914785584598532530618652088004073546349801838293739958823703497597182762715924705494805709629358775149769771875610289460144244904198219085855001459812629016430318518660626752876477809112078998619745604437666842264955664498188057742765969493576787439473635243794749419312588781232109776594541161343324389845718492645759232259555299661240287666912503305921307265416565974356585172477966259152783681857412714471925655200171071733324962717873010208917446927443529711244930120945551702732571604820559827058798436243819987711607494049207773834225165575339405004718770619164325285952706427103427920417280924264726827650598115785761736685907670889621376064618060302474157528604720125520710440747293466576604253971100743608906734014494692106569293069147085176331513779197367455150511905643968509877770084405503501410784969369565023830808473782156832444833713513445712056012283435474522448172734310527169795097153942770388609830795755832584653120522249731040859631155412237056561974043107510724799767781399317712957313634678946433868238389487844144972833339321414109117002337423715797021010718886292271110252614051384075087503960832633837800692357926695052210234157791988574840926255622190123023744093914599967195875559390361221940757988887304689639949224842548798177338753330365424175662531773479476489879829133757850741126691777591751814577181657201298773352027561996581965295270449558913092892677840957785375060716158583038907090837285574837824130364282659503272805764109993314100019832197860195435912418046590193643302207914675707806565707070530523904278842058406612328349791397509725346233365853841292202254256707748951215299096281943810299123686870879277115246897761642493983524886209265650386378735754635224677280576229991561001096091873295464569674413409692097819054089202362267277155738485875863072944395339774123263721233197023379510584979996843535583789425092021038481277203527200639481426012884543869643950452138242400353997872189182940801046861079694388774898225313457834856227818276543051404673520740517764718253898360090898254805703314166393455874112861774465922369276716460476748861071609657261837032635714152798173691797419907686519805204533050453383525359422299088964546653993641205632314624428167690506761744129172367062339151371937253010053037656662310252231169559619645589402988859462706959010528415243922253946525819863227542882515386954607135060239089866477787486908402265804623134622970288066128999368172751743426206607231629032149174769457403471940233940189195437974952471416669241560641881236699425382648469632965230764497785637415655525381125855828281658325489104473815024506295803225303488254291052138325574825829780293642627103397795275252742521946985868886434441144817927865691658065859707723581057941603089909551547874463177887209315259476290480423170029056165336818382758672155810057720171155324422761258769098277076116584181048702608790648814931602028935602181476813083304604764628273185868085558230649528163872516196490660986337118642376217788340644098780972277392684793302251906788038790690055036766492519494962285137302502418530195808618442388819247828799406099200321296249236669176784338275465421455556860038366530624201384647849779798320896734034874824806136561943668855548711678844788329005922203651112893328675696885637680800201277763136397922527054785795031860604532581739672063073891186499061863989422800817305551815542231259488050663139267106686471195606313231430999331123179922390788057692383069993572504469527352814236442227650335374467893826945839603233569570410847455860262706426106386963394749527039296987431831668063446073550010136019568828180703285136397477550631501283927518760844268409891483891109583582547628176289707891846641566864001700607218221265745266317094806349200360911777577966180340717692252477060902197367799322463306132030025953905785289043250584407584681618654108336407800120740956041379456193905545971344593686896733860801813883737277578344810630255068475089360676701918333055858527933381468024936138763407591868271076819198772534728607574876215710017765788527817566638553177054812621212475582664508666248264115581738607278036392921008141388674907360116509090461417828549404109950439754633975087539505652488445366047153296235652626990633949500660807063203190307916865845496514997555524777304952585623614929287936378578195343396620512768790589129193510055275745724909562129338278442302210789925058479712991156687996681466195060170097869802116864323329286703074001397629827809751927670514733576584471291954856629381857223050849272230897956541964659856271869850588884751071583778669210048687386722862975622368946863386122233264608138524529456489332089538890135420819612873165401210938602388109193348824717207529964730162750765328584660354054091376314581505615399212225452393670903826316871875412913483509662704612237051220389471517185722670740696177605604092369312037018980340197790416242759932508250322323741315750018224690192581002267227508041517288752249059632498250275904740557491133984477042512260837355830117312527919549725227941032995135000444693772613655980792839197643078668515432157923607726852872350729040729260024159476961086848801553626555803708890979425702956813423996756291355961433054536381856458307343183347928236216817287321281664531277228441834168403389149013412546279789059770093373388762694760671792634279809418020195393976618479082328008702017721663375668962499601538843505325951070502761513228717929191578166426455574788474286017874636650925329957021609461953675709799615497249726625049581385602368717493912326137771561782797445143701505923516659650803934135018077404959383063634696706303603104283556905075555800610507778656783496426525999825997112380373314247155755905428856573438229927154904128912459569847439333978437238408676117064603267923991801059334797105534605444844068411530945146560545031485707422869101366821789845408835458568472945337454314122580920215555995332663040613264580050092447394546713580626252855298646028247713416727464892731645242248815375913165396971097208970928307606717335390641268778886045294798913170366457169935419512353563436361325922927168207460805376754519599178201214027620266180825814896967541668123269977662485507443227430556975384928104655250554175892498481156602804690153966331527497259706703719559811285132606243843961193885867139320507928480100435675823285958592623191365842989652890360739415135984489408585623390228148375353995001024011476407488514069468904849500969462401052466476732761564244665162734707470395127439085986458470690663855555666048249638200452725496313131889927164468206791614662344190168985265145070699044151138949529511710004300706396303569119746897903927516111767723534054856099684945045758464956500478661114456365329116359606388014282535581568175861851157879136743441340673335428366900312485414261064740171818666572117629115386031509814342613707154662977252916113005893914883649740690317016378854280551859963685841513282185856753209985776672321969184622456882899513236297874435846047384469156783575263286883343408198243425328016209926490900015898632660092002341342669658323864788937525916102192875391017246009640176568863103703130072318712474138533455557821087708386977157606857081076061629107643909218916518574528594913827772517678212857214250494524215323960212880909580671484565441767463042022235330374261026237681765196674358973374784081727220177714535070013335977845621613485151920157206884630354280739222168818113348353816898250645955753027933493043104519088189419800525216958174113429896141015644112793674289746747951715988179172717616722606092279052318946935337155169015051990833782026022268787813706274245630806561820715863027148614725961756884654739818326770868292714839022159734626261384062626084430407383472497471372359989039577738858657735326675343424443669061198334887547091265586007244766683560586473302436850461540155489232053276042235366665466745535009291954713921436709909910237027862022721165815898817905011957925730379424855683999408194044159774282285164931892252463182181162924801551799226273246289017078022234888617100620973154615004545979698979055834944142762643609918791962358591182295276134957941240046739892352671962292954664067482328913455243625541767145256932085661188962065011050941237993546846798980969690166828084395245366297048252731624735730029246083170662146257483814114716167472943597496107666097520201811914486381608313430568417306724684948632444213587646090327776629781268083701981331833821427299301956422127337715941520122189839174701462846772973616814841042392820070089941857017815979719587553208618822952912737882396264541168456474196822215470173255351029859873200666436946162513669672111374107259233871289399517817271324594344470358391718954106617961969164949917718743695391797316675077127054289003841324738174197370155402744835894900026943105860017852377261818967064250080000725209328666247012560151362144945286252008443862696754256051302822803586746610260825148753999560261964372367692692664220145021250837078886601609269509232514498397593166530635557944713639811755985467408170857140987652521121885739785501588335078116332837661864879869890495706039333787416353651665851001558013180692641942632611828348301127800810318498206601254231452474202599666013166179545052687500253085363398215887598655787075326127095802617192660914906586131786302477507892286312064108315943312003968443645913246282970899100580828921125962582492994251126369052156458700144013718177456303197754707988563164417976585738593965922917959829989610531530771174800860457189869728059517674776119773215800450015851656819395788240436943593627977264832143400157428823450923854402661395963771249100592822935544246124340186690236872543563739654936819965611953988175417472058180586517764307344357635993219869075801906251670892591733904861076640125256812061198950710265101240129991791603201214187321983898566840693439289397231729936790159665053467707931039820066977856830844997649522766867407299929837637385438617144369730260193632454317890366679488194101183075521352965468108435672070697127636377153418283035893678141951912032575147639902304368397029313905066723971948369204889971230392141776165837034460034085400570638123216088975077351163237027974664517314421950478674536774092607809236458906888529632092342729654596623333842598448681160730811200153940509108933556472603899223821068441036858633628517237147621873741647175011939792330920457827907037360921692468026520998397826538831503839561894570569521794363275047384326419974857326706367029429897338270349682369318424983518412633169833836205165709581828201223456886495595182755397779870311666912163748216053464866633748776649206366762244649286528837600042002582962770006109944226706051836093617546192139053882148296750581558452792209544940039998401379985895270766817443716751108461083583151992409785424204248397191974982117651475997512952930238109572486327346349070146013951571251388002335308636136320159567923191735499108704633534858919103793262540598065566447570111466620326271856596647201643214494399500460697606189304742502582762033992375282747784402518491909992915675855969921289199314335617564922456672329562376894964711988526492693977804094813722918491870703375084163879290444585063897873356014625582822808399053514275671692252238546138804669129711680645946514012224058743785570392137189842692112777532463297356628708465442307238941331711426219140089279664951242378912794742026982822174117826984389590240307718204268226765842980487621206556237931476946333668759015362209739287191704003623633658711409375755137406092965982516793470741123359535868760772537633145073205326992491999155941864800577478424565402405155991132004660404245007812078947893268196809441212280826365172562970099764501442639746566888743734456136072563086482343728091221536766183687572967744778475069508674844133415424214312017217494517637589402014503043555010896967799930618642227941010144945128868302026512623357959285230879884664398855858919097125050787011094645235665804105608537183027645361998284560557602323724977090704294924901513379188916077518872779382151477199863304985163311225099552202138278046061483471957143658983331379196332110852293317414696353664290697739473140329228669274024424781403526528712645735617506620985332783444538645241121696776186919426584232538035510349667008582544240990402852421689571295543258573250860701776251417638211878436803386199366933977378588719017350571510196549111224619519673697904511314383818366788581859047343970513940535980816094899115283724422005428837406147713090664439648600570322641025458753754787017021005970294264124385049552321132441528792599820518318801250260155889711099473330104817123861804701127536055359601997704723576900074454013295943284785480401637778835493539688181835028955273245096158155348948884266172254051437732179171037506842111754957365566576361357174037198081724029495851918729415947447569363489424648342219205726254051223075698588712641847685778961107615952621361444008868914863968244508224213069492816374797749473936340454309497171584831459516689001960476955158867286068536744053723426369710476184756426836416042278286120205103657860149309292060244658298462050446168850026457625652432496448934564582881871801479748428385283187547132115725382320962811836209079812663943161733097666559671143257735862401451137705926854873288340530347813798654415103402569530667457622496636055676620331453300601917453201024597893614100999853592003729954250300240705827287651367777550990358302450206568873663514466815450215636167595464830080195826812998825604605023233677499814183822943713187580897651126035295781133897883695254341238872840518474645629690348325319706356264514573810070071998813053982148257896050525138645357757770572226036563828443335720631282213240970649735272608570800570673206082709489460734533999654926015919959942044386263944621248192685627616525275223265793769131398350930285768382649499005326916262256495482065330988837044970846930067036412372233561562464468182963089467516469400459020911576752077346877555942406607473756432423935147050168498550985415937616180549371318904781678581648691828936639307013029837727041490479030626412592348683816874724970302476003322582532345411078025807486442507980150802917942589482400333511639489730142584090574287635982449404570146159991421236702827116715656445088842057653467544742056807930330520983167215141554847930495914462893720599252097037527158171830313005172221980180650984235812069805499305907003268560708470865812990103130148894159281640290959141167326357446518587216983842170303817254932601774700656994758113324831915390859560005081682076524544789313864149163368472722452804716576925588994097542805271110695224927174370867880985824405506090003385534894462979878491088585045363061876575415726912941772763261379417935728113126484512252351073207643909397109204860313746828636808458296434585479802795650753825055193388735232497515409620653131087510521230642261598659801670194998210993142878201556996850585273128269953524937749031226567553585772129343979956747090901464282102458706830985950953297051766181793293453041791124344621488333553322300303893885194980667567123659738018841015651768596458529023704239430086353421606781819882786196646328006637898053612737405036038781070705292960307406367319021157317945683474392483612078688256555137511996034984483486638498488150318352230705557995134887898297689915940855203894364628793429147731889568765638814769024112194045252330688758233607473106706403070881447416989268833210968173297299753670960898885311887378786298625640473458204881043324918786731090959447217423691853097683997113437465843969047376743174607080943676991453718707428237543406175495606918081939014531340125910205510508964325969401223707580391763165226388696810715980777344995549713541168298986307805056925896642367581177756933375457278463101611577283611625993434551621714312366527829285096714552197114575609491846086434957048886337505752293022450437337482532196021535501767538963000792925061732650329496830367777880459991314789857790451745113072317836007742776977509357778039653321799784294519495773646363325732907372592913562697537056361081871649683017873261781322252705918156758585943841077319807696658796322324578351563629175327714023571175527205369842275256292579653872686632773082312199434523488062424087076012841887695639291029418123354058913639524572626368854281930275975098317987019069008745043189602039209402021579394150735919250684261036627170376416091929915842424939368738840178672247716110164235534686631094301985901479005082353623272931031451211003178035536834474728277260566884320946531103739294803271571139592088185151086594422099846069951203081621180136508832077111687105145877369916484855262148983904792585160089184271816896740945704224203273785289695129371187499701511249715108630586914625995717813750769287238897654837882282693636241042073365595176242765404699094387761335124669691511281408051799639009466169032747122609511331521915398485176253438711398857475622701406948459945424516553102661349824983546230206322898748060638302339113652715982437025978246319764625215086170016951140270395305981375085106759416795275767465279084012077921497427760931438963855053160861664534589030471243913247266720367596848461603620425425418001774661817818664920879452822002644802781772467212895344885149692693369306529541793116829308757946055919746000367136080860900784467796188276930475629564090372276505869608386521449634767084801481932146139194058943292842097894405697384450581846837458439434496621898012657405230658826851101718888326563351459415911061800510374050132655646272705915709774199634261444206657433530264085006735156200252298417673304397282065006117588389085379899181782855124572800692721409657653329113533668361956100011802842261428031343657516301614568470479656400284171999161356531507765510469941228526814523116061476578664927828761482941983370515513973237150299505923813445284370726051019525147565659649370971744797862325443328273369599167453056758308175341882755022921829804139797605442102509738171617578972088514115541864648746893036645202642737566295547744303718361360118736576536009666155706599103789204128798034799380632668832202098026439178384129259106815882255463764336980859083661620969234773083759990694390206762233013489409474075536831579193458195827271027837166135684249575227584281087969621606240119647506673702336908761262728786395189343103080767810096923768677864574840747686880494625580441010185392891070205794241170587192070532888904733233781663076191795020128966939319030476743598194801193342606548220166324688693242726500400442957597529134061879756520167245082158716458901000644052743789396770971743299094865642314055238369398299165913286343247308310285008160819706948187055050381344078179255997091711977558602913948016653890938217944288405289354898365560120945151460202170061025286444742768543829456238660979806400589036229811346094404180547802639600256892635445485281398032276835249534267825302374243276611451839025273483880324374636446438546925679036500912126742748389114772957400599952628849346328699086591176447999263295868710267626731181236189980794979662268415947268802135651304603582169814684676419217968138611128490802084634146019181622660720784028485366556801982496883610123987942660495620000357072152164928366248728586446897880608375224123353537057313189801008220540757522459324373304919945190417484659417578698370791653300312592332982751183353877159731621965509907295036255986112285510296420969242340112620841308936366471162222584363810499793224977773376266720952533359115319593913266556841020526565406120283601570660185614755763930487606497250720067844587813819138496230218642341436070305756564552483941685423738379964220311791455526592759454401266864156771005887627271453681119139731106111673341706384902545338436081388868275303045721626859115693466563048846977560481297372718081166419635393944763080930601185886652202749042906955713314752394194566177831742082339451051161094063205513877039056704219609115744579877901156233896128345153777872879448189985903403289785339410231477664692826620833651624957586745183591060698327018865656278298091634981845064405555291406871266902257956352949876737791504163998084295718483913988680233009499682257703130861988519140750529711165999808606380515144969525342091017066653890271676076575197103228110406839038102903518948451475732470708640723663101265042670923923254016503155974921048744131519339124776591327357910913610450058717934158158003071333809718496726967603307285402913656232036989999302145680641343591495897089805660187513676115020630452090992171225284390066863276879083174620871106565288999985376259453247861249632534667098367978115571025971459257817367977559632052845300663979403424889627332670267531561895280926571083091589100928869777334057989223757123205173138380516118857174740214099086295384949813414961390583006484828366251641698878886861622473875043541296715924680792966385708621455585356421262771540106970469365341875156138520734912544638578966979728959796246905110374715590360158920729197102708140312965847886489440068663867715549446386532760524892430834972859498718276335367239421170607472995793566072822298086521709615729730892199505494836925658929084474631567530324168641742191055340663256048771108931755046302577194732652665611947352246929731736221604666980419711338732866985964467946508898014232837277900837751346793199817323507121098078220476850258841673077031702907505518872740561887550800149867128767210259042824195830771809340351395864779282382000247452477232289914094153217771285226347975833685018034419502909554112443205518227257388704160566910152840771093129164424404285704914351415612572152821974877540955388420590874322770184179224559797954857947090223775361372395474445078879605070870397592231306104583265539118261051228373336193873022933582413468255283835837432898404272274580776105593096556016732728689756778286096384312122693295992427482902181812563301210394724112874802316259561246794086914019621867625011828578781369431503633029916842978305195836816821584373597385269884011543591975557099291045170398354112341886961319084843794952445850008133602798993077578542126569413082933201619465150702221531639840837894733654008317877101800084236109578695471711580257038605190973078239824390403308275283147368726183870747475013032061893100760419744651042171771133607652739649050156381736752489875981862430990359983696350731804984105380838669642412950924639632979775674793945222828033847029864480178760939489292186533179187695097591257812017665602105977451605562434734197584593851282863775712619552679037470324941830547463860645530461742629359965208580547072833148362852636323318912392817689633616271301701300733097823059199958065274893239969401739271741219049178172314561891275149598163924040558142779079524180611362379740136616164385749234488357571837751949705291824984977614566435156431019074189714405430099632745038888854398616966523978235148194865600172101217771261147578878417948072360308710760855531060198792690229123213131777534653173263294967724054355679754865843515201813755369139241644826433743762894707737183035198395852815750041113287473942574457673642843642199367092178812854455031766595269499960525907050241940423504961430398205551054011434968165703959381865673597623304696348428083052036883536961898070153062731797693414158996907700413347370531041700905873936115679744421581552318559778503179004339358333068549086243449387894114427664886393763177875646399184013944026804677152103685734075189255945234229594590264547490601202578764145733766978493347574566733427939298036161761191147586523295622468154793461853471815100202682770710454611954473728587420595754869506532180530937027980492952388784710933596537980800210712534296380497417375165958760005756124663572016401302813094681140665880948839321391000736800887434614866973618704575343839193252010846280690416953518226191265996267844273981159991045954248553039673782000277264832667253396787591103868691382792027662939046451439984209955212983102615806955064148154960503110649900004329836407195898907172957004246072217719434318437724669971605332746401721362184262263987029511074905351759084397604301535065761532756507612847298451631076363005595480608571361150850074839353327775214652496065273518356690000769318588735064411343035591391900833315411293327759274642811048235844206078768963356691668849177000880244503818509836966002837340686739561248441063454632170289904332975160440052510585735993764583588312329705892516503128000813007352253847563993047470755378978162164930244894780420716716738589319625740419045932677225098357117635901874119875467477193497848725848124310529079745705037126875861769971800189952414576347605051337949649900679918973429276489926426243852317168337912667018645642422541351307410096314009689224263115460343678822343101929059119482901665931147757111571970948584223942673787102679683713684763393610858105260774098249629354840049785895849763842773330999496291118281084455959235749406155680760713584017084952794604281533633724800847521649724978385318913071462346085189208543802376111212558314821759385398579356938434164477678649274551226633722390200821208069115406547695525473694946468916998976146374990177870768520221960723571768388627742519725752575415459806920422996854701703145170057648387808659854389790376653407513704342098149632649683870898307986641349001337530224104042523283725677220952423358603119946342657048253365024891614263508219884574886198235417144652244938192071286517204487884232190058072175931929583859634350540587852400908497577931637129658135437535749465860114342194896828662777396720306627647045336261865727219949014480984481918839025948495163195989993146232161088242740099360698807811232830627956156167038804907484329987376434483055908691255081860164859692958576617269258834400872887473659446076903834753141698020473802491842035677015169411492128131367586987872405960649774816366280307116038239429932583115304118978159629856050756448824069939897658465207935144115292444310775139098515036253688538183315577794001866610384198594193588134513087555269435234838458333282127986350323103414087456262461494874806306037906222594428157835858438060954906305983279634791672284518569393232509959141324438384281787101486975718258083969957746736720288957181965647147857152911023502644311900032682135013033251038104630765415735305625309727717700231471171997137086766710538419831741541370237181934433663582433163787060187279882783320693126270407736742132004221136151032282840330849549494728913126003410556198365056741617833449904598559347280065659545827293281389509392364109227783144812622385885316578563461486049104220075338075699983843915536242585320657692023439565900225043624645540442292847526335718269024865993489483718282700893807833724692175843720256910081999307805311209215335292643819458434638559460803368015726979055277849819240810080222800511669543718036567088304997771610176370038160134719897046974195695975498783936316105201541236702245475497315233493970396165963261362654227929729944109538309080383459267256572715357516574224326935751060566724031231730683342610494297781300777023556015039978497864259086838788741035902774415633507540726846225873185281299418573017086832056178941219613891908301155214982936804182630423224994050937109082120288901055563853314096051627943653375436417436020862662430185348480484764923556607953507387080412407729286589127556090996196268649858226604162216510854456668454702270417972119767379219670823687572425391178483121863804452192204136879824845253960645289971555657825484131781431851730741868711325507174343548822484715373923408844072269294709052993872999221591346163069784674160369685248366607797640541623333180201699419897693242610726813388633373283348366611805919722277983003264488198999200857923114765789956652506034949114427180476358964352092527033109454397211726072924028424741917686113637144625991093655836651798045268977561879753952011099825990451067509569147205592709075953765401584840038060249686355975516824353200022176860554140919471425933135979959620063129409801813346881779290274760044099931941442006799539340974406461440203304947849487336365877718679082224815510576166435551544756903651647667321043123054053969288580666688449442090415364155918372561891014827217755925631074521270341668679177013415635799205069559231321219658894588855789707875754039411322220246088784386534012636313466446653352860224096599471493548881730093314975278931462749257652691426203239416457142686870229365357702347334626211276153942453565407414182830914514023146889424157015845376402454775520891169485102862608078476364724480651731089223858621495492490277053164779045401337979935688610506018799714625841367441711078820425246912921221683178416322543258823678836907624157775260078185796503696479120421461431730218631811681930608115218285485109770325266139235945669690113135583292106952431603535811146922477429873958702340247641576598878107893478524368952973276299000423811876012688184615212373867319810255470330115091564864298672151628451909764182220538465516893694237505189746507953516216794895969963488924914422075659161877438714381885747152916785730053308221839952412880325975828510819288095566162596138575531201500445540746811444537650135777849569540885257417903001189185553580205096231563852159383398067174972283296793438494010130393467154583534086322932889317934847580603118620227455575225997878478290482724338274220396843873050974812837541840712449676435639926126234934787725849414149657488924254262995488905676945981472336454859653660390355455697592512991137475592939749209911833021060617020983992116861461114657878017021180892160856924006016144898919157548666545075232486018781878429275089731658410694729534044732531219398660235352852012738229484284747534790633750580174887437498678989239351254859751380356048871544374424440768821194183554707951832445348573860750573665963752307022690402370768232967171417839324007118664207880624639936529808399744346596432716106588057631155296940890436221012792119286539450854330277536356616474036028103108163183610993297448490101130104762396342799313750030945265494164254829046155747386812242463287334335634274085777473427065018654533615037573110214067681999815107819360286544126729087759322472727742849939571631638753155539036873707742304503731042025949985580727596385718832773759045363562302693166053617107968032380949622163925815985032765758829075187484706222677451862047192032739910401835719558909984690924113490398587582613155272347141207822099496457526187697682664351349939077591380915195144880300797153418560658298532054489725524696561238186389850541413802411481439881153609958611579372666973711523411533648039077513964304900434150249204256707392144964333077018484035814387124994378813818066718329543819707415580906849679024248022350313882244517905423630985350343351958851992744574061435261241683195100146641498792499466099335760956798591375903480167915117651024775868846891246070544535258029910636862106372230048231059410451759654431102921403597247074295080078697115960299885527722973192656736277726288520691177533366358733212372063313239522037549071630639698224764934565633216335343004133295021467996764744062504131483959125910712435846907959536539305779218768984946510342614866593016292895619108236743538986550629567682323609151752311109641700466446557566850777052549279129516435931692862988200610982611689141459977708747352024641402242127602003642832531186327120898817678719276894415233893864726340378225855045185643887498075620244971242788377336068492729712465521130821502266262176275253283021518723013916657827392624849651116782324968789163315707324504263821129472959605732277664655809655485272711327326539164870288579945954866654964180135056582122527305235080755020831468556756666450808200035560593198339583600620664244180096855305241632134435048816391203590214260867496771083575731039484609291743631240081258835339196717057490005827606545818653940642989737031184386278742880547727481189772193692098706228188580752273579216236357583855463646079084707685802545873117053990123017390336947762286453875629089202667353984548800339494908061981774337575690305595017940783411642353384710537883489633282467132360641440878104138489989923254069369842951613302809931303730117606985839426985419426373179997422605770557506584354178640808579105280896014525793852594398873508222490790883251193338556647112134299018201689886648793269543918114852963752731683374134943393907375737774103133785799355711164451399607863255217172520854782461171364108775619476086817836536367533026110737536805495397739775109573522448193076569716446561192369700428120200662036562613083940955402543530337541841473086020031685677082346316532368161510936514762510941350980782440486473897912342852234379540921343011190896785185450949784710159765701841690665610812168242128198424508386966727517553900846706899100416443580588567321628759599486391437924815045161994810814391902773419360830787733749979770623452366477612056982050622799758995121196104362445405974897236716451075466725556131410688613645597306309024487466374074722679896583958569673704216530537428906584231957999410724124509166930947284170856543498669992153541436410097383036962145140035748290958777744423385733471217720471187155093796855166728731056659298803195275102375071326101792392167097488156269050649503290415581280474507123860544839808231053793644013086140068352551400089998869358506656375334751891812075790998010508928630001716698829406660703592793968451024035049448364210538847797080767414498935690821614664407925269773861527654968327182506906625183271350560101716474283142923421691907006782040394284739220952131748953683035161463503879882049496659440958091755482734154049040142907267360095880575303056609567696455034395537870817902040841696570840223758589722958432828257258058138362014000291354044098975049735314684341922424458198435358506135961802676576937547856744228611532569328989783706017032404050177125632940798757264228764356472469357801209521009981617477002972438737007099688654783809514109230858323918458142783750491355619795949746900369762821458716899980274032886788197325377773796945275250702921531576799384365257587237360577794512790418414490212289741160670451462323102899910541429623215423265381943545766009985882074008118788906180579950625949177981186501047843745704149584561126719187029043009782641611446968912785574360512357153582651467319357248961013069136874453476613936028757899332557676100361950117560084640067236685200081869095282934164538396972508715982054111757521443983485533372993752402765181963397067336106220167212794242100291609922486933664497226987765308087777078026668835605980699963518550188254842239079367156637015952203573710922961994281533960980169274996130156004362976848846208548927678092112144218504366903378769554152127372820186572715011909637390493273126982144236821712988802341633075214607750188881034993342796738556301648051060877098533601716016111802862910288506443747315375231827447764174967095545341945156706000282970604805346322360752254566359439159025440925628998272045236693429231376787033279516838275412320369025910681575587530835988661500173123533087872724042554818949234598026506454840820988025786025815168247418182073302449005663573001378336517890014723076449750053401181624477676184666241563932417454718760580695709287970543534417352243328596831457953956306240828374835760618841641472631537658430496813139199140167785211520593466203485250032430240832458076782090363429216286136829906926086822244635854466193011299180639614300779533468564039969013686855814637203550054977680897878572077400102135895861453379811710123749338767134796794691939974695932408738257142607354986410784596035885179262984069556055710496583788882277700964011837443696971669922503511279265982960121289313848440117218468000895323897630506380203118422914065822201048989780929731037191711851933225152201566507390922664070793101429712124314553117859550849470924276163795260599257680141332239563956286791751715629116460292178945424092818856186014132289534109814887205464249838169634145672017571403962740644459473716195062265388975963512393230380211436983370176733529839889124663885595964412858738630029454322893434120719800805820175068041361429736367379257160486450003052063820279428311637791663759576373507679437519759644211664808655119963679911317734256078308929611210565563452395223463873993031988643270682282988931099239023141146260800382151749119957342999841472044104567823791253092532999691086912076545639854362562700248182453224657141680547467347111987035497425190450118259125451254555368534634001510602198252635248910784233816471457872249397411909576468907484286532744102897335148755437689771751142583249474164987244678951700459538812191590512427385116890894068603622033874868776134256249262735694878264390580512682189308750997666587620621287339898159822359097177676230382830080686161453142316380800324413478366337564699167763383181203827817340123810089585251084027112952617419482025116024489163367241202897514607593117575781514728848263559329824116979717576654140228898280775037696973904394303715703230773649384705393391947012312282879734614635377538309477221172835466788485754823185386627534412911028903350745968004446887402682323540694377423313774458553060204513244316457864660621407876427538560686339586416853056689343708906991717050192787087820177814579869267634804603634834040772359364652629522889020908430709250830281551978657774847629083777957288122109014852786401195604835539864788020248278565117541080683990382364938082180201520516038509490368721736655429497455577474546024968299998302035836818666382332713223488229556260774554588499365150154667285381549774141135878753099806911567154619685063333892033438543309723794039116385625186361685507790316967847883716136740517475814068750040985932276752370073547519669233874319306465207807496376347752960528444433155332994790430469133073626762720083810014190567437974980077761760948623700130653661580082850689737581329765054702483531334017653827750330636249714861480515054863860868853205764884514400632588376622858027022138698745578118294091610972895987047427998900623502571119557846953521854333206909677255058079987111514589022712195593428750204862407801709764827741987033466741082920455966736078156672848615964619334621185809966470634549130680681028940477588829335045743479675274025617420102892724731507419677674146784220591933567229389292052735809844242153278639962899143677808984570647711201276602066923383175771452483561747337880353202740871967648743032162741942708392902280469575036867898790429059647991172084891294431500566797379561238762216347279847706579758097422629564119589505323201600072181422050187887688441460416534591096678991045686301014614054427387163096296491980634861319633862551984667152717914716379844543551166438548293771602122535128048381973228031946607327445148282021736907090745245428412108880911025356928402436765377245867012429537425826404500703524016614674568109697804565066454301768593795463861098140664616408956865077817202415839039180573305155274757623334630725944817987520554580488928224167259481109695864479779277386528545623129600398126472883382596840669002298388815260911447120318226579289131076893497153385426880037351986725478753665844746473513488566412097971573764123062046830415965320066805237660873143875964879227789329738105169509950961985923135030216697937820713636231199781883469337139206182988998237324476993513196182628514336665230869816304427662455739024613234112935735564341051065232824114301775134275288781162122079570414816269879530592957764906080801560037720432563937304271849541113577523698369674288872566130894058101905872560081250951528804211523017727652853497702118807407005333199099734819188636167047780547083344878225940592931074026635458337292239110927481426350017098574787809942586987575662354937432374446556739652764838820821045505498529838534132753954047442612553305219647084112935243408294867358721526757007792484659977909264285915386899473268516391751331639367983019679149744298445869020864105108488890709635076657075910376667355394509689318390990520895659130111576121977655019783587891469190045862318752763037088059934779749590858938355945441383237948713193673637006738374731593602024554879322307943082310336667475275166982219340552629680761432533681131587215724456795010200742798344150999277322328845318971622848302448730429322325487316922391941727489326740627369054341837157227442343598998091637195644912971003279256280396094715735146043518875283612026552412388176393226188462230186676939392224966480808561873272770990902146177107712517003326702531537545461105488925978210297163514621118675683966961270894261889719198666653896361144456572793138387157286122441822572709002158976840607306714009156128097173363922978939585251317680770281039652543490521782369639828863166231252770299564944049454359152794943079777035924886394025339831846041990470598216933223932939575540757584798022671576674954943014798737069049150027575829923044855112706701934904513751392131158217336440890670538169670193699361343681470438668054428570406648307369095180823582168742597017780830542045782803487959738708606545361330157939455271974724820954994375367942772221524480088337444082870384815123265412397943929811103345732275598704193033846897102738582240729711679082980718032952976787393685554268628886991454113271188177334292440834299818453680978038840524237983401364932579168056886548260931012269820236898853977462744704548024332030573375631779750185950067890539205340029934483617954601495606378880053412279274553672022936795505502234031243041344583994606180693021002018972030663653441670332258520569794627862984387287440755875899840247694014949554885233816681486150322853200709778665885283883703590300920117067637517214682935896900626945864412557359815794935069199181547107990368541429481263039166801729686247478508990635638355392588036112503119915326055378105566636768385572446172169330534878148763776392366224650577603142467245127042049445524446463328937958738685587494477515385111345574018635944271880256599677610222324158825913452674248711798836426428454219595032706179682992802085773813905529840689456560895736680841536575197524716715522293326213292631313990281069955306589195279573200227409637991627743863919444609448264627990185042516109438939829309123072086743612652587274310305211617613055220949237955110668563442201465067470296863458855726771255054960522739627997646309188954583898485383278357443009561482047081471672789298191841281130101790514868365497473529552474506041853746783596443523052127232784869937662002437436578505067893778242963514747906253821340490735029713288476430846281754184792883693176416098690830287347659996297096286797049077904633694373798390337530068462891850199578522473178404787404857886692460166630480263767368639477172514324735687813121324421296521021104481000104107289315368976021548236284525040750236180714122452203987680998401988785699477102330471429702040881182516061991951825334223674124581056903920083724050122628926787784729198385941143560647774484170162895119604479397618688002660219994983881177648879197672829798801155586772135254414288159288107590088666200761049776025895867976638654299344924412744060950669419105328578342707308912419127411666165256712220917005854415623538464921218865751519948972770374486445872179626894846113559140069184758150151139274738994170864770638025687781629219025439580502798858859205738456680051773998381766780320293227856593750073132659962144471393321852135781467720936208789143477657900006911334249362294878695227220742135553418631399836227406249757992585253984954003092090942167708296179264037649908847239467052496225523033744948837995254177682437591250773561661686791991278885435923618273088420568968909093538368302107319313867599198155833969803111889769781790974734175789838907561448576783647605782698208145947857085755428581199842105713889970984044703507104881081810043350294728241283867626028969897489358537704570036038587163236431980154347462311606473286952991117666172255825632387993465720079590858904544667052462538008794860038947675359708375077810608548631956352257459663866146401896428720174250422831574110819056381699285803790233535743375940332794747333243360202926380124024331931053990819035782000544581895047692540953972248643824804520295353051615574399541730924141434511644242674192952029735731455906204020956773578960728902307785733185630062047143924910364746507716841385240711338692857225376225284190683919928901323811578745769238572706961793786271857421242337026216559147746959007887924846023049356352240372290939321732019259708675247441132904784717065308394158966346203489263241888412295879998986278762442615961522699280537021328222263071368405545657645996168218758950033781184942057341678658384819195474222754963624973891038023745896641812187038609463919062151388341963143953592988878422161115053445623409869966923261766189209537179547763450829693996414083906856913371356430794488292622928298815237515997168570706966197099251321816735101094503936340254200036654086161727247344508446212780625117863220972194287986263216597292420581702128364830623056701296132298850848583006666768790099760535386446548727471793576405416323815631891810241347595026380497059000375649678380980760526147620531977504970508091728708875750435770362002098971831862205235278481331524526930005807861729402201586891050290536278376207607457097136022452560748589193939991148392552332618739296910568311251157208333305676116046352542700668430295650983908273009781272413458822045356929436704571091384986438226953626992638203213424281379375822131006644431116767766420674300477677579555511423919511834316028144754395250967474556123954869083166244211240524588221743374368790860825020036254045014208186744167185753788767552068397082386471252779005560127238443704832184987140395674570509385792641522429573776063194187934198111983341047340059526812346676529797690173209494493102731898997840133549338482057336227917899508329939842191029954457420235169128431427303396281405552982052719658252249491513955065615855343396863041273185180975850696236532352951209028975288108501775025637165383535658065443359092292995250108455696167636903342683248855006362526026250292529457710241807967470098211200930893667412831142943681012793105515947015157174340509139966073434050125020404112593824601442767212121040986745359890331661855334326979875257712632966731980581007704029298324374819591569640425410170128262357591051281338172701675956879841341878850325088899641212176636566461693266459404535774599476052319078678111842379615205341886756746428540758129377178383575706642683004720590316775579208708266446759647965949741283851573276419236805756456572774270900899518408923093395694789810615966449761661787039842586175001207431356290568529147941758697700776970471852961938088263035756981726592067499046745596045845753817903451837164156382154493450250598309852295647986447125334839626710870315560640366373559213434980826322124607022565582116431790666722875229522574932965706974885540887962311643554585492239511098569993671263082565850364097629444150206971212989922351811033662388308550401579329200856704660845744509171432033106280643717568089661915507047396797819862136205213314033814087315733097375575684478824596790285466717269943574859926785220104082156459621011123255049709138456514762975190891340791913580213835081015324371854644684348495181610719445633354513165873470949041207746481920557990497320823051467725532042569195897888864923751471093668228007716300924234528463199435987208514038180489578360572482002726077954195158134335966809477187252042737845630864311722305447383148211339015677872658676324995652448468596344832277559262643201160880630400938922750562494103537855431639665084048529809810353028623536170850397996392414358120095238278372317399426777480650033808103234419365786333484893337586476456877051018854918718192635581654009050037049024199631396365838641215709998619385787359880322105023214541834807492669967354244388111802916839157380238751531815228204922684888027069562620766197868555501379872180428661553681186440834431629700595640001304320867031402894255916784067711988767217032132512686175893454391768724212123691365139969067261384627922647736038252003490060405051624818159785649247331467514074438834746426666124137211324843716065494834950722349280454198379797401466930108350848023207015129620452430979974932089195436679571743678361161235199850218844617759457676645241542994729531784718965933320801242374001831247182509453890863675160742245173425863353351019188779132925022587915151284642226716104832403361220045716406167455825991951711756239695748915511991701121249048481437349327727876363183512975180095411690214886596449774667476661285882622782703253014882587629199832567081619962922322213630553721037121785949518448731070227067970904204032978922309455854918880149336199118142372845845273698191040008590182985390261884283196625814213130410331644406097683404422756443777972254668077230490908016433942046432114233817284496623019024142838737012749465663924012865599505686820410423158774163418614760973237300405107089022611758621110708480683648144343051615646472793004592898633270925906349566938688956907810258867450268390980064156286632221045571736024286101989672701705680775008844785444546123603976465733425746437066820621974284755556034447908465189409114371079733731464571139410708885598798930721636910996244093076861052695667904781366147538737599856581162082575840121096265802962613373382479492179829116750676826911194956000774721796524986486288900788759246994890773660460367623590963494482863039574270739206737192466630361757798192963833212583211044195128497893107937394529721435701057819952200522663657896023546873243568013522800136678019773913069464261526438857181299809201466396855659051521870196979072756232713079470367166861197300957929949009031499500867515092447850386833879347966073215168494332921757700951165353507463280567418340649102472454113161825187426012484945727353474662439948594731259594966820555013494683302652169596375013616182673717441667646663097941137377293494363526362021139640994607928859825558314872532354282302252703074863539900261787029458406345246734740600949470603861828981069338603079115355343394247195060544654003768424413293733881687661214889149620816732467682445206036838025095457525523683691854410038844916692456338116231585497066653705240010276922718634483909005356567019349673659858101255075647077504986875768019579086601107765022088304797638694488329095075977244008163754037297893079593541794899329588867375132290690668846216679970836616920523524901565610887754199072467124350436770525071736573986064093537196770661565527520631656812431196231850628558529909800904199347692177666639034103249521625100416700622590611538716983585227287397627250058591066729495332600905698191089373474333712923891738815240786174505223395189871160068481787526655770578358379530716794652979506421713172086411883335072583220858395939992392964675824730883173899143934781102419190133321771493506732778945255204700060961350041307724746142738565924398941005572839766386849024801846650290170163295877335582970193989732100018424111846160789910243666838100503998957942383452559824623538226584049165661977626725693545160412854556340149942667935277755337430745595896994661246792096935477167395160612624021393217618323665901615812629954193479269236320622418694664578516927121328255316038988989188469185594638180665233251065289574161213956905210665642241240033684564662605649078140681194208307427396364166078103391304808959935576218017839202506280146804665074512576017420828913895866630468313779585506458847892594546352521926296579440833552028925276931489633874792256144565906420114311504552315061044302576585470050548459994947920801808690588387717011473336398157637132347556437401463652481574114446816238185909409748417496430628613024273557045801461027011861091303456407126129466755935390818605869050229896218177923211739595688131877064188832770546269715571970085463614266935922869732163483014518435818990866327213734403438973597243939861522092353622712383472237617882938720997732147965988994647103147233314317141764287785204768277892563008522976586140121459844898881913864093835174087841881760913209747316599707347468844769905559321580297802553031735876042549477396944400781269457212466023084699227967375154565332013868079800553724277924221397477545703483309109343950322909915456540082940839368580655272955991526194795690367922975489192306729632035676408838942862668986715919243546121088199928147562003652795896430840387312003149206678944188544650839103730490811794067501520241118304697424227864928843594501960599170481144281893315438111808810573260423805435172471389724766169699242489694608627442603610658944200306976260255122363382639233416819726825998539225854524203272286815099024263283034417705096090744652650180654047851960569485458993351141546190209630516699623789145605207294326014237045932727502239429210223598776169801571693363300119040271978602915031824438912829204778184834345670387414595403603727544280618585844047625123538827574423286343421278327155557171041059425138196136622794463287270419930265501549836878573783519118544673422136190760654057842725427089015515710232087690075607397346355260696002674272164749393342256703878674729965420262152086156196857269679318625968035699515144845390466456264717156375440182155526218674301435397463362584660419198616758850571381730856115458706547635035074791310301056298066097213278736382770181552380006173739809117760965366311952667085616983120789166596228407005317073435033447008105729515915916128069078818240048623148344280825151405485931435411467764616241157145324885439240460883764129892800917749756334061668701967555657543393715358172132953127341825948217578284848164540940534433388740529344397480914106268950372652036123941951249693163878069975378223888064516507717486709252967140782969279029757112313905204013837602064353978130222684827765593910386629530532851857165101328335566386776252181667775492878429569926776270558027539884024227976424385881921621754070975980547977248781659655249641235048569042331210027920617781631274319583552243312883318145115888682978056035310663105001744623822881719035745703825605780891952041043930240834063060852806201498341218842762387111365228698692736959787293063997026134175735561165809171080414832163140013801995374602495003543220982083452497710710104397860531004336275874654511414259846624995223471580507077555962935832137194923173918717062529369656703867025625772067776554237395652851038679187702294039349990232941376999445149954269879384821647263282925260710552015244109648272625534199483043932439355845106139876631275680043533038592391827213850406185798227883448485896380368905713046673346942249391310888385671168003275699263320131576976270541355669625688863593272874845651391640159126338738841589470341416370887876364401560406301539396552638496901035668213857752093832275180255457612075838463648289651730831447416756177041876492244424289404851909719948402341587880539315249586062410419747502141516124335055354337539897851497599264964719447216444194730596212899129991872137086881950809008321943113744975959532686034344564242241135486027924420264288592602805751171894378437863496530617156426107247226082154325869282007363050908310388672960227339262759225109672602256048660860472314111508346363978243236462337806789579118887209822460074255761474616442203331094293133225257459055059915318135865873640450507902009849769223002917939859899672853195041828176518333968184334772838614326639556516986992834238444358739954861601063453337360974652670316653868049692962618371652063734598258625043633759802647511355297710948960533475994489685705010897266332256196945664902649881908673843106527390819750373063204072428011624553805740581429313272640293124897848872936943405316096576264979851498111345391389518040215404580146136572591574675804694588258465103868906971870930914330189680696523761220386542878952002481311420438162375915399266808309228655389590041116962697193243400871529722687067057984809767725822909572779737776550148447361001592412366454867090539631736140068832332433258534451037347070096824690738373890504761060287617728872930882981039379222952649485368962165580467912445295933685703067227747428549115091283584911285485759548542350682569242768425867103923278013860095394155958490147521049635458109021490579803904677967766966582286926717366832436848719255619241336160762626526046844789235514526546804006820029114759299281180912406025443606191420282716874083655969004302072810366120126895375904305646262157153027237758402444746361522024615723497125423506605888504175590326887470753956333801026873207893713081202028547740991777894590004319616797007337987493841764740297130560847576270037798775894275095155023491431734073506436573092644315991902837198886031374926426336428197717624606811997999687786677182637059451471846929547394093425709573435120004762475578886339710121329610674519993409026145674362642613140238878305791090589109731068148798855528937615064871310629711565878076673774966108385696254843202245613268419154892493643520880467967774188163634414906273515806023031343524015869463300523274590497495511049501628179480087564800967707089315718752546977003619743259021445773744892942202971328352135071423055687807559537156893376348155348521594942612090657907652015808114765717306692130497889789500941553588575898862591070325729922835496681563375944560963517195472724863598843675765962721202502057891556635307608538318353551818489228798501454986152763150644801302871986387616219024819061121858380361005256680278134156555308915409732233217740789221890636107446713253978507391306816426033067304281081896467848191243066947639797806535643863693527495380125119571420653187572471477773282848310976402232056665432467271526824768924109049224310163550823189416434867129145924424323905307424042171470437126946921585397206995168555394663555578794396682389670438986878472907144379745094648451805760709119714873171330968273428693198888686849367925521874855556911321749929664132918861016861755800616368225439926146998598835449953289285898525856933123955444445653187075028236399973104106414322113038680787052625870487717670023811245338736785493159880803562876456851384039868250243880388343251888852314102660582233853336238870998949782100482821482207111049922239042096509779736905272525783963199224928545730759676613985554687151151978391938288588842773080372341162277691644806284358452584691869573144512074597769708766206411685199245057810366739887425934905613239507508150790100680254599429328697083331522043605978118280337815395420619361739100779859521702227839763735545825941269988796354445518337099734097426676551116724630641696439465012533585068094244441412896790192684019555309354423211427779912199937153871801924421089223606599220124238643272527782128324219414756827821119276796579020046657316666529592809998490837713800055835784140215640232813451152815435935093651570024470991312692748006556880778416680295377110650505790116747644674640007519078879345534984917602214116956701165187035597189585310122981081790927641977993486783038579890193254657280351850971271213015667757490733951207416013655829267694384517554175744476807140117561357482406662392598782050730441833870301273689641010567684529902774061459881828402799727152056863528821079046422432704933709509888269413291559702973337374665903168309013144696363182310878846251897080545100768304303120042811773525359341467338895924968718370854378498239407008950859869441262173328577691412443466105802946696302648504390230030817765020737502728595571961109547623808699358814099864735471895328498560781088600319587540238501876479694818030009201882194181669892055406637378786355247374406732827407516032157887884198618197751096407378700889729780914890455297583189010216498965272828572769639896980482490722145232334535816770506671509664047453537039110483901834860661718313403564707344501521273208762497792884928385661378691067533752159189824524311563050497806426879766418167110289066641101380383253903118690968136564803326497672116228651441403788182231316487045001601873768126310456649060104151934062295727534051993521915208975073818509353741319305070260550145016360735084025899232103119593265335407586352610810062660047999977073825849650389562288548104658004470153664074031912031389307498265593584394597400461375094654216360618376943331617868930179187582765048104484729123385954643891536947988402937903096674779302583533074080887111852314661712836842953223821657950673170932985366966030694265613231240476212033755671556153171333470771151096060552271218769540669748666797696967420738374996369350472845640382892238150832841177149336209581222130929861010030586358056584021431237530870860264705533253899618351669463564104382776337489901372348107925726589047097946450136651789870616820662907643358968845158514295229428659362700443000498886713345479549282555391654591221772566232064597001482614476416518112495517284095266063682866567316874483797582314659807077318999806822590768849881792558832676001496976836258969026252542399635537966146797799147121448500839776333872861092375017302381457742617009870346393521200466000402541275840475138790767352817673833251996987586781470461086212667448920106824904920431135604581058169960349824904314893043463176118043872053968926348671221630317817475229961168920675227811393121567301646191336529084271324004265613627623320768606023981667328869228766679798480917937864354304795845390208548157660047372254759405800009688232430801178764501308674614635779293022906481856389842038457019051008277495425282789697207319466833142641869126383028159313017245337799497733459651072980664991102735299735903149259939931787807877471465907215270235040308457560747446212613297378924285610136069369665214621553368565371456043717942152084800556109553428199297648195360421329647068039639775765807998917961805064281908392922532519867749721253146301395246722286308252189708489361245162929594644000371936501140941437006974071843188782681278156752399640440667368682795639176771148108330886373909786200106121812879324221400296838889407629828639953313676015909365218453133461337682760543612004036925468484535104554550543430311920865082641804528654489778492749285764523241297875665403679544077768869907405974750188272964927980671772721217745816486232621950330535985986883179541603900561858347108456851852105648131905924582075041972173495442169510044020306459012628354639560781621651727566553968605199569157568465699177670045881293138470480375346252750026385142451074229013255282049946216522863473520030672072857006495589895999090710771105203322043639480431487701150399874468318067500479236485304409267111764459731972028947490652144436481282694424289626621534617614733334845711119069815756000373817386348287142007222518451284099388775314644941233708262676464439572923478542484753294859927686081683180766379073896756463243384767043354192466781646625853968303017862444097452523132598625204120469981611941538136630971756415720118968014617381188065214230725884937648051166150936031002719904672609560735824631352279258541551165442096810176804156569458168319114386540580634485233703899712402316335072009095782958548126075439710392766309132394828158698932909335525018779551084438133197731570219460453148558690387610324669761336752022196479685948711380305753734358247751362099937929352403399031851176069125282765535259211307760471013535517201524554574482126595029700172737111961386898402665144802311727464370820732062147096720553163381129532590998243853049117001096883362387963645271277494224347221649073291234121332245503584245651934376528253329355662850362456169491316413086368943260581143825587641154402877764124614995721104747625070652894464782295480516976924494367725347461276181360646488418543915334931576724179789268004816508542140081731489485273401904547617397979441798709109005230545999295470729952967540432044951340873365376714839651802482933763189974066842476313799469867392292905830841818205898194494293211779538205318588553514924447861657826613552878470754209344253232994859378037735946742681008040237851917602539985383195222781459515648226986223224719397843347010711592368889441840088250319264709255646261324919554906763087100291651914616715637485811700864363793757571620884896828800888480228607805306606037265558427651105266491602145043133392743262727671055139598457981147499029633682741430913598915601651443553586288193858755751672601467212404733269588691928032413032682242522806798773182952013154593388828254407345821343266993876939289210817667808874453659665716578077886142730588110531347911470300823289665469622861411238332185522492479580576213086766772996842611316507348375677429060367242899214718893411458272960860701414366787924601838798502831066471872411546761691852641133209620286309789488988553377709985647296310669656932736676667005038874419442189556839500747218171818066386396012594498666572475467305401706752960030626942539037847362495837732986984958013071549391767936090806194756477769996976292653670325659117631398937837555642538687464123000212018610168208991839031129547775449746549254289742511805521714380589310731830621724155447725446200023324251102542458241773365392316016336924494653715850863827773030009184942067217549304093370559945314420205946874952859353222703220854513577910827132086454683868190487579961073431493062978515704064369004827027036695767123583015519410108014829658083204505725801981418746046308668775287926948196607263259685836364545611118952211539235029157723786513869616901912455822264931036649117359236263395619388905555601246758287758783234986582292033738104402085746231544192008744377969893621769773895214317091731659087117460713191792708593590403657169527736356675867026005715083873768599772224298769946991682110485438706566771614758435250891653813560430889734077975946302926329947779069289591909317726375062002449025593851518483950314178402525494993348149529024113238856462449363256516744782973041059968843882758349087348191906467382378949044647218077774333445247142182298483172324495485914010590473099495783906580675759927245206282014106040111667675743909442159495948818187730985887788439584457781838234362564318278971049195622866793632343661420892389611454254505903068477687142043625523727277734482651265625796948747273324912872415611258903107792502412240359435122988236420083155804775879877408502765264118488602307199775446853413647813697970616774200932460535242077410060869532028287361915899953922320120696530638841071679048006743650872724572878540309866803597740754613308218129817505536419496785522909946134706483777424759192444845043382715447335607722192088577916844384788170520918090022717326604370368354689753887339701506009789017425986596280207484426145439468496593791986722428608206428238317587083425552222267737001833649655393834429633182355268523899048721719108110754012311254362629294867228459841596216466522984035073954807808698870756137581131546744852433661729866978313161966289909705640163996099648982121896396816823470326039418363810457949770827748366412992463385513992241247189899295411668286956061381101329113398828806257935086064357738663514701999527910522137329223238445516715583411622965913780067876881110198713759562744449676521167550865393769474350444423269095927457950864780662546580897434681306630719682232816861332219431315135630351635444229107650808264231912428647965173916135966829513179043250643431090732549250911934751040986556378998926884027442373431060542368170651676348534546290363998471895784748851818864669908992897993298141126880887038230200921599389623040950796982824534858344025793413924074911344922536800526995576461100972545968375885761460347852327219434918627503478164550375397840174136582150956776056398193920835055656118384556058560853925517438552454518361531731462116837515757236237379444614674940324366840867294721067415343530290780669202089656747371928856577429643819730778177893427019974871468238339953789912761474962646108691426860883803393660136144559041832371298271105496161231139290320695965060520177452869310390193146381742944076728427255577576967195862954588778458027819310691204463085014081598933472361665496680423567210852393848885502868639293734167123181386613074058592383045454653486092221508780731811146921516316759111948064159980487709311367252124528137083976684109311694566114534294971008561069212334184165521448744997859428132459111361786956753088612955525164345062401300811051119603824355732373125056112678578042620398339057249442250564843943574525639421368052384318732927446524252278790732188593574780263384285280221866504537509547258371800267178869686991341971428725518641129388310538336487485665718093769972497280345812459478255556993070575138875574775206900257412025112800502820767393227949945577331615087333690861534407718968543087055651758343223894782210500465861854667075847393937996288714767646640357073706196525699562700781972832250371996713716240519523275366986352918845727052562679801313164977432029932912736296869622922449102700852173787152866202638634607009446834459221765945317750120620139951155792939537052194251651866921528403789051049717889154582274132723539475343451759187528549303212304070320403125924572789934079380805580217857095544787710502827698314282529719151856774872109276350458191927301374392573109088470020195473814021107152517706430377671332239271348206464195926545539944105135134959881379146615898435330062609922543603117457233158985761945212019324920071148329485449108520657803907074501054677179503803775817469044061250171533137424087360678988344378233004428605708534022947980979574029670937340922000773684035542241158506599184327231803867231232682555520544962135032801320837119492909379243816278699180126807311894525521826282883239771822548475307860282083173086333304690796057952509546307944572649422523686222012467431719702384841597684697511667964807323623538216761795364873116766691999139976275668266972605026267026654204731654631689434841973622507736918717619044466909497595008008509073837094292651233132703495435555615149999532977414851608178817637462264566342770137884785103354203759857114398062525780266396820304570253461239430591426366308271593840668143915484528808450084983480460052969516841953262634449966666930837776802764065773966667694884722494448223651017664010701434946495670843998685747371364070705082205297002056875192746672148733197399669236326881480115136980664421902475194864952871043420723320173746061415683919731447722389001395842300854137899956854277243469691094489879530452866270481259310349700318168164500769180908892176222519333365791880362182861207884126677324653590446817929486066491080437355067783580857080162482997590943170313399593194216108755096951067394917407533683244674323581328021096259477504397031882117435057831686482906614649660358584579614358185716379738856742255319825262281440455010581947936772313473245763117158787148930332040496504843660825423698150866595401295238813915363072279763347457480123899093409694986428987745455151642671763613751687505002538963380528330013916674431412096821366643034411952192107125805418577211406906418675887377663654329711323939724117210012313594449003424809023101793585058606679092533135959137040482318696189102018244994298099094434058420569033851326602985744478168650906823029864931747352718311339748643831517940655517358099642873868931012420710287544615866426892171523112260175083142521502838417963036803166150222565601393856671583792002315779702060279241602503543581825788961803017887417535056075705126830572711137234073270473068638213093623836957285360194348750749491761434573300378686534379131475542827272032047663827713572541836771410172963691767772787017908194090466334129933002072061383880496991802362593099776380532439276180233895946300038676752972823167353246392546028523030477430135339818153778749864027609414679015235229522505903501643074597017866910990444606963424227338561851471528712328052058468710594380475420097130238662115767364406698775835403061692807829220076949566850503886666583306350222998152933154004873816350645154484291550492582002079060637156509110779031674100939070872706906397563311237064695158641905654919839711051391922471046656086662389751188239770116835792135461246633591173550973509000176667153524278756820380333709416687478902025202072479751787730437370824691066094909550829505180731740556009312879155699924064995217649091035921341986440942653460040243632852062521091989597105186572474682940130686813690461581024110977041459094111038221007257431627633993438741253242499530454042035653229273596316873775122550483421663218333330247029077703338560710784337933765229661666849341462860711208145254292430327887230479834081905991085954937397059751028975215101041730148918426521246989711850075382663766868970221250273635130663609364442340398593565445276408582698221803716344663259055408884255706670046130892458101858751940368707217145803573580142875177737684305476621505294424458227069384404285984207659454122394540388042423301043810983472457944553596775683426401542137934874637989176721208234145469169226667254577601794257160854135451126174935059468560547636229413150275989599050439121058227434802608273305175147602915571747087705038822398751762270673338576434896615216318957300989523320116321735028201167511299273750713267260052876301880209759346412772159672917349664862378316174336698041206647192144982268940549308611218565120221443551567890925726823648380887101752810667955325488424312772881023409104484877439252995391213581614290980255723943439667559560758994049157336853813928485821194616790874618789468917988728073168351633378519054233445188248669267361534024208813908888010334840461688636893596622788277685261338363667423089498630846433930887771794323463406298118033768997513646695327446763957091745737213162896124476822746734373239804545436842248017638163567461392617499658893301926273138137487507561378907016016819398381833062519689517451289941907527046727329692293285953998363055988264640015393361046518243848418644340506990242670181079181071096042458403761378768855816569136065284644177298806077731030087940515750336113812222602487827057111355461084155181133658667665845331703285468672719707272272151279637912285883776209927348134970673946468927241281883134565204057923164885692160137208928613734473426101059903100725366969935237359151118349747594798699204439987520066426724008621638152517329007924359669989744997233030632552320062156951309316215427296522530617447221630071305528637574020211844720249079371840943854740066644716775821379218855935534031571755243716666934979212292480321128715473978834652343744036540957345349861414078153022245108020926079742114592462841159740480168620632867375902381097938381683518546489725876502698669718892953988325081657977696882466611792524696491737938204467460275559792750317244666262706013753478392190765884307586727820494632774090443878033892979962641975629622956104893898813697955118480416013976178366988708614996427728341383786320489573528050455130070143900237690323087293304816336664955859396528273676941099705894743530522075381223813250875719262351201827463333227071093518595999584547289523563336638487047901370738802947139098253869207712204802514484754304450282184833752878854798863620014060050602375537333761814074411572462445381039698689328724381424542096139320665187875639892242498131165994297591350919925340484827275541776814752214116974062306806481580107104957032667454977387911481356811675388165263505343649346932065690041462128502698945370256457659257641544995550425200768292285402684848821037758062658272051604775099082983613747267020457185218704330828626591204621773638048244285257764205429920263295075043415638598765292143537601845023064204079417138883787202239688761740037666840626100645725902605782281291941693177905522098434391665222911808391670932190206231304618585498359323498019845209533531758060111290562282922755826815982928535846974653831196307119831657630152116913337200137791294958917922301347225225247473756900574856666061257706021688768511658178379852059859316773387454779247707927344815280589952594396913916997638414576290186986787941051757187759972671728169822526273551128657567216987809198213187702896074849207721557371485647308546497862783328333963832378040576697733833603268100541514270012532071467324391048034729453543920827712217887260532934636518758101976419188915412949566795747404511049773474943248506828947966749926559273258764743042015726811192978460728917955940221027046405024976149346487114510499627614553552667788279142649776542482335287316825705963332807348895991892995452343954045465374301864913114376688338339445607532596397410175661508429415889603815939582832411810569971875905968161759913377993897724274417072004340663338377281229995717553831278630730022809883489561682808931695683545551324577483733123972275567066282680452507065190345215987687633868688547510243856793809267608639992391758160820357258286254850262249499236194851974361009213973978967441624593053374011479751485643454373832413068379170359394589118899342636365375754660433041008496252652519693254053371979694432399341242833623743685241861012826065760655719331665920764132128617478196809716699681389916393418918114881411844674684122239536295701823561131765372743398900705123479549138222118136233764769515556531866394092307019583820869148825954971040053577444462987159991618620091566403354080749330788638860254347857990311755095098947121462329832926333359235919945887871350678697676386624843578378650679382276890918006381696567371882369918686939068433740809452366747151698150561958222617899913208638901003573170822283936343420858299232340467568232240476982185560240834965972239456381655205890279446276251674570446455971118067842646398263084395704692169766701670215418397145240681110789609644310701442296183382904931581380238792277496024418664155382819216810291565131290804299399696192432099719627419607662716910301271872301833584434780743585523375310345244334532861121137724790092230441141506413703544342927938289886482755757742895298374946445349656978907423650419308452572428429753086954039210952829087198967819941805880723151288800477893370044107996710360949093163072970596514516912965130412762335803179181430995665227617872649703672296291436170506281894033124246861055454477340147387515998715732263103891157295762792180287732580177590524434906478724180138376002991941739011398081634179620987076543713259691226636681943306224933160951886283956994122985921859565557152945505056317527222147818646334089220457310012973042710988354030118569430346400513396190150521645775507348484099065642541407584518477476457307346262381751438952504617262982223617168549605962110759283269633443335265856333544879111389055958670473875187046485691347101447554308818507039972297703761359232359456820422343519934979651257901547179567290602399599066717942846550228106757432851464652006047507875125920951856360269185104769171375995048932563425427367088838745632325854928543063219163261101166729320058060045041439291897024106824502794959244109661199853198754538220657518497718021750505785172734498455365306316382702620756718794630549650859549569097643398421646068787545864844329424734429582281312792385251180334411255892310125962504169001222223991808865799805586689731942081163805298568487405866852437973108921846788037665188295139735076727642948822973337056359720180026399398861741899134721514715637971582639166798052724084646518077450034483315173016895454533358724974866955335575722388416318700559138458547868514743664079947258587337230540592956725114877515180339226189740653287165592330489788698832246738662259147727933140215802141484212433911472450473914585344356214062677622710015979947538854011644327086991914829632222694606103956513394655310443224776025382142069367526190520586029183583048598589382309413833406259383378926278691827708629127562234618177034798997585347336575979495244598309373452079394184901562946063902051109629313762555648811700067290105213329436196343557565205874865462197022770257800234904767961021543613042220341829302625551462594507274561756713825460926410769116417331696926056384740703798875870250432093249060897175324264480851417853993150267101884760058144693627018038780184088912249442433852688414915712146227212861408921798329455889041348529702130909303506827346025777859732498544842801260694579127310722588403494176709909890060342887170847226638260070659757813581592143455758946216628128052567057344766741940875104862305884921533759373001831314491962021475067675136327898931472621148096258603763394894415514174470967347897278177434243146264685938265870717728358196819226976211128633800122543744153785398002237634493729950037985247233334137642648824869617405040988744166201038608708808831237763353894118371711564948059841113381287608763807503857005158142956754234274864890668797029238941667218593746854157152187884862516333281622224894696518978114471393387947973338579178627979881357279636157187790182340425082151544380424178629924928600615527048599758760444723066769081967247023080324355932672940863183463655504595437412687297541814762637369803720989428960433371192090764957327044930129755266325559180605058114994161508139674920767280731745691940252093232054922176307018125932421477934425154441460608030881824451374662560474595946818026649218377190967561154457751678394125981570680932718932121291531271528202230339182347580610818152745815889249903102257107698697012740490025683958100382717603038300510158968325238574423750901391112285997582619394898608216126782707780316548712136116386537907469910638824357849999372579809449217775986838817182748747512865791498156214464131682237897395779899442487711563139218303612512286429287921734315460328308287345337653693538127354828277894495321604585172357286843612277608348362427788220013449159735155318008332549317565902007197943011213111849233327820265497868242927448433664181789781224954724524775522232510402786279240445904363695377971631089913188094733087906956499484318578281164193962480769986819659402584841799455548105269639062926194382542205847101316473670660406138636024635019646063497063878910023806828368930120195689248850104034791580199358695834575129520420158222882720547457697354688699443441984719427222936483733659391702894999573750642027730422477564821316748888191358059881118906929827777724823791793761947090207827530327057052098508349995958948328501875858150208721812997187422620879588924446756776874394540794467889226256982461898325870964705390177750223309415858351303121015271567057752945375907865305736465661602742789886614163265993559279362805462133963966332991906865621767973707679848986391965149798930483680934843528802148992033890483239780429938544447063096309049167274215868560150141137759330287182712390174742881569857318412660373388504383639365048156596171249191687102855262372423474422226874898883074121765054464846679271452071218738950408462969775490779965913327543418174004970493958518918940197745622907491310548822381237524904278585765635501064863122554678872790671945217769236868292922699524245495229140288159280196917049946627510429127555894730413241165153702261881847293672602118490420190434922139167875495568610427474403045914946454680180803046508669482133080705192150931660063367504416138109744075369211950057344276848831863945356291145313464252856518839548262230233463871009751393459357869362225160819505229781015130807320376665251200087953136987439790176756291740174836945683865208859122085633274127470501169624847537337223149674896563782366051020394476541030164709533226798498680278988038645599305489667773655688613708958464325666503021074795234485377176593877049845709177334751650167559001353775197680618057100656961240008490100938580500548300183331106006018568270412348796308970731449044793973384623661509218073054966412794046470268834175732970561503542150971129778766113762852634589111243000291366743638239428000747409578037429699534990970206356788393886784333513654726119015455744252103555912010534376086575551661589122103436247616345228491479278262663846981875301323846843838481989822591294319654013030910358495655688604233992937641972775377812975765767511042206746925082611163134834217523947148508368948856907981373285877035438415456680658224364164231463938542036193922212954900831903388670466369095491639802927609292377331817116264586222880163249362259459684581316090045575249164412735153811920288181105177878340704009271730500091533156698217832636230741027478089835182689634211694353118236685711350182072881355252839866581284887177163390803587232600886859722842258111252157958486119196163414348796621527963384295981931583040784693043718770598959810050206806966665800589337130838406689657884135863890637708867140340399738851692796902558584472488745241624649278253457794336598652454487515359972558689023144906104687505528437155389713598879152829258282550501208354191205878805103954962024358774182848090428340126233179135488242507860755098682660221556905386167217397070165529518261851497851559916874134807718035396476962531263791339314466915517752428793983765839968049063306801768546528336908119417846493436243829998179420416512251552816486622789692413169672831757719065981066149201890948149667661935024634794713256571468360997983668771671176457683638466793205076045684230136456074677112822914544104578362295484190057164603383652849543626643973131121579909004818737355146272400020405283767480550460175052622383391229222052782088264761784333412824670904342815557991999367870592424465398414152483371850309823650457039518718325475058891469219727877474934761374314763340744327236723578896830721871781560699923669926078802347265825841118585367854946347040895379200774061632452858548320124277962065712557406190015405686663593551151914859073854183367389436877712135766803563955549543196776432618447854583365485919644751080858682417024425352522035849764711681624768399536244767939082234282929530813009066893806352744200043638833870698490217124458839678708195459567031390501961333024247428675455688835979890257698920065894342002372758672588032116926251701449314686646805490007896322270317733061013130171870298649499302591773911478570497087050928009408440983014171594181614899597275510048899623612421846679217404025579357578418304118548098298513982186982856476644290284809902928299225862429896852052598644052317227866081916942774374705757718807610801781701444129234726812761690613753461563045947649597658485824403587996783733086380922467731648886601375822301126677143588182693220528628366006846604176086698120853889664484236341278304300197664385747240555867854142445266635564782338147488020054711907400969340766237231965007136880198868566322481833546175394278105286340454876841501481778611220049902044745915524008385469723843865268462360501650347458958564204870767381033449984213916272550920081664283184601053470258182980053420902474985118817500626708844123795231950420614207295917801204411082100431393233160501226616047367209730557539359783959313912177091662531487278037432000322972883501284526320464475264582496769538340933317968119665779172788299653910349818013943784195582297131148265236376063398286063429623982797764964466869686298372670174608779657333975378138766320446277375915116118028066748521752569248586037187110772252325736495101572212470610018412611261431130203715087649154625609502557447887273002418076957758943010976195885392410713950511086718268859217991463470361859657414169751603470502384000132034972016907501434544818407850019596165555520217503766142083536003085542265162831390008975535293045797927990515455417055868204511356371467044119427618229837307914286142958647679348290323957224377818313783830909745244632848910325786854558403646035053844397353565391034246689017692808127542457126479037940482224169728270546299891666570139969782325080989306193053048748465057143945515221309230502614800799788033772498055259574017264490512951188917785457510528092682134469720712355405788507895687190937818533550077510430658882746796078499318944743950399994408183458015048303450399671553271377587146387780720816249415001030651274833836478345687842369103043301755658722307711942076250441085243871776873368931548489606049816676266903237554966242753193488174814078324573160795528726768371261180815846239420445429805334977369151954690504981689487929396399687523249080655163452169625421320376499173307241615820431724097797802701300870041418760791840284901459911771426652092854535706362431607650588473769859871078717157943381307075804327172969270199868165889180703910002776030843581518045913350156588119594244307187507901269765294172343632404168073360417251058805398571670603829796060331185358202472447637100518324063084492376744562871674966764906056451249918552672725649357791499360172133578919283541461967886894754979411183203860419348876042879984268826641366233877374794840536215449898937380939446729555320859642882395609319267332415126403894267567290121357815210563565024506348086672003315321509921866502645514655205791404343314189317441458384200347201145276274755663864636371991548915561641363204872557098537964531331780549946573844174134991542306899599530122341566701605517880604548830965898035177625890408173033547349579657198044315768041293561023023093808698945864494845529984505486081200877197201649821373831659348617504748942649846874924830155575560888233824686318229384898269587431289992734559557910277778239997394740790717062401146961427224603940522446727438009047880680092042573814568154461386085398935802290841449896041541798013106017660497834536415316331972244968253368074167153989974494805379247894767258473239872079484150769751295779189462498228941443354766318534999935866735816547587919334399055374684030421341677673719138787763199196732296496249795464965683637625552014822103556764981580368568685280354399332067333940426466515845699538819127965857013151637230359715150923290992721128883390739006302685867430363816647501342790324246927344240284888799979004006553798493377087465930105080710489414230368639030468268501636881001835789337993296776977715162444328315053425671679088359924142075044663393262272476704203597843328155782676510262432391884337791934948859244730134105225075179840387790778127917713160173784851649315163710385725417716945655316779332761549566436575685332252610232575171309192229120378682110701068156893498219993518860514727897233089561527552591128475292485254504622154442186574037511325911009383386728340694002992249892638210919371194866181715127608165176557767272614186021988349221312277590323974993962445647805866207744439351101696538818414530236555591510863748325039265001455155916506078433338531928173595815584583662145019537017088254897750347195468687290804177816216202561629309983632840384019453818682156634241014279349905486266359449944025094520091830255203972140847406917965956813016590217325902095674596037189400736533494501830826153184673641980376393253302862710458216060508616058717023420435493054056511364410929802887601483110680044860370891442690504029783408476691810852542171156255188894347569983843727694499414297085195590263655923859280302623102690849759197164023288477313839043559795303019558472184323755258206274166198289843830210629717829159215698433161110530188584117799875074902145597259714470902256255602050157838361455881783792684538353467107345306113924058204511567272096137391191069455851087120144234887436845722590930388808282210338319881644903764406256507601245480998750978298440984638103104118277226815721367324769569465904120644820823374469559941628109862113508715735634744002288079602660774573336401525093369196981304638350873760418436481532037750537306543158444285774329722155830888165573252091447713853416718134438999897277934959608455086969532432131343780888599514266804074165105930796532523718464599992992942398322371975367998325528618523573264878710093267957924149964951806878525791823147618723930629521598686937378237290921419768030248423379312492120912941713892101467843972368739307081660139152865149578661929929164439118903211626114809089660026853303945856250873153359850263074848346906105447014249023054829299661850894289015259478813384460260028009617289925714974777075894917567289921149108269974117774850228458594809609046249459839157778081170718003471302906301162028308205140384864141569628495368791235745053793950827888189072862544907466221707783805120018809539386352510234908914762718133723225259106605376421140523531926134201406350606300187432845145934730553459704219947546975701929130541340893368859424830027480627046640443575161167415276495155237022144876988626846595805266660088846455496818011071009909364248889966982009757583460573853788034470034204089604099479245743166938181538696062637155037862845057054188450964696328962057056292348826251337925451036444853080872538730944007350347981706460652347503789824110465974717481155239890312363488745726348246274760957517438198528192919890889743292656407594333165862841246724010235655690481117569753737086162435839678751877009847840583691976503050929709154181824064011312900104279320543904411739245556173621925120830998456641624805764707386059954205257697741047330195414833615334240073481508862892579364150423402253408493704434164662057026135885413312616712157351019987224242692783799237163539075049774326854874338248930262067273633607793776075367700462927382559310066025042069025358331972614728631742206538472465520630618072151259282154759257828854706800082211190153120865951225651470830249538010652748002866287127462213996458324577131012078227598763520822289382690288319494077772543020190149164010198782913990163247907191802436434625177010696153522120288789546337752002232788315679671189938532933536593949903522938296260379087717906949906119125422332681040549797248525959491095256230147834898201045071956735116137525642503562293164462549940499533763935606957000818997615661104639996968504159253857134825988136895394133983051248427298333256580001030513153509680790996525737825476708965111939364287896837275776845935078123417746292367046159317039902885813378987545460643406593881863986652278567241854306304162097294686920039610154195508035983774355888736941366897257468094724417601896962815706914230959157670097594765584986670528924642208889780000051543895753363327777780048638731058542396083548466980252413564183341290213942664070448114213838095809621677599456910405908669812865187486504263380538768215603218337307404430486358024169945134548245177238652032319352003662291015738060744545025072911417045165082053002528350760305671802176735610289235899758448668716021543775796514290099151441658535552932583816382863657600898384374767972804092752500822022496907611955017332562673284383738858246640398155943521281168905998147088079444191830776585591804084943131425570892885292490987354315360737039483562192855283379008927965446639112193655696471632750812596369829675456851024862840308743355397966248219041742025273544284231772764873707816328369163501082664202079728533408734892267083142585499141101668403192792861404454428634822582245094365804777222659499237653291515384749554204367363315762705735678725541454831075538771684911434311272502004294746902048758570596687893397307873667114082913580284627017952455906619170558647321703941461655344148026161983502248364247934147172530412891534045064744165650827253312325107593688256197051598562206270940238792736932735308414749363386465028182764873700358561355235930913221343165812414043980308595800535246967078265215553707022012926927272437490253543237886194196165495204872062313270142581298949265471709614557028299558298867419571736741057610922022553977805597734427686847839069647410872028277529928764215738289521294800436150585533096116495906193682026407171960860674620556693298771698523020618335929419702805145813146215349365031561472101845006263794606002399121849082497417555068774270757804295808070943900407287324744751598188023372941222331484650358615121522208178911307899568774441071663365865024486083903810132989270744792294902280489683540054540911703858573528426684606998888741032312047014616915777375942379415881681124391095728796799194031264849829862167524251390830132640076459710216683617362969723910161601199354977495578697924052967290339315423916841415011608067266878009266768052142837066934937284375792362567511043304698248705826533764318544358591576527547143088579023160078598029502306197090331070249241089133246516459945577089213257309984201050373015387514611360110091962764603374961379446922186807855008948112724563398978174763599111751479053642604525866534522359813087995745859244920132041250396245632898780738137300671333300157557860858357780856082861897468967084432406545132530038447083814543263528092742538473865467557768770921919443785539625679013158885854197607848999708990363520503789891086036369955901923376354046672384146217564665020973668463352392346791941626672407983689793122757229499336289156376997788650186402026960957051472993199633682591151266364470446006662126630512898784537320496995151413767279752434564055111360444456057080143911857047055517380828658447363441412698688749583234795306030080325938606946185192001064291936582184544154569366810563204835715737646345390364262932667617533872525239038564677518051386226191773247262404306459776034987060023582992308557705109009374176574347234925033940769721939086394296353887953890077489238368716607543794246899755050437085467481720159648083952043675643020501074370556831323904259891299849991947824881904419674839413571242337839610998535432090214777949407571597296529763943172014394665151269249171071713269526252295912188571410124617980120101700337302658543326626206918094267442765108741844001092060877272937892147619390350365130044247570121077615324575337537932674660637337809050695406417982166475130511404404117222449746758136566050205271280854238156001609008083978426711133198566477464944202869834434134120205540302167020706789905604381470527089684832528842036857290992582349131466640387483751528090003152737813040965587638912530480414394322207014094820762814904892695938758691553407192874709934425571090074076351184654522450441951511598747693965918880011099298015445070417102994652223872430556835135011849778075704748489870356856871949820400522174723349473993497727469824109341518595267471104314180961315816846810414730929063884650275846098810693358669297570052237061381741560134129029593495009688952388721901383932506972941999660286924622629318420511417694182206625429675259094629899878332898044983006582213353792714063793641713130386694823112540118136356859144672825755580045257706404884259578607778131736271913429901300054017344617472151492455808177483422619153971816337186537933544621531637970367060282567256627013533009155063594477720114792167066817991790170477343647370337275320700697012052792363089659277054283852391066513689293899265767083942549073583356027336210318857322857246443300343269261111109939528714134243189141138308392118310370546891844208457461777507258978602892293574951736711613084454357038572956618616380806830622974681717187021800745946177295269847632946344320392973167044645370183883276432188894740561360852201270428440837384688948541975982154093057791543353898108770610107085601022866764357601000726749700073397113126559212633142588378353777020764988860964646145703986929558979619572599705560787632868538343556092291109751111543840059984757735154807253901906067493015919320746932120514781905775850810871423797515884535608859473347301130916228004279663590617009070084950777073479786156964651581737342002984196849267138978915551519845953669914886895675980818516350342114722084003012061996960062758479518416994021128004227893568102093323053159963128592938985587121691429987356420147261576442491834012038371579991995118578941269947519832377801054246057648509907567962411263858013361900172365430560200562847201023092566935675587681452921859823033689999528329072597865246071453261777522336234596444761499281646629782274794231371875038387420740071007156689387998214744302780843080105194017792276766653269065825784501776936465630959781000757982856713995218900636907760771625805942837052627643101261658481139121366804999141553748856584409616047638058239389750453280843815747191198688172139612587750749818324471845267388935465162389140126020703564823958601290322986038245774690626460113261590258722912068424323509927391848460411497395712964110078412699910983298553140680513453721661472575818105229558809309758604044706407461552885097686347752037783651276976107989739328315938589507114307809380655456458770954700403930135468703780803863212340856820872581979852288339108082249389983939650922161926033302555735080560627287827880489106739537611030952118379949643782756868875833337071467228615996059105035802186359188728438954861781461307711809108124908499631622788328465755942530520464121396892260883743292735410371752618280291015326178949602481000370193418708022868205097090079429884714424182187773768861843099810951590647162827639710855739232366299543369517956672221617776145901220205021035647523447654091913908169541515248422485992665864025102207427896073210875763593502255936763960146221972429449685875680715070495591512163060627112112147489087979762622845759965671927541321765027243282986873623175711999387927322986125700598328733156978971662705909319732438794657985417750533946094721998731780076716008206327846955952410960248863270807526834723045488795067255861137014841542863332421274439685755350150915471135077423476211781073221684164922782659200940617589259055238051584905418035565457466264227832969866348660856717305131101579037003704609187052817844553570948431848180000588203687460311840948245631457630975980522140078822087503759652946110817044769871467128780465285500802105046356816350779613241577274287679325546354604364832185302674937990146703631390890118950746757210014971430598121993512673187315236624596562910797970414806744210490101788887887261270617678435745421233645298317410254996844673829770084188687631047878303180932108086182998397284890065777065751653951537411567904286097840645757874659646810824204777741142680858377161880557493517357854556530046722245503694751148940571600444353023813572700661888425561330275022591075185945693009423418819844949183555322524954609776026057849839448713691287578486983393698394178016707891959247335127280754594115094987114181426639827788836829694575221168575815912098922270112183352565172936367621051932145004948140445912615327459451006697953031422708546887391845817707290090378192697966247706585908164916708046212513888700062931345870802880778924634728510971040869237061458003159590935541567273326471335701973050993681863303073416919477744045409248412075769458540688972034242180656273178897101782330022881383030353347152105705768345809461933541177649998178171646552127770177116749936063600424629195518765570888626055565459333578225336007892478936520206793818083966374149942900186449247053460893792649105889062174647568852477610239130630994309231488605391389049826954837716137543862193794039609277191637559200612770437952535183439342700726037376183383568538642646126005611698858934360040588872761478162111107389661988522624011337894276219449124450520915565217032119604906543673920413375195070026265821556514581869106925011332498767162533806363036459610957091311398259770990380773298415126534060016152134848287892526289435353590534938211246282063327378870394866322265017931364783651490067651121214320586291954220145643554300407045474345870123234223814773776360878549099119148357397723103112281690277386316348735516399292176593575116018557216638140780130962613880503904422655522276415968483995298420018665228263060575946232734683844343402962736671789492433216439317725287773415081338385853182185817256745106229851256358434372125380670846714651692367965790403036522208800738599681438723603854470527078704964660357633278591373682630015911138178692435824228101494387937081812728199615119563107420225734289368182030327220968364380917860869709364474866301850900740788083447564412034107786671707299718360464480693852092838372196625798822505776417760778783803749834016208600260890715750689080315245208780621186888403413023003730962213733207299288667016614405756359109288763062635669350361903008975656656848860197239142264480984704230631121915838138650616796296868227712562427285306849409946459954049493167408769710890594124916616908686628026982932261160440478149370830454885903530875453538880604490860883793660838911041176682646711227887137483759245632157691880071025274168755164805110797882265156946483346898874747071077067681812546150725053586929824442128683024429084353958917028094287758170178130118255000187580985891511712811803681333510936944673092077590986154382001162792751499546241027036830511470858333698093637649277560523472276709318477247530253376460162812992938900550523902526264800254984546270121626353529575643215202222778242872461188269436589455812695555400747540855734127125858402433534516217289009984331194409839882082711437144439209759797859787676868940833259417097339335747964194379299638159998163573302805024185862652508003867630115027790940578764150480421255386937872106226418587771821455478413268536516829648066142452006083984177306997782350786685172831425111924322045352305680360814646536531361539675629674759966353698578880806222970365769276341533636893568872194370103773952970964362817377965583710399695863923049408795918369555339659079422528031261304179985684053833404088638304176204084648957608525524057947338651633006582875507428339537403278824368035420707277650899927371651020023632668155914897345691221331697102040850338579600024909895438364087759780576422199087858999653794089950555955437344280009261103070066846926296462609863374420905443718529588201847267175125248638767707450171051792380846070013424766647239219975538451981016397051485419675882856293441581476287627010085377604997329539279110539486343985945813047621834505053416466258244874752156047538835823429124892308480766651796693016420104677551510351064107042908041918607209159768365379810185679250372508658114949539466335598325855515687066524463383436682190219165330673824020630512990746654796488731220130136817640290334543866785097007002369367791025515142481688418705147278570587424877122386614774241774807206682372847124127648006318918502112160006797043011622831201695279226813260068657287931612192948192324325615493944784094893939385527493843942726131517119199443701076180565894582083712166376364148369988179742302155962392238131825670065112232260390556037504635973535913428368195442937563318337371130556464719467372684891275343243157237360389421588479569701290408767019187110350946987845763085124879448688695106177415556360159691093285528674220123419164354764782653034995563023316482734073650081827601507051683661391678262373833937833129722342491273356193266356780150259434035590504017728405820183692964589843146583563761703695644418759924821083933350364504161803340849583010869561202233272443917201709839513342256017193103398791871310389329311403423165985834734453121092956885878161678560563666939604643271798915451420119927315128127626804090576754887898834122405698296212396515937185820107210044425687770540957250167222187774199239699742424548052508007003651772294986499015445827627842205454236681256909000930922904684104628400055085367820839412438054749831235566503163972667292103672021935794455804376702009827790201905035677344403077045282287879426902320872463084029566008831024628976509266216131696886680701451369244454072753326002088666025577523713540158210904470956072117760677215722517386995526448281653924962917933264624545569307017521057868831188639761543759181843490160750155518194291214939314650934369590045434118215937035816748932184209235535796164170970710266577459163474350305938521291757951909487896889365699646366261155514221764701176091427636235413560144469873087108852559401557702933307168065071768265890615153902280501687194706029899966942891396516170048208580986702419163348746485156366605601880505274050937710995639730830467828362975188216886626775577351054940008852827265246421586600057407722840665694825813355725609743692591190583410232952175787279807299238961768273980489549060588528596126909498942603530302926581580788812103826958330327474605471748053286310264149730959824399131579369073114451472512334249467338144789666069844796105753759084310553203930577292020189606524270856590700226744022102298415563365146673692213631619955273184795179743930272917536976022597523229896679719920382541633115497231881323909486824721939039073279232089220649021092086106215321529644275855956270680031474536194530646673376185166884351400545795955163903609083185340241724602647827855106535046721815686945020859001363203945542104889770169032217552535272034390120254058953732598054682351907224679120255482650001689498736048527209759670509429392994382675498790441922020428184196544981294172220124164084071081140802392027387102776545344158962040509452981039063143471483942989930925669944515808837644702772497042815375414037338408762335600317217987356658812006770248005243425841005727278167899187290110578348951632774543456246081735121350454475591772322511664178703949210042257074284792319633455228580744444758722836078505271378413001422940365878436113148116807611051501023677658056457628270017870648722263131405972315285109426730487846184572306519304517935539177936973596234338709254490089616428421491462553760328849487249437698165304693594660832749250421271091886083998017151547484032270727501159125309761398955466963901663635551605373629702998153481926128422266101827746838613579906779088500590193588554684486625003660046402785539129490563661837409485095690931493661098151816531867451598763493611199087752530933827089914435731614022030339425956165447171433234572398654059666288195957206912044919166340306981069893777000439653274886204205578435506187953702538770982556547757009449576405103079527915571639314933999268022088135490251107697773992644058180271458457839616616033371284952864725591213131655718564737630107467387955604008923794746471127609046964707390287700632491388175187394169034253833820342136742176912139043047767556248866600601029766203196703970523050219878247340575278227574539325310645998772948587253392109019256606414329429354449552126434701953943638707330140325025303972774725464994614199808239862545959475285821790588598367158790563308073284991257451878231671248393507628403826432709414376779313617360014507193680262946529713940054631013464801499115264696521227542289354430502769025857664578526423474146824575589973748700437806412707313611481479504367696118484079184265310289307658573951650697204617443504838122589164098330326890572665655634928486224556964049788231810212728685158975211142008810082193704625273041634746551608024182409920059287822244496463184203534946521153893387266567077964901974399033400471625414289847003212805301120134340036327319266271716605294243073834759457276077890947971101893557097565398782692666634376963867617767794271434435095362526410409448573878429255659427633276741918905433725534911426597845108385542858746253642752881382049855090777913592567618959058075496275134387283063288942759443778550189700134237036990109176550170688208104224334333518563785951292184704424877901729468778133885847658534184945642308439752322545845418705850594092341549923260508238923487915182831343754059035035450379762468170925657172328077179988621097795495301328819372523229271695990186185375906085078304989791828212896417758283343017317441877513669979213372522843092420115627595527629185635382680457361714898050206727097401891265414827560750459891030616220200123515772743556422404302484019986114530638694885796719733501875508366849975142357425408660982538495599018546220757493352032381704826267034038046706713746213917083267126127675155624229756231894784147894467926754597098088087299683562191030033982374398455147085863486253795829331428754803639295333914149259074106540894851885067441707255982706672212269748285207306838172669686588170085675647581339168954085744613683441273840072702059073356924151551455407120384849038803036354977681747185035456085413197319207832352586464838413187025885712690709782857129350080704174081809415794952555088338454346389920407385387348588911050248828008169414513832865225838292231314758538583932795822568004199695620841869122911142503117719556678469341159010950786417992925723510915181155598360533887770090313132719095991372364715817580357205552287115610941585638780632653206058883871998262579173222236628951710240371017728756869275347173428308916211360432610252091488117828703601453119074609433807668497971240237471836371168194079584222246280833379820264095489741139215727381716741369795847920376893230701335246474657131953038631824563029101808739995674962009094931863691620270169537396624365715366303944019024236012949817900897323824676739181210288809414980492331568028592141868783600235270524291122486296344426294552160272974072214744876455871064880942246210113014111903251953960604982613483763852340862190750914800152319949708531516947270386985019286275220297914444356244908799451922435782038751720621877544381174128738512867189919926286590591246275198243804242899570232424868113317011861887207769161962195515942718876685566883481514397960601088819838223569804169526399252075816824473752440458115334760076803080275613321844201720159338010464574495390788646118999550592086446673125382114634390546197615764595587660547607503585965074002148774815338428678368946229923222593112239872630728884482956666607613832634414637287860892448545672063022276452137418070458288412868674098741265616859243161995726023475792750458061442190607607543255561995814060136237518644141143222810403385315682772942998710378694843080007686310299521065405032952653124909512839160994962008637496895817239810901048657761216831816968821519232383141111361692477760538988734834262435765912045195257219112062592115928575213520731916591058858877870225876638275018530083155918870373623281495210280919852284956613419232859494197700605539992215684968838167391812752989384889959034400000881516285725564673261947473350274286753817766598462577715612390044881775827998185401216212248499991626995832221444685440642134639121486770364045164902320300514532611661250781643950297866605926605262374316978760012062174887894264003558375206177689236110197688499184297711302676387941791539387770701165333001758240976658973675491295981937012290104274427053412456979325188773699710095651477809265528561006786143078920841451106105574114886086046734840864214862685829674587968221628302225484437501913527950202026101441493596123756673706370698260478311729640284145006336057007165011038684874873199136742003687704593308501922674395127356037195671519912245766958248907086686056227078267407482543288839909457631450100637537791065983576406635675080181861396406757651236034036488783017113555084034551289607011520864124983036510688860727330931442893584910305024876845540010085834739382534129260129748331899411276575311559451640276725786431882406018608562145460960775083555879338537372570950586332941286623322401456490990819340673669979080307801990155450669872291184321376346335066231712202853246844738703664118278889362003486585753903403431828633949858420782888040649214276776153308954330165884947286870507324720475550629544883714849352594381067877886252270329435253604199844767083696447371729097286304795927936774868689756948414572544890488701936689711911062585174873295577932255230300056739600120732354909252977860372942236165664382500255899958852771181803726724058357876330698825819819354282610466028454468736006402442350338344310835223649026244620875134903321423394512265563349591012199311262520365048053444816132441055557526547917463104550559285052507874959871123714452362379975829008374452106684556864786847850179499769747647508550443459581229516323849675061343151024052186051336531618507542585959339128049634167557132127466266946880956417284775381369491901375758512772544404156300740502150283114306250071390201298960312698371346988811545870685015642458402435876568777210272239671238088048820990142330171993366256444796008555295329317198236663133812048850526689785870618454636902873730910042906010574339831498257800746166898054709421847902302609166415401823386327183403421500421174988529535805842295682260306512216740622643480947395474114207218318311734478457664480312320164925617140900337626477086428992356522588837632221003785501126160166349327655631119002107211236095356655470682416590306756548340062884252949983058781875935376548313243958885227276250749354022354123389757788832842444052989327522241998654234400302668832781556756481356263745415340411564742460051709429218222731441381496394041176657577377250108786207748842968584956063458728062874317884979933856173144257956006254382515985514530229351641760606994859352637081287869290462785459193061810853935910213280100916511039112108128001573196088248443656655196485227600730223886506374828243075383750877384969265277633984211645583077745313963423813053331981929582891473386612695394497316725667241534603460999708484106268393735982125308895521803548642311994969172897151929289794444670238007164934813124424599879033937231347324586687210696558058479932804332926306039936655556400374529494421230448095573322885458279941076204611199152242828455003457104545393131017682252748741052792716813397429501166618127663001029888563284240465658085431819050154985535351515705314820805566212432853357527691291249663329658496690922725196860002751977895821887362023551584031193888826455856523470284526677556236637750954479906781920011493859349170159522681233449038887528236704296630835867686785000132149573595136469365367555114035990407772861913124936222725604314527721679919158872761312596425960497009290465355190143975155677551315616208350720267839728545463692545632415902858725872715718510879991812076665635383473741597707148636776029922729594047292575545679835496906936142841057649820373386444525243917394310124491128179813052926217268230970609646016928694453431004893328674167729086830679197445415436147294796202140655182324312626411537648780770600574527433207096526536230261196418272651375792724995613674128791182321785174623406555580956841441222771222715573580733712850285556458913623453940225529260073462509914853880658749015864743928791012433893273712525118427026373321910358307231861499322648857605268256581418713845628528022188620076962676478925307083793607585334052211092978378396606292931192046139810647664955648166053552687133516826987466489598738914790064346289221826808831626073884291951862499052298653988021283900070110882556020771705921847955982461286629043449303538347468796534462226805529616613564169971517395946974973869472223608115479619706804090128577944715903839482253094672822732427749062279281192860618926284631402992356579963824833035565442997895865209904786514956861466814047145007335948031313658485495656306380865177939513201358251722795771893241303624462095851642788419951680920010306326369299494222453864865398727691237013052995630580539446805246955098912143243198184862828340428102867133606074802306809803741524901543920000930707036896756755238592938197913483494374956216362332648800419037836905915471887405877339535524211203332904625538035656243285634537063204304929323966637755719732972839332655857664937425923654756079891976982254271699061830530651234371605914513116807571635550357527711529160784923762332236922863786213377607083746740110512523380609950924231166459199657582349133411473454485555839916670988209545436108263242798043555068446193412387800752287032101164115018576233302147400573159254029107601915832655055190474918997046821238176555950166889123030275007880565075800490313468421759096064432249038368512875070906805263289453782747091361038137306717040775263231693602917482707228826477725159569991857102591569042173636460520317684455742840126932942743851495152601370118194296546188512373619599279092646621239612960998024369230429945769290525398781922535646892047486171413895513330876561258375201313419237018929205521797245754163563429109684882374385144965310713627635237095174114709050375115859137506437020190584451437525104375371696833318241056721768169415403079743536103604457327070796116001430052927942123350643445568376680004304662026189402108510853502703712017928323298931720462917891832884592791382935066270311103281203365357199178896502270140060284635867342633484038138150494636077936567471656264076108041957819840810006143491309220744592482237262320768905787764897702170118871922624134924725451763530786341300835263748451550565256256298609311598337141139086354984924997747118178063357988669850653745661280509301853744843801564603532781571612001225448254058324764372763251063618008054732049289641158176234851165972958945087514490520995630502893912679083957717541231467018120076263603686040275900140582867511769362349760072254885708820418299321766405058326458870862673799599409099472293648711363869872896176047232335275288766863689911257258787809665328887801512962362505275959972331205098857873302784376174741128507557314607344373163429080260986655774941178202937028533932398249259514986039290084586817840590015028298401484364525816364281246816100776085194846377296986127802434099477462884333032198343588658393980208595105426387264390736932699283714826847038891556295726903619753742291597180571959274993155576564178557375050796131189346337710161877743060998218542432138246729683582074590444007138611965021707242202473176802162761755695044339406399069569983020354428487695983729298215726063862796462791134299251297049046490581663768584956771677257154543164491918867879257077333890849933820028621708115451959720416198895919219631690603821580910212868902302481039346861067731813895299658907886429755989984912792301338704722161197016902816296766137262946291329454830980042137901231184862806452954949281557193443449549187339191713874840908489425848487298549425322664452447761239914706668127875667867843710595263157745652520227275101646562522479227955239594213716674858872766594509556324900089707425062026827012771765417778124175950177904075880629440896519663746774486577456496138692833298928811201843078742454322657355532657821219594599947458160281502760627189400321473917834460738277591192022109689807967596230612290375827636060211633721723412436764622230723258360192166756433293599703307020558918408741146648516590344423249636563268130203553819969048524107388344445056203613770542638473872125460623698286819279668007222892527170632349634862013085458004901203539527898424602083323064679157663196587933293421567843805202155729853911070238127428734596925641776662918474262283158822615599823074468596666953380693915042387813542195262221946513553482057192723973072835471547682267956593004961113373435364094461832849594221726439657297611544686409121827639030663664057680426273776726391036675778937166677911183096326737345492170384741098421819299328704022941342777080240715827045297953343317077004245130472428489257599418292795695899632279079648261437438846707206319365072880124209440267653017795298146865057444993201892531696614082010333473474572331729177700234991060404400962208814605750525116568139102153454930068003744009033678776149280459191031457341279751252571841754736722012289665929536240453397082714629374872493999258014506258610994192080862968446946103257409232053229826413024608800147291345607506957307739762802941553848272739747296431915757260749488193484934196873136231480431626783738357023779317547706864219856345105434688530369690362175580789960840752977556656353110240774979853956930282840795091560944301420125795422760432123017166635513929351588628284103858901991344336498298982943764428180926969507902993684162287640229201599556269062204566513613767740862011534001424398979641612621816849040768659762966636682736084619360770115057523747986789370010095162037253426190468565381881883271364770814293007009561737486702229772250286646636017385968766807806385831387994902400609949739053856510638935899107943370843886407833655447858815986183849474308997888823296597524502663351362959204367597533928600849621741804663032124153088533121085949838444762449604147425498127295449822324654099093851767460485181616346093082293838943458596428435707144197594664204938387461999533948067569133145079975086587854349989050651164037206786000312743309003471900680728419499794541891507788478024513030998888847164677849181204491191272375797308356210394933409624167018516105817607404773895892585594319917219684762256380432613997298045171162319177341193009793810005888699934733041126291517685499466071023233475203912070001314259747241782833043149488389292301458490722253169853589197398699264036949845738980397931421851789925170317327241158866963820178869354678141481883659986133700875287721760338322511392809036292513307854281844759527205109793298967379529343895540829680458454880268979728716812176120459960204832991383811312865406462139972254019848803748586052689219906877540929148607511667164780288958209929046218971090939812181151552992749926636633652397724560470307541311759637017114249089476670741616204229775287479311552933667262457648212689637449098146859126709194821170057023703920962683730366548527217160897789428370771688476094226160707546522809720519699545722731403535501070447232716700850264148810480190824582235846326137968575934514049404901681330719981473452399430532836091711876426756828920487508680417721771898733669958675477100209909219183246379862847778261410893797483517788679010805909285662951394705770116818212901547169337933660367338850586782372589538605170312918423109041129090245936954031915712966511750361562645286959738689249163726973081378948202563974300998041228670569404392206376069614827651547431300982897304212816150873659129591209214643488300596885878739031236709782130150055082260590421962291437192877664166499541229031550816557584873441534444883789906991636548974510191912173876031953161298958177122343143345831259480456056035140793922909947609422519914893586815806839797919263454270623351676340140048916424664510462802466370510764228275502370033465676855446519875212834041108168876146384690248343360159351017065883976264494724955786960820915059068051707034816575607201822980104704726079707983999010195850917740484204453184993595881292111246073523569637364508465460489482040392062905243492818545322269127448812828459158465502612881276210782663676909472157102670633255045954233129008863522122053892685046143294035569543854076881988643946033057302776529548451070780301107083687212942137934578024936620072911903876251326129726112117639086534702236502640593141079083914976347682976334704380316361295056769907031204622031587779769901572744451792155558067701708193445729741107130012699684530998999362390559668503090288571489248542725965655599374036836340778028687385473803258051888022696196937305280686649390676148681433788168726713905190126309289321560259277540188728311235716476448927582106932360066911640646327955901591985338462954360870938491544043787953368105858383397841412366142575806745488790631318005966990753354904100991515678129852892154721973228093831205228062118377709932460448070891195036403535512639553017969102525788145403421499694828053494480834387389499446950628126456362300508186365180559703065665818778592713505517363237671668552159613593544273882463832796194302192545579523050244465052323615239711558527516465428398484324859088541530322348532363156908925850958248992924057511672197685458747093520372858445268053136263159364670344007691856443151467772873914467685778560911376333635494802158149634238874342885860482536785160712137109793117047031356001163668358019569988185926634078290824296710009650262343767450733953847307361298266422092273613639597367825201360727878812438930878316254289529337974787488597852774386270224438809034759647298491200714320072355947134882438331346042912914702900428058812898812769075863076219639397867804380983981285369069446118601643824108954422658803945107100339382208516666071670083114575541795729045253043947353359181698537397838785059360864341641385723595423278980437636731900914680652900512196523707757048200326126536851943559331448045208133058610232484905922191238011974924881073477670309323705646712704539500710884827842076598681939320823802014424313928940795861006365271215761235280626664663483510343874777720510555587781511729148825540554750732124170870656535655224489907705208139867738297225175199112334665353373182766991445444457100640276579552095787271781587173180450260449683425271845053590505086545033945541447884634833032555064653828200792339827144154093282245042535830190389199788012711892736504005370821108186162631736155820471854678272533977975164724738980802658228431920849071762914963957409534139835769878700152850582180519588547309028411218207261261642974770598348713697343934300712147462887622621768509945948020970171407047458344340287492257214778163764153178353203894024883310207111945996334097779583674103982188086100588432322898381891978666491068698007878623844300836084820622695707935519582367243209612145052391427631642610859382009152994593071643598115097444713996107467279630062549460064356907613550480803955522523467839322992340368967732949377813064877909822243209583722098770625339626946125857872182191830274846233011618928368491927878024703045068401334701316929236545972612736096291259035091993171833621255215974448959290125390387293111427835054404953488854813504961826334806145102414098826324670257462336579584882611662108527886146848556142359675944598443146434460231439484863420223171275542897538784432353270814323985670428529827957672303197477801484428958469352239074319838871946563101903934295735663169242449379771517439392755688573323869047144055380869182715888085916160519199860625743411011989894905256671438929055056921463711451269592211084984599534658367434784307059073116725716653595118883926342547243183478848270357394382947661609492895295630237495775635904540376776198918740867661628875668738681096325132180718199354544120446896316889641863787964817408206201992558318733023149910351925300869996893099815288909656031686961857169438872208269746460857285311355981741517527810310923303467629401845463870264619137465800792996805074957649581320583404124852031772418447748168023756970689295571344996022148181582170889319196640428364089131552763615836911552969028146138317907664658783851092764425475477575198586884455416508139289413578608340398169110223395766088887402665731462182344010687048869214929411288653134487008963527366948968621951276605592721422866064306385083322274328547999547282077246997824776615414524344118410767454745079201002487095742847246272090731020268001957664283002928949125071511210249624216534009432919439232311183384659478390081440160932629624307142750452495078275371057717470951368881100265521155808096914190251238498866517102804438493943589231202100018028299138900818850456044643240070848341112204453357102985509402254411307575038708551169219367154213403451051584856383010867687689027538509882134953232299439970922772842049231219358071733180545086579329586898303116853582778640393346299264876214879050213213585502653539512433828813142139179720487335443726237229312076410640361125247982870935979557235843645967761994461101330271017593899087949209625170468451457246237274972239206360854581268159324966385259138463354267944404846994044816736850859973506475740869167131317400944315431733963787370838892556929179392458016024385936301010943470196475384066031305964762694696103909695829327193268976291576789352691443539719504446518005687731832940817926207360858478813341064366145843745124679897661625069690737586985917996085537156684328408129047413470701599440981192474196863362445880286969230087404563509404599768350061763733482348622909999093456043897679173427187529508829727009468132095224542929106923304756809987451937069669963992146549096051901018035815259256295117888165576004085797229114124374416373738864493025525390400038538226076264669311455007752142493933620369761322460900462349473565406901642980441966573331060153189350898416563717481529828067645092184799205728823531714945895976602749306742980340569351819930018898671290751739328649562411861764026595728646651352791784493179662783497525176349399041613630742370982291423202444763417962023601154697354989657785812777447025325425530857028219376120212123079519756192480742172216432423739322139156622282368453677853397394695304325395228165915021042111839808295729789228386424422740834622913535558525210457011376922409778477310799119888363443862195223309625830773802099350539596833838881849715724752620194814849244805263875441820410215118475291926047353305151349034872565353004285589033075901351850201018225299750051260012335145687970157884779494736209745719019243680565568521534706834431590964931844250033918097961572908168595913920147836031414196691249865876794098277777770307004561718573002211529488445942455243223828625592312099971984935462387040833145802631020441715335174551714546598119958086835306089689895277409174406440972147711315083138286926645160643311639326438551408243660323109563776989269784013495935457097656176612103153831701587355881845905949164143368347728551325805758356566009521749941039902297065859489977873797470122894423229861793971140097310200515003039131406304987374164707583525566427723205094569351020839152065961716192193600119390975986276904599780142553902167520766168048636730571768923244370268787604308599482103656518551214670215851272108643709070503228273526123324719590920861994327617346063241287752484900942537585782142022980287276758605510161550503047626089802669299631965343187755080991347565797377245397335849454864810455357309480361308636984060024250191628324619491771683490798627255306316634106272468935923292241178224379007627571953287173839748871056540577307564532239228092259486621508442865547689163851727060542391743016650127834840374014655305836936230283054080695602219981509977969742997156594769194468153420743243224493965493171348797648888477867843820001349626097220050468886918923383826884491413835167572769174546123162306877924145277892614846251797397078314863413724692890943970168296180840782119927134537103411666409888554897974592480978083510386679194524142984821547894852332512275463475113654289109465964035502463927449861956651518575294088437124537185729065240197714354715498368046642375603831338136331525396165707503296510133698544220685387425717141618896259989150903989287911396089923280949722735007499719614193891077908921753870669182738768386853656800438812422426023484218032237791909896286832185485646686914916543798942590707804834342978624721071413759793575365289590835908581758854234114354689891517126357783388497100094121385068729974158099043019321962339742923140602392725757528690721273584360608174123843207945190199269891199532236801071798383251786248183545496537508033904654174270358595775772520816613598891324971659590784376780183650616173195489794798403417255823623859487350375059165037244020024383508334606535883963581377975208996276010890880410317163452548585236401606026178928373115972932457866257795362048205873134696749582217762220595247444991754712211089511158353142818716293569338463751159831426196893985479154089581471247065500505743018099282836911292513101670046597620435932723914576937307759617348135623794170276266626860735894132968140244554461794629229967896554351537280975090061275168299682323106511063002271290592894747507904779450661410809205552779908061361301055938647966560361763521798069337196234387328598765746710579778626163922179491895377743575062235599458838509439794529372471075651253353725151065325883470926830784806461388198157058829135235350857956464509354284023581629264676269237180243436337703873925415075367026954674759901383974019422836789310740142739509435283107847364342631431721965061444834204387107911959560073976919024271566841916196465302771319046965396901822931628205696646953681545059448164730408142811064559426455935153469781689321413423981863232908174252075260098346967516068934972335538878891478032509254049408363763391993149203769988087240866120709926631460860972231289926917416917149007567393354711805960833401727874390989117437790159926208491910319237233387822764770294854503911913060375930244964062614897197043186055735466473477515985400259318780992815503461655638774010808636355650908900330516026259375366743370884961163072331542511137810282463955796304923847600206311281131945933972733859414781188965214417266612297755198086077669687930653246509148673611306098326328793152683696181758749274925830802738021947456854817774180262168761888716521795388681944148416320239478446147305801296703139949251677605460501982936986598464730688115514688039754475630215198584289087838003536460616075367155131894005973366200476851976911843914364794855198932106501980899792462645128117087401443090639482879815367335304517964743338385289711509180048136349852059920982260589195909686665924009719183713803912194098611107081811858856705356295382054282774403187628501091742692890715254632332966757312475335314033450907576076230115065043827129259226926235359096870513352908825194426380640618984692893911727753684741625107999411062287734542841919374519989309963921304502857394476617575780321946140400090732701324725875034916050565597341618242227034104419793261037342467650328381582901541249614332495848073772393912478707886085251656990776398811494936675986261664038692378645743515220440458274986173261936754480308830956739426853344957819308204327546856240619529482056195375145942788635636149026600409714841887651835831494511782895220094198429843647588360236801741159310887881043860140705856400002615904553175373832819013941603939791874221273470341594769929722992455544295858631702721335221224796334516343363930365832390479775932788436198108560735879105385981096920646492514874239312895615271140231148103314623928456069768124483063190513612979898796635549293218550247935774097491837300863205871063320230694749788678744502658688123255491339208379643013657294129495033736227969806371445601349048687338553036245057506296870479140796509149409174481353570437552938595946779432578245000266752508442653480631988578495883119018361757360120730972656180503493135588375203404235059092864671524639106207438219704977671841870260148162795921057028155058964097193853480623028341486837688057432088572937691824241297776117062652308584376628868099690166753710664313633118087440446982279182390835304285959637059490312892123726210020568370757821948402174233689917970909546252081448666758902800623392766597887015611926291699312092779885647579550208250985436654646395131439608189479441705785283625552711721168410825731846214442683753937884809844947226623117060998315667143890695303465767673392458452679318567857631297655793955944022239907071350263390259950683317084734771242161993913046838595196183750735500774048975837053860252777074251072225043867791098330614989593433687041532251953947906627114272636233372667868457265143944302872875716091862608083402298523035357549152306156712521733501838101998213160752551751012478378207452859367931930817234959183076397443574113046229717227036418162433263211765411259278434787726778278549100115670952928343531620844765138813124669017267231297223027553939888133776057050637027746672934347848712050984887290144305840888765598734833959194342148135500579100184631334446713720409792055721882443038555298164792079359275170630486599360728238340072062271526359646609055877950795948203283512067739139697321816111552505787559347390867269711310796046733961498339640686759738178063541635835575854654749437420511848818365748745492059634583780553862410744596620607782339879182459841801713898053432643789299938738936312794906657362666632728627835992045309203710253331632159181906814701898173859427768080879109790111326186023584667195820079430474443677915054193978429509339814457663314083690946863408116489805127935520678657533704114864192975181182543411718876716490023520091349067577417324208551413628299379868498513045124369963285387276777753066528563734299161690070521861947104229183637101067036713785310344608560467228351109828829008702295885831651328114493705161967607451526013585046745198728096899226445606062572157545869823890977051979723599720315465833406823557362392991841844068466238333074948660635963171726743635065829614963478438145691954710029984536487422726181136431923487160463153028652173496508667276322325067274450057248874091615852223625878178768433242364171772556652419005916370966152057214102966985961050586880103541599971500675839812648317024496596897022530112011312865021864925323609744320730347296666657578205559776915072597955574114684807431951323469133335917799681713394949263689096194198732130847390271352675988680534674160723627843605557006871653333224631478433818969163650274793771574142373909406438820868861312857833974444101243244259989179257953946722483472719771158241629247857069935257000880583316522664525438920498801255553907460429409781140982333496916860070400989314027471155898326898630919890032210381899779687846993331267017325798751751677276386604003318346177697163679987432819816365577080476824048940296189083018025911310903727694546451713376052798331800177144005446757897272687300550334704941904778455754821489617435803475486724822374744250432975668378903261375228234566345116197596215484948312084475243689605665013032070437077566012140112418288678363591553409365740927687848695413481426070143273867307231054681654782917840784850414862925243783341492145044488197803299179507436013457110879030851480094202470830439337727187872372362429620530172313645907421224530907816915005381467766081763870255022059325506918359711198611350863735662618427778115966824557559560683917221260143246796184411685415524548471662494096154943554017566197953722767277428748460361434612349514413851391829192171409309389632608694550038717662493923127760980378751416824369538021690093716937950946688304708399680789448738138784327283494547229729037385747748358767709470678696740339327452764684544919694948431148679862217468312179496298556700505883856488627376579263737075935150012085100069099866159434851086803807083159032905452942841764676926183855374859367952314157532145942389203393478625464089059310146809411360021532228881827964036698929250843228709793868588210212337230353974798331473481274338402391930571417956083959322997780204680103601994335174632096123546866601008802887384485886487146987883884392632740380605173754576950695590036487069060570365564372422328664961528950195772210710932414837180945750843535330819983811384224097111434676677611549925311204504664277448329125632431900573336800842835705813133771051852896274284957628320281534764626235011432588931935009408942257098819356551772529597839734367494291733687059953749537309488523765481972410028051469659060261984919348809774564259193741945648461279453864719563782365050746666110812013689091428027234678309347201381165761147886974995574887325214798200183290186697946943169093813725508119002142775047549412142324476367791931159497598158875431688790975264746813669910594253110768704144033545390890041010533720780126128647073099495407019816828318035068512359728296503420659383154785557314960974970946105400339944583042835163173535510790112340659784697286417008516072882865484944927460657835185523677641011756294688494506513501935614729896821459924879152413075966284439149749227314270109984196929277527102536031219104168285981008313346058727776415763556358725676257788328343906544985282894682870436845713965090789042342716966888084612824395671771753211401938489749845083518637324750575002945253587150954410057834289674080830830144895744141817968682488396278100990333210919026597143322056590949505354655173816682427958922486373391297335691002114608824756112120333657038340128218148034455980919659899428843973342753103069102819682861861579548812680783758141300343797409142460676909840660991135948656850171958951526801292504250146336675093215396768731777603501065824486279896408698407156661759764712487991146291337977172720344160943389452116526869180753752361945660408617986403165359524823564567776590045647112314156387527696501524598834765907350599257598589042398942612010189202165016525062105864207350730831581391540128058609269973848043952697329136442383738758252975269493142363036481743930090698769747426100076122172384156842479678822235071773523692996252523838907899993937156927959853152964188398505751554206184231433229080578044792730700050330671377720655741836730702285521669950226938112786302914387992115764761461895153750119026775732147466892840701778609721251259706707932716580342670204583663725546775782670491275111050452876825269020754936452680880416951202322433184317155813056287615334803988290383261345689450798785131493435885140534093336158449250498503335344896793721312223443516103208387245466905646271058124600886263072511865713172613354294760538228176950380501996933646180760030854082101878812930337168595091644275453375780426449135846791772745955806784882871105230079514507920321220034829531103956459375111455072479519923239155569887194062717908856195752885568063563170239044601777535223361767177656065693756193619362595700684922484382891442879977842801025159717952482817934205022994369733988831278689438088369498972039963180689613004578499947471605893533828598369075887543158127479461173471760372228648947130170439398513610970124821835213866618782132376616440663254186729754836265525098194052773582030746905418434768121264640700240591465383256435999289801818378015569111506399256148995220185249835316390390607438832642042794271905850615003469431967160639362712716136989366068847181532504266096516467058976584294383404133448998170350958524507037625086897853033601517729745230087711998093820218200283224819687652317962750315011120893588807556086360668652272562025155204603549818864166563966539983497550250044351737807810891197100700185450607911214080043502990976533737064370772337957896457954449189868661093072923373377995637102815384031323992916928875488858364585513362810313037597446599763246144388271779122376408799618434800168246368288924368859049779160034015879370396288124137009003347518383178223493197255376795918146325669303732311755211865220261680164586533147919032005561523312037658471762268306954945993509912185835299271701866246619554265055579169220899220937416063345966282865027706133383785265940526441183010165255978125288906246057525082522471537549396538923884329723498887218816835844706100377479756523757990019736393206053268644021743293720932058884076565124647946918222231283734999162171528404168463843656625319072215916463159085985632645653821980535360101903472295907771081796392001692044443233763567811667984413230300356669641803400850527583039715215309498065199480776343718582346703571375219012623959720235366692506079971412866623285813110300182669698698236405620197965237829190217070596537031174753903268130078684500867436454988670231731081126462755021988128173095236218211546060701287306650195455515036656659229317392643019494284811383092477055594739712381421274460760696233217270594150713886891920959901890370634175504994767593127533737609811856997178913237214852658499025356718063193153373840208318944010735872823139644749086872274442521484351796727856788573478207005475006215778724374695067690233241968078869746222850601143261802787427447425821382694394086602436411347101351157097941023767356352567234624158660847050529619579325015208545691231923285254012202989727949116734741352737945214451484328510367096134964256687197878617093890079021446025466127854216995254171355478595825126732690124746277689875034981324260214187331411169187585717644552778692208946814485820993862641065187020293290533186367608740175587804268252826969011489759156845363237064165749986001849620446282360368421350496805774944803613487713095837219673314898126883417020695380219191985100086598911709157381841838615181712998387772009467756175258520740962795827193352189405040644881129456161953393278212881720054268759489533145783557492004857625375068309785433489537497532576895405471932627091772036408894467127907974095830091284204357704884054408356621724589944963129359240436035913355496397363633163728610022556758904216951605526630510794942256918548202245722572079795172277326419550722579692721685905218628473828359226531148668862791533156835121813707088369302072597783113253188649473703551055046677480309052393540648658710566048891226600799480399149580308117440898199398340385383421509802115461693035855668625589248049454439523959372931391111627735673531947995637195437443144200247401245957686481687087717975414122803394275362407605979384904735708535794722063596018023282925210448696282218816240261892567084925052745929925220438218825895021344328172883612192709566056059484404067033388610338586878753031042042040568813889938479578131287680983263671105567741565420236664409766808154652044264516131713542492241493088397327498026439566212533379400552989836219604615828359306964832181150008190967352768990569948319719417698422132293738233937211548342529190865550974116065193280979563056053478388950682528114360997646682823393874841471939608899080383490762602594307447976737071051702488208144548532122456444681673416532262342619055983149920006092631526920678309549023428988838821526131068197401371957873879734470295029043544086904068675991743762662223946046443498655673649141541157440664028641699644733261799539660452142879179739077054286215250548189129033267769530091038453245205324654194004136473254811460661581881867990681705414030195492007132239772209550276731147174267311105344811387495700163677220871509057043833004310158164600248543330650069985693298328323954592053026102109782950889039463098645696631259191874253388746597252686493076183409810940024308757029623926399208813839199459140878344856734121765356007301111666681302543588829594223967244361576764802740763750657142900193412719368341177108074199308838731885759725805352608217936733206705359049015937804876474348648387186601152061511919452266182513202278229883188306164953410122149089701672493745603676666116811366356736112759995475436456578864714770635215943803385501118277427811933695009349415187867971154265494580438059500464302098551260553271598091760541104013177007377906733178746544333206033317633276441653016999388157768794279976658482097636321868406143700318516036743893683951815183806870601292380504103970937013353275407048164410210803232334120297294537283903703913120265145332771719631143203487950180294781391541671122546826020663848273235888914692377380285182026358946917429806068826417706487362048827304947722276087456194106492356912944970559887731305487387163928907281858892624323165028584098864301500121947127764941363103367301489878572179052835685307451716683762526987431280334072871201423228886512700758316580058267965999952281418562167606140863359418484062838153882077027722223830592678252397728962906072904764945075485922505119261757307770058298985299959184730112300780119372658949549431376486670784062295984815281620856386485679713104611381488123166184161795976237206018038071461314291055007442170556726291215549193140575807302741316998943623605952245074230397116217164945033827871823917213832806613160244165641357236975859155316736782711368636926673938874657176848442870765543744025862307044122889424843382134420252316883168199071799981048074149036011847093320907379892685141437390962505158850336180348057369625361223820307584006255968953151283087926222099331578021490241828322278905410515030826477623677216198167062597738307728127864152709112741041382893441746192215343148834356007502960183506993045377700718166001491716561761930320571310180758755112216844896947841778979290722696782472259954683978166420778862933606629926754833763526348235705661662233069049931047764600407747957903695453270777798624858272168266752283572442028542925176968991248392574462892159719321824380047324071509107225599135073235489242217914949842726513574371389201322232194436388369787842581184486531810135359986743720898877039922342888605536831598782745663342600060527852849678972526392974952005996252456799866909835746361108067222176228118076919206252648690136415328883449756442534127967768305773546443844171060884108441410379124720260654512279145765878485670127466835259047952537814324521686583109133661391025558286277239846109521509239743007268516357244557738311092778510640173859591975715669756936823800393043495643369826186041199979825744224797213206299238258693893205116311383590272239781856293080945639812418072366115753571765771750915258628642449923988908451591960926233268041540202849914033529379948866129905848379899745321982807748539649983709001189757836329221569910065135225164777792684573593276827610527710812619305065415546204242788526143461195900247532195892412870948439624366773040782829042950979803366980199661862491022715249014764834740909139305578551793371050884199913505576491688183121626684989496190484005039433180122988168778202001444929999014034822801007650917661050036551885174643858805230029184080112294431785282276241408360363573365136170788479211415621243555136911126874902092192949946122740478289839323850877528292534514715165653763355564763992622977447565619285025378325947342182517307460588495425327335034876035623574197164892871939912417875101760146059302582569114268293510399289620117494651034552669370946082600721953629679247304173351149017826405234920691693488656077272717321458117956590402927706023192373539548257865928864628843485285268253488737506097269589349345870441010628863169036189454430684276987265151672812203818123360018740463991314217107541355432293841072969963218087871775197309386663276061854308189025596068679309635920440693285453596654725391711933154388093864091888381364001602241517816058591590858203539387803382962008214095868156703171131398628751485021936911870618271275410173323555765783056907116752418142085847482239818517986054041890461218875262875969424507868435159585420511415402155032972364053696851382474958272200579413252055188843479051708672450277259085077602688049592613470742753859783003757742153332466163693146812507093761796527005877700992952606876662817164091207160929333088153876394307528897793548006209454580722251079156766034435158452475604370208396637254837179362732810682860828917094234144540922811094955746198789087549897373580773575160574441968939726029135186642217894480793273891829162452850073791032180272457137842772979990906813060532284146009900776982261479285147844996815767905092904902518037546080633012624107982680367900215366565252237358249396826200850776531863214813557060146490877558550143228348970285583766997779647939290602757065690019263992629523418240465414655118864079120644642133237970866031724495084442786825978453544731453075164582719785328342581584193429805310298248838279992858904391002987811706653883327867798136547502704135599993330246261908110493918624488431996867657835720100589712635101009135102376209988836426503163906995762757322424853885490024202145883253006534680443779333601832870749216132993888400861186195546433428316080696943967124913309819269238749377903347230979800053618584852830251476386694915207455575743895313634403036476079589862790854821583247276221166519228389752622455185916297232380887456938367949566661418085653781050731923016749558301487700411321137041324715954646454801602668610836035818675407632789504750840652510467638346858596138181315314294827384254498721060448651202908872525751811499313482564340523594454759127703088011207479834059984371936315508711779844914253393936242544354649822852131465679395144481043266751969278320276902316890565183002021921611562730305318044269647852290119995273401760922282576431383895507787737028707044986788962637552377371746708214121882256457360234115131319685669424597551113103803639688207027020059215326006751952348578877089066020299322599796081977456149576246920599061253264129937964305441138602547587046153970927914363246231732613669437865493649580742516219022588712996396721320351605517119414141717110642131269462774271891165640547127919491059388341376154304013813170346121744354226391457774762707226595075210567446711136152393181713277403347750784960407474058604330741113454145980264093082096887711551056952267727980894471940678585589932736732531407057776573530178233278173470841509637524925074294025600649477725342334115624558413553279777257702173194684120152478666161422865546961368346147006316544427156673697482791910420988227524140343410014162834149124023888406883543634013280852014026556633174153819036687401039005916322394590345138868020892075292660094838716377934465573466872439766134738285752209251563717200820716669555789525960503518737818293035394077344917516701624215270942117672324738550617457502503114980560223810999489523564471981291893579075710465768873114531252211914965894900529545905156757014520794923429133942006513499514380451072347477300601196993067779067768241072718112790989683845267507794223432720711533613422394998779916835750955696876987508328964227218526545920275734334622918866869393855679454583866531869143507797458830851816055666361789954391939765308829860726400664329996603080380172286389032861993435157085527599954257645675566812562783851992472095862670172575290642307876645234572644428451819267932599369774697016959518386334776531347469471771981152704600228428578208368039461906762870923912490528935581565349569847423543772708389950006762933340863618091967816871505883254727262567145773146498004530486171417171892105811911667093896407662301003877031533534091228942373798059273106166450079769830699142782251077764351673719908408426206597301730986465434537593160995685603660508281714635598175673845307252408951697227477869513157544173444547223195238424694176572256898893110374119866448915776227369791872420558652076079899558584430114492990142055387105387376532560803329681845461686610828115358318167961430456583180717294406694115863763848461100043821786731183590668468450363854531022542362709460429344065537556014298693785093825141995425009306275584836582645267318795545818851650630024040227718248274711746991639279354106486160334659917170726863865485157139421974871191635707284322459832882084302958557623479175965249107750985688941470276920065483334966958488859770908803076811769200053914084707132951017281461218709195151806511040503781564141290853921698108676506850812134686179795192587891603212667370269368679907297728171765280488597560307850318167544118004858734611713772870812123336141562903155587114474038758996695805665319660528368352252434176052773329344897092428335280862061757158184220148063073687375567565707457065826730899619674838644873091052517143908838951201331333495400284089327909176420749930614456263373799608908614874689774462333802472710002138760013001641987914150311483454608576274865193599691896759676822573791016221557886132312552337335391438431644323431250569957998106885729960583339810350790539789148761411530231402748800907136063487219782707285723970624638034976282068438881613384776866170257817535255652892751548151049683344185394826590754183300519225238451661155094680507716085165849445854988856528678259717354781957243998982175044000960656641069241687721501117989828381109920108257618788397638413323621747316038500646610818910976536014753896582352433057008393613540046214075206830759989418635034669203550876248627615431115036843066764290828007444098839453241118614027727213072201661704054812334814045873343504050374006400488265078711279144360588671956657617660843063467185398005831077493637541268373790738169947643765180917798148518015700664216922863113013285653372913430426416116030603570273195405389388923398444356807070697951919132807616471478903173340413027027814501407478629940377493006475033774401666885187157054537345267096983042921705295974346753502448400045860648432125106718272611499125550774102837706653386377171202112819236335823336340387663099681382103749512126293936505381482766561103659286017097746547111675377351220356300750542947208255469972939797957500198318067845574912703169375061390782412545331434698155728514735072092514040230284489312525928434277387420200660236041624700034030513184695759723709458287575938326895511078242559052371242261402781371200573833472994523713628312287666867228229494371577320843852286652319928491232485282142099076823741103105304317489378272132767878657672450745808013035633650687367073590719424875839673315790523404748239980777074114555131318608025775566929347904667295542129894007251243766535535369918276364596045211092170301137771923732570564950801978385201313074570413156128011409273915121374109200215367314572201864394132709988218562175659565934544729850629242798422339474320583806514225514587842277845751653145237760092832078745790159395034177785403452479862156087170390424668764492991189872804192072603307368658008890697956740573328632118748602536913622277111703903767149661756214227871047636750197729487786971551705532050215656492321229915758819262414524717281424920418257623825755392213731258808877365222826420072902855588766618728956533637287963790034901662789994558455725072320510842699864437070488579562322312821976452705485693153646220507440860082201649296947272378696631897288537535295496664529441238399636586701509654687188280246459962912518943645395988734574902174365408201339206097043057588634843946599693613751136699220860085078191900218784357761559301553955928822907142743036869620845177168086924750642539902360039766027107635906562748976085711230233926633986523984577192808211907510609451890427630793924618288307997551831774785713343128232826112154502467372712011637214179168910789031133699667063876845253007597562467527648836451906662162762307388500978488336685856067574086110656005194140599859159468110571271796360445505174144025459624587878979763542178837152108706629766185284281404933313056206855422893076345920136087226007415272346350294389161165166798128401472800711817348129165560394511057372660435039248469519651186632701177283998712598037348685203878144573609039891377985189672185579414701475789360767812442055555337574747867044191714613342044252057531101079289522207989600625371130231156827243427312892007384945416133386492731598170168987669608646428448384961079043229172133327891404061443294353980689870450113388304466253786599595563673921797718499910831107027710671906247241897718931395703540974673149466121125395481783523771570739888297169104166344151022080470229824351953195854031140283855677631141415962711583892594746115769794070812354400524610529125384477524954718215981346782825104315649470337194506231527911174645287746511674488932106999794356821101491292586213970102087453236546414071425265451685312384733794838677855371838484969386231958542673020678857691057456749439789465782169150250744276503986200613658152009057903591828161480174569984707839843964849371304922505525602538777338018562290369977133702943549181034866707931106444345981136721567912431490071732713542273746317932173009717553736350752874778473693619528085144244425311664915782639172248632774607069418353175565060159440467166507873097128511145168314255396588717990313657811934693040177688341451752385336001257844076353671234950801711026805104627818593642357014391312094881435804090498138460034997136665339915975252030399851619589805830700192560727840369693729873556529024364319340585148901918365225712922601242295107624031283464403286263713634470007263192351521020747520098458750934980401237494797294662122948993842044193016904841204