141421356237309504880168872420969807856967187537694807317667973799073247846210703885038753432764157273501384623091229702492483605585073721264412149709993583141322266592750559275579995050115278206057147010955997160597027453459686201472851741864088919860955232923048430871432145083976260362799525140798968725339654633180882964062061525835239505474575028775996172983557522033753185701135437460340849884716038689997069900481503054402779031645424782306849293691862158057846311159666871301301561856898723723528850926486124949771542183342042856860601468247207714358548741556570696776537202264854470158588016207584749226572260020855844665214583988939443709265918003113882464681570826301005948587040031864803421948972782906410450726368813137398552561173220402450912277002269411275736272804957381089675040183698683684507257993647290607629969413804756548237289971803268024744206292691248590521810044598421505911202494413417285314781058036033710773091828693147101711116839165817268894197587165821521282295184884720896946338628915628827659526351405422676532396946175112916024087155101351504553812875600526314680171274026539694702403005174953188629256313851881634780015693691768818523786840522878376293892143006558695686859645951555016447245098368960368873231143894155766510408839142923381132060524336294853170499157717562285497414389991880217624309652065642118273167262575395947172559346372386322614827426222086711558395999265211762526989175409881593486400834570851814722318142040704265090565323333984364578657967965192672923998753666172159825788602633636178274959942194037777536814262177387991945513972312740668983299898953867288228563786977496625199665835257761989393228453447356947949629521688914854925389047558288345260965240965428893945386466257449275563819644103169798330618520193793849400571563337205480685405758679996701213722394758214263065851322174088323829472876173936474678374319600015921888073478576172522118674904249773669292073110963697216089337086611567345853348332952546758516447107578486024636008344491148185876555542864551233142199263113325179706084365597043528564100879185007603610091594656706768836055717400767569050961367194013249356052401859991050621081635977264313806054670102935699710424251057817495310572559349844511269227803449135066375687477602831628296055324224269575345290288387684464291732827708883180870253398523381227499908123718925407264753678503048215918018861671089728692292011975998807038185433325364602110822992792930728717807998880991767417741089830608003263118164279882311715436386966170299993416161487868601804550555398691311518601038637532500455818604480407502411951843056745336836136745973744239885532851793089603738989151731958741344288178421250219169518755934443873961893145499999061075870490902608835176362247497578588583680374579311573398020999866221869499225959132764236194105921003280261498745665996888740679561673918595728886424734635858868644968223860069833526427990562831656139139425576490620651860216472630333629750756978706066068564981600927187092921531323682813569889370974165044745909605374727965244770940992412387106144705439867436473384774548191008728862221495895295911878921491798339810837882781530655623158103606486758730360145022732088293513413872276841766784369052942869849083845574457940959862607424995491680285307739893829603621335398753205091998936075139064444957684569934712763645071632791547015977335486389394232572775400382602747856741725809514163071595978498180094435603793909855901682721540345815815210049366629534488271072923966023216382382666126268305025727811694510353793715688233659322978231929860646797898640920856095581426143636310046155943325504744939759339991254195323009321753044765339647066276116617535187546462096763455873861648801988484974792640450654448969100407942118169257968575637848814989864168549949163576144840470210339892153423770372333531156459443897036531667219490493518829058063074013468626416724701106534634939164071462855679801779338144240452691370666097776387848662380033923243704741153318725319060191659964553811578884138084332321053376746181217801429609283241136275254088737290512940733947943306194395693670207942951587822834932193166641113015495946983789776743444353933770995713498840789085081589236607008865810547094979046572298888089246128281601313370102908029099974564784958154561464871551639050241985790613109345878330620026220737247167668545549990499408571080992575992889323661543827195500578162513303815314657790792686850080698442847915242427544102680575632156532206188575122511306393702536292716196825125919202521605870118959673224423926742373449076464672737534796459881914980793171800242385545388603836831080077918246646275411744425001872777951816438345146346129902076334301796855438563166772351838933666704222211093914493028796381283988931173130843004212555018549850652945563776603146125590910461138476828235959247722862904264273616326458544339287726386034314980489639736332975488592568114929683612672589857383321643666348702347730261010613050729861153412994880877447311122954265275165366591173014236062652586907719821703709810464436047722673928298741525930695620638471082740821849067372330587430297092428994817392440786937528440104439904852087885191419354151290068173517030693869705900474251576552480784473621441050162008454441222559562029847259403528019067980680983003964539856859304586252606377974535599277472990648887454512424960763780108639001910580928747647207511092386059501954322816020887962151623385216128752285180252928761832570371728574067639449098254644221846543088066105802015847284067126302545937989065081685713716566859413005331970365964033766741461049563765103083661348931094780268129355733189055197052018451503996909866315251241161119259405528085649893195898345623319836834948808061715624391128663127978483719789533690152776005498055166350197855571101405552976338412750446860464766318326611651820675012047669910987219104447440326894364159594279219944235537187042995592403140917128481585438660053857135836398163094524075570093251682434416824083619792733728252154622469615332170268299509790890345948588783494396162043584224973971871139589273050921970549171769616004455808994278788803691694328945951472267229261248506961731638094108218600452861026965475763043102560271523139694821355198214097165490973199928349256740974903922971263486934145749331980417180761119639022786640759224341677624662362389131102703433045763681411283213263085822394562195980866129399962012341561763181743124200890149838485604808798646083935964923665142968125773143229145687168276219961182782695315749838026246517590541039761812876042163861345022132627277566124411336107751955577495086563606737866506231856406991228018757417854946612532759976979605977605907564891066610158384172028185304321190446577525542775437987260548817361982675816862832952607899322266836028385135122810593185910286415081570563197173151831362502435904146321223921766339826893682531505300598915470290953719326620734112349474336788469020139049784285216341442921458955828784766939464642678122190497856363552633682780518600986992489377860023987691698076566219438985443708059464333623338105874581623547560013659243524265714308346554576800237081467573252547025507476374716350678515991736937932510326827606286459146182047214863703707719269268236233347203792459646918105261391530862802914409654825638730927304265446629290458960637519187114693453619733247895727070315309309019211991999936157650035039840540674253879275279227247335667706078379113844889362613676570602636003151329520953952028548973844862561349244147086070866026763499787934208758361219471169942238484825959143045281070626015089691353030177200627170544020906695149152745977197059476954740952102878725578568800221937177435581107939308833845586482772910086295545661413067212308487402271210586863233882374138844289381554446471057556514684357029466350628938735698686883764803265195284146535173953027361201374203009867398385143219004360289826982935293994141292305803845650227072168151619410114498263013649008770483984883860906533685990545838952031856480414932721423908651649994316592079659535694307231129116292867975171566889054393220356912933245702080671944404973049439814082278296027994245410831666759214248351827238172050410392742888015562233807961475124335147310212845459448994449960007524375195701166834174474907958820995178367680232365176749723014874577427259947609621984327148352986111902728735849052179759083741974860267060537462315300393752123678677528486921958571375542696848278363178611099336801439159059748428580545161302301439790570161088986277796107506733326760486549292513997813905358822768937322049414839401355603565604421401761206051318068919899626061848318534018362378217266375804552471962661749254228528045714420485783421132280085287042054889923412785548123676153770710425446986852199112283542663499971274836607624624182073646661712839474847328047443040334410720042872712756702795675824292627194545805300266648996507956977817862194217200523716536946770419511191270462483605113028904643775114869488784961511884147191000125588383666067720841123515355881126778957155859041257626160106751315358021242733187100063582495450409957940725479890031682651237311905566829151943053708489307869197428290490386037231160992834243171222509945471501928666487871079519951800546338838443154817246354802445180308452734310006213710346257330600123497374435581809656784646415339051465691932456235314057791936989884236471835253758052577133112007971040683154926654020260468068183914378272147690632424695171286367384431398333711761594186999346626234537345235679401241680922911636095637216745283917099091466485073920515160560473787106154702169960746569309794426121469256159342564940191229895147325447151812632583688972822628332952403597007278633646045947071241747294687757059581573499628480995678392554742404489918870710696752425077452012293608105741426532347240641621410333533405511045212617503590284037454591864504727624342071770929793540102140964645028368341804075860810014072161924771798098596811154044644372856895928683197779778693464159846974513391774153790487788083002205833504674655532302858732583515708599649068672875967295038725475708791695547366917087012413339221484668517437066615488195293322727374360410825425966030398693265422350523691085951263008318467555034597583955058403567015588797773644380481821387070034402361804120021148372794227407873789331627081013626498289629272562445805397134142214511099995445821429237838810264839482339514187674689678318628681788272555825731939518155316951645014943572631060456949296709862520433938520782207622191003446926966334259085305816044978025776325448937080062677873179548529856683948694673356963001402931314190257807758169458152725293434225905197918316621644487517816967752767709130431573425640549229381873951108441668309249111597857733273638841418507379363002639218068001949823966647123131719025237031990587719774100071324075192041812214132425327294918600042008415485115474115730598721962129885416637208775224837694859747672933018683905225001486903826108482481981675931077727026488262090723847752905876504032667275848252185162310745449887588274656780949712308766144264148241579035703933122565189333562818361854057467063806183984894662842457365645642139072163052955293592848775552427545595133827715001784016553054854422850119883655756801593464505589944248496274127118698831580476918141567961853216571696452225945947124693199571164198618847977891211426811643837723848363186731860756477853699930387054663229698075675846821230280772610069691740782024794988210954733430112654544217019585237588078534800373724711876111000877190355388157319225133384249477450311881194745595365336609206419293440035078564223432923249297270847248235576717405895001268763600812452112448756434280946593133618564324148557807919311512650972958916052993030771056352454514834572092245519848905889042198065439733537575998248580375463927365376419674806269683827129200143495667485224724145486360362115847232317369980617199364211363145807119883968129570561158812462058857966505622150748208974776417708378705292420288029004400248068681254220757905942434704644895754402387369360474013086036075991743876156352967760580183349308796466270711608050737610718002215525191993796200709161383227280177313320190059780482079607580324994622385385803573478018713802840398120046812370790924572728576545104897170310237054867879336437815780740076774742152803118498155769816561516261157202045402644129931611707733125384612893676379183853705009420630609103254025847682220367682492794734000617751295263072656378530973686420007766665889932845661224650730022095628772726222780803954834038109628057649289746518436319498402612997618900467819092737096478278724357752206684654000246833074608783587655890530569425749909890392204630047145720590537120913142758865376931480400008717913845690993629987847885421778154073505170625320509514478220667252608620410799622270348081801380066100719226814029197683548842439916280980361859771935889226548587281632769054286174663230813628776499007377599324417521476776046936962233215175926450556452563840546700404521580075454379681038435585147943092296352197852283295745457271564793185041889607012805949229592183594937074580390321410436601637650955489445419026339119607411006694977802469540936562812753849632360106258465366705076517702969513039685870236791287541358806440263423823568060764074517611908833371209141576280565223790127356419353456526762962440266022824542619603422835240020503295053190853201496804513564334103431329223589697283108739569438131809431666913390526489148332879882762852563045120637614900045218642717111508976282752867146636117389828587425317216596247643323840034900496298789487001051884494118660439739107493757349528934770739638665933255438589993537994143840662422102268328511662511368344732896613210526750893794834463493035278532130127821152685942984375651745109303992495866460942386847002153550180378000187011113151937875401091495889080764733455002640980568321438116007514618278844904681248146893097430000109019843208666309225138112111599481279636783908122243781910187779940340765274060382341505327174162786748880857541012142866746631036108800181884354018236865322168775041197807652581153841736562183567501303445659593659097469007765630951563662834863997975493756384052967232835634030315916549588611222995999686827014284072391462300161735440831436438045892205541101795351355885271347984937876133791075655995414528917770157581348757680186242922229776662115422497113341739603196763909350512320947616642753474388333888699979916463836750324186324862841878469960963808275129963381739374220953475861632216305202703517037490298568525595814192954995176552582123473108197663301341750815123677523151607320881829564072634764505887576136189361870128904026792264704949678723740258130083476397564463263354967528574953701512710069446442062461753644289498604920521823213384326275335198829492086490709605921654573769095951389378997662628770868323505964098050188569819974056600544153213840734978154080943540759681561338964320840415315102432432476506355824097853468115105632389804013803814849735287444290693934437338180109010178859205640690769726390933911161368466669931806838234674038922367229255166024468597460763582903728529497158369063729095033685951182387240386566803844098591359996588300622799752913684945617051993291599492324340413727253807636840295187369817973536657095994220475105964407590707800203936232471823804137799283739673588096389547393847128950623044844732470443823390251314913859447521279271461067225268355552093101409825032410413568118889344170634801818879038524372843450413995267508390749293155948992799740206016686101060573836203436961399237050205913691224788144821970045564629606180152957267746654025224032152010626805924692941841465169269429703164474892255335681947010558607539503125748779271822019806805065513471892626509987040387239361526280911715016398391838208037107664447231125594297930841574857549712849567707689130531391519283160749372260464837412112410527404580769077499032167615319965660974300890284787922098945551403495667763293684189129282288893791392565790306170421951746426671762860073765482548949082367049041789827946948133710054375735229262593956809537167977177738428166119599319878150374402232529401665135964883989187712666676445928280724774198051183403577263019415056222709266888151008740810216304551119368970339875899163436766552459690022966390618234599224437161568188716785019552192690477008887628817012435907238421885909432302524008728363411346002474635054076317430285610328831446395259955777141624975159928860344101047533467745304372786885761196226858948138978843512251669067618791323446207724263898911175193575536755089771736080779854992933748575879407969489011853826051113623591734039139860900187224540287265129235072513463360399477972112534407969641965843292485838961537078625446240527341837296165871280996215675141677888852182017826857947508860561917614334505307242257944215044011899380328211769427535155005035938402619271248407353448057641513492090664332608718869318783911372491354290631432773141475652344276989264107291929647783152267653096337719078870212101736288928013320665538468875227098214169947453467839730618843380636885678875093483712812994594714167402106479446230475095969112132841857374507688021742000919037861149289993213698282550504394125234293878915292944880672904533715586858939119405867992679680197519294635313212046058273013652463549197477178431255147195610894481716873695950097551490905804237705507658316604552631788191592885801514109903351599927649260209167537965856540717214902727720720795330464094926792969801456474075861684175182703554191523285901319918975644427209195806647378539654749435033660984556942205412322091494769852266066869313494128460524360062619192009545595992992035766358447252088884387701098485096145536625056482223310827748771249645923940344103848804565572091537208369237042203903081669215344336555529659147737595207945959705914921302438333795709374716303640945224011982545503754397260803763665873652598952691167996010278358881115715841157447947403528689000948241339184513780599922518984735941165421900943669850291800726152708954832476910790547502395766594197888184410520182887164116705282644694744647098868806589441700901457017395923798880631201342950834144109670046006970663011398838065441035959036385428890533959794761355553930923535001022746402573996549260318712100543951693151027362514695808436694837491133853153237804262479496177692956225061325782666165875281706154846881784460491851585002235785076884446778740147504422625751017364861832633732533541921309631053221325624194614093027893358253117355483121861881858082744966425868045457888041604096100038498733107556338903472441880147049601445215464463527687453004634293704657874612304114285841393154706964455988627023413553369614688941305795243448285788138429131334004443882694562774572044648927503718896002502148102432266232474466759222209575796803987583301188094123485941055397931150166149824109477340455944773621407298190673422712213298282018935518148071161293604753935451916448851919768198943246882665846999081034874330571542521148982924940641352048699331708524365460290800650242152985981192512096283326807672528014292426381066209220067162423905353942877575007913587003768065040693290462367019980646423816627807455845427972813636496128156006336128191171807774985721284909654045638060252797929001411671808882167276232695731445299537909359996357201956910538231833232287960366154934356195563577788720380514071470286274866657727284963806068209087433747557789312207166183290997968077406958305455058169463910538025471298095019164059177292147061205379737583188169040345737308922870487642988327634310615656041423531021112607717793087331713171338340553990771487460398786341001815489430602127641451753685567812410487627891844598648875072569190707056126189065115415374343317047710735120897496645858712323260612277676488017419041705326219011292994134240685947797064845451230432700362044446030700191145041542081272865853265986259658341291931874337468142540991989190800932571522595025697576362583785420687607875336423890245352422314781169503074229968826623618943797546343148694047370546602205236585352243349189341495373185461775639085063014980593074413127214430609686812154916799933602091124634206816046423563452669922471069433807139751076567042296090608300021464567607566954478223374203012231363853654881189686762211965696106838095568110741616828887291489708929172720203166447529815564916509932964247593555309434272347352556742335888541040816256180838589675924812967581788580374314376448051022575484145519560030954484153783175981222278083626100382962191366874699060135591098790178939450950708008470197103009496348567312617653799069636653423847839475100609198023662240258379166773365981862096901237048554417883308174322415270961858397320548777471419620210209191220035419399375584896579659677748796664983373844644628849232209159662520817710945518557849193422490391126440162540353415291859606278442584979907537650351143662301268745038748418198080021735115212731055425489544564305352174412647603739881432392237995520803725631538278957675603269534153713162286842231199071736627159252166809502575991355368041140314363749285705000161825898070568736394803223614046040114806234062268309640850645651849478620873085379933150826863834559299180029565026007129052213461451425916832384997363792953241667672636608451393291270052813463426544459202882461427621775375422965611776774352683633779277270530866888712035447876784560744034518187391335816384135671836398155007571160102470230622091361802130413326178162417512244621269051375876033152978322966881927980317206140924273036239009838514870083607798140381143984920151006882296367005549739432853347069867699527940082808004088715101937674677308829209607741428949243190765995232695414808738635323778805420822372563677537066731473034968639707048980312454460881066562049301165836992428591431719573266391179404608733541704103874776765684341754165196198749248925074208937601411944240296394254176301656047295676613344991906936807335516585031503969133874834352963680541252188830321664605945537394451237521783974653503327672856949181939882599528609756988006119162568732923062305856741898538380455708093583779146285862468723110259940158767576908316771742839253030116008388460480714783616096417155945463992218291049279692292511127937956640133819911635069635393263609859564620576104087056838003026945197112486381118533789109814022405245839221604563452112217417010405679733075395846470584747549604432233426300669210577767005747717924479033884173998953956252183147543418288542292773885210317650331816851164239848424590906685640848647122275347291760027720870911199162535365232073041274034572811430767907488354350043217248710670333120392560589087638369474784286014511344822568815225052957047644114576981380385911927133563495517808414736321077680615675679427987637155964034837628444053251043346237257981152490578554545544521284596123041549621488397472003614229920556630452498964736582801894514304786079084792783197694969107312631098304856335067955213674594527406378300013912512064260192473433075238519776003450830755426710384398977950807029186984094318884522838953410474580083102559343223332683766729150922336413159676531206115874584959884815054424243284316840728675124303432065817733985334086697460446675714566752220043300633966532727116392162828433593639159705356053514613914845684624004846269352090635453668514854973445950221749129562168205343471694589030666501122399537392507691495999807311648756832231073560129088890744800411391149293646606795428267735789996017144747478225971973691022061766297479633594138205086538353669131708910097586293229823455852188097716091314156122837942301407428575172196097083924688072410643346638203788801942999689233405774399455871877216719494121739784248455511242394951082313341900954980974944116854469271268104643676297949516289492148642491961317149112991647235802300005064784461108119144491158122997646334244709961741485294451758299141571313728817449786634669798346830633772269462112024544203490573677610824932873879127068388893280129876791700811101390149982272447545942481421950364530177841993397102927809710031728004805124074551549732750486803723990135843376691273055995713282062188159921411308769558066389515796657753942444132413153710713696613817347005744827454600281851221948810940990932030836962866394565967627501248115050908950145078579531647113835352367831505194424626030330242338666077776239635323677925205430710728141790899634584769419878510492882850463300762223590013919630157719504826367359336404549112258621982298835505646112004300905203310069698444714235105314071504276373299915834406869863675333510796589211792326198842135412149528788336694865244861474835133380676661407399397211711742580770147761734131603558025260050613460509945144948081151767592226583224350669016507085869693016644078294761341009535585550255597339510110971298294141681331629091299716639397867702538955891914794032668269999184934935211456416738259128224462604746869983410026893570871698215899513144726246744351426712243483604648772445779053029254948858189768374090536327006900359358153818832807408281330220365090606491102788481971916313409029674768726794857081984998214627359025242435180332517940296132134163618601606706467265798338016929632689885200601362601273081227215748353450689438349412293543902425375752769352427853988629083949264597885249690631090163680953204113385204669630373541593393522756119762747306713230849142762130005309519323128841489554106806167406487993116288197243409967376009383603198095622927512337341953004227167526574854247482946033738650386675256558099645475522692658975888525638532921938019756925427734969256114768880864117267022134931528551422115705200589696666380520381045146922300179526074073867465956284014582927936380990043240835742657216061005892769349094678292546431043823588171215341639579428291721793624081977688198990199787331403612185796806586358368146535589557381878378792100253242080165674198325264395042110821539220173785039143516741995771521562146363590589085528556609747555285423403032646886231716632723063141132530658836132917768075432140462636888275944716143389283269025997050182301490370977991149321829700343455538624039420805778612757584941515682564220804532300793090191166153543478221179436904485012588846202869808968146546173497378315547892104262894483905068544120327206523749314053251706935758000907994179285593172810569943764394126946649345709024807222360625171335948844289048618791256901451367064592350923125630083621154956986427428229832980495185004227961552207721881695017720401523526821325623847681964679465083107575317039226085561469331910768283636565852850668677087733147996467085762627546602962716763075931898435733867096570173793228282348192161781877007047349672896631877034483312072457459021348795825604948271846147658084172114999468548036816547370557391190005978900210343774692794687907618598689709904669070286332736463214785659245622271862746178962426173081915657109537808879062101376345625534554278724985764511105147926421816023366714189801397007129729868732828221618638416311291390879371441004437877317244968298235202142975864408249177811473076083727735151530453692259569089163032902249988302729310416400649201402822532888759027931308577656237655465764994184642671036986917070591913859893308593754374657787440243404217672261245635784002966874547245072378937726048417295375311492496118629759082198546452996215917898722033017086558998137112475096330473097228065060258129363262920237217698981185421816214970366523105064921958576136340722729734644675274738523667780397422562652742887381633962791523444894750071035704323055086330738705595047097042231123762121931957539060499356674630107427684593949954659554972154920943143136002285265513308826825684467836720708693027273333265431409369597997747572516486560938890159749662047721353072312577639566282762290115366781044356426835520595903273204110194159106231322498012107514161932144210416853872091634978481756217861776222889010586714799410601577635093648454101547200356110542300187639371946237905295153912645541941109930080128246314280836603586549859438241574127661501955659647747123114552198867813448424436407385452835140964712634742696037061756106538827586793863588408536774888042172876831543791038240272416410351076958069186054906133629466874129317991655777477566485241736146967099568973162555131507152637731913171751698949783240168687148831366978115818232638582297269787802428782212129569881623368003387984335218332268076748717643140875132474623405234987918484766826829561643892879403896770647876728358810966064816253158242438591594357823452933579761860944279313330342296367732882114801251606632436229289296557052414572925819073335515902308711195702690238701955445597233943658128690311432945812501425188456939677683514955443047602636398192423011309913660738691099481891670165891853522461016552439912303415469150965061333757453644319875920733482383904361814523000416285624017898966187299324335923789127925660894941587673470555149072070761167173096507351364692653888386301993003054113015422029787348322968371736228916532953182717997734184242307350056049870631613788370054717412635796079440530174213882746668411822234323169412609401489524987526739486390489076421272116971172200137601359045581917516877971761866029349725071038827436115701410664457810510013506735069128481710324913329551472102968266572935837760077658527140673571823418609157619097907485262706196097432783974406219528137186890117867086901579001550506192236057144573970604185874399631882257735458709134627972756076891285674861037059098061132187604504874217279698531216056889493422432407822830523827134406295836917197669718427580519721871957758934908246303617621710122858719136163784785719676118392479825448889144668052905785209864478198936892907873248050171439760654883350688911619480972955239596084126262856034274377580105813234572464882966085721659274156356281496410080495425681756796476801054888943326780104864046572429169752402459857994323102027694198619454567050814044861591244610954953398503618189226747004472411992228086641553833899651784039232791963803293409065200641474047665091771159099070808820410434613483661887430912351487895600380959418679196731669321912104783420894731843488571328563614408034403738673747949939076522596300233780725620108167284377409474820443016372213195392808907236543066640092827698510338321679833094040609957523059904947123193987195990516312657257226178964656747704253871325106435309745832309708410733118981201447646457791423573248876431971125827102979875263342843355795356992256505794909230866937700279066636452203731451574965614816261858852856681064020472014243322221389808233524340002625721810492374034293352085408853318145418028777812546300193655794914844279995302944114717516708188644421670702339168878342802189667328821651580306511598816915613709131804501248126183339805745102028357925553635460118811575415954711492287084733588506894270851782401173859755863039336633293014366889974210231734579665851571155959196953387040752079737333062880852684312491743172793036169831960497609056301778595973198417714763217593149254047139818123440834186906073310730687022813300545166813707999087989089631954620234399318724799564371232576741891663164152030527819406957404808943774720854519969574625353508824045618525595710802174359712670506940254642115327391404348174935823444602884919035297170343618627149658223377178104219893533510636631651174450165638165192404961562515079086112358169929161323949347190593173477704013684662805098068337537018772151705178891035482213674474450714798543258926539717915418220067465152085396986985573578849793779704460076586525511696342451570428293455201469995564861889644031352409588159147472030021413846836441966207681772331031791788705288459819325187110599135035253017984877228557932864874751011939540515033761527901049108075980422869140039331902826334954729532342060192780949379984756527098415910738523388418078142377053699013487160743211314885094546739362748797656294224381737690756304188919928601138564573088018861331632924097497100070846351948207918454076634335102757004011619401162271610390657266740567225600955942894373186473824705013043165666613045146460593711233555171795797372241171206870206353521915202652784902740751102626534304331575443688107061283781284473250105215351801077244527745838573078364822401880032261620323290720832980976938366868580006997351874739720295919466902345064367557810238499296972745534141830609344989931215777224190602680062357067426924977222612074378905847611106025766615874558687562258255003573408992374904208809926818262714850464031029904386704976130477828131729837543475846856228551531689577746946387006403775492624370371012909543270543316033372828978225547544444422700755977937437129782536556359922897695815966168057019631466828041969376265749532036758395016725071557075650006269070761679042296560595271036056674191203935848115427988879406552755895874455272409249812677472747145230893884341800738900872433775964700981936495522545073441552275209843293401914171541498330928881006369427454728128078922940248672333610136975637284081992266376185468223651936176349764784513747375661696762885578917066708225117101094323288219401635175287938873634954626113660562653921987701504418064664471678417048410301250057784409400629877144811218753423255881987577865212892547037533552332639692560488515819977124435296855250125768005754651336547160530299192825913021561030900505994487359078573038349557135093066315318051793115896186776254708775471159088137303634557206185771512410515027356438955637272766099001214637493783656998436972420341718754180098664821318361296867251676149629666456466934877854923677598627201576284169225106245655339437491741311858092268571381558216589445002027063758243121156845629670955552715290985653123336725624033644197964506373652252082364270848450282230747408499307537629218713608335159519392021918619267119370135812521248482279195221615143971908737050583001259435479142505038564289185424361531671305347584897993951034668713876226236237253854867755690017467543782794662973938677387494564004319620658169599708320707766503212085563537415757588255831292978377182151231978599104420863396292730764608859399303287343066103077898923453453319629724468731550285874754010770411955161031708757116292144663557254973801299238863770568941557612546709782437991333337796487373601216121390294150762944197031122000414408965636085316615568522952307329161301841522081127121122773414497997042267511455668951028081280058263499734188941797236366054390777750164790754951428012581764696236411703360986556047596124792553862499571428229295567969274626088473246103632207502366947125556655286937197522969410778216277621457198546752878191451920308116454291883689273887261902377579558772849117835506418177541350530599791690979396979245654008791081455139845839676614557724568939555315073946669653502650996685027144305126293109799807952035329964300244463428024027473684307679695331949180423445681015631199289483439846046868987274224217781494938860501475488437997093973498185291352533830145315182879608645995232698828334710023640183829172527834127373864066624580214872775642897229954406059751357700198699162847255497001607118202457896796815856465731426222487754366947651946369383650656678934306239232666827511127577243033494133565136919910555924137821447568818578178007718654878018422214932239061824135601779942199917538765116157857661515510102780246280574131623372664281261390015621266261922300371215233379407660728181199739784124878078628047298417290961791195049005452747884289147468343793953740978007239550551429239052453494913696022031391753109211739838492747334363203095091182255556159914692876112466304765633640505213604284701453642283852720675587896907904053861152812755773375471983220323309897611927640075987280463182211498731429200813670349108672656939691574253434507021357900007003169688636802730059576357523916011495500211787104258719712880922230590574345788586101248247664730385856111031779845143565941623968250661222073470443365969057149516393929072418890459715650434051148082481021570543725143364204822304461750821365566946821884539727306263903612183189036275397656013691397005284156973485491903502349045160258536437938547881763965591796380348622893871353309615508741857410746109688180666753507056018264471518974798468660391100276268038073081778547838509663624504727138789702540536429996421131423361983219979540913657600039337507986151800017564358047832903328347184356126670871095486636304322586634379345478005178001175616601449217652808401010144036977545972244376827894429254920816796776464719721725754514779707521186309842451008786013265143164898779994785494387355325437902478672802584836151040269444245515632360113936842246250985153209947647044856051262599391370918970585238623563756269285523108189632688067528949366859979318460413423768444033690184922746885608391195616969587640129043051162812782170520697245277954950409576161933359885985722771021028871493734908062495977383913766633922833018406787537916202101264711177403097708793022210894688393729548189390985443770850141835818299180830577451506477626045054199477478215846428131834997179215831920559112841404861614526936595586185546484449356468890778147816995812301121896525935168313311214234045364638821135032889698752484057160449107708677780217818261313638339939016357745675651332980295479827611198643211635874401406546299356184071002157756816429957140640129590690176843332764306323208521708535573588656929687788758964548217388433554090316620605130443493937571122796552754857412076479861502407657146581984436621911838256264852056433657469013504258098576677812405201929011471309971049219531148375087445721543653384057927742629193204580131371720204071244866318999472138962337654589983736276158735781585360331422708445979280504240069345984304263008366296853261786404572187319244669963869645458668000813450733659480301242326231213378637516204311113411623821111978306955195891402718787659264960161685788847622207476153207719395296022514020624082173284337839351423383801767839425228348388543420922407710561095891845737683852857561526673235888592094747493643178565070553129866799119317599865899209289192178161757520211365278611476782575183980292140820390001276072897685860081175231980221153512294087657429774636867093030153335404250587641971050868632652580233343623304939155120167767132665927488807247964618950634571426756900310765779240374018379365078413511362558954908126229441688728661458398376208640804105091536531227982043479819035101168812901495298127829340613355972078387183283408819601592999929912109603307337371216902464163644630487488196846456475709464168968846087140959911951997325496572640648384392257225841251191876993962293145320164109508896385206491579931148540228058155024117926155988732558487851317260514430242572606947588243648125959559154046530236298407899635380770765094855851613535414679257010574996313998691237197890426547915624261401000799482383248941778277227188274065283629139201823328157885814503351852231853887442150888866910120481584370540492046911102740017027840870270648579984497815875976930580543945874780544831924420197744449210170088418402429361131953733261888523414241740621368235718037398815518569594249736273441280874592245748768241843922281666922754159485500804945138226872679036285024165606598280510774146064050005484878487819418242321484667812231169056323028172226285757594630759353247726594206054296052398869285737478930791689883700786644673905057665380532970997787311691372019002765922618853416748691520336394858764677628849269409949528871590878062780698780290613943374760004836145349603282418989028209452071652477860092494858711088606578303490682361151831745870286620470359070007181822298961761610452055212208305042948280278664554733304141829491817964740787222740944712865590910770235793870419343965711763981889595944792196292473840238417170401560069957035654575045013293386787871351643031624364401978928150319374801217192232827989490260443521220210131876146673680470333262966195861544927633524872579684301440136622280872421887991036563096802886695557226651604825961913861407434105417679505704709553156527674047832445921514135868197441735611598345832084084344907750814255803855761152992014799823106094806549578398107791069968526534395370798191311323826931111787097508631804617471544666235349759561234403806863010798862767381382910777335923984781054809303698335134666601107313832505289766868774592093583817647165641264151772731965298912217369956970562103224503858375434527718783154676505504468577493195564724037411806028519235620471092580936470766384550283280675503302045862495677594044142652536941494997208289999458426837707179121519311960934012422901648588197496347411904774008885351124170915759259122719122000235950386050904234324610509462259337272621341393843675364692759959541052984000108841326444717476452012328273621758989214119399994694844136951436961976384273325628523252921951898917284524312385225429771089250876033978037048533448779558315593667321034718897329984538801194738813365572524297519344287007200144885967129553680412748230593461189971788069173854467145770011536961231618059509781783415339900139848145535409937740499242699519686183269926994632553715586922876186050606050706184073400056367527533488603674202347515637368970388674310820986699404969050266947923147364078711585810550603846251556323526324028254556483459933185587661229766981456741954445106906866411528361916374914229625845674025167829332444571393554384836295200022162297372847238078395312547695329697841224676476689775050377870795458509946573476610595928264847916212726514733371497478606872487465646845799651682381804748620863939970211438400362403127695315013453253186574408194072813625452573568877226023176024442054537836650472173564005771250830095413949038635157495643380517325786996478932729971949602626450335988784177035733030002343206549165036608321381933528878014044331877146112961299949597438947395635344895104947848976831296173449650652596840608924934764770899420728202701461487196980741329150056819716009787213033230936449111778193474409021527194401737023325007739702470695918513876765144754537590796466789330168775972148919030441622356457819719488221526540748384121785491795152429488278402012107708165585019139828725276567598069894515500242293174903206502627021836811658044844764508973174141367145920832617354040123670082851414247398928550675383343107753066552631684379041994424741780930260210003173294539408512627908876322943319380034226576464484102189646773557017813703606193754833525859904988387033038419637679544848367914001803816374728481680076766475494039497239686539022479402421540453890027027616967288871242785794795238403751777314660833733946302387672935517544514977212438559274663767369439396485706619298086379956710744012585026965630458930787880532438866673038140754973411719656042220287963377918210228805320967368150975189952089110659986698885263530837619302157468901153766860899679470409418062656550135286874081599388612032203011159406118244639930048265609456117035910776279625330417374812787905180836185460529855589629232000900730542585838683256857533951325910780492421176804152483135188747160476658866969164308104819396613933602389061947597559949774851087586679615407585727814193721620311188724910605586404616099981771172067288199480751576927162892964300786293460144671441856000893148084450095967231038530416150498680448061658397971688694173936467841076744044868779690120070321004282737447479621183532623243204735807888063272823158549704708272497187721474521550400859426040451091208837343252915292653247959604257313856358868322807014003026408061288006000889864191633905998244868218719096493984899233830149471017508049692688882437917867061575934464944261647257186623828761399086968715607308285652128059571847987956018311977383027055992317882344038451460235407226300704578724852698490894152609475958303377522393476787527410442043706561260937141372654988047067382493931237911865259512468358280447735099458072922393113097279398739236181263194309648189853685994482001115326184222906627472654059177362570543376108538124744220049124963273318695876009656893115453235922138887682882454580651675358447270195928193480550637295523133903311340767347423415390357795782907452389109401299267987179841169862341954818305702062658224846785242252436902013579757659662370519519983105981125330441943701707085409517797207100319032102545398400995707094250349515074685682598048814717901319543749329439976109802536823869691192118601529967651317863481295373198972409330675656095592474114352196067069055692053610448424476938424110734011427831670030200301572022925104869323506168878798896930167506027464600408037505675653580333806610745899002023337374029907018990202860576375123264721864241253740243491089281496609816780885356525393785005476196782551345193024293793365811910188694636384944501229439635938439837088121756365299676177607543192595497571819635243307304775453352849617479851545256806080597616522326735164531925032618563761795543193166051366716905602713798305486873783861495823064740570790005509561409414884664689251675490208805662484850454827892437607106961006817803370171853377940545696772608247704608133093527481037012702947732748927496762216326718588477236807441662012664791739697716694377985970068268736453861700449023575928637530357017954037549167316496013325868687445756703189657567581284781627318184495620274275347114936454257332768143243893948470417012161474391643429570351745500649233927318975318544221641712996942522802329300444258957770672299794382824230156527589990508890127097249172579517960343002790875953693637494231578813909924321045963365728618941003976895396250457930972176480083918064334168423455959606360514076408954620455389401453282022784315860485565234921811498187553842459272813096805735290744342386422067369905249986915463269359258921088697643636653953043316936964017728699374713199142194666990188196697929507352626178660980578845864764830822714119822044574875520082959672083953696519347304814528654449410282033536558242069220791146521265123795673253044064423795433482177259640104504055215295905237111283974618034888490339032619622956340584321726625909187243804374555393727954201181616429640699123613891146705084004596976964037411496707338013580469408536577792630930879792136465498503838683784114541584376991061278147564029201158469530681398698453228961016879326347833887688969395352657942739877954747078273545120948702106158575735116023680012803437055725562562813631901217968122292926911891802114172092775299692656041008233119344721976661184137369952078245959116906899019307709206994881440343614050745829682812587527827263994551386413629208087168813070686333833085454786960558360343274047129941708286451790425644335094484764574311231704817803645207702408774733749263104317507860133169367130127357010859769247216665734301044433905797742656920558478040981810840773333614002051633398112431958481781986133952380397499327698359022196970465993036455110969823613684571496814093071526318493782599811671946077491715933317369551869104016238127447878144467909959845099010539732203301223543974528528064080670988838684083517181849021119789759483672509684293928004764945465379469759838591113982339012219386689149201081535776552249856570309405851939568199717169135357984084426708654075069898883384816655954897669250067147585440335396184516443574874081153258806923240947155544422310337951137695670462327939225000770602511958001942988644211642162032931407705293954539250691810147502526231287593839906983594569908481673840939550592494060584844701837224673206591092909453663940741410533430405145027504994626443299516275319397492772369918571802432507992440455553369782334135443264134256020635343001038998160429029217553205432250465002919434168614049887858668811920703952895319344333487176824170099896285935254240241070118462176594175226813683081883176520048738575802966101797108954912757094704648975912963900725466718834214760513016782640340914712012560259883751324333584413169717176741562985947845807788511446425505916027270056819211136626966281255355834033168785554690277465857335908166154219525136617431200632937942060130654301758259823946895649464811654505539062446272540652547947952021970141878004291135785004149969035350462881418030551447044991750315019566005881121278333449674732012444803234480241539376810967448245824131204859079268141459740666734468503061027747831604165568762278524687505888251713618525648472242796042859547021047381329885796453540535760369731588936841916536903202305736836086700426790936242379678453175632120514922513764781561741694561041654124383759487399093159274475983235059737495676813110547184727935416651539557948203628967877348579762975450254418015593589085438984422260304864012431803963837888527677337019206290284545159702558120250436100600111253194442687901677263732278584160071993391318559940907431079541859326219946389317600122799053789341926503601368160546856432955036019573379990168633899752889372723421575450157046976972020515213529373629524296888274814125204811665070851369292080379563251425669087802563432342958743340388213616749678640415576749446760260528204128928796284828575875234107180559357036653043234913120907959410635700843503421942262764947836564078696980855454208174012078588288482105661402173027355227706688850078104112154804616141784997416535250493613579477662278471598612476476004722896013094150990916624672218491889743446712159743722332549929604977072630213917306544172980279598034908408396868915861769399585803474070986055285342540375073509629284560370586068684049519423181697170761556710458451724136192220264305375402844311919382804833653192149332092207254728250658040425210169673596265049665107341958674568879671748841821393261711657936293133703877565215890879245276235873420242542314015244933460316227830824270117378514539904213333472250867701672435729912265280393872571240323092222953796829646421621278521537960113662730309407884495890577035665277929380636468213611776929495190220013467391980977902730034828611981348454637791277238928661419785203027165836389215389038536649487612377064570323025580286192958672350328262768889772610126574774949448082657117472397475662805255185898256722982592832223138735884591571060658569485505883587443216904645488860334133481310661184882500007016064051337552318895374650460947992073000822639356409310442795749066378011964539607942660062697334292524617643860044072176695086496926839100108842089652109746735063468596226558328391252354564527298776620076222037148773253707040015552882597010227528015969434089962506795372354775399969591011236975856917720296567361061297580805077388748033783816190446450067483056138038527821360347455960118101278852795558487420995709975323379984269969548920901741966169418249869304840001017447672765465133396574306421983653365996280865162968603500158976475645108776207268296373886702070285153964190924016142823655162402965065357258766519246471153581087129553933985406994103300233063457985531065523689661132559231345964832911856767230398765889768774970184798997605121881323463261653302638123863659777967403321819665054096123706329371639379709827309858071023257201277746635008975997510488060238352765077379230929441780533332272779657743119858401225668241880219208962831996393003603841114671336969769288393448491260264348906565622586605775430508729099591421132342474157452172109972648980736889017013247188835121208829639637061214779266123005505171029845566879298638206301609897310400633767083908051254503690149380437910824850828159443601358474584092962558715184121763441019732004455371912921548882716030331710070588809686007774174004553344800079076113347208196923527364071323852745870981967264759751223692543944247759889029209622400036895928342730168082948108228310198597028237639080020869120335958897180264020847192430169354733036541461896240031708113739223085601673505626292414646289338620503305522009795389593835363180979559977086883635701268703145319801812062545164100651181216908335215067949416451730403959572046800267295058902551514186546611384065682137273800928442672589277614758214321590838381083256882000277715553489437476713022514195060103892138963956690293131488923991426858415999174282668273054039774514283189526462293667144844957386402914676122977500181046172795906506575651332763810166190478175866445665769521486501876856102642541973112641005453293006839767470731333635918442913142298941080344353606564566358294048504873317098232401727114474897277035956819063202911821042326165059556578213332354665448288435906176660579058861424881334635776505904146689288577644032917704246171539194379785625158079514847796694748214023307467846413978466283542503862354863099264348041029444567352969876046090638178096530698269038673444088353801671993936892077940468575183815123654472868401670402707588454737256195324341344852609903557102065058679085191379715862144953984984023500411236353680783813027506918154617357382476247576083210096236368558697629778700953455658713973986324463091329420427369624253502348789753435519328147856583612648324980921965225169482266598311159835022916913191685007672722037136422740796179978810371204828596003143326843141684469612583652137034996170294706733835294921938432556320778596501459321759304992315735811171620299018101160802912597365326997489935781178909264539376951069608356369646669086321332613694188029544427259570367584278033496344015741367670648152091474233781810133042094774796030312819142454924889317060734351233415754158239918619150094876812706936640769325684870352565896261948492715566716890393657982260170006518618441565938121779857173558044091560759868291572597522272053934409821018177891228430685922829490695896533697966369335096750935664168100530102180589918442830845441775161474680414289615445439523290901058000930943652599108011971400235183945133961213496413819468889800197612007144232849745519159713521367172590797431007992567778626931058277050079273280572191302642586276254382264472563983175796721606087377227070002113836344704268362757808649138359144027514804345928981220345479733853017451803647294834841808934089097544923062241839621256870781528488715595199294916557704282521929636283500562332956753409843377598204305517274714394656336167875274074287627504317454544570204024012529761644366497718933118235744385865831153148995058080295020676443535944851168127914081399665787322988493182139992382890184533729456524103484414345564078271314625594759480248493583979242423416481817016210856295108568608628544882980646611834193658864576321099041687120290693249666348204159916898664379808484400314134232217218165884726013243567125585245105816930728465691773142913053124771894403969498963699744778976486092330722664517045625371818612730358405954516366489561043733007377127227920015656799537803124720597429713141298125941677030852718100574543041239558754640659603269119460979515134488280808473137345444511229873930906588532044589614893290579304521581752239908895287938775531881069965879932043397053489989869820876737494326583649972154485526774996576967793532827469565131577354206650829818068858193511512723382709369159630926262198460681179899510377722653834018907111119888673763980544691467492418530193786289127643581995472340524531221150155871420114113749721719260596332754772191184368559339953219936921220682190527168220951321941045539210059067431485714231445963031717100059242640048200753982866897541177347310859313933150183799849226415854695146669415370054335937964611436820553121266511627276921023873086368726205550567292941753137120347796255678450490209402576756305842971246799943044623059101739941920495019434265782013858540638883195784341636918812224338923835114374328834628835959074605770937816266119973425385155169768459850284603559248477839181798691290254464169906854289883693196118206443350573687070242811070216681726093205224353302670753305692033321446517706388872539737350027158323290205436417615578790858061118085839758480348581087965949020284403326988507888504106046722309171254776339771368572306124349389856991502567226050841297236999700483925060656204091896952637869678798039201415048287379058876256578055000524290627346396237562305467911862000163560419899497956262430927209123299235754665357769893817030791702532415098915658750272382249408621560007695606110697411268949685547104256516734171860595238442317248773770846238777219355127920059889236997228415004826104324807747865599206997539757463650379444969836317508737545051324726448748275362306060796615228674697259356751538157514952256575994213538783307152133883812878385960373729952001091605335838752764497476198635816212531228150181290598395301482452541455745452621273818857332313392846397935640814202697292349012839202580905149126183909067506188453197533702064061229430444427580506477915974933657340153392639762767396333624833229357444011880831116944148793169006977488853935373119717330895839664455152303482450812428416279314945432232058931917886830586995950312203552521456144611884421692457051548329391612612199982750525033051713666089422962932556199458794439031897663094484551657534562561057959219575553599984412242328843143977255559589075525842268145194486945122853586639349646490981969865208721134450091482814575588969036632680491316675661118532103201778056643420253234631147694278791231386635417387358695733618678606453048275794051814778720733980792620300872687015118536151881684187956767316174341165061888152624745762334738306523446007337262281716288921853899512837042310997268324824046897607126107729276738667485360521210835442644240834674890726121983208131366251285792093793494479842145529809923102009456786285159433526413736429886205184199044485242214306547560418929083688281759775337108794523791704896873899637547930105858351721624112267767128161847447975446757824263256620885099397467006731076414668035938809978296861139821433754520542243944555152245524110567428850699388449116180513413380829894631195694471159191789778684086958853613361465272068433467128015954324840059567464316021332618049022546576027528512588847320213286122465807284837099118177198117734030314264853565700758587719192824024330180244489425784827799446959295597221246860677731041188849203345938704231535180233122289858358255700942183281115589824012099271116982843987069449186075852532682272024464928896027290691817243468326399823713580426212460864610597183339900487004750418704965110204935355114692070232820485890422268996329515587867337167445672507594538552336889139645839881143569650792751072572818297642587857494666118795789747773346335938851878355343315795342629547986724358087817013695430411996215985303921882563768746332996737178849532406289469138896654004863122103814123660078667045282945615307397123840905847630129373126442596737451684545232820087731908616066162711043757003637536732873874570408637117902815999998734460444002096374929803079521334396510925922859753787538041990901269225083749125520786126288299644937751486613087880304945593671218119520279145982374429902140669676787582617848571163705258764110179601900694234641052336006717256153989870650677787546967150366013341871869750086743567771420588422870728904770135877513445537269747102568935937738871242435412468286561822015895005736314874708459461459186151620377292877504435242048054491230106682980469261300948122957667519727736061909026177966586990069097664213898757624388014291394847634479680888156013466821247743405414877825630926484735038005759232331400448742948707199797051932422556560455110918234549357000770355653184597844681479651382181153077263054887528850842519973083805499312622728773567734156283998814698112125939462594667985690495514133950634842921140820295885516672168210805642982453242077806998565288311132833131054230475978269120112138511206725008727890533472041916428468239490569260613372535105901909711685370117423495562118271127425557000227021133751568494873868540476160411382706297854801526911163481686852825623146909822636593841346334442454441717049755976078397733888525524571612170078079563106667376305853440719144197598222959028368675098518812583376293636836655109984615657604577896635137338226745822968001717959376274018061677849022861160170640648470704388864366022215581801762987841212345392701093200577554067051757414825546875651384978088464299015144139551366006281134856542542106876639363925879501362353044397168953837831408393910775099279093048615336401839844768346402538576878152019397521032536275948118557889965272734367457645558484584777350058425997630925475611432098247534360914816117740060592238255275192566333488286767471207846228376710101623690294364660467922507585368106003284467111883707600140059758493736308636543337419773677552469925865305027735026660671419155666686468788657982220901895278833316701242616974909430077372995238044414949490902783531086644489237721374900681920503141762786587215559483649838673360450399153225589719031928239454758479713187048376283510413259110594272757807676190847400611388030072851608958919240960677911223623065396205129793475212295899617643516935349453004715318486366841324389400952539863265200447711789242832010377986534721990457284541585181598408728616930132214940592192868799709794190021375310032583166640684670226160286590038643562550535479607193713661727322879645701402509930502791464251786168348605012985370482891856016773577760549779185864321265765328542216745862478208580295025127454898876217015784179860648091252586898800241127852221921620683471693167562641674142894052871294580848481573564896355076578924270246229329958298823911845888962033242792694776648254982040525937751962165299012687287344390905393667875900811148464727658778969761003192102699101321620623010127100453710831506380656353405686812621741158493393984779679949485218749682274227239065884550977838775546995706180124856657299318060793931618043590093478733364562828112868431270642211114888123242770474974375279794138881050751247757005439727943388288013038658151401723613786875015635593536158781049333846158063872571216933219833031314127335465475598239025935878775229050268730777012090784852665946138165134233512529326817892297237621570339450742172115956587377598245705259779162149185578769115081473273125754227471616555924841848420056255402139719929699410539021364818350148529131218914249367183037724208657137936253976255195976361587983228443739973573703562192975938676083752885392672809218639717509636043781103907716631388799532918319589493859224432038606852379456720328880037686695118933578471516570897037410309450867749712349351834767413781301217604278993653385363303717477990232559373103747974578848867053519148554969774032743686238295304901992775396295890931820239494056536348876372030419654438599875267871384149546842652894716203170834000366088263240091689446555317195378765347411196696641450393376632730226704975470351009824092301934238829382321479722970582613050815575181906263850672243414220022362443166871671440395034321438238835570880573367248057095643299705456777993275987115586533232889215653248147202617993700769764863592918534350020676363231394569472251393307693774983007534169398159666446205009136454464888334441413145520212660807471798034147251492319897373062036723754170225365934640418880462093374655818942874710761076151790146542705811403737635835983088787739196381890297514645415475075180954162321430838110672634905696335981044045851089043600875269584182080725925276214534445697292591875802260308499451187678465513583908134697858279395508613642030286836185343574289713064948164565172166093616608278090287613832655842271333030999107504595267900380516588251929459617499297570649930255021222265503893886669361110270543291196010816992823833290512335945387560623412597616317192416462171077969234783041918945870562324205466170021540805798683023194603798445522469175247501450211268293172444531654022262617759215426703329094034931489666540076557302384459529408511148272790038534119560578548771653549753877311492830955307063249702325868732070741391429499147269761096604687887233414323099571691004779411920057438778576530291037936891403076197120044781817869734924078791037232243924549288110785439754983718641023650491176144640773748923034503488374940235093840121730149096714189978560550637003295160546014722073839440134972328429506841929609113964918061687379271136644810406104052575862053270600362839228819166747085256266730394938484687670157154611564824907170138900414941939625562464622270782007340433246722360462437144611423567166899105694217076371890942929224560218755286575146883635834943055032876344462544820995432504009880460250686697003326946331455831715279619762462080018954263344305644144817215367901389705164349144312873376281963969490168934628169901673586293718444628718644448016998546709803854204782163857439475481910234694842548601663301980871183687298005610592455420728867723239573168610859164839323585484076158339492109223702422096305113023687435328476421531272187108130306653854744245113020572818123976076542195488372241651067846705128294472875003380370679829152933739582848802387882493067546392737209965780111945749194589520687322346524498799179731923660526332764562864539912860979202961469062796025830668024963157038240039299911030135106200702892276831672386801441671418313209186307181668453627950852401493436021553404459442658967046488689286222945774327145054805884572831113942680925308010584527596399103557273909644283928699638558794506272092025661359169871083928390805234869392922829940297096774838475911016134129206570666019715298210900112472239105930658462208881497047753214131243750590709941583119333114884492590366987639683839543069003161395741345642731139284069807349998417828736855500856451042755884309114864777778129541864771393329595770659848290459522843872510439603306030296023259230250862828573278000382698461810529301074673541174081421058973321988086991066613887250523102103469163219505070240368784825494052941609789653924378662138673748823845614226272131446355612057036658065154059016400805262689316841685937596161407821120289226571600088097642650962273108864843561881618958576844927466677663304556409432323411493376754985622372834752492852101495881544345914951767302148424953871743818459007985645999681224688396682599950586936338670057195669791996440910989329245588532384010149875289930290896558116153336317490716708743175007762182142856698592982867299382607157132213023031393435181683423498251963152346933988604901899056876106362743151290094379876788877763662313396511112830743544471189814360445927826692138208779671225441131857649227713158414094066199111635564834674101915306453716085722756609230813020558304891871281104738912671065431602195275005165571403239325891352064152754113561710730609855539213317853847677274962449367076557501335763297193449183425287146580727577711184205847493028276946059196030663197910339312556627179492361157020036046584710825972408641397989373787212613924737285278636782989069197908722632764638968261105244783129623381372761373801947768916431110971016234837224594925465524110651840086464146523224679362573818078014364910538821011181293567041831993607120627681634425815760773938960038669792188273596320363007419087287741649056528795112064259959288019150643243650306092424448519238788192034698215962628574135099360203892874021268160507615129862490756632817463565382749327318703128680177693913872541133876246595500143814501709989326714889622056923802385566573248071088648027490989871355211454734365647445240806514547955882167833316422089340825507159932130002446344428174778589304273835005553142052375938792565515910156597043460507859617798974694400874113772179369339924215266488796031603179666265062061426381856913940396060643883759358583784639904410627042097337016027313084493827711025307449742434523816265879979193324779713614682553450951218915819350899365358648651573798856163653042014008713153763117598187858424946771001378466077061512797010900481726366460241232390426502788339065790080498634772664074050672475475733443681170960518153899109072623370885475653548938128354314641562124383243959413391867754374453542689956099154189390658748713345204401072062693197818793222931980890750190080138157698191665086411043893852554847006721515815250922319285436710626407304955058243262712567036343647621066699358546160674173725296712756607975095296159260961203549707693570848163012150358329880137922244557765977344217426976218854202092656617827665298724282629165349343785442723224755313119662394397243919574846544046086988204730548672740195703852676893527481420021156768302385509994266785907823856060104915268741375257782937850314245105345114310323745601450560590867972282006482224039814402604761646913634004418053733089195172315099828103695155979267325055294621192787281839109362038099339992838579803098883465588001567271164109171546104307581347725106680380589347989641820266272188852952728817368799485365813976333445374312777743578295535175478225623126399908692059297752703761039453826248583330232930659178361161190248755241863353284540451308489683876936368273896725602211964083212216938014748987035973716528885870864953487487668800068096098747822385440095098834091615406367622504941561263295192631345732036636227178289175970400304244187728349654162871593721326319756208083186472072265217549474367566358038947166359813269069316468018362330034840942101582682951530019664073388492137058938596092008423899969249176692011500679180465337625593891784220156597553123685278712710709628211365603676346483323311284137242453161001818245441588500243906731123707868996752129706750411627862004168653113225485883984409676540563009150337227553795665749741637947349224861442113561372616204054596505948084493812841132048486337111922013240647837081392611945948692731064683792177295760753112891502387065916582770456340356287873255712159398797250096036455128702347937416457145046980480899917345778895990267717467063211849440368706841075647344530151080675084199420322391037567512095887374359237219131088397915705509943603142817155628971714200144233514007614416518758111219510577697496603329282071212574156495315708670896981054365258449186473273041226031866934734814071283432770732046395050310384412501306765835059437289364475901177155187060365503427216614486387566295115462354018787146266341898463758206264774911756211273568446780744240432755671191682734464694114047782580551380311305360655675275541033330419621271106210354175892206447879392522211597145749749155674140897417329888990583364368058256203162721485268350671883786040008638925890338502837430788713710816641910509400515241320718269887559248054951351019678966964633972560475129350802139353979201297718894735442911890414800863634402250963694423639348961898004640898357662122915489358770927335108511386126614299924642435905978931442103220982885697058336356012340992145347957832301337596810414652660152100939274355932279524425530137036204156100424195986084061392703354107354340062520456332998928054306148388235365342523580710038932316058546916307619851095152870523875318612683850723929987415538093068515345515525332841849661027619146750407146313517053052880354194255603030670119130044713586754644964754154975085038155443840308561601170815053468782184004805518054441798086965733973517356463908789760872997338687038703850691762899289613324157385461633205535370035030528999586181514426771151642864283578696574288955685998899928836114119294210007906218652404923394371451083764242338542658244008669814700865707599974123364038703460022377574821205093058746363187680119681443146638806160240566324737771685727402115608956364208411685227656749642928939774146623941047545114675557367906954118646441151149490258889147501452499547294183839401096188096371595696507045547802240143786866369395481101214424674936207859356919977100753252390214026632213663775177726171725682141338368998460279503842395639843484311092238487467413563890099723249979680783636529654427213640582829469181870633083292816626322160192354032176272535060329405977043936177425426900453823344362989725056677365133460083370711499740940796135419630688183906709167600340979416249498031187082185864014437526638084531783095118043287294683818825542083754547701682994552982434150314271285864029279458417825822031608829580253633723869235699894726757812074662941304655440261159875056458669140101832052662549462088362869465147038783741970519515471253394510250342413144630314282629413500534696081470977153900935707315912916261538779126390611696895425817227965922998967667636882135772028734562019109965099034466449256617886613685428293533945477367173716989531241966392266683632264904230705791612153634748356765316125211642010951437073305207425939960220250676762188972688953830490896383981062432141192575816608231725559572078784969375053604523387984891130046934122858965358174624338568629529992602591950048610048349575065235433051615199073281410724644583726178124786757987781721943186315647930287219816518253594931144543828837736006364494009875135421618438785966874805471702469371223203655556349566706605704696979081464939434889029447252233282759375267568169888353671259246119810050595030892530107114126635115816010081525448452792275827144178200059000707289216634207469399727656849335914911760825841387885402141242639055944426313322528382093855202503302044677815005862869768523383995527965448237904142095576304521776906329641700597926069349508009804229444901770541555550289500800051134989379370285541258364427973066691294478372126673696523534142074156735808889865126577390501014452438055498709485814452992539881852974831664243309135363028044512113611809871684431496547666817093860090186358645588906188145736604195435772757127397031103782432532495037455896860303546905980458009052480521947515206522192635809678198765665289518630944001320885718427694251530926673103542946610724226420124173281249827340244715088938310979937991041918233627604212329571209664898004419581443666261356678838445116356412105026349912123730975104650367194847958018157568018645696117528607487487068530458469843660644626513756594067941706303537951903956089293187993344515397921067518598097495673393328142422209081042745477115877607658783086090220298196793674221397562353439354808525791998460244514502101395068191007536918185023466186644110197304412419085810285927064571008762536383186388273148178784850461378426273539968447331043279775550773610116548589618738567718190731349935386296159630299055312954461343622639217165979561773906044407875078137549452119732084783027632247985954565905559723792980567982884624777450319821253260027237627388582022598711951504734474089081002146122086816527853250321099739070891445429687910406347890637323559932821921379099357163031074253776445247748810067064588133120535527388057150808580396146916851167042409555883734939095883611823873481115894135138352930780540672165575326400369391350842867360532916480909778937076789991312888234964331427854358118019584928287537725450431831377539410164617982683825319381153619166131727928051813950726797268712428901872250769884640525961991630592474734635781644625844607399168302217929263190314526648237904409430893916385793283640822141162618719629239548432674993224847875432749619035546848866957455872392270254924156031455385238352635080875238973012907096512881957859451655781605333727822503840754016393486298652703140159073858897235351170428531384240785034973523146548631006785260052159528145350834093300839041327565775886721344906364028817321201920913574973332517046922194150011447132690635523697965060956195141566589213908966249704323528289912980502451265506467621311643626388790597060997887041316518848370604888730050747860188897866723091188393113970658333023496213397282049621868861622009402970901676858386205046493478134522494847836130551407543953060433246588418394885561718615418933503769784714818787078618520093960486626311599630198767654593257820535652864010829724513695290984109087154890963085110179855498819183008394645001053044485254821041097069083191001258119649049314306573580744922989790064607132499978409730648381576045872570673542932134059778889862370585521723720520561435004731573135015982343507268934153406027083784765326757934648019104883086854677706111714586495090766208495047016854255227108893733567847302097984729860285502163655462895803850766838867667700222938162214946346979357354889633420680795401034771132873957020906575324614455125007103730491253462622267777572425960728072984813809965738930777096455180595524406069763807072827738007399296657239169979017904845383987726841353407727599115401020659395341152014292079906578055505243910624564726695081601669405214705135282716351194463112414142266043700349650593263936040895723863783024677380041137984014732636100126343112639014092437547731781355313499620159730684894377456626978056430050255118427068288169956409967730713717940762982956544103576151968330865853908710989085721585148939793340113937163773929478767813670776597687154954704755433974508445935257703601870914490843430025566575907462274918178614846224436535051129160878187380172669403665183912771616142778560129703060419448026360571440628488209030491008746098907645502751733888193188798574803116829309655940501977914083664313638391363606574304129767187542886877363700186178489379957368925375950103232455467103307774186177651221507578548501560060046040380882176791613395888815348539053683583565733902411236542339765808854567374830505040204255847478889792907399541882672256645155999349789928008884849581494011811521155275089416840549768317158499115173426097722501201533938465987190582582286805813375461830454344059783445154148354681225064519785775976180368868589132320883312247988807326025224659879768710203978123447518247936676843669299658146540908878230841061184092889681600717125495179083650488547199918799764444790885553173715644639656332150367715335300638802695113006206412488059123553132943971871249767898146801230490442482948245367965774438392023907564533220677635438538794657115912889670227016436807098172416982801456570721475986698580651700221915946665494071410173391154901213524713527863123881487661427201320642225245484211871801057852375047923613800614587299993509931436429059061651593870487551561029050175257902362364805391546319586867238478920375669231291556513553790915757445397798406788278737045043731178285710587086932600597148218570298445744344636233956185234276769125253429202690654978773833228713427758269875374303686132476713333772534988430621253086148874537015879173216448091038872596682273059183584517566148730253443643182908382086601630427063692807111954994007619840415354159329323495267937603993500148119859977768046035140988128816827432112031275553263591195968193176043700022339577722782278967677675429374717566557032371664653252184136763539786379811525441691936041666642174401413493496409428397248626170690482107746574639468083376821647820555890935508529461002918517930449077055872562553775721205248978792914793360061469367846236499907555124735148531963732858715662291598818733149763257851772109482540871299537679352765869374321212378341167567433064923036804587174903789099967265137492703829544815303181832242417230891447367169024471699112453377223231390721226846962343899613542568462372702051691504155236503949540139070679196294024187034305484220489360393887701401336664820293581003902076131179762631998694075966280985179981923571681729727958172971584165194808477975542334618812337538254765197938659676560469448068835867509275617655240973271443355776899978990945475120729586246378371808736602065613994493389368017736227725372746427391512131987410589681487528774226140833676530174604073226518377660042609033365971676933602922020997701976817564801379653795218307356287379169115387396154863258571271817509516336487103991327042741654705351548584965459444435286801256652174952697969138994545310374330792467514298044566297050497881530751641474639821174057799629955145530874147995518171866747643092007954795853272636590218712994086792997624654570868423473300153262495302547647369074565097612103227183516760398710201897827736791872411592539270191289508243483511487229077611798226743343576697940736060382891246942313048359927651266304216545352176332127866323325971205838366627546783876592140669969380815199095671813145926230812216400398532988154658272075631186130167863018733685479390772588565368433198565280618771656406408460056268194377375899595961988069792882244457107797537205123513996701034145426655717142639790427467499775035171884902842000847336895604479149875903019794254226599624219445017982906650072997366987955870213620208256798950294870920632420126721173191214479949265005695575985546097239901804363275443242190255872452673653414722019854289754295454651592088626026992714022968047712268448228609893391420797042355114650295604164917403488057914421027307843486010126857033488727387049697887242824715115881386185942519668645021536353148789088102010236700604128972559997469308259248387038064141637716166773093657702048731952554762825375376054103821030367996185905295370821790710104198511105716823024218038539937148310945959667179790119786966554264228194456924589004569022233348927096848870327670007717610705245503710960153006546029849051007010311034810799185863672584321401808227480683850841310420547983774613879683657934736083098632914454751117702517380091562661598838245664873072395105611755990591617177616345798573623034615259796351843475942934676052870169914045274329264375840416846467190792000311849547862922401257375085090444764300449532528621073103603959173745054240980045278775558081860827798038587381800725315572075864398951257429541746250269781494996363296101295145658559421709530698229725189004831694843635825672315744829540008470195824491638174567728783217349446297575661062810403234901944580436630163685456640239853958802135751999320956731987508587690841600724047423761801158328205265046238163901132972070377176818967652772464891967667461209253903680520340691042353023935597024286057225046817522528545877189934148088961137386409058871123607794045319242359410280987599918406236069466151668836780465882227491841931580149190318191698802888487348030440623089653295476058508321508001240353292000493516446182456589754132224325567321802640561436185417618083962951442171788377206795604118159420803325179436982251100851490209597157061510626230132971967028905086250126292347225232695179286347927969494134100008423364695349692487126641571924374609542804752626734365891817077029172145713768812554103317351482946881989007918702265736018707384681649143699987106984600191689096593720241885047972435728376389138752753136002982458931858887692561219882516729402714166274110109057051670404402408071406498828829856959197346104377331011447691475262910698853825137038535780974653904779067255016467803360181679329887431471630986480579478362549657833764176886790879835274602335676250018178656294031767036627373023092372650150318692641076974688586843741406926217164346625532916146295533259182009186877965261372564356330656930328000571565435358092330765657957720130631938875793257086924428051465871768974300069205330722032513886201409797823700948963305597855858784931142383138600390173786175522090623568100329374408534126400387815396520551675568639044844723503541766917548061538046414744450765548385189949264172483381716509416349088134945512114655369978995145141230301364830886559843341576778303064076509992913759659377328528489009510586178016536326383603460339580911178329293138602013565601390250579862845514783907063407148491454161331524588764228310105560062277714107826625389670360564548197317753107336837589035160500915367236132513812801871611930792012258359764383730370592117054257953423358198015318515126042948982620100785924031693828033960472680258501293249560560424638640064333216748278397221360514840268680599942827359841128760884110893507804050858006132343738800839809840590054293030177183800775190281710525966503917790960190831974926023203560291684927003465470315057004893775563711126409434156167157552241495001627356967672537219929973631027739754928302666627426325254605840336874603732532129366191747964004550638388639389829482369837875092453397782431787519711798474319363681641430147270513140586205721334944250485365282608644461644228438502985573643191206335654939356052822275137658330074985953051872917953824709460422985071101416790178555587764898382610804393073106004521591657873080959078276329880560642292321202320778555615310504502707317760244831385493404743797039904264721942450818106955864865739276241786138634024011060413520264026627271350221161248387585409524008720142144620039293705834361975764810192677363400221543166008141606116064099527089622921828859309917875609031710835574973518173088363151729187373866980620905470242896355892334545925711836955134396033536134644860351964938902552793968536505340279812868030449962932546547117543058761079699954723436116134935412340889294578340568585665972536731765572564976948571330541422737975829848787053362431013263958798600086555691014600563436978189159237904845041722722113861768272082601631493451053178962300343085629979735752012942291203911357465973939370818627845483270398494871095098736074492163796542706001436129890641716005788577607330423076749635496485992931396971351284839382339109491675881276093185034367300198112590697964874909012505497469768284720005538373482414119319461440356240037409110070218002622089546554654127451270670621697141587281108668922831797403566989246104048763262006219067713336275204016367709738445715348304958919165088092755901140171005185752481214835047670850201129205646241095097012456761601738432857332720827731881723062474533683868936157383397529685780250250333171972377739917403998578259835211795439130027404096670910532842650713398052303400141034168316987686385495547039513393789654391538500250365670100306722181126171157156524319661792492860657487862287697247742007791288364989670949830388641728130423589811192782824748257469110176326301171135288128010383143248028134936845239867413310477957423683550887554957527348852696513576158314937567100700349013527760495664579014166453199595749744699043359879719969505320655350259547251195257244808040092477603296691757064631634475308646854748017404591023985301455443577912973596109039397094497978038706329531898986642473592236687891437455595946949680692811872994691277843237049337729827197726017131970953633151726590403971328789040565119640618022914271362204420070535396972871873840306546897497712935662389826638627800826819004714124220031541582501701989079904303902918499277677402311493835159961323599158960288975270303945815485546860589257166877843655997730206854273338362517957364354887107643308668497616433935958320183542453608084820857329181910563641117454638794945188349430823162847739785652073689693343250502504369009098518528887492798729472822410156953038796402166840957154133265393613784513955273529420702030870054599227457545236788736869465308907649642839040576580952293277066203525203321875827019372023291463211043956361634509569025576556816053566235164378089306963732877853810232848646268466872663256981983602455347463453973034838177027751740231464855906871363626663477927559314759004478848620525299264285995872410864703926593870167402930720752236247630137172477982013455146181595780891789012727001891663730951184273061527446699426579188888910048207624325510448131471615534251248894711714146042749912836511577492200770794725986098649618591134332963175539433511093045128950757363062664246214278087916901666723479767881056032558860010360230668658841369302266973994304914560421746854517128429419049835865498248815492892302135513293251567306991003125846376701238444995187755989942189280844517007821503734702413704101909018500720820582272623998721238074101973880239393205854196157438639548864764804664068368216621629550906246729927754986847925514492845070621652298071180613730683578355244215158704226012897954915522313551283114526669227357345680748526938868300727960914320200661411390423938652493703631611122162012927657841053773124170697441625667038944756172823629567284314477315294336670042787790177694273831111055900679808321071609189941988850708211620278852381370134306585094427192751855373256728119190147762363835935582817811773041664180545304563097845136336138091634703879096755541301073708098665019736648403052508169431912843956462437153928852666965934993598341808997484084637774249351131282116157423068531785489493607056281934694375954996717298258501610015024676578412642212682217658109101129003956282556114331899516450270248330700747553654072247602624990236105045323309714671132815979963943347185279912159480515906073044606236374634188967670329214956153440578256662816028005644923227622338673112775727098708365441661018481422933532988826492111649091008743694921683602082034669625292658620591848141252715838918693039129081270240872915926628039756356334399454314219461623542738131287526814095614872224550458935817508911406285606102817357811107439867231122332105994120119721236180675912354679401140026354569843481267098280260432627593664621233132362108938871247808114613074828381816583444719047220533122464448637432189896213644148703137443511202510404442174578407407509281152308743238466562847887667417614595971252975297151814451322497526738471337253596115516352313862031971590017228429250069329123052315873290295184553726154798914016999584676698510909400813266910612508193558097366628199654193584465774076889163096882304996791530800535342427729281401576187467757182319073659093587436895644484615176244700466869612359223621114738492436649713583349472057884273861654627852054769551662598241910661104413503879822793805573735903301590819929297939948013333587477675592267662597393221138211519965835177471444457261687315890325250870687321937336775096122737572868054927973397290545545645436089950911173138558705917551422948852285105001083734608565790029548118662961829997876067297908752009459370548949359906569759535231618991122931174581660344711105537997531595907177223728983534140421459789165569631123815470116701172230674820579061378091908916399420996824900675609649803572007589835261776009107167637097191388912818357972124874354205685169235565886245951047824661072835461854056340735525188315758635762151648873932239030655171426138997179683242928858270700952690547330614737849111650248513094545091260330530549739644349170480990616788446256767862007730077123260967538290593047293608966125133534456361327907603159765861590101588440546086259330647952646337791879422529002171845655502488072168429354673749029287220190690865545039609552925976379534378894424994204806013393924287140347282014898387621020883010654991802648170984845379785905252868611431601625257534584365338274924205194392102290623004607365865497462922377007004745059948466626752219072970743287585984699070928174667993446865230538642992139713708083927437673121830831829451238641919475057263400735063892469182711840584776390345505087969998833300440987918607218465357801468285608419628135423348911437473969436353478564236917262978995421270155332632843257236875018729457549643820264424317411526789396007076848388601546355279893667582152343945023868109317982749075824869622360611767111890871804342058292895506492775928982028552540268818878592213177126118964115876216388284590901389318309486408786619308170867966760211575690064200651397502604646116302603605974333875754933295380822388618318246874265456305537601525846354442172303782549105853467271136477905797268903722403321025838075919122795243804093365072597877593090926338595008321182333415073444095853656184391234223032060489868776007711121714602939663688393967191538659473154528726896334164855636942811638115334847228313243448131392994345515193015589835957055585929000746679942636116792144915459521961737201295830225133417017195138870849901020760396924117949339475546946711764529142140255642970376440434725992865973666261734627865400149386039234793277288177113728517027414891921705077971065654302954736853151878335749534928042388057889935402774490884786971241913848313069057333595085718185409609513062323571982658487488317968856359452585390453938831344333902946146826987360918034386975281657157343121270703328979102068414347064025793501119824304090729618607741587079648616707058483502848816747538735995682685653356473135735222948543463872969979859898917759092149932996926279857125220186093172430346006147611882151071454251847365089427903413742392789887447528552031585023189784807914643023280776404177362539367371119615953820270596314401144787602012738484850207683442771410433362219945962625616410790660115159931866817691837192988791620764800586214289542722420801882593672614541340453093557226784257113677194348310324212801609265182166888310526939418429236590238107933968663925968184677838187428006181551188275820630027240883446535424860946681615209301308156428707434491680750108008099024866037841831696875896040446122273178213289798254272202737113535277676761054398717135793659150217437353989023827850923853901210077110971738382659723363233072888640418317527664261082949709927614437738876510950534260709903113070742844527939981914267624443966587980561304742787813203745903538033823515965481278357825917285601432354713591077761820681879055279450249933173864947742938735779139550135675815958161334685823851230761413327449566884666338269617289044063716757153326885311634709304302336321378872310800694558453452697225551377394326460503521353167770130919168050239441491874360421967720810156819159215888327075669172815732545003909939149712426033988712021129562351858900109434465073068677569114113517624136826156982119556810822225992186505173294802636533024714809317558423805017780164199760727346146190989850008919026317174287145199278169786452851098860787551467141880456306678758539361400281559779627486705762352063106765276784720394692101309128183967105436449644525644054730763947617555309858674890530160848727446301468568371878950866128804994449630653404889447796956126730524483414556624735979739657020120326604032930421463142708615363208528249952031472967565236138095936020548395502758699906278542359153498752523192251171693449655108836137419740740416746349609531798858007246350902204660760787668130513696472407274108738748196422477581930774014072700338382111024865078134259661704470725408694538416994622971545604844486809109549542473143228748481272693736791124864089422013710015105439304826048675764974583829582455476714186077974659662195515624995353289911199406629797810714166049131693230231787135050175880451933757389563666132359938654033563251318352332592850014862679700447289455441822091819750126140960240726165280097203739563804098426446254586286049995521975570503086218106386018640390531158249533258703759107218623585994755589067087922004691177788542267053148400443314777587515019912393482514532092303348289919998834594377620575652080936477362276769704398854637140949001201245859910707026430706240601287455888888053361585884329971232814199951252501388299458149615986209670644068321705482266577498955007943188485049223829955284973895999006102586441500150037619067647562720370920593072148528926181296820401646208397900930402873942724051280764726137829652223557100445697022356106983028902189916880853752141414683470106942029283706565238947987043238385208038811989226430420817501046096475673095260914936148300444974141717094356784508731683287183326694945298743680754421824097947053404782493898173347424896657770249887705832147565395813252117338243552536234815475257017247728914262793338972645293343453740161237251861675209171562049584961946231131031566652196055291478205442686377485484085521664178969965574614274207208859343201704983826729503169885056865604465210277069387716734112990176081083508437077511813386940462361390310224709435849893664205386512403456465690855784142464428110459331539410568797352720406032720617225207503628646551294371552276323797440411817185549769677052922220601360759429064233041403587623965812697049372744237528612825674709867173025556981427290214868900875289833708319136109211917707255689425045571978109258535280858012461135455896843480218661013000901468975578569658383603645065029182802582251135005484391094431855757472821881312816335546895568632801257920823490692875842103638590181716773761028320915652616758212001742422653991938100869162421467633815458052756090025771834464652246989445082662181377355024891987620570701592876996029981294715414776201516147515909220876890423370791487623510148097300897517103553487538622423926213366203401868947686123547244011703003189363168431640028188641489599187929545358166937826836935003180235457164367589451809062645651348417483820310680554583060867122808239880812810834805352390077292515609138280501243974516586651654704172711119643125641331131671139304909830074956519804552401696669300337420411033579680543853761715349052905168059068694837070131481421784663481264412510127986373104710017215888066637427484884084081226311802965810193000307535114361087086550728749208027443034987800727251736292590550362681184670976430000336463694243860140702294492340822529751199183923545079638790486210482396016735453178711060406063049914742455529735142064186656026248945540152936697969772353240979549724475765709885588179184885855387373318106470353947701265880134979700548617889723872401933153822569636536378652026211388897384542739785294836101688928109830764464125641473586561325694850537963797870100693790618669655222087521049427554661353483123817443143588956662290155417669327335088287665320833903436391927645172754110771965013156703721684896170111351572207166661034345833658547597995856447448858051644910536962256667057863401564603103435068287990600769337235705622645749426633094635985748500044251048780216489108945503000793393672017613556029153299789591178362046181200708688315865350046527379985394341048898760228970515631091731618918201443634174527982980723173759392751300646573573892090398841936808907534604901897588778017794234284914356979393931884162263707630888951300934727294788010475593766641770504047462525442623329668957154820869357833339603670529059292085210491500484355144966808101926554838740620009146078013901171718787267573028383534118645716459966929734794442249862237486444417805912929851578201237503690478166824372770969637137761908699486118349862650751387743264556041167257579088133538362091223835294467700882121692826457492264324400704669135220561302271084666961497977457611664415554434902436489776227382123941709716497782078790484036254454537041062832227316965954678032555003874273731812320407075748183036561550804978897266334767981258290356950975511575972395448219033572300397992227431412859809984077196938291361091574592435214928796609376864340459787578207602256034490918602368988014718645316706705500206410662845023528453725915123961171923694303688786793094823907998503769519520251992774399830917234178427492937877754870450366207258173925554044566149405523441802417781271077074778684512827355148583540792119803291370448203862419823875885296517784651900643991307683395191718558250667354216804904355786507016395167190092616514246599158245152812840035820112898777016001176401669478528632075650887163996727188520401224254721884728396966464097232171067618760126418199457222881524358329194824803186886998513302166341452922765172309158889206448650242705691800808854941394946535516840966587486264464762752203751081739064930534359643051286881901684961490638342850861262943016376629078633672644770302172076924682976795818596972272266046856963810452098543609955040795759374790950062277290678205638717913259452200122461625631634457461348831131158730740180534387445796408664100710065823876747501979016493312735279033816823407186847872349707287388248396689986077818723632054829407210426097037072730409507156582691372461731112328773085175426049499321511099157152949889869665432445653787951494135086381990965341123863898793827217513791840117654396560112427132730617476904777042340554409638185759825344402460724625120566999307384159852380116316933115907425015639657598894204398577883904973791688567141283801012324445840232641541475071012493007726437055470543765184424442502259677999976854998287234476463437667292188424478525507268584730061423578905957965397945781568786061697218333364573254555137989015890256365832075804869258067357201699192719164319940911842664367304957391234699875215621065297715003039972932625642217600462151080955781999272413706030604038339409257302308916603798731380686758095119180506484916277049054050697390374803514587737700678874973630923500917026977916230019537415929756412805359741981684071569996260228789466287504086582688623282152150726215850866296065283863866173370704869705905009444945886732639569701291512039173872157747562386819225280822776286848177362180675431680857050849050939389387490149869799858646918682880729607940090999477223738856045501277267889940633872445004650870395802824054132159151317630432652536037836278808677557933499921368552730287406602402253600331111023929884902214545691550953305037739898063970317756750375055776352186366006902514338981728462202108903690739636690245872717557902161516674954551479501782393955388189180430267759370562197223891094306305610217453751014692064494895314484197988942828695162413427067015437729224605650108650695715503188860721377427184040121977006035761015249703184706249370688646016695355591598401837700818056101475234303909623742187669038109462045744619895512332602031287811490643869125016647871218417186041710437420815325730662168030774273520954488226912873608117455928696254069902342828218272505939520253328686114566917045468432924466557743052934520979248681014241497589966024958805736869692186776600778518460217246126678537096093626373365118586985439017417719328005996175915673636672674811409080098070347470923827207159752928418955654535250812523129673325574895005753885512478007569353643775703557104848276930158744922038946946819734241950050083056892536352898245467614709513486099474354009212741201199970660091084997338392931247131147299383529547496449812231448129048542979364605167336212181790898223570789591495267714327188921398052354989921940897380765537815906608012971503717354038888857184696462703881413039786000010039310838649034582535324733100678899014273977292204976489072165071978169742943970127674205169528462796564724653315421012967821273205548040004228525175629544038669833688552137556417752442861592552070802426312588509210390546677034080009623299685263133747178542286048838841859525655169809177534796388933117090795225497900103137547686882191706960416015815218085390106704823225795698127844447842674973313934621051789876976287025334706478712933888460930518376582710892265312473308608535378855805787351781766970727095536587897736295975692820445254338861821372330136306801174603555888336565585065887040595620283539046579066606566721306208488919071080488809048369341671301168128782677437311176519886057267739562570803090545607511976266834669158720029711902802088673295043868986933396781626091574554767195562073712132423097182443490723600244548583223028635895098966040858251948223833774227475636156332320344730861298872239193492106870626566194817567434586522857172333588249398050079903625784068070271923131877624474359813679462374967972443055833210204420333640392909486200854240012942334722279882592574079906614840216092793808294170600670681103422499690335427263217523410004227434818310668495020588527779397418424868271918469095416860622696650743985015854854699649610586313066951093461541272500773878882571646651240997362833949657874381662399726641737919671778106194447113054663816575337298358283817368752774938528165719345295288596472041668200366679108547711595567320229313370125791426143746219968963889838641117662188875475697398440662676122660044260319855854410914009802592585903383601355010492501207073649093274441450616762720865628235961637733941099387221131115759670399661130590656941764374135716572527363223110660433462887224854532442573818244544005967546290906411609239085979829911834677592585505391058401687094028584878138817615599900247852207732339781958037537813677105538986220790754668542351639616721845548945473079537544069839874009834314204394992709429249927560423284707905549213218874646256787807015914181755686194659020580246934553411240320605675429917014313727400728304305878018317723543079113669411266883267771782428021973929123473840086001485605856436107558438843499707982651165267489988211027970785738465812690922308475552461371343024650903881823005296769636134533274552201858633509872127265883595787581254042101236549359731511074022113036440770728889185893829542935897503918635115378153102297056990859199522220087187065557797682729294527133629379148310933302834872965788595038950110478304519597957577382393436958724743357320404497625567417769750507694787916664366280202290911848490207478566288032867555130995885189272298811174882382848178202590451528084055150496246517380124249482470457285694943049215267986089890698048116578473968654499410912566999448685295252981485121451494023355811305690563332052355205963278462624762021264323998106056409714363952715894673129632726812707043857166149848221268375071109360839748397551817567592129596582845734701143536112022987242353524782948657586860031921375247021222779332033566971180774078294841458528229946683163560922882478699049935255617778482161472320546339204056500006993299888638354937303026256652248397339924692286413269415971989885375370726966513095289401739896902550403523001745611147076653001669696874120402969046135314190602692607269746396298721301077419341769928325036470760185893617660006793213869159186368884178610491113607120060903228563237633702367831828321925742041946481527439055399334751100921050367621545906143188271357086557079717301724596183830929007191382999059461368054298572390228244510639239969244339523133326706484797544207764193725557995677519110552571410396731928782740562582981884985107213093441278552491781431993329597138643171214730216900361673276912656035863882284366828791477426747893963833721233643877478284881862538536237081752900320708622344391214918621011681071488822488273946492483885752895187655363816610947688655529717962007975115038195065471411871174753516724648003244020476555619456241785885922420319806011945711865180366507165039449059234799759227389271437422600121337739326804361297959667349405853137240387343896702232187862059857409419731909054296375036984754974463934669538883094368692603304837758550705160702449250735475148117117921211310266566391155507890793934014245938604687643028234352469092256510732663809565796045219558644445037185217339388195817201868146580174300521649237241077578877374772458700992055360635200493253969090143354458581604961850166292839345964793034834991526730922312770507644428089809606200401017335938249027880769832901342355154534422006200591617782230712653531314974198536071450714871777560084380404740997400976688961802903965683848880895208663117496376222684361419548420840031764657119999254229181239905084105245483765970325194161374269318845621820757807354971865002776125443930665245222570815315053239040037944918366634699496628801195119031092850282326599618003624583301942307649009600060452507443058199868944536129056554854011756066301934984720407954895014512091650441310594787472385449094226085874374499693554647606132970035494930030006336980143060104979893499078952788185826715984807579505612867543027679692770732779587204678455852348264022798325329642643866207887155081147408141757874189336763518762236192240204582254133244098141442384560765270080245062981039087109465244549468041922729691721947169029851201960694238991434831198682987989275793146618177806615813962005118867796736993826261371544639038352377109285552529871300021912699633815109505427266919968186007916517857054117068487916708535337331380454872380725005050693312742202394681131053447844274444375015580051285281596148260455078383719802761785030923062108537041548375358265173546591175496366225958969078489826262037407349977257133192309673159380857425959953780992414115203249279305269670370086733477824539301440844815986941383745397170519914949702557966970846172266517050911494302018165341604241684299970483032089366212136396379709470551496804950936575320472960746068515545399746701588377711541435008757809888875038499481572131899854698800023879266745765865443080449752730034669648295261974944095042195080219267585054157487887222873835562578349287022314295093237448530509054235650657921380998724517755389287893413737506428005163654597648447929323370484371962578533502810234349290472878582810162095162873982002720118449811180045124448271793877342001082629588279585046981323491480908361307176066199433451820566470947560160278646308423988482619418493736342700174831874408224577940643672632797268833895520693808380009982504390259790248888098183137319550350541149389044314812788127001348806994739590300952291409988026613089217180990859344669951490941594208150697073625928963270954062811901175393947697449985476398987550054629753704320804785087309734446572388680148108035968512283160842244674226494434167195835944522974641516099516996268188058295924574999364820556137264591800358533274959371918757895117434471727903206417020713949494029308174984069248827126511314532885316460153561184966264212649801881518995501898861641633098595856304573796202680918400697601726141760698960366872383607693494250438279745778495884914972375416123568086978787897809840196264073776691849427669421344370977584174772740096975465937809500379800053186791024976770973017390531995886671949029359000541013243398315004566766905880760425513068611754941443679590909721241063392454359537875891716264706498827652812065556662309557566225473798400553710450399207366842500403647427024018036883906418764685842861909762112848291653350661176160788160281948202337198669073378191687317581416602302400749292430956975495574438521923874656132536008120277675587802386938236784411948539441674783880933328886366632020622714713630871443966987733360961919336184637037782862491869448788236199981235837588339495418151597647465514255998941828302267942970293510653244825885510143423173866145685717910190926936704224961854161229064777325403662367123126001580940528193668718595470726706388949938363028291516671594154034358381952807089474809761974444046422067931448110644716317848896778274704662883085132382131584658917383912525213450909753239242523182435954544561906119817359340376919518561349845465482341062280116602933870592464781751433623807604771251728852036958391064588175708428116320067951993932337854960437043040672853605405677135707196418004328316831638300946682887603994837775965271815028949475254617093826381539130709646718344195362544633789782299866665652833812427270423096729031923525658098733277583071812942787516833908867057245514799526324041953012048843647149086070096756313211049888322420532033263808144836137209181885544198720742028850783018064302128431736408718908876990175457612548285144256599574846683395715482452029552045282553074868830658310075557952103182091636642717972505687611668603270149033570403273450458149409520998205531610507289261428536131424231031424636376716171955642183370345659152217574540808312778159564708177437782292474620359008474007394402636961578192364240014026368115994148534665743326197653626997589880510808104857562497592719939000000996163264666683848149320937666783980061020747355417459694645114150267967213147613509287788580193772462446468215997526583651948282985230366493140589341525152401291708652418837168426052148436994261180495830303185872472854533198920721285594747562217539159584527180667836268628051268175882172325638965196946872952343682692685559419212147340583065079911942310449766130569852897138191077714570815339381833715537545299295279176111262751931450134084254851890314142119222658138049293417674212747019201282245954695156088225036349234483206206947635890849249125954491909219898413292439604938183885972476628998697209158369134840621332210726946966417986855138519698652209056610576060214618511323684977862315363795402442605265637240508769241592843360512804576357130146624655139460548579004789201872562370424415623842140430981277088495307069113314467221935421610744001661435534897167938694035464899636209355647988610619078376842252145823612667288680834994869210589537143220334807991765344381892572529059148324241248667407021841713007050988462260582436802368933162632788041746962259853946526937990841019518782311402301046320549772574540665384992311488888713436795231632578934833278035097252254703318780803627572702003774132454244358298690171476421479280910341055649619925644514787609374717135326051296625897702682839348769681490164475177722239714918951098290307932843108775964097354701892412390539226915752651998988619106789955888957711207456511420485571754284045108382187382045689055834350110927167983479216262886381054572909411937552275519929002734578454679702006160113429637666630054244516317508708100051536442961217878215926446333088948691867737604540970334283356623440390786790141170773672686567349958954640523696619449597102668610271925277912120529517959466238500521940948210923102391523361249654710793265773037481227186083500831233172336810779130227396183349216700294299347335994361071157537998584741658700528599129438130116932743289130260300417029267625886050065353575315318730759301828339395704367722207557461547456284928894514039379654463258255806272541783180527060008855156382839546924007213099723857583826935338801955363613204761969869325128429575241146319661558253690709544905920374653770974589953079508600695544438921585991293645284650445514569102522647777210176602400435485326611487645789339971563983960469643324901870929375059462847401491761052052503923732522470990050650931725452730524750526096851985253485581706948045633582245566183156424833732913099239064610541690442645240972554536226685468330431279675055582233110066908070379729482004756484047081936341689904569838704712941032782266844631938944239326634419264462754175083825972650171812275277911558116877225564835113590323769925848613853501583275417555150873922836796948987151575881939223647218161431266457382710119228826055773260323098256078942088138982919911529290375555569625991483334516419524740757656789215139490598879609724229646922567968091657518579374192551627112551198342990530629649417386255300220517321464565188574932522942753216566558351618564049023282004555594135528909418078559995555054990501266901121006376011248174583140978496681703606041601496595447123073747468966947241396965052165862104988336828655507813531551427778528796298274826979085645318330350425603177939722079829736185209217842576219776792754919621107665533362710491065562333930050101266236064086789407453741042799643162779419696140605372078814795554799628029961549878226410661425324988284056318559967147977453438075285334457925563652941264361234417200808655065711193364968260084889524778468159770516427149356820335917928317716274807815440154471992050204082987660242111582258095190501315343060101105365509871575089531395354072725859167400667153339708308695555260213475454909362263320745682613631450819415854273212949700674461636112970976199601189219894094919647086541969224399749735954530619427913108601429236903833480013799120514968068595282612546939388734364909293047906246864998988493323503766723156005488940661236388908798891824556253141892882330528425991872537282567637078603201569586093771736369297635595212593814435311916092824182929041620117810398613608520361316947657867599785928940426535050730607788445493689766839107198206731176117063787485125211021501283733233543624370648744563326870140729421412614157858381965551412994065092167014462801234332872584095975423697196895295411218756653220425874852609276183499256523678129502030467026990401891229972380646204423844800622913146423845148960487282318045977418570058024178129492730324195249497404934156472921834352848819672750811257678211973727605508444163693066720713225322832939034866061222663900504560226668975661204561623396654722575361625120067136583019777178344616730057404569665760591065710011416473599323125793431091810123727995705943776159670989927685236536993748165066442771751639159793366606733712626908118421693738206965086933268567278367422377736381997997198578346419412651742119122166807094141328451052283380540670898696278267940317872319008190509832567070850850228121641355573897628408074405836892092611837502034836245732778071659777817946163599471823403366493103179242461025404104498066844959628375430763956943587460986385745695158537656574417862924869533041661821749953596336670364159521613054299211994803165803345233211598605666273557587861977141211361728149799961195385920622982519726904609829963950718740157855751932607923348939164387044887445174584261054658645100543068708741727032083891365852042328075371396616412809442837041081272455439310796322520451554024107074270603294709427393217234317948315190703586443190996209550863909841272646602386712246718013467297159550018451457403207176733576166904104372338794550943820776780816313104910800252177457824652170744652787910829073390023953634071880147122052214021539910163122468998508619561004862149317372169724539535218437453636881449794358137650622410815240331585471385436580057212534789599241798496703729212532889231110280180698268795596666193291061687613476012735710696141836251349147677286411218585998276390801631779528380954558782949171306818942804812162283691051455691962701836659235053351648330769475554207752915040940519018103554019183917854781339979076569826761180942052936472885371423043542649694682815292877823974063168821223732374456862315139837258397068991093644998895037442166815744900656679808924052559042170664193504881640959639162824316832143629361440108975585506769190497702681496884636966283610029944263729375766795745728749139191760314775321799111020937645101966794147869390383053398993493299339166477259054417354904340287290298985610103594762034889459848681777527974537676177573995965557530704049273167399967822325948787405942966970181424300351254182902165212736321093082337506463162641492382359545529206549277431887226249176373817133446518479808880151513554863387914340862002425332359229689622123709008840261047825557058952996610185602896063397328975472062743770013222079785882131260046886764519007395937324331461137760857466389105837741473829226069341136447344381801467108088925548874235344238144831374360124854401676688462135052623476597766536469051567900511558925799763298111537628750719588431793825817316692132984346887238157977124122450548790913954744975728131947199653757472790042454031149466065801791768998114222415723349332342522544914499033788984003537864534403546883448870170917967519087806686565612770335075469325548773977178257498744815264893330037030919549077337947025126191681053880745667467878612895349206823990406122105092573938171844053161513839851413736403885280864089750997255564565302536459282603124812026864254989319332304588529318824485832343921700791479794490868385963075119447738560610401545243436652996092366414604609827550307560637145911578925197862650285973963723697632927991341497154354728028966377757464857956414270671832393474328493919445524984052913469732055328661410108385636681825473565446380574263855117726202262319821454156383651699940623200411583174354920844609586155429471796615870340678071574739814417868852356117225393747628939256626954153281526693867497031762515735111670916605449073150542365979696372353385919841772400717659388941590512602211955723734827554037015875533702922766748543049173112168767421629538731482811932934103621399791419349169662671289665025402384951651074720110803987979835631542736568943209086961691592208591854188743873453521977006442167718349020707435589979648887971088152920445877016792450210395591625422374900227337734540261692945761540998564748609096279039786594587798487403357771100243230180059868806636273607009566028915949753076109753036579363360983975089085951360115651737131088306315209324906957352760947045135701701191892478888252281265251264940726426810948762625080455824620474113626298437448074593613788666218423172338973157649129623522632803649851880855328622573415176213500375739158483748686415882440506156235330750447028600668907437530573761864245216740300989960886603536489146093264618987311126641396621683691648849093562717564027312907200770640870053097416379828131310636651121902439991103008887827048548356942316317497907267448494953858262417390771750869516976255583857051878800128286401925158836702207581062777126604961179789527670325976997078642854207978860423217138701984279664813506428483554103093876073207049081544309074203012127159078133358664064943937949392443729770845492835970553526540667708584932339070525724564490721748469442729004262343841886334655498364767023238310729462562532651583877419252043723471610327944214492430406908261481940114574652198403573869712540087163473411645876077266346442531257015499038387315773429151445306616766492847438195051219489488835954499981650366614650956693963832863283450099516419280242146423557011400828689708243999476477353558989467091859390181542568880135648419768618447193149642527100359307618926067013104100978078096312544695495639975263899943050555407595887888594683114939424740397674587705648941225855877984999604890303261172089492798375405934741317038631667195098395724476892060282037286395942101309369651055759152658687352748839061874959324237449262609378092608310993599977043494595030797360442599422242327777304920981844920054589783609758172160428492560566644617364308249758340295671081499230962054007593379890472213080389392811273273546647614166233538913780827866877196068464757848840162299215085163696394033355782428160898953130344237774734871173163430391195977075812294480069642516002991944436562077004079266465703481765156266921634499192916347423589684084264480625728730720089559681019247228086768758948134745688592702078459050171630529305872892590921378488844787798788589279472953542179341203071798980648637254921815347886097699351808986778553108091742920130091022507224614753366176580874681991616842585129096350964608497608953675487101043182977699250243151942969125736091452134133067074989629382965837797740848031573482315212853722401985857367268474568820789138258613208602889741977339317522655729550603469072054605595604624406066190622558525674392739096744317528103338395618247978395832338622301667685513511048267768503705611953246668812162190442276652160315504764045505345204074175135792624963420354489632638787553166172166435369908592250313058248217307730386606474687001591088707451176613047400431511439007786781193993924057970916012734287814678586408507183707524193645474408062475312882054951958320339509147061924092494697710716300853402836905917569370123796256894408826975663952527777109248283196544339703201803694526541044517560657576402722612471000745821248644627345477894408040361332825037035729298003342518516140918137483474363831489743406467026400188258254082674953758984047052882203449932089142955616689358556343024420859058622460211304796522579316440541471074420976628165483612574542015626222995616873818702087017425449899173027507607656122093037397074828984458720344426442013511799272081880535702474558531914153746247499050003106017103336890733101997056461975052174885479576206986208720612701007837870657637482475629133777364258500135946671786898082543953990256463963763513412006563140941023719314071544504457566525213861934805668705558985148754786889119144361380875279343545891787138849396800501035987359187370725316254904517211317709952660363074407047146532205551527691255801723209829912564542260881795340187395094045546329284921663705794615332028623017070696326030194347840556487878395874550055086240704488674162067025020918613761997772889410621922615892800886729387511411490722828040117888190324592282612271850785410580748472744126798117773032881936940889067088167150568317475696789368873153630387332281893033622479292684229146307785790951043864318561172511253696842971115388234845119217033518807034662484920807398363341492103097831141584347130881259952016452999117106418056381616711318473289871153387057442022554699550593985735251204176262946335151968806537127184362071646564699062530178428854041588604304276712989825998123211926639024601650490243389400579706682275573554272004795062139444516594432044390242287228935108197768906835116589921248837033787441133525293254268604160291856276550440926959811350018960611962086377084923442197782053652080823058482351431019979685981861537501028099709278649433833746217157026709517330373829513995787115919255216243775968386952314359910293323669982373844906653161236704901242643663097984301218395616886287806294101834117510859568176075899846656108617512010546018792618154020569598004241559468135411627263387721612432535328842000207998526956160450334359925464517242751695299622636525860319642484817549318860687763760686390245689764588703197481132299338897926482145777341963920936313445140528446906214122913558397514574004199992935149757830482922745362272006022057871574453067700208885327596667914598160202282511564660360570087192748289147593685501815575119004874843146176231898242455566029741239055598103268203348692782209969701743045637369514647294994708560384017916677975698260761230999791813953682842582226923074004068299272129087763386122461908254903172883869030973607552560991478393285806783580174932529488155954211167021668500998738687072708020315142396770120056057146712085361797974687395457357788202645227932318826921707201220248686029192267385042862454793379846398653877618763275393362602122865288133588743980349974525217956792038772189689371710475389118059194940746683503542006462308523975831629015580190865910420028233040586040287444948482995571032329393219307147293724589666834357999861257419741990314420832090605223875654862159289718265964941128556699372160094945239349438967334087252077346205005725334728110458787761805863706935718165891234836462975999810053436337310673593024673903722787909789331695205458894546489381845386622715491547249232065469991825396871411021410771134095823094046452162526052219639922247950245983986683261977582966323139202414071187529638949585708635284038990025284499285613884524375854567657317911874704193333823909437600645450481127702514254903452141372669834488277499460901045261698627963446438653814045422948054960832546435561837707032693637536489703402041524440945710358880365246887545362347958558199670865671354373182419300321410850461551760226141967948170892160333901162100114661908828458235385656464872133926833651305281084863495691771808119489008349946079330394415632575408915809234195779578355743500347687589438707335629461355846346153677669639623512110583160714842434405914120167155830593280700274102006176287213174175837974181654680321778462030079221169009603451139799550544448892244298817839892980754942915256501812386005940943120006907153046421806875422365106401879879927311390793694416280982530474957292088590755525868457725404772104141722452987512528491731138700517015249989176649726525353361809623788799511879160774872012515751954759509696184113795830300856373869364481128927499841243635038505944578004579945326279216877374683010531319885374388395974802375599038597495494227753449528161787683415449170094726069272194862906091315928670939467228737383354050421426406881753363015501641691641062442904909320659090856696063731066656275022470278732634216783580786257203314787288125635147790984509919191690454444496028113562281361061920662235035607155270025865186425652367594872143022036859135582062995219296072282512238190082974809493244361191455451386149618842858749069701862451165088526387991110271306243903531149774956957400164789060791340995446013337586595189797303321671620241222297414444090948590025000948774775894653620519037212647004166258356057218892718703145759919839697234607677893540020681271824654448793765402902159648358353462048165535852358403125987425330248743411901123763693169121637040612839172070987753879472158909340143523176924837466518949722211363271197900082666149787110563142251829378248216576829836176283943615250441047948817204198151771479542234616443621086398628597670463277033180658908461813887688936862894202698438989539066608760884183620316155392883868427496872563656031337064408117108692891913569961023929613577063224344702957418163476678442205086309522426151878042192073409049654026199159503993929981948748572446597884755963255027034455776537515048031422742169870564684485096233508900099230920166943241812334610721635824815462588516776253933368652639649552936674927173134898860053726047020861128898849016507844661027000202792761029491752827702999939847316709902760569679040082217198958285575392569691109887664897457107122476740568400902966020865812561278922676633084106578433096810559700941721231800548706039368793936507367502660949817816985860836665028082161560420050386979515195571273379491052634155471955464085551170979585370314516814652781859773775552655726260570150482502169805779856206073629697931328722640770188909280047617532312437443403897291520237626197272995513633379225574023868142733810737978565476004079687251178200870381594920540254889276040814662748785848609762492632941982808919417031881536149156527075109164329155842197206702596478884638872285539384875664254579343032858494645613633070163173639034300467908640541079524423611526078357368701894884866961242652515938065123121404403490537795179480102470630244436128459221366501337531436611607474946412067947932009769928191322572472685982688475865591153553804288956560876866329306411499691313825187546066494132657536810851761793332676394402135677252255047826647388666809040915661663203275857509374859768171738203258571452026994173082058345748139663332208786791687951105093733268772675782305941681861305320577476250511802087871684192170714862587071987548851868704507137095239296386801785186729021707870379672150212851472453207884870357737146618629936646407947346742498096712751711024335353657226104643631733895178989388485314046485781303700469921470440011339758853279271796522213024810311836542072530963395979258879794368773677616043389417218504571713883992098347109928976546877583489783540995819301898787456233321540068662116215276193892694894421622179251505368645419898062675791772588957001355907083154174956972919641891387283117409169588915041007081297677045058715395970215683588485594803258356113717453099019209964728673859049939083496099407559488346680865643471974926188139009738847125220541200552534642107280617025650363277070073487263103630739650037559302604227359705639867681779660280933449720361819396796497113068874651776818828033026112930222578539011976359887452796954128684448046381160766800543580237886135522791951647946029251531961275473031176636857193895675472325563964002187027465853260009275974335177413996894510738965056517269243884131950191281533953730259143131819646317659618225809561803637852707686371499915220156016533208974439536397872509982846164425518689107673542019212561988551627154996765544868256841268287765572681670626222895188851103456198675883185534140084429449347113932843015199294995246823529774616982539524280867737647045506171397835317374350418684036009737557513567608949767018177925351305560686990584633164914675927244559447291762783273595312986739114263634276888237492647266359990721986964300818793021829984836208631728321600940800247729611959188491961078440723129473547536441445170592106092526417940164647177204587458737433612199012745614396085215461465440735891221345544260010361521957264160295284381444283991086675653993206204012145341369513993718838539562038547492453928534934609645166190069906310311769096761502050401011476562203960005427180403931486186908547239694447871543138770598329314194410596991787888437896009091539923472763672477076686096659861912896465691342748155530911766948484318560198376315207090121495832019807326750043626454085241369129545739404471678540809285561302456641200461429026117508139679108783947664054270898136960318014047631062632387578713764932419040228511191303750257654361046453601458363130735767580852152336303565307051811932314376127490290993239526724892336957015911157762298606122399085969753584856664506855233767596735679146479160383404294838600822338853829578406772046688270915648393222140086953445672147386771197868821722352502314823877014520318045380086668413613573669015620889150694584674449752421186854036457970870702649468086936900822659422450728564559436620874244203428592325602082591535471253852285973206407454477712384930385248989382562042264376354995841980847855388416643615171332098129257804883140578101217409497449578163615226772215510131952096986746045836859251543033613069476427494628640929431550955210744757227054057217548957043431329046751158182928388878930093754765216369900123963473862593986019540389078453894036300956443233192307356777204186506364092793993300274214833453724285597383776383128947706327272896023340545146430613766882211945676110008517036750674891945422676882214593461150817120673729278384250982729801581797314204164769852495367199214995155529794745165399988843822203893914069649615829591828866974039308164830364653464910572416284560652107626944695342001343743063652811537901131345508476219111419474112274045667138895106987583543130956516393669745109846506171555568427805647007281747436135341268021279436830685109309799295588500621420243227121790410833941415544669066776295262498492950691922290574547817454632140757209870809471229114949377076100849922835542850719832945090127428209286344262333468965030878702143487309210001771856491147310740519435367469297157303313750029525876679599834048568012053165889437159046214107210179767814234487120049484789202904803416892613006532741793407540303048609294809344989922348407294745659314261495891618102513634364935320990484199140186499302985119699173266704445151973748855689152366981644214718882465973411136062270479011618359596119082693413504649923573305157362187016353058311582654874959582161961505900024005260855513989350911142895846722251860989748408484485354465517940501755746588514566606393775583441102658042460059062981785830222530761854061824174035147020648975246915979478202164843105286121748501507386476274658513972420772870390403431014007874105368961675421137132448385466092836191855857666995460001017661747414172732250244836530696862629726467489673885284803597957151121837006476672783279872205027925802642684326693787362892651775663277621665034021836381700911317518703255106404929602183527357927298470763505296402991497232274853951262487134590879733736858323813225332567427423454977735533875079378226977665195828289300613390250934132975140588293522660909842944393705099086588857172406743360962110284912671280153289872414072149497895880243761107952607200633290875312243068668157722167520480239336897731830064281203214978471831043719601070786239570727733577773371092334339361018150098318854061112901737735996905516945733574055039419421467066596794807383149785772977118219165538987413667496287222815532164871502354265043425933813605130656870981999104706638785252401565847373750796136673052954354503593328213698160931378401316116719925261469025305847806112260697316893716334976095667239022376222010985270037277975714235865701000810275939587042664878788156979835890064586249715012521655723622491643460883359147430271640142354587218403458651109079681824315335158365676752155701158658413600158471064031437212262170613168733659003378703005626245876476538554759754209236189630826295123183106479957759663116824246047307025743345754480649004469363506260718042370398875087645521891322356560363176789839769609267927969422718762199012776484332931421283387345368898977129883856274612293780076053600121837674145196884139981297628712900742783424894197409226880693299409277141919647724638799118353141911932299661259594807015149976978894998010819580639387278356468989252059088536824264100032710140899210063994405568756532816001157531352825966789229695578027355990665624198702580594961332882779250388169056274408994602316456858039747696056884665695011672744942253403543179744124711606810148528788785109848774548303522637342732079636021220089959479629347104699481402084212549849053200501189079257229331999716632135205859273856246073397153075007114601655592605129672252391411268409518823438788125544895917209071669670184913815661996407763687292757262153019947696057573767066207238588712870584924664848242505409226442734243807287922548922536257183342878008834482696697097285840193529587236465090531350623934831160585303184301818091468900126808224333663302733944680537824646836110753792936275477679068549759160894663419677345159041424780594694065506524719268392204344675357735817658846351923217436124603242432742288574991848029630866875945767928857209355458181640506208612237158297460052341207497853902635369813990891620219827703117677999672744738992356434552729233676892248332694899650571615908798694584505831728044382996730158911980578869506662704352300821224075589327799041663398782670091080129524284590129325441764120465171844611528620661837319398108853188492364008429564081406524364762052068711610005391256527557835377144669772753592336162439726529333519322532641308161797570215586254278886330298240106483440809740327309503450718563936429663858636510607072446596993229461487164695344524404452988997286553098620116453389968379627801698867555057429260575613739053985353245785359098553852593277593606005455428327736753893489084913231902780647964375179526186509542607816264248964402882832982666153639701790378714487870124181897381503656335210822210351682431552835884119830195248698972258842667007991885579345054539877851097936097071506838347321826842805353693097518288884464296345771880808168738136577980418353223094031348597076272721306153305350111296163580811264326959355835097400470680987410840834942263333453551727277279186245091896917767742876744741488538692106419806790213858645585209907296808147364092844764127253738996467052774406670537291296003984512625608160374176659623721486731421183545237728753274697300622095378621557908346554034268493960785556529313605887720008140136910285321125919031885628495946394849986832564029199268591038747025072090070897796303977273827000542411006292965160561020159702377826959262191676487010113432943487843851480884288115593217198333101065335120000534818631716626256380574050105772238331720165969596915370741660649880192589796715370873018000900513889508429637004270775665999561758632337879766652006281340660572305426531607016713800617498344212381673732141972806938718900192618955201092467338506146151240941910093289041106094160073390131607977037627550558341911570253389883170397269994199505509635147815968480526028893569202196495992151292708992036577395851929498113994888960213791942453965995761044629745264063774698221742030799302223419931869715854112325556447312870844029549186746818306928502904452155019605640002634158214345326065453014694378660808468298995187307960141615789924404225417872531621451764621622521314266658278029546870637751302238001946271980746888885885494921477450423603860706756074544935129484912459894271166353042917390263989516318666637223775412012889319103025358438618626408370345980121156632520931213943044452707117131901424332348805201266041843288986445677506769713694709494335717705446927728514789035897518626604701033293260929185465279017368178883181913537675756462678519538772740508521864480724003526648905557352139691642149135369562253638929326731617972536616877056553227404086238488288043800711715845624559232275453743835765312931223485671812987004871215591773006150156400495404237516975320430853572844027027839960063562414125218661105481482283154805797062799807605081622329663862802456977475868800969421644599653783414190406332560478932254671165875479928442580730316476493620390858765365349793029398496905455199574306360102289098129980273424906806901779005941496692833298671324097636276046205597062279789347048124166728315689562988392416859618695538766749727275987039989747589517980935759716084115342737850267667609798267156690540692146409197228459569090836725669992675017629783125865935286350183907917442008681431293524249549102530040442435460250764568322066143339867286354779978409898860298978511550483166226571764187785096856969167239493661574984186901571245554114093897778944649528223681739240750166818242613183273491241243278182581104483198793282164215213613870915833831624221761609564406968584092923903403663044709672930155867583246482822105772422163853502254512166349350343857862250295001017278727684893990079432918317643020675654058970816829603969462587657802189974380236640495557339845919334611895713616531236186535300340728987009639130811838008255999804048344910321318862011908880965301631672755845145796279319871659255522753590774088671582497911052269576283370778701640491783593545509739621639226176852717932569163632014835171509086525989833607544923110834964595087244687451128211642144220271852976726203107818300000729250564437371551184484968541144855302464255791218421925283826390732538720335895728226595495426501056373608189521930590962089547974660189191287466488977618699712184107936037311085847885653205271117909384439225204972886642685194674529737825163766209174480261139478514172900282970371355403595948983652537675484555165589396017911735658306047647605363314546623156234661630508626831816192452196711131389800124408937214984714967795507606597376526677540277800599156554754627865301317699167597781943029148167060285499914163010429238843637049127488793995180133580361960510592522031218176456039070674818801130237326732217013304543246072194397112878984837630168003128660767750347464257251487177958573760627248881291288180644625310281472672720121017258574332331728901072555858169951278618743211679719368999727241839099066353864097424000423821320261074510996684429881285258965355362185713027852351146373431000120593150477557843630915825965743451169948985860831788153010990152627819802639173124481926555606610119585263494452788267507217103308553823545855634780883023723096950943594219349648595140922867178553494488439431526033756280031821962856054524668745446130390204635944154069171682047014167395716624267266205893282822191389391330989060740956373003165502092355363146090357239359775070152315655016754073008145301851985388252395136048221938563999326076465239592621943603701424674060001879476971534368103793729480800552521079851889155416933156832057891317469269960861876787874023697001724620687294032514512749640316655532444732772818097237412634417742030388629192439963149121649465895064865486774628204319753790313645198882087128483371662703404640055343526161350794666638366225241439167806150945738341035530000880543050119175673278302001138413107131040837428763549994583869487445294810751344198021599378287697800677163142099704585444686395458108555702800020415374787659172644941998873042816816433294168405167035093549997338443134094365627457385754241050571974817748807967714168843160299998515608106828195164610622660608138929154791861498370376252182547094624581009288640674250758481420478785130655964610104397278463139985468259782669867365837513605567552455237742523969705019685794617197919289551149322228481133297451521334268798384166490972142890825845478865903224451776718223443365104797005821888369860189107517339391334757785645537785621064077325625488968854072639502225100401930245918806223130553845895447923401297317078506484001251405001135354627058099368797323153652971975205183627052206410069176964647911126329272791864806992924562821527549906358135829298468942257267881104567531238453592187451898711851266890253215547958296139245295129594088756903257332648960092770395786447155413811989977005302217537812670623521790024080850750079087381517144609815263542813218283409726362356182638647291459245880859023450801485912150907060027336923385969088689199475541932183274750018677560825550790879236210552204409367771143785178227512212400009172523222185964995800459611190235249014214991642566717749572872642056931588990126378080396385697050771329139203412620272814585376668640930514537495886269105656416230176873020067726947673689101899810325782519865912374518621985849515310429798626743658110374157510630434902370417708595714755706900431449676162577136785547663015533943713254133236249896963885922564017381594520091656020244524216644645953552946581011718689771895302183763798813049512691370407791369116538713469925500413764486572142927757478618023007681907236352098180301365826109259042267011382959277148404158071275501460164324682530918504358417541888768380777279114779272446560668070502374757734838040433823934647246754960394225292904030894287986342835278934854464428237264463349333884041090197651090304042709474389405157392242114669990611865968148238501230789847440408400130437571865853215339143333522717193748202402692394018106219413718277459318359730756832998457867437049803061711405234179614899816067920548197845420489493346064407518124078049703797893470788105790260162864561419306883396047738524165845486304818054899758280870942938554718228883687963059484800013910528370675780807153946634761336867560217984811305297123363110534096348501293676930707434288484681893225546520170204251865795856785417431962215301639987045850695732657869917372631216968781688349866787992424935055528900625422473172958903997336426963722125581917602495776217043835146382052186592935462560570701079944470911720265801777486751556659204489063721963699870384395517504081380221133220168617318706969191401827049043480845894767708917550555367905615570744211629307587960490915128118553963338304689299552310706602575619008552688172499684026175424165853234412416153837638439477275039044611821562439853440631124904248713573874667660456827833003498467883946400254757307556254165570202087383439459770052788454519282099379308214694991119170437314958143783704740857878352979149959652961329114646595684733729298759087817612003954241264118368269815345154006391054515124047936525867587835691585869383387839633265792494451936760060359037996534385775926377256062175915818465229453356512162266339495796147401936877361438812561561036777039710480282673038910756968652633386651818318493638583565211147387833770749576375767466502313257030006603535809187750278682932097844529018832000777917882840297305208279219273372068780583470481076365118002027106067485855439836892909804969006114600699760899986598059473369897360269943513632339094627826696428469230956563232746501297506729522958741477022372006360591489639654925523934859624920948655177332242097739261690333522516339557405776183633463640491001352322809654662285370678249176454794180646357639006269187033372232723574184176087781736996681006815050958258782305945868131372854570205137365545493090275284793370626508415707360087955570530181949928502822045549108367004780139495046242179771824846604421975937302972368591879397321085676576401021401679523932781572944082690782096934059384586699422317465897860977263454148508768791307499877939833869027417304664030524524665283202477640598424966622042354779418166437753703512864491492581848329897877720348489617005731582971049497336609311246371490982608935872934184153242433727698310797796145981813280388869174639435485643212251173090233147351859097196373111735361161170286370994225545308535901285233648977924131573251569688726043411930180283139672596383200801989656237857611882418416676769588787627290331708669874191654207519209661529248851196848108741523014945039809422210926081240088558636204874097999121503295184837255756586587327614014818364658944536013195126860764562183014941316324351436895247487554615190284630614080093160331573809045193810263794040476770662065161190588699383786067710447929145722743681566733573519109949485671542355103535704350612302685267721602358576583371568834261844713466152814311117091667017157296231388941814482475752109603079610644760341752253608309646650314498608950218332711727332284075423880089158318483360678347223256658774163347029835031747476800473509319282026918268622333615734112156063160859838403831397683533894463914675574270429332925776268342051232875752190820346686664718324096539527614208282569517661474840628757934207768197051859781705338269172135645531163056220567438927746211163573890629297468753857023303439539705777207213985955297551966028632989690900252408050224709676078672653766152736985982606270239700350068434066400443776990045119504784644522710710402232605452382955966768390419247193812512888744895771837142209896678510875555516690754466385018764046455573938527057380031910402596312313854474417328885772836060857698777278775524331031276632444042335685948364214307180616267467118943258243590645052624626322172724980648470678061636901420892339727898653531604579585243104020859931523967678057395807937299404492997006774397852323350045589020590662891966828586756279926362088977422698066271699423659001592525214449143436955312932349840122825860047237871261156492799755843356501320831760143982523516042751974967291696362242567357849419546043000868582801332463342137532616804749260479176411354491887502754244559201310287402776218594893303654441802415849042258701518471149844523461584461412806797656004928435244702366814355853772358846402131766847595883666298429790594943942374405929261567804849265423197469578656584574306889227204342907864884079613827730726339059462856298605462332204533844617506492892047916884004011101842343486808842235659117843854910802387769472917027354219156942669856325465373637153039643461187749815755739176784967626434869404049630461703141244104022024003702889230705722897750646277521746384759095928562522130065760407246767686996299077718433468631945927623064523096595587238556918887594095282013831692978972352625662102260321175364330910291895966095983742887632335873507289046539470597332080881385620432999309267670824617945431860901451491407984073306747382497350317526395604426601786782485808848344654298563072394495628741957249853665077414999159424579155143923625603836090088610747302163553348761069720125458238189040464772213998613939373448160771398997686380851117761455582466803538758400646890441076085258570790058142183251438666326881588299460593227142834644677300827898038513642442828125484731425568649741615469231023057074757019146460820185846930464419989721345564440138075620694917707250147298433684921502981235925376861334532672417973545398033648344069949836779267572156673533665091804816549807749907528087290211876940980503566752845790762558222305004770524079921730346086074093533388772079656921561535176201068327280005260739858991640375825521710252734241871860021156701066647385821663447231731937956451856778985670660749720973888235467242787173710780916506609709184040648127486037429680511623649473231776947570108726182049278471786633840788898283285418620048461898496699801339784163762118747771814791397487667975009154070144883209448722190866120351698020037968338620002233671434204483706729835930038798955599988124100103492626854273181142219061613429098244982059544548561478448543258078471733492040185442036887445495922558862019690825550487432050324749193768745041724436141116279880039789611508155747399210187644176195327232434792570810764802829905408738129447730914012550436402135170996318106205900184289892462135005686852602532475952010469422877007803996099680564101778692174063038013507705804889374410171220517382099867582731056439297453676264510474565462510970884287023966075177990979752620511344530040297205492822963398287909534902752642866206655324963367840515253520915501426436762492746484255409679146196285826195430859457390945282592904036212780871272342444727713025455199887037081581948078336700768062459022068381821930373534331070193379556406791179636344053285099328689346778180353626999658105933444873533061832471949733558834386212165395217591965422803825276049265700269200005287793118282753272223835096591377627391949024105423093119876047173576900936379889299492228315574462299857693419728628279334260127128588505295683237827483521052911193858639121375287200905813899408939054248856202800678697916311995509899270439702052461773486725842963593751401087202604367460401915412341601401329207997023470406325880343147411861865680449090163115256854002205997889144918746381015193534099600494282968522997403333801433294283700306537187990668406089051068462972369252968106367914154834392430872149341771029402273353603783813974732774293399224244789650804958134365727277150755944107932055986291197114464739471811628886910185548453626495007134441773736828364642560149650614019924077509262310022336699854698205417021521601192169159198032241209657253874933900945351603257556610609582469106305438924233616958139025723891957778056441673081855006138008242734969182041013977132502274612301608738328735376372902078646932312522480043301115225364483005433384541188125264623990014178261339328141818348035594441508749930113897342103876696086341360668758775414790543577738146785298293709491224332532234397746027144257667575009698942619339959617757722445205559497640371786866848989019121615667418643928437127970389603215742404610669614502991993312607300335609688158526659829729084933994994382870774414830000911904143103589424710119452431148988018462015933802980910872131808235369143147440905312201148143298580916887236427530553191695382695684705164636052245680233182626991156258289614085465595634059369579066449938334073065777870826450193265435158885247477655728355711143675289665035576576793120017534530838749686585912862253532671284035818734212714185281387118400211781359672138843279808428771351734950158258340014836795974319066049371780040709440046362691157731731708864657022976116520261551919268908916717745425214606158958618340247034636652433047486107481746916782283006652586700776703455946602822778406289971241347904677959576222740328547328766975229541138781885573485559882398166146679604795362413310312299785024305802226192661962002063615935461235599519681496012760493087496650935554285358361253025476436235741748441110638064503120100018947200557138739745742374273667647748630339062884611696858213789482573974481484975934478559561270327352624266595652434204076877558149000751225712353159832749900351223303510989333614410736716919184017505810496702713697597566632112141971983810563245462744602956926348314347045256238859221126228558514173542177574610196355882912436528743082292629136763837713344674192794844284428655726650064201019169288081094828472530420784544048168020967875334010268746503666758324890644270153697652384238780818375492746274223580236075427196879970909669050440082893201340324338516081844707653620566424169535414128419966063521570777796649568947737702081821985711876936117757667108698213149353978244977850599264342613299874119954943696822561497455730053830632929572944198881191777361951216050715779398571661174432198804871696020924571140699106441566007241921148146369113096416948482844935424162402332146918663276148037848546930281456988648856823880375523822882779006285223066646904964003723157955050936876017028122677392319955421832129930326294519553223693596996467926763214831482040310210919921587080719235549825456119106963564608413123151115958198656487210582728767771811527492926804605228069995273347689705820926589729234500371737084349732147292841018919752472122017236204725316869794255525924842921110222033067201186725993631955182844574488363012612455604123891497630694407373885180196459935677057923887314413016679210525734197513352181479567322031709133558187375639630972602608959033439253216178809545887572525411050765201191589397575419941724330649474127999646727165500039615743045503846747813702066346441798736950028314712982101153732209840933981604152632892694637771377076627889199846628634017239260886966471964882503991050266960532118415290895014761731911740655960481518304885686981310452201092881852614088918854238409593978951471105661555294514292199231381450865352307147555787069916100261923994487249448029777376820908778144271177412074966011923722399093383136198583154122217847926855673604995103395890968987845715004852021644551117639293243070987913679124042792556393431298649877943588740741265427213000273872982766305287930260423879848691893609064843002317119669581333987730539378828779940500627757143742246484585796036476867878733405238053098268643626654794507559027525657851061792386544419354742125826286802883552824587172579610649838177276162186019137407406553095412824955249470605917241409619565763741554795587137560223063355149490946654121605612712517730526579651116243501893551328143261552013483200582211341281311505550483474554942444458426701362160028413942926141499435256277887551393321814584645404039055272847700440043501976061691028889714060247007636125633396834850831746495806837311456371596452244129619191538321154503089842051303660838777208752150421560397486672323077919898875159060424233249816580432944745364557992338832733156374067940518764682106260341508313379518201769561278799418519294664753423652652156548151069362221332813120802468126058876269836023666156798285980858838085514794065963300845510815807684982036767734741706166338773148314709046212994224012968816145470177227820020411768347789106328381906061233225266513559580378355715038708358911962612600907819638699314847483131996898523125739127337704172073141110301052781683998235019833859991548097216236735822848488923140180894692219046010468727059135642071588575329090675654798634354659241179257283002569645336652468754562542491206760308992777274607489196844304786572332190854987212285381697472182250206205912803431009323326257761074741406490200033956068928058400225906486143606016193905362086574325304871568337603408290115450348410686347557760407664178204135434388847571669486259829656264564696917389669465434038167826456587040702567814734333587560457577971311094481527106814171657687330019257801991709718466859567348212668860979796352219056380974995258971382268848791033877304199882065971096889275230387625898439887721665651198544396340386032152651104298963335570202293972492975073498551626922762026105043004135988463487851031175637657519162050962463226178880051502557822536505080003956464122175712846166156391876681953738214573704447771838611743241117591347372639541505250492890771263354153043501490813668360365717221163446563180684604804195575920368349501285623402874643938843395526076336305458751196974264744935937682532785903081460135977010765962566399188336161845867754690895437605514246005811445953325500641075312067356580049729732578243037884478133154083125671663762129952155045230445743843929759266511706686042657735357875153048747401683642758512757244525600953141792071142819685740682247393205348917058584659837872620688298016238403324864459858052138191886477589154336255668289513214680582585444390469964774722656360598784317271216699501297846622749860338493783223091226214562533498936540917763144864447854679273298394373342112273232097831642674226560762312484425143190562752834053565549977224606073165918278466986788151400309266815740956008743780092186659326627348081370835360899378128221397112117053615686186591826393915762081499938642143824302765416251698416515637816421115938428697733312260866090579014771924663300555318670040026798067959323566580283092883446275425585551697871887876490308658420235161932947651656035639301400204859281841688779780185932337637995824687387961341514486634638788313104321224268953198480198805923842946863826317623550499804567986430797296445121935286614559833611344679387207498145789199012440260974609041560528073621849828374105583644675076117237868593229988923068486527805327616400881251624584888068344449171312851620043549255066708077084044886645440074363838802402414844734825953838585902259082475163855357044778252713970032400227389232288426256133994435525441026205229467127153845888528161033597368340583061648919599022070952588676837929176106155126630727980760673773763091526947363525050799710872849322633953182300687134661437637358772107641492320281794803799242621343379482033431911463884861498191660121303026633719119668146168710962704925833710472637742739099873560815987942482024463212155375079927124553594131582386822045413673450478614617385412197715930852397576644449592472817908991675319400562267211577326743668699772293524808629189332149199533006911584586622859745056329955600867635331382528854185790513173145847727969091796466840374008997114933175942316239545747544543487747511573559655017848623098521956328825159322630298415291256502285240079293646380198253885974668534079354963905276721089602407226902165986957701097077531452104710940664188755288569762172944161585890367176649250679336740399512841724072006864140236647987681125241175177028408593470301717067343810185185547219617153752137418335111126344430887895898445474063778318358635224515362340143471449079373302195187363997346040268169758508907231191745040432785868719752588094537592731012884934285959645687208640187207284577438390763901238867232187190758409524846291787624684708108681676168478084188413286583906700000004329454952406117387935551145911457413708850935271654923117068947909038536468460329495617535377232329378597966591321702595008320275372732495883939974711953618621483672831622663588712929761702284375623738150756206419931776567350594148890635640874281815141873585469252239570037613654287553962822582996375939904616967243898989408380724789786218700154973483097079629459189179260805712822868902844569687013114165989138863127781593774723518682963091058806010955290175556680675722549683497208959068954889965445681491749325030614049507826187895539126356248586513351570989994457868360427490195968801588385686134826543679503363252466464210958921519626337820445804346475884502023416843911787171167793717767924047951261029418224640862182946838784425809707476019662778765172541794510907327749386348944372897109791139438113068118811735565904438165897915270070080548714591376789416415469030432774050584541584217494429340755333748110148727033126027163691902091417434114618458454200153034875114566494317007632292809840645240666736266740797393331009289896134504104630681370119617337659933735042698229681019852007019254010492617960687384089472765390395679435353906509308703797335239558739394787456656825585339014312057772739962568235688754816930753001675331750107451670601682507558006462544029424961821208913135458097369829435994383378274851643722220677181358392527851939272532838203475766937071698580837406388750680785912338933506522592743863023564450461828195298103104163547140052256266401058666382770473738054445350928866481488822065966118390956573563252360365961803338988743455153355748314675023469834220084131552120549495090918997365598355724665153453996101044673867519871545256187517670888769752205282785272125282060448546017122203725303644256814165664528092880055014376360583107259964944140041968197311980878205323418212600020811321079206804249996494275748166776252779259167391368097803739516663223286830130190482666988009289862218775998757315965584161326487054034063551897616168294742217035546322445192894786153122870681286301783422201103451984501057864683248766088612969088297275218606718275763751132932778657558648125940930872016004295472576208339838714628081477248189402820552196065966514264787409536889916142560160646899990612992215098553615765563535499376043153502857139976425347237632475771081843013848872374031299707330498536430014072530977958107681987022293878367145900925004968575455871090030161816478635517669763596305904011236943321366610753726391158009018454887672888457125925109982661103922078338275626936405860721771447534893416126284850997759082991163935576373973765852914076461618421840996421226937943095776718961162873282349982385225600507840209390062886971978220441691341907002832678408290316405492255217704361494867334336172680904208602714138489383821050488094600746603947365764560137746087900094401851222014167515965762541595340098851811603334521922719882926058652038114649215156720995497574657412184087226598290470981699769477046299060444985059773743915379591172761787928258102751284708735792014653006403998165314319391637815277208052937056104195040831563840441690982549801169088693326739897357894664018186841569156982357563297682448222401128792188424461857669915529464056629016690499755566941439352988434425678542641651807658876787841127705446577002680652940846093246418630808709119287726526314102184979683935939270588947728950992067663622109790566298004914336283463940051569429057347712518015721155820999691017707171923036011007043311588783883236629696654022264840485477648283457567066890557190505051105218541543515469388393558197737813891396811326137272434600593163145889031125429362290561559279250174761961991019516778981690020792376225321008855847706871838501276932772952804016585339723808971049745947381093404109119755813596158155938968801980539937546346187277623121217923318769253807834302983689638845898720049845908103324474786886338195053687727241926753486838355943410854980054390336355685820638496426423465355060666815731577170564728694352469779193180560544945707412091194967819566961901723659458384647299401905601338791868367274449343425974312619778047844159932175657848101107314350110578576083158285597068678523584170501278307022282038045929208176649610664092749972988980526811118391647886075598782342630520961510441320815075214240432450910967165042124017110410625332621574492436133309235343158461698302458685749860645243047337373151451836574934000607282641761656170583238497764328652137029328735486249047720426920900414851478952205685628541128590653373453469629638573396832328114441078496048198925550072133875923680518868937526304891017986776363736891494769885842638756824112776167987296526124264133885863924090284031728824496655022800162806961287973754602491331216130681412703629449466684817775945662784049819241359497309677514864486430892988720592364760463287458534882322545867030494809787920232416573790119133641491107295498809053908396302148301180237004742420920777008267185479760247522907545993257147919511374924890091687684446200286999152392713417117055769687891561782367956831021581964620217060526806284124709017696922242925060323987321868397079371515046941603436673186344220750700256632057891475568874755506471399800981139261314848373326458515230229842346444800882973494215199445057253649665656310648246363116755307511897450201413014321986183953224033495923969974764227550354851301994236117657651587269976895782157905919022048349187765244083306349266436849441229135123370126800299427994924158198854459872081715021925057275453637483966859868973857571246556932990519250543008290693910041421988650860339813230064596621813773076080882930242814716546785669902950498843393881700458294020938683907753691574637744665299901040175526716729777435811317634642655437300463814890756336104809214688843063736751715890526297357477156095962726230215858555711737464232098875253268603066118054794209091412136001419562237883723852853372872382972863488207678121884460163860534327570128267154138339805376207368039527170012437539655311557020162766969778168031964172156205221036294629222128301610470109740744705766291014268713515508496715003222094381109889611018490785275267739201063605907223788016686867416742585209526204037719047354128986753795221665894381547838187387486082013790472713714997198893922248235464819309953545151255389034845994570933509846277002061218087901747444163067588391340038598741265963874837286270125277211191440373012685659852571701959467226047154042731086738050679363379825662084333142894277583069256251376006214247468165814483471051054650387189623887138524198700646338066310754789403131642406415480453540992452396135262247968988263638175771497098159319582507861035392106027775230521651067733984327531426645067401048428267523433731495458009451525603298395629302254765233678082735923290746184184347689103016134483334290175522624306351131969879205084912697194727101824336442858787553529328426972982528248435948278782183350605217795138560210804895840208012882953878379794205782240084968562204851923721711754355361702513262435492722236295273580070977292829947516658868924835799900405989458461278467568960959951557090593111613785416019125155211005100527497713004787929201826037703345793812516437548282372572073278295702104205741098367510922088792743974801752188098840840925625324583432597386890875984211300089945571858659872439399101250870516146734244487370607973834349484905168380684060948071838306764449887601608859329131744048562001644552010735532135704743305668668610294653297874361677647050188409474234148276129512519742082498136631844413699644642310826179297998539899803796066752198088011262677173926816446599365877913266104671182315599977066885832935173540350371888525005894772863865357297949038055292468112895685456575645972578974981946146990323669483573921958157003074074634414172537592368753624956027440727966979928771979056836806567575800251744645250899348532274467203630882154451784535958804186665518640683052618702108751121812619136168336846624509864501367906427706084227412724740368090914323500535305900384569644154743958816789568269944518242080657304350122307995462351115892331466593876381746591543714021067886373441050389565579804077089240867158031464114943939437623537259993149415225079921730391232967886763418127110664103313030796647830084208585063777476392156847246697969426481628860878748008689613775969900754628118129577358030370624261307811923644837997395470336228493556734478222739658444552113782752045137331783285064219963367564717924651166131143573751249499769325215048323344045223784981868634208718438720251400074114157185639735114473445880398169968902345778991917490420832437760367356497386118406297863196463025571847048076351844452370408089793661520014229794249825693024049602272034015149268019708962994843578435612480184296214076190669288264558412371014111131297927147218627673354278675877365414234391340903853549416903703376579266601581116054751232768748621735110542638966501384547233109710764464196595134724568959028105494278517059590872122794972533279552453802146221398253295900327023130990024956872901011062056829175414806738128466254712819544151110807691164588781270498721432952166962118341313964582410857305819211212747544805991860409819857550597862263700997495588476632568180223897898165934385941785354489394269489476672314224992076343636565207256928365969222436697421420958235538747604724915389947673686190096091202709337536220039069929693103477112979396976489631718391532374435265215107263244143792982145842878396709303285201882289327130673461189504428540477018727813777078484863449672829823358070482408531422866612055947751606243795044628670702970405535383912873321647855878474639256473598022882823974649395950331837683392751176738580376773206165263413563236799521583254046582298027058561227358491596435760050610521600316345514105468794537147432734226571839918992769530890655617066587936818566891211573331023120530819071546564847538938688857321524853524669721022831623678920562143298182328387902750939084395316028091171825357745384851241663769865846747487951405628007746831168997967662397974702147894428139832023120113138952630952724396197672191556641628777850543779825910070413520742994798194196041327082246594211994727994050247512065238422998892781022715914854837569244042325944668094935020502163673751205046373600821224998714720544824291226939103013791673314956176449623284982899337413787176590742314052174832901146043528651687669790103146978073849605272936918589322840748675008554264508203662981442131839542180212076038583210000953417184237052902202692703410654384892775275332579632425738246407532542841528174803873345947319749016962201876895421500154027220602910204107253270902619757656704584975011721480412519616407601867447793493704546073225859089096041672412704171658087305877230179409992764393962911626485949134768591630674368809901519453885273491484510674668993386639978878351844493769868522785151729698344071138553266161451091433346114535039180806923466624496914709696919530795316219884442480784864058911479715245689161353457782757581602058382748491165323281948354453474164031568449713652627836353807673776288508700458737891194810402546635953839960433342579913237841321194215923764790729827072535594881288270652357140477093047023246336115426757566003468832187555430066867084412960050560442710326109588094507798357131487619015080661905204536141672087418300464877109756240885367181651105240436530333241334882464923846857033381744863327155661718944866483620788709112023000467562162188907574302099521923801197829056987221322463653088737751573399956660317687279848319662657376895230385324119736070706521532483714729926443955992416130913725500899610383841689048290479412631053879044143318885600767005282881238378128712229161671752122005207035255110613425335489003168118292708286845864029211862311798919708510125376652326858152269019281333206138739026298882245875576623896158514288333087821759873037251025385123996851100843653171826184137236322996909672704296835311027943238518699281400760138234059431906157536315461255949014064353638215088679276596904332792557720478647214942057306323084278055331197407691419535237122419983069564562577219589708238351457940153638355487242272249180418095570574408535570321778460395118801548165923358842696780726908716692333879330414689888740739159426492649191039267780567328580307225539489862856231478825338300920371257415928771392551735647133204503384078890336536756118462081549230550205351442024254773847502230601402244113780502443097389596733389693237730486743205665480336862103596605503185411265287876914225622145127347497830034363227347949376360281327973342173623305623330457390300549067727897176303893715322525075325142331592551220761841595924569676481437373882236268449975004710162758246454551098788751149513618573696167149690750473483702410138925931505502067111283137279772548405466270208261808773520141128354155245861172634531891690036646310194880773586830464776227639868509388120460342500686840467168871778602558044055319793343037858216286912081753268621409484702214660322996358166385208628165545645102210422955203313249961122057302085752999004757399022470859293231830094364573574703973200230625091357234770032356085209953421922279300086884953062677432046703632315648379658084676980261014799047444134166446283817495513788964634980336690697030910911846972972422278957915236151274345309525523394715058033614242434832341816687367845116292547632157304573382091658088710776726896882611390754505399455683785188308869987442440987003289859284911534970877530604911331499782603701722928648231877338308895790150298517195709635741003490524692873174575843581367924760188264823827254082701540535894137472446602331673416110917433378557666128022849465399430482049866609342646982946769399079104038358167434690824764145510903070254241307262477668437645115600688976903083267294901878829655882769805210088655425976124400519059751449561286450785187612394025808736298229248935698519804371001423515642306163002062527369620353183397762095754657263619253343878638363167494062334932370967734212345933714657233513008014083824795195761156301491933233195591888305291526224955919460827280403275906144421715945292624626081919986903528856607451157495048427562628606808172656941914098546946323581844306454991163937668842444271392158352305973958525820971248160882171799851941759124940042364789956151430305515582767486088789569307191534134890178811554624198119742623958406581986006636257273068643092755197244562921941538531311538348672617927357988695587983576263560430569775956094331220056794400147047548034222501875705911168594375571108684804779552845544250334662570388403894027755975919150223542801684540133410802959428102916112161468997223161912288795222162159053788456606480134975713950821497738054686830844094504384560680074614830962662351672963690595241802674279911887215409303168887906206771247858987296316187919629018056047575073717532797588052198875484196732597942451201905270662870479490067969530088823441823766051096774830338054847211248619778580123496494944437967387450147776946011765152666600955185146807727726885974748923000943275293371935966316214468609153162868944231368527044571316598038130926339752908878546732387691452736223608116249364646935192793832353883937796826357412852956658228647451162224754727118007819724056826162794119905266769274070579656215764155642811360710454033024621728443473117445600889962314507667341883955457093967221952834366493058330492921503066109298355333876646427291264584281752768896259550620254204857523962627003932183499576842611491197777514207678894142983100640011838255139109366693776775871352703972320175142155302812561285704137152363961687583147128578707017167335675597956570821044493301491149532343224353992675116437916497845186686310300636014001685724953216647501741097447818368275459029957137108386033900391172890100185316839043286584836833880656791995794585425262349940891885783942721710708333995032880038636858757615370036263803402974530935670974243112389709367502759588577417403903581535724387061406851805718010980813152725063352026267948968693830227360917348711416822194254326349957566853799963987156086621855132374690956135128632534594066790328595896416532231542448403506905710288350305297249364133355219517929100715666033821703938487074244305516921873482171320654968673420316011426324972802979335653032643558238476079234853767103340721454866591612010309793002278271554668865929202952065977335229636339452485972445038740951602858543243965256444610009632820457430265066079403920339688253988307745239296559995609408822437044673734782908175552175822298366909531478479972485486131607140048857566982852099867471364990905043437646212311077419227186639916151536182870285038663408498647695221547679954821158132528646377327825527872815677877936264773669451270285789618429171832914083346938222057704613324123480722688895055971061984098456124940462373447948547411356177782419304015724628386236174384960107078178089093632534450658460385683744364184828221452276905818694447723028977707312462854730542924132616256457199235807925111969150295132171340344547548407067144196311060284267556641500461788405694181145770321667406647139437050123837005545973804030898578063048272753024955474479653626908865535177636301065242695708469743140891529358129641015448737186035661955206519320789978599183323267156173000120156211375828325027066871444187713710607740342977026859063889168920207691592900528536334805249228409835362263133417254392594312021345759485497560618285044399500565016095975134770758713854475429893935750581805050286892425533709118055700562227736304793089629161053399212609542681217449081968572024942547985089041041303641152429474920574465029020449684270585592489374645334565909785234224423182126323411950921373746651942929419631223160265254644474182956201892966880738006930869482518414203050143414112920722489818295476229759682663248045627177971891184763565237762263820036022881502608870251340317839739872485317959319854566732256566897727833994852374500378637344288068490983039802098757581286296368591265494226233320327140435535799329145992975552620096443979509818286087477783490511341371712986858625678687094648905313545052641339127717798189927319874697858047310872568757300777775089558477360731213350220605148464006157020135476951272188793259408315284359994865796178514794181592226485453009425878371929767686745910079650473847692524061121829837479533289111366479926341411408738468384169545811190041311660598965113951878441950772021679405154729374931333683648091588481657159276512235986854487656797976167837945873951572999025627683590022525372485622736433411728896630598687917904310011504695856064354303399599691731589180939993861849798608575118838931833782130713005588036151633259593306841151954211926737311148423067391721043696293754924427572466227193000433399225581309183083127692917900426565198818514179648288974459335853167528762724329687943491596093329507886912934485286734135672174002853198604155609017889087421177888097382379186756953928807137456382596940674268573141545302416823525906011725540908677554479927815597556534384865881169771642584781610448318684476957021174158128536036653434549998202176254920122407301479898872165446540839683086918935342706854647077627915157302938466746291149397889288459658555446674578011430999730889128086924703078299038050986889994571758504449123036450724192558363480359147776191140621953047208135845143183636244562974126389098924189970534169914979437377668562775345769066631072121442646815349751889219949519685619260245744256737791807088661522449386136782502001654481452975152367757652252631888481990797923548629565308091694299468432927109110844568134456106725498611285072240848593060725918041469095515821513068912000756212895376983230306070645735273008293953291122228944456715289010840403377818793857538329438097243876297635712732125950557515719401509753773752744064005323685974792751799426192999179473444362384925019211458168149929686167921532451613522560379698541789434802274562218193207081294563145029622296632241281020497054346348860603044162401739741657556486849649054983080018016633804951009398403738913803032442983792685600537248147122055330518857908783900727553121584433490470733680829438156451166875325724169467734973618642129894004474650532893336519312410109124226107237007785482449192454949943869973024559886358190316985355662902519605930555734002197218707085065117742717233917584753277757094950839333593552731964983991450219071829488185091771398671816074186187817116523944460309731819942990521065119679023986303628732256013932689702416645147265946830699147035348431344917134982850914079114883245460571405757212400336224322651003009179203955724576902336116156602995206506514149086984656064214402611958838283639073169206109056909834961369185666023808033284718103702124440153389388572077529411365655402081023924301824979208121832908986502041672542520955855322835668458958043544269487582499524377970439430559940679411053595052197851977060131324094855153688081230171804105388233951964683232111120578057713291965385847420548929598511339696442705783939195894320551658148279329302721862278917692618731607489315536730205753738514665962960359174655191269892398169129568534243387105937098676130938555066207474693175866554796470695335729794799167760379664349327037862881136755393897255025103682047969094817164947298665795057963459583646096047099199442818045847359527900834021322105656587995266232203587749159039140813917818934848177494589301382484051122591025012056569145771245761157944992944014386125458569047234360103894077784380019187873174576541957135679572948090113915823955521667154702521992256656111409174231506113678557954309663528777781024948079817164537408197384039522026457082796124466831461142241707776645990114338662716000072316776019133013294077279997802500020634108631365176305505584324155012594575436037841715369664458275616276644968051424502460055192006861408121257298460465053126619474868276310475878483428655457516714747125993580202887356651264909384393485326331069472732182847361993211737244434801245771357726746201293590862084335864882741570448962727516132197552320408099356468781759102031220299420244775364442950438015036516217881198984634262561413064571440070050241258332808456897636295567209554646101882083252727097776183163139827927624910181990546868328559576720308046356322841713545197943161206384998405975836367245905496213263395106541329862314237386607058493062963827756042052002397863095210709392675117101765982226025516043565798652196358175518382186824186000919902841346059888491238138952123198295082762253112412119604032653019792473078258039803140681143864195234441712656467056483260642249740203432733442951524020998531414074639518199937386035101255120459422906695045628370307476147631128095812326138954212229347615880640112562119341657186223516372938104852390812135883309043722535557181745383564646448062599653132050900060294603665043486493699234493641091639841065080416148443891430318155997394141619715102274060871730872204609647120643343147173862814011368702010323417171921434748299780876036081933437248062489130987452134223760946447152290225962155916369794715012965146264590310914086561154336758502211246849743878469277397644031734933835502116058740751259727212919247039343620926306000840575655308569000247263193435105786075132233520576337060461446984925569430914914498130796515797239820590844450579204947011680747464616975956386308166953669838468298106923208257454883743239207101867206122338152806116612064288419967288632442859887976342121968328527435202484038368983681596580185129671608127591651527374824130733941114300795570457266832548285289286628514189002655017853578972002742392239255593711947719113576020931719632998442027242230615710835593197112690420593390970584479720522760016722143878307016913983398331287560329478796934705997719247551595861510289146344437885307677461746800988112259077544645566087366707056295564010410011613926366369930088779704729504773130373593018949327372960900689013555166980372628737208022717830068451800976360625081059159064198000114284655236437389660541861953411195857146775035224528182957428237236730644589778804635868950481775936374541435451939399921868164658768574416202633744980092249013557773260191135770086259916911855116294516710625920982412982358865939068317690443286152647809990894053992592456299228818927368050762403791201467770704616883369034594843307528050833857504860837621078176798860764080513685114006876187148955283889507556562149199885192801586375570954634055882300445565048957797738119975617599767502063275742520484537483807188610791701069422021827740155900438614226729979859388412154589285628751848256714502810062879512283064593931508085317399992575641141850767454347020808408869214562058266737504950271304152278974981204186340583338680240633349398820896647808255878987465746517993355341430586008544927578852260948337565863562359526562497939724511133727509208916840182488270192113266830394931229143413161638880305199205571488507934578045265420200184536530659599553803124845624600655926357965926089236117147066312984207401770808493846115702465669060181860263236279616569948760351936828877610612239954788532732348673088478106223731738973550686278307145376685335224792853463555836048076550509209399941099819622540197022452347314348200964698637307442632841922571927768232834498074195884153982842124905366674652668835314999734523129947582841270080535964918465222324121849788077125563292270850592255098224987801108471099019932713230225801314075337601372889067824209421175610077801003549247141807873435483733283579093300989943952252489486061342202652678062985398089971847393028495367649716765724168217788890510685771592665838676663241919554607681529740736203709634597986897853431125984964875204495758704010687182512399131630151406173362456632720389977394070604193825445091708312357412544326822147197535051721721398356428474010354036619801117048396014787687271939262996563284512742791226696061803904589277378220952973619766732002444777675351345405443711882667289609669834869761194573197795795286985536003459291256812195714230257859258042552690702367356877551488651653913592459586029115373219218411163212505624306014987651117812608801474467349923718244055986057074040451120190978043437663149433364894484883599880312412706053861151925419840647733524737565872809887434333653566287230036917953945731644727873298290931089782446765174990597126411448515183936769247320985590008271794251469855945202546597028209652013328304651408171463906010789768166571150992967043364665482764565327009353292400381633384721392894793187655654532463635486206351038347068619531630986483506549678130812798409198207152593295048756079597813394195222029788688493904181372785409507727726864831325164031182900611993312750441750245943175081692659665072399442452206317444525544002136179792337399573917892363277378782851449122240006104212931253964750744783547538093151660648700546657572868548549047454862697031459082141955627752593722425751911372814120219740044405658322022447896602665516392255016911406204752842178518208306233838987272680683840586834495702302787920374193017164571038109124497951916342258147940265315377478100169217219277146145022446326543033006490745412240358183085183485144053514035193971079067982246493564091302544698628395533324227594820984309418647088295670069214017806026290738113044031562705812346316901010922134248629494930402435897280656566053563131237685113421438434151389088314919152272752480332757858023748783409820903198698951036390974724180442353395808975313070302010243272045102952806326618377179801991594177925279929413191683956366887293882542375426879869994088763398278664055358660929846313122803290199728204262951574981629121314901517659326968509934498611464834922694934765489215871106126831219093124011598416254331462804678165806809986920819505159802109898252822704173912569320931408273556556435873412680349569770070230516187201149876161343272808788221490973811575767461956756463782055005023430440333994139635130416016667849446205374007740541848097766622169791391044503837868648299420337259376674383256436914506335699907494254754649616240499997640533124121652028803079245215508687307034528676850563888021438595062088534564480038854551929255687409349529366208319737579675456405618531159624403993036785952853936259646669498291305221706790487239385855860286440426469378192291664141412724364311023496415010032391205108157977615236477657734689198654313767092951781271861010226827712534244874833664425774120604326619177469791330886581122650076770584228082411248050298741986057473571959163150333998390205833063062874906887933506876879280098081155287954381207168543589906071040246759430126817336476240760962654847955179751207093223799671447389038868284970748553689206108382856265066745422553002528911261369607771140629854160243157238157271647775597200438741847953462719086352643790116388768808512285341514112546302345171157577956863364385195133215620669324846544291416256629114066002892300517394635385646427643400706629339876650187254363235773665568258136455684929237399126547884570998620973568870549679485917537086837944385954447443944161689684157568781522739396598666055825295896912884366453646033042452394225436991630883004414483649407787638680064184044224535733401114469520823777521593286439841425112222024562960364070496734791549725125494205249007431133957336227961236928086384085304612596565339908785586799783759639539532058629921837746459559026762253778726229144617760203585688648415019975922225452421398173402840678211796896211020344743708275791906348375005135799132680538174831391266233737509208648806299213188325393956459935567526670322406958565168150117584717567501087107228627153602301969559981877667576933932181141062097958336262714422335337854538894474808201141251722054786956176201936826797761215575951673570313483365981481947780585930318621777805442882640608284600900433758210041876953810085509671444888955589401218054331046930034785856781206645222845475504244613125261579556955756734296443744545093689517386710854166250403187963786128404150712029561862091405101624216800903951591610109599177237741591722967264629547400376222458993468841189155189843200966258928516171619984133170468964394345022126503074133651030409447190241865698258590315156338633170993683759592138723713201894656315471224028221900331127895056475982822081462142715150867750122561332963523764000067162476711302163443942032051565327346022693904198423306394286002637997292169438332627436602900275150890837424455701840673859254869774517718387847222412606699476356257062599492514812175730140519058592218381110408362596415280785009890429542280676790296530780798954065889305808392045624413024638903467849657177838436370249059364732459885166919803804865338062598315544527188092201331776063024208591658859105395711185824825204433391091507015144505591781635658161197087951018727185624379060983581699772098676126007533429636147735792988947907254125791580823569945392092468604175737743472063255256974719747514725524386643979691080623769399533649905809315726920582446193195739831548280820221403138437485578100066977761432009550440422972046425338751208758361556377164375780165878675037668621719972777825096547974427310912363782196008207333620578038972878762990809330130665794944608784766655560204946768564930182477385241963180043252814670119734026575622552966025073160108590137876242985090249835264939745331152049220404844969366817003918173708186992780673202104675229583227997092291307830146592251655476003286255121916921431583881955836452408626051057764070847471941777181870973784297147157634189382544875169574712573582255312508611819060772272943279006406855409598026724289562583214185020887886378854941282891020832753390484463517373332465369208482382349776860851802190895493363001103825759836511830880187871705134936424854141139469177507202327226947003591637563767873432229106014232458997695741102720825013554670678818714486810950386648492378113381141609774425286461325407820803646495338834196266042084517738702268799104499590897582506252245434439195396777032434684324643377327813699459850691982985450403285112558622997268891841997978307299650776997938274528903895796564962823025273215613163240957521305606079866784921914574747455425494205457281985930683717501233804778893683031028299846679306488049629671054854738270248974954211296561367553522001414481285719631284529555336949483321297536829735233322801500176855300043946477203637062784856215419205298830224940967157816747544305907111310588662718078925456052415778816888488771874527147223222580217485631529204454431092972626955493405615043365506420979935727047726984820296600034933077172931732653177779492277915301495251290013785383875441033272428817343764130030935936848990249056071038999686830496554369363614668437767111363495541209649713256128652152075984465126779817568821297057753874512422635770771045530285210322441398095543546706218217793145267320875232060548198066255523135351007669964908588025579183338895134740709694158530072502675140574506771235779681844609879175269454637131520834524716501354315933430194931335209105130942146847014611315574022902509277403763664841685257140951102795850267468206790380739112674430141398111509627054859654125110815085526788409465059473579911434962297088318705291275250190486252702443527658684649907745831166097923331079940464313440598338990400028303421981044957808286642031137809222660479261940443554869497535343727497415335821545012638052934678178840278869368209529017586498698728938902210103788055152543574410085854442933169598743873490899686423883587872244967054980111721235491041522090718055314449764904679568009773670657882581980264252239560836866155988082374009957667686788842122064070592971601147266826281892952861970564818833989585342230219951279023766792526440663959165485070700647558004909140823551644393573082106349125164489779725431973311017781018248317821167749277410742274309686776454560664819356294759326356297390433314681927031876550074391829903226833240523902861895330702879266947518675515693705253293820978001226267637603311966282474762173533456620090003995333522528158163797287012242090397273392106141573266440949180731774642665347803794714392102563555842371579078722874896655956854738394223226607749433145584005911857564207035494412139093024267004734579500174651542457180446804859380465694346690968965999066749251613031575961756795780997934882803438683752679397350955817285580749363775663011465015954692112272436639615496441968241394576045956575669215415820024241628597228018272781260710473850792698700739677033769854741379545924565485799955317509543585957724512915131866272845657553918354429940399784913052935136940989632182297907741739956421233797192326475236792491349725845837402486687777802310582285907362392462146042524447162290473474004735696047914651146233593055037500415468346616051182910139454608503359294380285054797033421844928178178598516332483807697191040456621209980231957307156560323588181511879533594610388067237512101630937454975236383439480564807472852667379698641818393929182135842793597110359220434926610527963206263970528201070553622288856157887843399123696888159364437829645228716456476767107235053225208313211444186764898615271327181441473251885471835300294454169050976185258608698760635931100137861160063300997892763542621607448088282127126137977155309699015315921866794102983931710896973722834024341628240010854567982454131995101374730278316576133600960944042040141476355933707716217297648576773021129291494910078743154706772135661825937215229983627955767793563199133662685946080945209157436976185890287658964092693186314310020485058378966804791221889480483039765246006479743733996706129388785431982593885535093279794452979629060327578267575782164562765989954872424453732052345337882017919189440502692120129557162433575693840844658014242449606919053864743515718796598614492041893919515117912619091080559810614835559935286690095286194588558647002654880854774762984796160202061841493412306336474041106657901785716782153926199452905276410683068596269347592605253427179317072126919194674831165731971567070249253754338960228541782028204170090735316476652634748268514416869145484739153213369028357954561287468629318610279072987575732529907054527814518974558607570859600567210146941128646611767309014222424227722794705832176665806201080846168027528705438927212545002142460655471144064124121246540744637726802645885589635714086112656572194377520640138517310158412554276453243662847761149274157656336028164567002823004926812484775003911618349986712086397968986076273107259718504042428605293302611053033137600714723235705349467578859836543149607771637310914609709201490665729290914983223250813269471009383627421202265398955351444483602261628547364772438182481027630284482139245561827125732564998490231947884639710014867835594024152203135334286531534814237648138868692472061947573773206155785165096102435266184473697999404406823564330101137006923161703093629979315605333619270110761236984980645441094335752732250151714848235578108008684820737540109945286005607995414318608282148768843594108014281306856764659496716995258512137086570443183507877472844507843542699927213573939783103039433248273127388930913780293594573039470033407746426433744377840269129693845015739001376535961547419789259826587598279262338426361776221039259900929855535950662969717903821244861762344714791761056885202621176010506000883814631731308759581954129909300524214747056290458867113244346992368171875980980293828889566180633964638979169653827944064275216508852420441770437626866606293303204613538703043801203581538813473787334977482222167879060251860725925670733484217721330924325876041557096877732758418954637690129631343322844738263750622980984042496001570870013924066572211926036100033425181351656225087520927789952545202103420649426979944831801997452502714557010004233575108956308924289667546689770030115832554766232809628552981551736278565552851378213749332496000434904520024840963987199516443530485558892160655720329599794026475794715281963154699826097671509758524630738830092559190659906184939639671214742793097870430870534843289920881840909863639807751611877251458330268641139318689836075542378059548111069446265598453404005738145053556629469233636638434264490657144671771586156627096510342618864152837302194555896620293917386201566268179798094201029163962787596589331026287923855505838758136693019694875347471501042157077908806687921748975929221224382676230024065565147371793089162926898317341492873052458774157721552735980526823070099659214442500501470160940240568743893036583217942610485289071701880799877136078051580100404050177522867213504662572642256397313405621951826770817533116536599456917614615056829966598775415736562712003445293313246716256665532590253250980635512652059805476196977598981718021711064554013929499681531189075850361708272614107983935615829946906453776608268565421548274278211849022127060629204136340971699125620296374726240559371945146197217732756916898233566537213836192508415071365223418891023698387020881177838349047930256285455585989512473223388525791415815851761867783159061141122159287805100771250629064252577466545253741780411259699829565186661820691665116674480542365499292897660554082991531916367537448847916634257233088976059940326441151848502243569812649764289357523226884466254462534196728027027437776372432719775399004654679287608577118080139703074072711904189936541729866180358070741508792724286242191598426772890932989937922013858244608021388589184687119142363802114290362023947801036441480199631197369878327139159199317744198703817214016791552215891816232151542806785869557065174884736516755567591359654182544054807318513243172117769228968754654135035432675733525581130610152919138271186015130852237190028841416491453067313929592380909670645202323560667935876040116757550626570248891169673758317627201790046040026767669274962786211089989024635802037607149194355766365368227099460281541262628793285298002885597497217949993464529712308810525803976604713224700964471936549068439873504850878163016741689626691607264770116727765515604006683477413816078781801238921267251945236372453780831846883143384803082516719814061896808905248332056668746190148326836775881876422780524568565798251349818956923459734035945694011322715063813429769410405707299026238229719012789684520558580715794478105907169394763962641896443592635067298215287915491127504769895518786258080163960357397873470337183555355488181503325870095522891388863875089948211072986912950234413192257846105473553583701514254052373847786352903324168347819617875959179994460098734984419549511587999305798789929034215779528965162606317424987255309584791322932625046640813348488911790350324244839454671604916984463204638838227432753804269230346515407052168798111194275813085543300825876847116348091375648664125048722807218985370086304993128766896566822654128805313888004344774082467847681021072670628399332501550446266860717340084211667020462015291542542784113106917445751695123900985782352822744207544992928196500047678920107815331010418340944409666329807177401108579746490989954813151596064034800760550664209849377084650516940883934128919833998856519991180056147293142662930638438631588938625918588482873849712086914142610611436641798548233803235628754847999461913470019898934059138918384936924472302342100460473767023329529593594465307872060371654442385565091905909450950174515312929422421499347964400325601916881430589474075265650531284698717447033347578117833969281083505885397019511723083366203449076422574911726611285294789331418444155549857002909314599759111872963131822479703352666828878246809041682882133690389168996322104674387295397401953135780716898781126955755586575876171692058683904576776029301311024460222593720335643046292235904494588590464995826736046671335006615439346697643481266667093512109116083337939337267991603185348005631992980235274187032122253051585733033962781641558883888949400770542783635292870479329332464771064454037368235590959136418722085792608407973095537044610756768816408737894928805338777636617366021335493161690925706176826307571282001082715328455935677816949553157756423865213456370269568558220453263328891204409627285934760817809796662984208836469291539890170340835544884707935929201274743147054169970571729412879987482762406780679860538680291986716605814722422183834360051392816461831637770740028591283667611363872888766686245102195963980529499075264653835870041041557005532491726060669818386906091517176883320252093672196493230313690903061352945728658397368033156987252778758239772297011670276977985883246768483373047103081178395979320428608716793054564708570447618827032971226140192640486136460954307468147883669949773741525860603413468560864268364518945488065850995411954546141938427152031579216173714152162835867053388841370390632878466836799897336580765980593736232410667234888459847221119915950028361702404501335872827086203310294672437721351007260303007939311724485450886858261048193778992199378920379607924568779293147669055908581789732742592651215610726154709889299831774798014650344391879068124949627396818735311166573137320682204640476787078948404944544899564846651609760604547354470052216823920048284311992390626548602650448671522082769082948589493791575989379068549187987228738480948011683038243283162683376504700111567435604239052396093371595946073374078870909786191058630999709886258012113226852927550429213218808611929527476336806658477791475456404788732155888003966664478003244615212117946725455476342170455986433765656729165203226985260499506909394580806431947246609995281473236059309238505502831936968079289365909579358627564377011158410179260977732661928681059157259495841363106280330760026966057108020140233269716315236057101432127065916260029708514615774031734609386424861284132015749095599654110739984134447345650697785899724756685080434007601438915925718376750185840287525323952807321558151518812809079482714038833024978436984322732632185229475022676934534025306662956646815399851132080607785938557374004652649796859928359534767277810863467161781473677504487114097274531453819622118875637622389997441533193981725653904906998072414979933200357172905079894407633765611578062822200439493783592691557545026925132132194297690447636015433432150982919131391435601599252020009043134556453853667530183845611045903157743747950807537609855191443402969143981470417516269734580844300270216695144561829701119513187720827794321520489761370884781595257352040939655376835482174297645716025913155136926697533679197475357713497705792401622419946541851263718823515605830314714076415727016972748340107783988079818106212498086035924643558687371621243511845252139249037821511028637194731433408975216738542419604909465504379492836764604304473274909067228464858801629137697110655271491603240613684095796808257167196473091258805698702472455848798433991733780603112776851222631537925226096225220561543264064440078658349532484912139436325252227451654460404871916523776068009573111048250562892175353153918173510020596419567429903480756184902348531411779795341232112376319883102505163863141622863147441089305525474237212868450906898047057308794065775647965349893465811671595184312862181846668168599307463861257998188840304374893272432336286569813378193088220877461054488312066326201909758163881697127828318265484421568172722440990046332072360905882163817548864877204016538712454707404452650585526800224448434394897219829437844388156258646169594846884973181080365856411743780851183999494090648609570007383705551889308770369455062365063790374996318249863738366896679414757789510383264715908855996467378346698035278268672901957327067445481185359023908180000482942835683593416987370331937334537115215612483273994651396807000047839007510628899935660182701139851615969825289646554064750899698984802528750230183094886655556009514988520278733056778747743228907822834378838575069080055835999701234340858493815969151526084895081089995251887106677241731692344495623802876000150518429112510928897416523196221420305926966609820318057150095985399261407457587656217465215741118688447948309639592291856293267653925014560616298781663262141065974043484097446007563752517976504774833091848459054932053582810611403367517506270806005218516597445082186605942764254353207859948822855366172100594598051626355045115377811099212383756513459247219668504769410243676721193808094536524555976281401213118379847092861364013120405163843660964819402075495154940730728547292293877378943067685305648211687125044289301249674668621617053438769903234868088689407922792197426687914069516027826172235997314388214849014080715857941913919697357290079040554544284982990136297031005017018620135078294414313991603119283837069000654834099014594837382781762182033923345847671381654401695306403397460167944937950724362194104057908803660295905304952977443337501939129713394123379327855032556348504204446662684150835665224516328091561806813100746690407205831723604760602281872885224139131272504889099208808406059211481757311928611752073463809733767391815361181262106145343708126042904247328412375846007610604473949249788017898879473712767731866511612623251028305540035906111263221964580530034485440881530671546605908166607670772615078735763405595993856848843182075864146275868883015533651760437696244687160187831093897179255599080774355452302481971334243685599110568879469492397323981679948361189203550910431259603560364694699325612226120826374229105452768346066863651932376058882709872651644945507283710676213361667721404179426113952203796524171624731205932259919501139115358455188771757193826943007015094801433031036642619281356032901214658219621712722643661742939948936780948069222218197136554721013663344242951337970710379410633421032714631694842840886924559553247581133751609393751560883969175845273032594945896564694948802169471781510137167820234224732811446770226543893699667369808328538326232277332554159563664214706279631067842512795628191909855301206115871134326457668152382457806564050350088803659987369674067801854433264262161628202503087732648309313341301906652316692528319654934303276618065140040454888102429286093893221746713872701964586559019417539916211649469658187653663303160391894750644033438298416622030488403173773940522572029383892735654334686316251630077249413201298348539917664605760566827904496535463152366147304193005998620175234308058596444310148429762681284428946092160470629469266595465971978032950977054569632524081171672506271603084173987893163727031838332732039586478130404882580199656991073852047016260815330570503794737289411884286037512573516722154247445273076587782487381495329578958630168463926499480299318093015086474390395977386941018071165142467865663921330319848601434970244838778589293770275704785719241089075318852460514248481739529569398299022123571608463553808563775735825472083790064404376599518251479222620817710207632306582692708687437136181896347596182352272594593025455905750555848767529604225404472383797979530294761049629406648996327582316122289402030463682266493210056332210863588798764720038720100742249352349414100358562026174513491854276579449067498655070996699244331606296104618865911684039891403208961274139616013706783352171422559869359210570055671816246217571617159865439274196826358661298442889153040639268466446092841342698283685222429859413165668162432723940129007956740181201245187143500017928407111818341257550998240401400914232789179595393353736659627577841122111642546087950839004336239896131821350543493855735018557943156299755953496347895282596162615395889949070033008440120815453958168850075422683756730780000131861135719147231463900848453297088521458505707318239312055733005891298397662389704755904321205926313348949851034621341203357511467354817058502803109664202525087129076559247504999532266201066299161449783962791288494717509948931541921168150947719187411276478206731029484222128621376493873658744025968743700700807732083685839296172084777580937697180514268304091578710095262040835799076369120322338225589475232993051000072558105488110846386689621982372127505525907864530526188487677756685290296473325872370206517961114374003862493302514602806782816732758723250180862317697221963965155100541770284305207107542446332045597839571583359957764622074849151091664900884507846206769984855237628801786583982629859671047396763333540055877604662938228314794086401636132395832569348567085734532163173740825553554206441206250854097586964786568522341245651521084218032485831579268499766429870985570776906134155039398683647267780594765859768393295232718273157241354736786052733643309636869939141493213711786871183992366947645364575589654567511764652258787348166042518921277107054647025784237539066559097658617186708493356460362644921945779005763619544959293177919117212377042289526565271441828780519621755079843780352303921365692366093388337971003969743249547652588383592270939471319631731918941021172996734906292149684265035519728533607255202865632100495892441002334535971744216813200724620627429288986218078698997368360630081751372602134180309874079642970097709883178612900988484264487547015339174883381569972086754846655674974025805916099319120298285237998065396588038962915313148862244582602945597454862507761570086591872525010786479399487777937407292829225183081087099453928042730755945547793641021675997839904034129746258972293629549699997444358497640795307196033022401436277446450851065551099998752112166653902280032891113541127947152213708280504605671670198245214513252280739253225377212401583532929863096706873410684905314997639200478150866833848878740905787094116545936014128738556136098429799506227287135732489060510642890445730027509894418698341219671298780798226535317914240572899850771771582455902659718489057234776824568824726475562071756214960768553616478098946055560105175154663226020505770970019246004254662044356678651457084110259337408733632193185627781355682670847504195013860986276810720277666713254220429062039355920471407535734071133087362461768107242793442731447869883074808825909918141794493610757601308747803819290475696872126507406363592685566986818180308626701031764828783013229246327273145175804957570500678628948146230065411216816446432521922019807541835256781159434675721987796982695295826377253860982742623501559407174776814139544989756371280890436076465644996331382930649430535062383958630344291080366237790362566892485335827834207033050215359346918967518181501503371826125774564418229530230288502405063929382842189503295304218577942103021687533566371367730308606241912454739900796843309463270449203164874628413148719884922372519183403227948547691965517221487708178205184962853688156910743136664088723870388852026716731476920137098007854292302802694771607932856251437509865800210307820845436286735527276973827609713038094017037104098643683615783508046106832009612342028498054941066808398862707905886393973726345478796809220796195464841166606015234527494381339925453600003948758571861813408686279529558929112463783309848417253875250471713466054044602651877452309904714383654986191418557578643334620111598737570172845782938980748420463394062741243948570300919564323142407915262591440575327627125816783377533482901138932649986675440723470200744113653485702013401668887518549646052347166491904262913426939471059437006208452314294958473813945058301075414826072117190359934184284557319843894546269912579485510701463271245946841918039181033077692046527058804311591826443776784582504831382308885109525415350707453486888245287946960040940580763626203428691999344414844706000123694967829038225804416503670885877243788937139678959815319691768825957080970616016624671237297796005482929878084696086823553325778662995848175167837054591142672787286539083533098352926737478256763681304737431255555432040529443484817520633273684618418236217055225366650770553819616228689172468223594943235305168848979796543522813812838251301278408762774943687157106252430942052569812519812395306143444003452673899547331550845065571539794938737825769317609605803664015796403567950383957674085825984650552933990342543565733156772763019079207355350720023083993029573389494181513355156570209246512962336042208384554940378582540215372998640360708519562126290471023531326059397210944351395665044410856479667343751391865814466648595660642002223045005375497495824886848693788922305135023493876887752533274817577916692422611381684735895690895132168107702806520331372839396887826007335853145977304434513897970444024876622771664641263163649450384404614655757262445888491413648104873333724438321709342224837494141056209512387900415286070340833424722588203730685426180567790881362406401862107608331806378612504404881068201782741589226608518098170313590248083677258011796589931079557359292767234424353786687286363997130599776626630381475016091341448070950076027364222630522826350837490867920702661906163337033314666086274277147361796288076089125485850502861304569097927183646183563421376947868818387417083307300034321300560691213976928245597034553194226319214593965394134703513700995243456512850830768292062893342563975659537467963281986553796705583986296607349108812860720936284319225122097033816529195357300969295372860370327991870670696690437785828615011869148976206360910297750738150342767021954722873486580499630600236467935850958863107574155299368987880986445162088057363006662884075404007488171462067019921888316431036836739249995352052028142143092249885317780903695725571469099523827988609336314504577924045525401366820400066958498934462194262601154944893242831651534184854794621906509766720164240955424070104896022675328613954132615248644140905574684352667455998878178990766022677436217020596459132449801834363182591712636586447173857919991551446971450763926603035451149017884383081786995094517182028834047566097357493870778973084638127326819397488221441679967619969387407602490286397879431629905461362674212695206055120268809272503755318045667300836710163786106086391752911212613396093234655661023281136324443590355684406890552799088141482467888449470228705432393414941180078306680148536573803113108601310361977157403395878147076028957759203010825660054633124012531013717789697076576002153041763139169637195664072250152533957630457381140823987507308106063794398243313690818913986431225173516977464415535058422447415070453317448732550720704367664848002664748755532672548968859176187224355783181788282985787928900496580122056166393213880298901492692731880087507341685950131315966351666477175792731698496583259360607146768980916928080438571398408706223317438619571936280001099678381559220605004327928254559484280856282343115854522880345308322817997004912084717729579188082877088044366900007172842496830932848538041611774536656356729727181299495556007164727295039582854852234087768267490198521235656949625361468009491849524386694342499172392659831533029641268257341708214498309714528837546034670247948912570867152204398775370519958772126531083713275985224947705124578726552503903116603947413127949138938171391338583754611187184612824265101565939440769893166290187410952485797268609384595680953581139170747938610105112213264172773156509812031918817513351759759192962539082290537088977398685924871822527698751431414046140558806154047927592491079892165415429140406026779075530384007856103409835226585128382002470593963704056375601142894057539388649820223513128535895874124724891363128150815776650765232642871151394797345431415351518277847958062370656935326144616335606902108440005625734877016175648623181565850783240180521678694109769763553378126661305717317432778000998592854434377702069618032957467220389558895820848362800737833549180248974785617152260592623966670051714554601640184617369031286586108540659935534116421874880434069850235743270834879423755690628714257348600582668879615982774046873304194928719631405342223457921204643974974143115498183218393005644895982474401440674744771521156825695785468102727365388196219068160458002931614489820990698805413636774408925445774038946996463043653350533816252375221596039722327827444807881210857378933440779017385384421671112812554606779341934543588645899836884514048990698500867850807179682889438724679007095464087416990635738100902740813426043167640776075863817464482632785549757842328062454199651509363561481140737696230265285294307176704302539023952479566657345054889882214054241409619771717840992258497783772750166122671384270738570338700754086507464615341893651847055855501523187541574948561204937985834343784595536554962945675889007969280621290276990781556992525656639395433606226703854722371980071820631540235749190782032495407857808626147995827321394737715843307575919008190521981929639295231951037821182258421025808178184929258188628611530924647959543296611122186665659142131386957917136391041844172524567228004907689517769322319209505663835226039915746123154237143796995115089664665116271157215949354905430481645580731219331412403338831705500691929101642484533104237523531370761421293408855601467303201084834771830397998626727652960820267272295474597816482280002934158235680167930902907288631624257514187978982455900230827823530443980739842410913577977535762026404881911538929656671535966866119324983805180239137555202190939782857275953511768393976895210718166032308542157463075757418046111982133083479615235272672412335720178167855927454640251175574735376495029380003230454557918155275354194787635441963569508796625937217127482785502023405603370439608555003458522663662536626186095061849824762519913313297725342401163385066164402230975277957130615100794156659051461930755819261900217815047277020390497762114346250437834036943226200874973821557268710057194332131395762922214477810441121293678807346835851647838574292967920002152429429726018147804843807196404774966099064507814225361845974663101967273620881869734143843279906705996805744962319630003255312490504041994356963237224542859187553468843908107979486662361120019758981656777806741233031283067755089185489507675825801129897979063217056037558997953308009696821846405472170103000077324617917831258390481017644087435707916643452569833099849983864666761273934668344420065476725253946693349831116780973949757296820874659478967796343821087135160183933954510678459565131882006695332079102771264437433503240378157612585147846548648438350488179524355025096753724719782920247509038697915027439347438356566344490817205284573539406364284904320084453702167638891443931712278449196455558018906048767088327216164764946052429111807617452752312858418615213572631617769656692330869786379799854641317003961050458504526889760631939795015292415120562016519479376883659611142108571420152836983916366945359036146731166168530597554574538491260113570864555334082978506882204151757749559188999443960495938761685887422560526781368654400519519733791443913095610571284053576246178334751787094025371980711719122332094662233012628533162205435961485823199123431155945680308917613879435531754966142393766699209593825149335468474765974905942409218685644030091166021124377366983301206761106982609089376209899579419980179906826655834324757017914118912142593980115961776944856964522183212580669914872489993365188734673904472714751701236782740519997315624345545847632849022413169449606389124658024322824052896769164183164759436727082704433190719397428124655585299360087981743952771378514939989634046257193560701899514401135867473342561182249750316779037499801569214280844675225201005113258240864514242049984327916081494976478024640847280123895355146087635295228779385728908578569853472948110309851650205370994932090806740438205998020270384550471751069136538348542001079937679606453673948109805387720757212286825831843887426232935980079710532951855145368843519904896720819552099487854872559103602853643089461020270095115071925371883280642000119575465024328498586407932354629550809802810597202436080383344410252508240537347508579254882578281307197230991641198268693384731466873390286086370527544041761681197874584732267354785730194941047884843862693040397732021508070004304603167746857185467687970267738278933336387277187517411743629136258204161341159362813378652261553862828060382223224409982374643859883283303646909304488092116068801815690722300217648463578767831934929743477528765679235568404437008186928436616473278701684986548883270859243776425595871414857684794303865559234068806572369223560423696638212996170399191948334917989004413483313243319393236741977171865052196175169012147015726631712596082289111785698715546271463117706773864622509895064609530568891304880303846831978840945133756309733323935911155208547101736925163390747671490141778463779184137474497982112032340260438020819496932113777291249318207280682232635309014185097382800224834085164612984529813976896881650017458902103531858440710987672387528400757857154195544539552048054094270717022127837700003047557470149895189626495684384123563911167503305093003215393628935530296281400004871303759002522605454887697715156321241879481058438274198000436857167979044881578408221712080293515878284985554867206953031485391355907606788698283230259764919336928325978490383241587721533783048141418515984809401448072133510155474656063808795258950871185624649946882531005889433896298158087010092649807106547756399731855545950470905101636829773444366001092603701487901177727932709591062744084604795086306123413610004559078828542616338175059486691807747905868349655954748658988417821195403173354141667905798954949377199016158001516625855013891501782189042752092871000567547864423162866930034662970359172518895041084990735307762724250657317451476164024704548265496334551225023352014262577859014266371973658986931061744138590744849474533765119165161242994594857805331328180155211000696693789548751688566490600537905682999217467527632177529704065014789759806514326913252140694443731007325518623190191823333179585907727492499166488827226588562269422902310063323839404378959121250539249662206990237495024718212208028104763887201622955395788946709489891962333637466540188948027915416643298290091880114493343730349876135918519565036498515976982237202249454378033879841299638315414401054952377428750638320651576418603210537438813942372770019329684339811234763501455969222926175114680150238847316433838643167307307112054909783671239532944573379860728018129090764199737183019755201457619473418717897470335574540105102918027999327645645742777598433615388952949918704142378147688520831462768795003867039806405353001936799198136601886289639215904185602031331547575103840918829499829122493612463649682287843993507228180054592742182853848517015501419813532590118506538864477549458542375651549551363044171587946532190868635731860282135734980900664838163906973290081552323141826649354383957690400911605309735807966330140198870255078053794034107823322413265140230409171746332472032772431346990666434125461962101534678535013210469080537547407665720893055253904805764501768342450824334642469533850333435224492172439828596591175174456142275144011851539696729512768703088133623842627766588957022450085530175899379962002676247023104582442036661263937734564421814676429975143026225715827190325962617158130165334700133954444797300701763551595122462960017334713664779728085885068949740016746893449355508397190724484224760146232735753510222784938652272072512223537146539655720047248654352767891084529375853082008374415342966539084340864920763456508176905278007222834257305546337940736049615020276689935235413821715986500130544837690499629344405008885022580341644488948672500790602944744676902294170361772239948097667214778772354331781733604282243916293897414315247465377869576057164377813744146591213895789779490898209406214858651358941185195604913982186101678199765750287063499561275065956279086221483952161154838116864535953522286374629870580308482205185071235164461360616268325998457063487780771106119568715232236195857980745427053554141308439116839788352626381733069593640440001215744670780633484344280266824335689928959442767694617023850168675649575188398443767996961400283200165526514548019510583064519419042867757831838388578396979358707548916237268159601399906486520512209802980995219808384257559888879526226824172646680902346809341093556771671772972779385995369916933462524362323539854504852258156518371349929014831264616741735779696584267666632414698099381905931676841730021346905706014163663435769953202131578211635156661199290457919325811836887309454185699710877023398289830389924845341254312942548173715415789795223612633900853801111099271286217980604598739845211117190534664234376218220406483368835344629234602528519069094255258548909925137275339853988784497437108747404395341863068806882457623918200804952389033102513305639304711204665037413854793555672312883667296679922949611847516205055137764950530174841225123222440249061027249735677616899162088767287141005344914770983415372814618453645261434087118384271467068469961127601150163392070939361887652309552685859907378585253649133849097994363002274481609627944802785314602438905934861033100316077765533312021413692456962276552223627648110075461114892099523213977133678768243107413188104031757198701388099296639387286604925227708305634424665595192369649035173838550012677733575139948092226610836237170510265686876712988698950225254472883272809782448835873684247917500779759704249312759228515781371055479793866689752407313276401075473192725890363716097973319786219416944124206383302793725735667176327722547055824808181153009561179863304300461781707317473883886899303106965650466528276396493041616020041405122930226354360245513660533573807623457639036318780256002845269500890302955212798065749593284527762057342147562968247909858152818573854236165145122855707104467331454613197372107140846694600394953548369325797546510860931513118385726579303235129966064430057158057408689445288558167953335305387021908823387586556659030137115381161561576610811823632792428386606892353884885249215775066270553180073658365098218007680236461588186855499785530604861250445857025339670328717180882433403440857556081468129786147009749292377879562191202023409074429791399911279475130920940440010195560660846546259799958407756509886083862036095076621008294441508265048624731657825232907768766811031200436092186667331447064025444019226263125308286562303966088326067964754453373867342220742324165664247728998397584366615667037440126757285170414869831592711329769060614801421428704027951046395949457466715425814912750910460488597255206553068192202260546277486306265659785351387639069836209325935963428616065507893668188364487998452505581675251085923352282172366526782664274200314032286537685673499741986670402720848224978140632936624150465305106500654541386890089842458836508058767077439574968259287920323634055062548837365587911632812365069996083689594709523468854738503579498580271758799226666663582619175371431299727413625551884676065266935772646061515378527413515829513166962125646576138366860222729145283900852947513783807229406696338927470845020518702027681063165000054932962678442881668771639129253683268854786585531468448469419951905052985371961417847810035018019134857111277341117298544275032683313023344037533395099238740862477232913073930729158730543736238698583252248013823658846791443944951467590743150209003785198367666424188770753581738763469298345998795380798854062561910610685229048152820575761034147616571817515341889266880900593358115513044454484764451376027524027823409145689454509188040627968303772795998122671504023731992367567845072939119765753144539068597477352042770618195927116484608926957036154260050236367531283230019091187621299885717939364673409928254807484064199744110881848137598176046983699457461301267036759490965695220023615194127042578893074396991383336609255050918629620513200785277908823695819847685866726688385672658431678505337094076274730467753056544299089679509192329901872273428397964485353410219183183941010320757941878273013501346219959190063481437991220970332249447718568246147543872621642791816584869995664382433771060546443189964156783763310477459526074926641326313082576248610133364335923166825758572779526457044197202323849377932215386947139242541176722124415793863107305610648008757802090233674817840504359106558974895987359178131372067540286099804582980270003977695343763153408936154786098550475693796648453151772816608812156702127203461926328378264477103327558057386986073143973176047589832909647316513342863356322827635434178453886527381850180856953711298808517199162604738160401001793787349418358380549650519414623844241562587244232664568349923205088214508852199637720471355732386339962334574008229079367190174899145746699087686881237298127176710790980153417127268143456826666880363974926473447817873269919203681565213595984347230499450534527551404922522067746790284697037771913010736590387428605484853105370712209921303111096662807213993193263132314518095696170062935330528648805063347096576868872182588959991037089536588904444602500626832569136037160415557039337111513585948366311865031913660924957447368926094658965466502066743719818817638057788312025742667105960403686519493609685168187681967306095202083755083733386994786095786445639931118705945967786422342356117174894629712746905292585318686837763065017647031845278556432444261184223638142895482147367274360243214653487208870458603137543608319210312841057951719059206139355204399558574820103471449304432663151653366368265158561195755966647432615219558879719623126002946053566177360900889407844696218866540115433791610638450411590545901222103065679593949970575537513214698695775697795130265489988309411217901399478903195248751029960046555155760508292403975199536612156037062081803643321249485987803928965074143135164425898026726476482663259339781312529953013243635637578658030615663761062529209329344446019332303640876899377645846377322358018408684358282908845679127375921528386103861841782364277390474101679067106925022953082160140122630898685035968624958424453518709111958448816735110918344967742519121588949672934817682627070185635882475326735113748693301422610418558520029214112072332342303196973674326790103854157141453341903313425506500151951430504955262667034842974420383298731739594780543875325839481180953506926699905637228970757697609141768047774228148066931225802363535833074048658350848000098478395112818606336838434580141389706878477592484247464200922494548034236476751324250123180219775545346762289443536120057151525535516698029318991263141605557710273284621744768929287289767843268073084712449493225529104718252980901737837394503152823281223778653312344046909653468647149056754852934607134498874322209672139481191329023366222039913556203620954485153164024611368376043262649378971035195331734825433474222374184651851757123919792340230875236654857788220556396868618606180882101160733488095953354819435941902244490783186299499211556036987128348779787393905921318615922461311433529132485333239506587857197314298437330730208537296965288724074703334099247476636014534030772259359240531902934584609272590979868514070461630361576616332260431178633182164706499781942714382646165330136825714193744426247066124588190053682209777777663603974393909721763933019692150577943002073572271043287172264975256741888554320432596036957987136875676258723644310660730398103351024157881242610317094595688295583520977125547237800548506021559529910962852775714962473940011021900057606189575690820351116127507916590069124633526229331329020030646499529615735493290243724021395785585502001809908760641390971234290962952055555116821787387394627999872021010881332332742478834543514937250794483595610975944643821534961458406537048705339024239191183934731360768214951079229106644628533485463729013259079097195711013284472667006231441095345628809149681254521547777988076463550432776508599376463658395950868991587993692582915736162027081490675757608802544363550575777976138674079046376248715256927192556008982534128954259562081942802139246492659797676472433674748870153564561207358519634731535416668833121898153302903166793458453823792073606138493688463434062257195637061537415307963429515185136668832641130357706432900664008890173642808602328370441720408819903597870664317160806665975665358633177807136453754884027258324602300454283748370471762043246992150148347087000955103029843042377259843889802605984380557697377632865867319968190887467764284132117999791834740778124802048444681935047709653730831847020566212970350057642455075328842302642138996435041335885928616631035828005193393837239865525802723859748155441093034634736550237231190897895345376617949145679855189491272244334250307270273785092907055084437433197963733331865401557632592061814859203090738266545905536657445500182843637384149851306897024092204572120469801787673754915346376518302866148038421524326506859405659892880652767075814737127706436511488679178001227432149897377232766937466128102284006099527907615529749693025931457431102934673212960054373693848653688424350020656080648963385850900702153664391058947214909865540827207553463023057740213445196666781588283454347512417305292267563634030710438015322080876647069359402984509613616317780583859492297939333273846586896174733802926345994723917177913866654127535318265703210508070671165314312710892279195076340291146018003729633858303971714880099487518269917492529204927208487133917207094002035166631048402098927995815942264660581100839239183849623137798634166153100225219974653990789385448452680535421477887352037103809059490326166703872626743120779873689523632093989011495230410664645454861195295797893498369282117690652202137668710920319683262864512575318408972855185246791873185661940947281742263840018346097656067119172204192438276316292215890107538601016661945941252098190812632681680333478780258528884831533005075576275445743318410569328661145416241555163413432637128429541103822573810164276161676168149555686429303052225469666912927204522926220867989277924749226694936583815154885880108167036912749186441452428622867595235037210228677302951585773220735237442626222912879582945779963461111984877489795095726474985412917765126012113724255489572576582749366358387075691665618027672771181404848277547953817469750851298315814744939019065059967217563969641884003343398758916889650803959990960506176695738123097774448838482206195584386010592673698303871693453994143219444358293258166480145958945541046746420974436929746119145557457039250896525020638600639332609605022719174809367757835960784892339193221121184331605637156788570662284435750558098882695820460630963369445785789189521110626075100225967096776693175331809230701117986387334547548453425680199476290106253061900697981427527287629282259440315125114157198937515302330391695552013377680420315359624443423737609560924668351009029639361432987675565012080910702137406112946152152082826935395073437460968875955898827253926500956844917958403978829807705539426409465521625583068160762711364877519549982112723580714411126225478466114032841920224040802656106101251236441006335956386331097870543130547470697414162567880795294042657977161735291710285762053679604744749383813241278687685712686807453043205107039416261278352126618807515897883155696993792944736090166879321034108587424891340074143533043422655770769915075261547470929754028902200203866978770063094785382202821936121285117196923293573467101136104220057681074500329589353928218627677134500767701644074637883723398837408069550605015497545122109013861656116934350395700029308487845905725617612702441436517752228456943709775955842335324232964605661164567387441306338637733574004727995177603059943584361652007737593534045747689075429070786877638633063780719956875333518682582580411940282820314744611228214364044531466470273643370341274066803567907539614519258621769937044904950612615334279081158082028653037561411154096438116623071240305641379986183721570683132215334063349754693590638791875561175383713985958603239772219687812432358864859770837175221414946166985743779505138007424649392488815825139897831678081924265883444424863593159798889542778078764999925697931602700677372398498125423161495894469711743057519389077902287347460472828835557551053790713088141066970651877268725361426610506166126193053323827968146208440620579371635219381681915053547750098293231348068623285907040009605551036729591276566703575872375682893896071632275122396423131115934356246830326469348821104432823987384322721553450804688943466221622702024089587845376997668828456027015530786112488949271006124028750329743711603913803954956618035753804339663894512869812721522345204739010399987674141344246249153125187100977226799676578735288582684123063008457895310364093569189687701058731202214129434472510248528194426805406545287501028814428987382380454065790648747266706081501408030244474515140469307077462462683339607099526623835525597629690108029865033459071260276811985349268482191652850356585616014817635050032806950402699518926148422796271864468252076542496372729857812418239011356678140279522869367952480766106203445029212392163431823035008137033835810151324623036855921787351051009220371557122466751789389654809060587517333988559887109322602825253557310306894520728254199454382501800505646922945754230552569998709287539010230488230170543936093930499834626250365449971333709407813372281547438378010854147861631815603748468885051754813604377409176659990479806013087438010287780682386451403020130027563359753218980719919445401157081507460827200120739025691740387107151905267725932472475907272582887644427752426184010149338328448130369265785368658857039574807944701397062115898940911012736387649495734961251784366948084002741057449219998433065809446189100668477444479616482454478132847458441928382102770000425925179610197556394738227317003708286656857177490107830016520826990257854346427334760906182371827279952705725934672552228558708719767341700859235321471197729889249946185701028123254371961941429491988787144230264098978091367843363638389270301041224174139206560116568558831787970572048366498697790214305806713022873024032108516605799721245070865042154896234907627307065537674025595955100222157918781324810514052745324773209454000210119874212429192896591956933312886215075719131138714180444574107118948326174837477692126428180245709677236714909612815353486367265151300809694516260715103912733002620557217009683547683686335918923786058288548391456897174906896751339274477936525640099500674120108377155429313344014690486243466556783097411041884255459762927762464924474998307269993926279669711602166370206119887383675904123533490661952217202212243545995574382223724831609839532258608062163339023736811589580477539439634169517120464290825406916520639650162697439867154009553856780616617096928055477936832878520438973193199241290389659758283150465900908123560957423028273344955698144442444938629357271776174709024838985848035065003646220678645282374132704808272727368886117860393278520827679352561776380316193093851529350098531273809496807899375286856807943026736158575972638872966886206779517424648150594921746093738684568670012260710706674578241336811692347188442311968717648856204850005728488175030109198119550332913396202111909637894797315570294828780870639707735324011997716585466964331504589372155694310270860878446948002508763121139432633807182735001852706229434659520858986565117170342178391569854086292196890948697435399503271131009709674407084602939494870962932744820056881786027822885761412287191689150658487027988321445894263442522219014054211607637935128170608397748190945936090845901405997137682149864720677727755829517926249633273735402603140124677061841918116390800909115176833482967946578753834753871138715806653768535073052032519664317068852142288498056682157927982989498796698257608036821165956094667813800364022251019413196531462617538665364664838364604876226823472054273354185650259991369120059237542660961151273038417340118951599600034805883593419407583595395159936912749844116532056306910427122788925100259527962248290241295675885963282886388793096509812188605407207125585256090297263121592479553592902298759601298674668557754044322112995351464994802036463611047376144656559614961668911011111709188246936246183955394232926728282067774804843878969442995877151019558718428063257699776416145943457389815193504427656261432982423365931182126479312564095509349976601388437093187016676091588658885189549423273106606244595218331208770486948995552771919287268167916771715932799702740339981506522551565682151577438678295543541637100615715418464087296882657939929504823349477350107880360218001355974649378592222689442147876507081622904512880579344855996485329447934440738837265533722194342507666497248422702897160581526305077461583626304840763616754493011806654775106539319236100243783303394744314319054771868499789417766928450871851886410549440352128357606511938434931663909275204375935781169098292573242313358545817176781847051629493448125066055472960685194480955187825952016525348956356228789254384776664063509181966135793123672861613404144576609940131744136813883817032141918317705862465089813257456357411562444053813528445702601310216502184297693224058541045891209938495806002753980599485698712796964951712706426867419740455216204367842380959966307204691048553648140461629826061302663184133419734976865214752479675757523781983250205049276214451880305967187800630063993626184289391887250034773555014856911410678684321530223451294333206172726526330981672385298175652165176644668819951691862403097654126409315006271206527652015556298043373515345685991551280973815964841827037975730586104993722584252093423165937564957899563095762694305389822626377001561582140653267549400031801317981734374186784759818553364364995777480868448363403786604956865123115767442697643177900221681154226382182405790934585191144876529313934053423357753325074397839579798020669936921468936875748086384179000683180733519481142884560089878302836299389994577386100468201914132058782484506024100601942885101246189888957280376238648596970141406406028750586607534343195311790310263056820070814887491565761685075787434534034434618760031760409511240758932957611588128327391914266443797299900446306057733763718123189238288011603090098054450631113074817498864154348456891018819581690167816307510447447666088327902353427318150779259115594966492850950121578049377056116545758496685618154908274959107372688983292084006280809535539846475677915818022702925850878912504088742720482492868153286855361593042073977322152895198861818350054258160002296902851146622666048538277578085276935570026310081018225636095388359538504117668228717077610610666298302812277332398291350739335494093854871791448167290830034981387352307181578182279604937070560617041540731895131744351377129532418929447184038018453002069075015883843727812647687966320110065948060223320697513964742795379875831976872713378285375142830552253114555661530850754400383237511084144217047902352193902030439916972937514285240842267643303835651104952543821069444100934943801890381608396336208301598299089080737784707490869160132859393691951870887328393809753687109918965750961555840722303865196840570260770825181842627876135779321150995081203159412512052653406405164573221854728605694538087286420279341641729415673170533917890244696441283673569883730876460768795670023540915797522969585585076734181523977727401001057537042531936479476414665801647376253008257941672905508196318406510688531549287825218727244859447071446286285198167286039570716869417567564386852406276009423734801850704403043833444475760975697201880156287241855439710858012020743726034454234762089534365939058341695538556912209537090590120867503455094621370041166906213786439463042219383737353558193655176308404248519390464322975652567173177647417619671869772392774893640838979350444533558694804973883237912311249705006637515822837080983795315686177901103966804402410802902747245560209116044730658179865392218282746907744320608055588878489854284018709796818510715084600515698193939845574528225436591253067096858482671080322597425476802355130012038568339758653247466570606004191295690709549761310185240689927881578670944183026267031002084065513923530194510415033650971579366303032101131133767828427763135491854608768496229107169623809869445991782740506543214492355788848024817794332569056396957648543085185614520458964386460539631935519391840175232134555027224774824030166797568400492247345499511050351766283711161816959545540623889446106505491363295707649755336161966780133576286928176274439536602855621582301531120996439056553860308125979028588462864659504259734321477912818666831336908701102459007481473660540465477100816181129695014110383470147467778334083830801938149423994828225588489605082855118953095584049188777692557127457348387520965948600387014913872545990537121545028341915396836451625559435368058374722926185426875918632920797822427264250006329138883589901917099698464072534565685458107646891078152911677938850811378556966577436601061816076924470265880915117521979200281147448650939651420408886859454781382141770859424216553965919881704081525111381064465126235662854277075263878342404034334482225214617046316934984212636231943450323119932617323111956724652494141979880081890924700300089175464732925329829321948311127516374234188409256931731547158543798790034231143974533749267556095903111457936388382884603033007164501431959282226122180891807825625290410661037352304189999556188320989538254288513126989357168035921991338928007723699888578953544027857935234226141435171554738383757854839618362127881674739352507971261363555168773780316851720909745651693133864496397039366077983964511162977630787411159056292647897873319604164843671728050472756403997562101312441707676189170281646982004349464512077898020804285084798691723391414534919850427966460034754547752506283461573912285126196713071007694522325450449479553345505379387725953799399349538713426038463511643848346259849826035291796608667608692584648210528833849069784297201268343346919491772063846314876759826818736228980761712140888068689046906049880901324082839579817800130739869935134548877426171625252697860432191604031464688108312822526752102531600759672489130740609752809934445375605196512723102756710200616673639153374436861952268210656088178498213792220603779816068504333700303036497076646072662930118940076514866660163973680294377064236831455286161200332381435527730285051886162322428898287075430500570912473174132787320101127544418406884722350537968812903987576660695755391400881716838886163523257540664614226409784124637966455815548223580403724344585067211848638344730867061404549341776099834996687769386137904277804521052341973299787582011005057665896750528199326468353095843241719926122595605603430833210000483767611497322153707771439661588125041082758757045972466150813534992587974044713811653321404582173682346755011101092442383359345558723770748604663065289024071786319254400658080424539294718227718835249701175333185559601267254046845261870269811297387267258290167996464089639083062126134439977837028385634218138650570350340445554195071664040618760672090739983710205613863394965936987297560269781452955904287530303661368007436050135466297473108073190493746079124996899994115480899356927110102774374260040254133495319035970075356977536881730393218774051376162793466331986004321307954375236221578585681679626221408284818334048256230454675407460729640856847472698809821484921275251628100885324670267069840181968377808984373619148119643864010158868293558226238068649314936013240673894771053821042906005431439964027099965327258965895530073844796895389207778148471664956387159303837812254391177268063142704986174223905570782112522215265559982262148218262415724002579336047120237257638759880327482005342667111651503705652456307209570528179343620769238900843095888756203519709013501162287601885668677583472207534388079868029706445439539601046552295377100653380995420628058917191195268684413544226273394918591994509347663379600365477800565275767264367038098531943550135317925141532073822734138407661698140116287320968294542487308348834266944613337506005775084675818043865046990816148105662562572885774930737458731299341096888328200972743905901469197002285823573639648430538176291692919541743487728126707348097049582481027893037222088603893064142210371491393740060442613799376702211374646032436460942038553912194604284645493110679869300624858686710341907314500597063480659673740298697360853767094726326231565600985282011369625490928600581357082387169391492234900190509585171616256730105854247240462371308742680119805943505468835136154503954777181125603880749109296595991967387936161693947836479252693080284820792437857454731943690567441451400540175134189421118023276060738312000888214297459082745336618249079326322260454189032469808940957638624479363498260878460263713291947166353410780991515978661285859307431814390447750126877933685047064646862256956639125163805800835301986675452492155451312096092439301970834816686252748703774249770142034358585074208937288470600829744894119645427620564362662429832953933610850107647439624399106234790911025264955052581666494830571618932211318262177660384919253483098038601792563136092398792922409287607246590284287153885596315619772578807471524755794249077669981891427646345542837320609606440190597209522921405812331493405751058703667894783121508364405021872866382786928131075999813196977210784810701009527952151885864347764544226699284035283271509866295748463697305999568228634404950643532235758046114598768122355216053801303498948948439847549801336730868085580708590637629793615397345214251843222105106329658160259084522208655010430647128150868083161379482395003251610116527505045333013189549234784016373639785718426817358382881847846948234059268503149830801950450278064855415436993981722836634053128420645598542364163371952755022167584546528420714365062496783818077328026973922596075367544881991083577256663293340193035511877253261993893574401765054398629269809574875910147549252628452114684463733873483641217559148369149672661223620369052794048919071059116797574161831578486474533458000375991625041866655774162938650677606438997462366121653306387852524135761526710069713922243589238045896106289880614030968387638627746099623708835227941151150862562442840239473856261858585618780476906201182077128527763927435717292665691363408582940648898074414148571105147689695843113342958900812699408302573185286920499598823316030094586440818252539298986188714735206873307450787968912760493038785301098772176041441629054191688285085414073181159897226867193188335239134596730233318608251261630013002706713630627201871362675605510895473093555719566656587476974938272286795385102812144134199328628229525558830960880764117519847834308757060108341996825595038335246288576833352147978125554731816686707446782429808051122104727782081163564900622026754519651556346891895962078333852406784338377891261362417843676842171400354458270422546506289048338223214800977568664278703358186930730669980010387265391163616783385696128768361136226500035215574310069248336479731086822206419906958117730265658826651865870836453024795921376429392968612160261716009735394502595367393858880482557087738333333441555589462685263165976219812370493966693624237046352464265900770822997952596120775898275845590153713852179622279213396454300418217773321067368352078913892206990022749903431843210361751848896021577116448772228301753825121105711134638131377461492509199573199828914144289069219603094071339782867527239653983492900700343384238019494558570909781094649338233809658234200560003542280930178440448398870647698946898376934808236097784954464168112744952875131782979302013680356475742558053173516476701728915264326387538343988962484642126172669297398807455228178946759317417981739934487043518725155289320716238223751785641044902328501025541631925625889721192868168902093491909136900594004192101945980920195838133522479068514282119048251321694562070814948919036519369166202220306446220402980730198883075000937807435958094581898326246967891596905158854604377129743719824592830380353966969417216099070120034060174140004244007152172946423167963537878975362185181074772800141825504427008500695583330975029096109005943361811337653389660523337179832984378156183672900782525105099968104655985015277929373878527158202988398823039601440974174212476713650583477873439489633640507709811959583625312095019665150499202824127638473449914740720201783132386113010400675287060285013234264750395168790776676019265244539871518174738629364805715869582253545189123332764335358935653764185134374876596332396372277845563488012608980871670829662623315779762798988354982269346394883997257530749862403797696895977507897299631578503773639054765879766570879516255560566980339705950444194705280609568398383914507808267855401948687387801582254302917607559733223969023001388162709685015148859301665473851066116345917596214591952522455372631368783138146171324245370499020783646641848802415237949364500557417853353831223864564745531684625889614690040958295331768883236282119446025444534863461919620404108481475883603419191473775142952271024565316101029017572370892892940901948110707540564179860207228208930381898783925500007698492338237004467051382874451546686143285163778618720721202896285224875029984135191956212031556007054061482301273341806832349891502734398457301483652226042282568607148515166807421376626742774319641468481572503656041719142266041648113846789598085412514299930742062089010876844884954455299279836548385805511495145468449826501690153677969332457300986341787894400827465005055873350793545080510195367246195463936189251572299578365189631631100480748221893132859961939697169755312477552013430402978310496464792057749886033422870102688388905976595841228096988890752301740139078532365748014087836401445797888528953329248092686307985832986597479476930213620920677054953881764106032388647832092706315537504340345467391760066365580896361334756915292368388200524500910100256453831499724877104444805921507031984919216650391227849712716248871407275372136763812055790991671438313968703415690657147666138650876676889896370244047001515495550013839839117460035600409548346930660249324501290942949135514128580383829030924271491711996364367801122663454284828461445057170708057319814504100201944895594211988421615675416493923091258273831985218745954040638340607565003467398521297391225222551133009305961747363261759728807086239662699213983657974573037790293076393353724818536907271060121200338511909552419453830334469148829661381066276920265591605150422358164140453735629110397836241129502906508182339610462715498095399792886638174631401568341492440769655690519073022428860849451871325275362731932802017579195278714350723955902589446879108626546438992612835087020895226472696733938301229879929643356805401925192348666055797784809349674656074142421951320852245967584308647743601306185076957979963932516454250655138428723364426162291949479729080700702340294583903980593584525869965721008433974322910755628613642804884322979394717824036434666926302356581604212602923235009410183922108041098821550911988067716870101693685449602018691651106552349936220088822218975691919640924089016895306778002772056114386297188458702779186397790384191521911215201784059121526361973208518211023198553276590933308948775272835918852990532997958939143883632833732869291718736564760072240214427811188877414240415046808132008608074526256530229917640490361720715781859700502537542432281061939449104372605824664255548013649030680684532820638465205251498305714680926004695066430187301840201752999594824537124504387196245574842771368082073153978583877403743759890177744150525085538007314862959278726643838227553021250683713759860074904797530922736511038921574201092433927603320425928719426249567926512489881009627904125543064610773897457236485562768697979567882166665341320997154979400889902169287943496106616325354472272748407951236574472288132526222932159863015099310222685238827471361811521259425706366866517992190501674152323281150478062542179480273683190738600529407830810693438337369331709038997903501071492954226338677465582941684217341010008691157565979663109202154675071718645684101522063419433918098349148943814086798086009395288948110583966522467945114413464712561318164711188304536234038652139708324650287664718424523802267953435186005321117610818004360027765590733109442868380453002547269493436070463903166336768693205683658078533559015870217061271520746199842457200896308429627457910757525053753440868682053009502776219148263871884264141154811530463672714447148438525367661690745175337820533137985152635285243428147370051255225822919285780620511288953550114314911819913649158301250358335076717068133759137196356552654362575578807187317266645396305363060756749717684240213122016259962966014040890060692922576405074492917166614038177738151041157195172383184512607869862571066426967147818496205664840377415364607455700578194097616526021799958886307580836905578313757631807861164432060994274117298463367094615092992310743282471278429923182106899664491902014563399690296858230291663237879327690071524165225457229063887866335802188827292505248696534738000177837127273013386566880204284463564050572989172012860179495482718232098152244036474956151492710559046897017725166360211662785466317172796640894470106829063483763752506088196194197844005822612557621762892702556667689095155835141733411304404454429477017466501677506312778821789625223876968471191403181533775464233573151080356652915243252267341891172843760564359835180088596478531829277376935236363391359778728857815475008978180049702951345151961620716729817633841647642187918848360224022925403943876712000862533409535591063550816581999852879930829538254680241485664759924940974036633646612126576397921325543917954521467099857405311223511385194828893992945164949356476283836529456547466723397955142791461177858607360024233728289254192040682496899569962725411411535945885224743903594368867599487489010410440363280227228116752102052756547745706714277826387966924338103841607189584986300787531079490488636655724438236446717706999917515283092156317070539889688535090284904169412213395720781475325859786156829283727526589800271308994533502123866610974923085267290222440039160114240474046062496587775525545806164192687454419925928743021258534645987105181374626764693816488157555889917756798546236931973867049958392021809595687500578017965304531675343272787853139223201582394248451872614728670655852099190148325821360571601745049014232101976963136000027448901166063285955399982892572841855157106791993945271295700038030630951289752531910825362569551809151819777047881476418222346332281212027542900773072787455706021257358373674843930839624113034556562145900771784902969336496977232494529174153722728872716464584686593726408335441498097416326617234014214590280933042796045547611858886251089441158030790639073197538515963053899958694180712021068350133056762475542502137889193192471402746650906099153373273338759727352275202949505130464404621663975608787610682196126292371296569321868962463112115520314771202996050671126781701567804073429195456791577479174726743747221778371048972786007576038548316155536543341499967029547428418666077952795770836012158258931418978682865791882740345211991298344136449375206961342379524718237867121801764613356974535972503658887507560285817032191960934215597459674085055730587072954692643425194529736697415930051107148687861194078901927993977608396823821072770231683043813596123865880738954904764864494000522546744574575451441728074579112811880475558240863431453716058629585968728872081085126220581912422671260802742643555436580989009975976022490905332210662893494789258921286939667634370482705127436065051109232885466930969401397819772971872303493641413910682346165722918390921134390594611222545259330055396518697510716535708533746861880452473431663940245141506723425442477262506809679866340978303390304234642092348249223450303059430208467610451063635205977202565408746881663966819800062512752874721687935919333159279695241982561739870095775096081596920626954410527227151969932220814157737615507474064519063798314856611464089230901993979171748097121745347096540563560433126333910893809627984197342861697429218784562724497520459774415923370291545345767680433147185170302226925633579954616873829989643076816342259591327597241493241852482856355952303178216837742559794604257539224122915129045155462806427625780700656628463905940019916034522535925284211944683327687078210771146678462561918524905195597439895025588530861229777123310491626244342988987049272338267385949133822144159340723157757012109312994946613455367293656657359516632685032608091542330585452660911259918350503797834412544365824252513116389905933601579082852683144941722201897000061097237351451503545381174611777466812784085146874384505884817283497964021549398006768042513250646806416511092012230684433323406374577483733669318161534317475165791125547501625423465995047506789824018362037076611055546178573809800222999577164345697678465148071492116608377444447967738462945077029835876249278752785145828215823465825087725065987700996085841209223302659402319262470781945052424114973992052596063457200377269646046441813257357320194806391477743951842585148178667016386524583311215378948519778327330904034919576159485348123777664785570453596207180654885515794090604762976831735364310955462531435992349513055238503814737697343935956989664304702025616134454046035148672829075941127594904854888115799493479486257388587174754496724010999027193541821670763346225936087361766611001906479457397947331554010320290753402211384115184253799022602304416439857297025637864825474221947365760564778755372015525705159197207593261655669962251886552435786816278437679948753377224230068779766325305239163820187999065798303258733992913994376989607238349540504779494657773792522794959050589991601361974330799087935648261547458918833759098769521078201976507517187343816957168406135421193468163787026257264458381184855874882417019769569098269300374045157623089219504259157511594491411036174959906923319960015623806589874142058717221660204899259015242919797115027879003330687601029448924148231491571849683989135882727229929084951697097438857651556857512321438473813597584745770091438133693058075774295340429221757519683523298030926777369020516319797252348090354318688366433898505368066171266902102257623513847255443977151873726425212909994909330372160561419900653739000137497165387474976484849995637706865209707190852562017389649477520699330211727120139261959276612230414228772994922483680690780023182597667338509112570128450451745496217363887013289456342712696581520463213147311910179135689581055994583855280854509804836637192813810481908215789171751611971600419985300337593543613622534069589725325180545750805059574159586748372439971998968422336614882758541418273557524430910886547791070492406553278089058768936949926333761690670393297029531691406813089793447314203632881894332007115740815275348210499132695399975455951939891036671534057494809749023499891556815718676478665605253106991473430188354691377074872577797293625911218901396645105027025516301417029380353602735334983606025128542839697537855224826326114669952542969370995148086963734143609201472790663386619388522760778104724393281217562127907725362977867505078235330119515479818311271526217071825072854004525420911087045718992533438877443266727669483849179111025321966377365036143903072417761955597281560919783022280696301269729171472081957629716001576076268052227656938737947898185002470561040891549647430644631792913841894274984881211912358671925406419583355453406371551488734569020357387448695716934701896363046940036950327930705486579421188320847088633747156506690645438335874033621258580123717350703893366422870007690082775587013592267382760599597855575152450165449111941363294644085310890618026895989841426384257568250107152964736482887926136514939496166435363774817743220518814189777243597671857369378718997021381983886312442635336851275706987116470265442833748973677520258863221459306364025384348062681890089690493472565378050725118965926545282212268696459030213152382372967175182374449157942437819994074516307626717363373941113606556396574529821779045495111648952918004388592528513959038256902512064453071650081726527092047261772757665069430072389613582361350660988130750352354724610370002250472823592456571717989867372498987787677252482501306545354347857095929875383039677631029698465067904613510020495486600862321004615897952246072244015661602738826334454148894696995787205105267434793232781935106485652202466115848066316612011336993854587783656059208125865664305764184064664279594995457774149225022838464662899671072710308148082519376180088819758896963844491327058636434831292436528029474910574079123222444630456469705840438428148027334297243169096331441287753909363808296486601874828610345040033054772057927083737290059398754535760405131775666826884739573100785073341232625284681513000091753150129831634012657798037620703450304608920558374261789263588379888241961408996741287912403248883710545991486916017712821279801050533683701326403275232900475874011974175211196459566106541475024374338074242658587234098709181586051164152932326892778035355024708178122046167246701460437952415956473941801502963313488156848819579080551120805261657437330380528953127159414669455424208760759553604559586061662162302210201004835543581896867503308433277558533263240325942590948550673620856810113310894559391341240487018250691821287353052872162818366877233765642177396608759962011596111647244601451299488530257724861988317876060296609419508960035683011391502843694760076242185638538956663256433351858485668002975865700299975530810863469576592616158430224951714271920790211831230255492485308021507075142623030472299305033880690462220673876344693673149491152900378151647902259550071615650333812340592612017469924903112013377263179573023648740020566922139128791418144929620093277137374011948592932955955770354063270671056710553884377677733193542235122104465885303797957495136065155169142923338107643639908209371279815933501693343712231001796671258318227222132664052832661918589949390533075570518145240490785136859144368928391128222692435697969406041714154585159996059493665563649660008105210373975968823284335839586069492229156922848702089154244781054258119492799592544369757855482330471903624195153553938250489288772238894435946056199430797231407634658762598446382287869459980653483161561990444666808032464919964416944088192602089943765449809586935894388880617593066367316912455508326889304267199188254363089740336035526887012969749254611438715700869652174900065160779460475534348837936414197568865292593231363003742005305701357067408065771291583984381815537498122099135168849254633030058050363529628740149173260756205690783842910512122015192990252686244884115220195663642241284149698665890824292542694815427175268732682965598275784555191783081676731389016311642993931783366561164777728745803865176378442875225279743982831821315622050973656945775531204371009037125414663819886104667226649568058249542175190944430135838812450238619276282302648085718150011063577522740779625334199573050426434921015162513493471938853580660103207580781271395163820242007136053639870134975835053458309406220643780323504447358133131477995354744721344722819656932811221049541192867693574113396316736595373844476664127107186983436787994448084210747040698788393663252919664592000051436683464961994907966716450232966658249100101168797707523359589545983624847407702908720891069146956440011092312742861118191487209259284688767087160580722266916323945901787216946085232068325025866519989578542558150567888362404719905488144676226927677348087709577455539862207812852680326440628610802806058467662150350001556911043327056543004961532649084075176182799495133899987249108233815823059025371453427563242085945833466959958555915845136912035146057020195957426150531066087680453116756288584655458261639587138032882441025610490776251805408857006260877058893860303353210584646321560847727015225123905594913824424401150338130811276623422898095948507874816536262537510421643321357016684648944656206640397715465263135714431701189882662960838761814894979650169243484917094263313347562700980208599629101102797487153325424152170838678534113125811600007101842576634070892024723505308946565500625070703967234928037851165400472572551148382106823228789855748591937637680637366763233914370986925525826156936773674221326752919504474587008912901601009022007879986466756796187562242419930505364026654627512984902871995313484672725992523040471643707722029440222248588221251655681293742056249541049917707942631593820905140434186539761321745740654686622119973501877299234708796570247421086669720505226002530501942825465230402170281787684385323617853195065009222124197153489864957198623547724318190906279995190482893433931000490523350515582970580152895104199064015713282429354792029989690802585085261506126109314253308914830454757238118884315001949844162928968621394501436034364985261747143291199825508913803025605140377354607763056629689615998504494856925083123163213421200664740286314721756411205476459527606114462373011877681075747747567508175843905596036562389480180721867130977666615310778847022191899719363542653966397405978268341760994606681691475617743400145337156297828648277970954439929699063635152528796340653156799838513473001784585729011684077339036727483513196283875003962736835586075443833384288228810893405434136020582264729045011316410634352524608205339359661958053092890654066181606367946280187988869083630313938962238936740549567260310076358818378618363010859311869080795694768101499486724422352937955923432860887123155480223785633006998182188586305767991382697906640953067904900919080960193883579287004968247560298911514910975007752007264851120910402607580683934410129872674897794483696126048546270922448818973400988872611046756785594813704707216532295085708470525136660333275336104349031134550269577653808986654794713368313201105808242161397831113426247926088644390535242373393255956915866623766967098254669623395080812761451138515089302446311322509475222359927873441645264112740269741734078600832935053584358313744082486467114338817606606816481097697784545012329485197926282103131010550253325522958196878243592541266199820951681174386290179442946511016555991285062468639812216203565499919755892894312626512184041627848023081825198613779307223293982813103401339471246134757116435736739983777443618421828927564708366264935029530640117308083950617222844727793104512894402170911724370297231951187859917803467636629858538543450640625213264621318328349194998649807264323784615626629935537371745104568323711751578561182124192363463998893300952104389917252586874985970054592878236504285872203575543908786658309860136610543257844521032919820252694839199658449504537392035918115773205084124265490145589858465840431381963187258833789402050219193807904263442754294400743899552421711290507371878462088622976132980122958589938290374996320393871549239406770201096048081929368184845308552504281369596836189674321862788602378987331050921367305754504323969001073957415431268691194598973222419773549013175424367570922789257503896627354315307215570801716682088183232177527150505532416779025997101297914284734949597042235446364083673760319251541462536158790579012071756862969301925028543047586976650034470096714407084676429921683135262983854698028474683940194937127674061993943920152639106202604313245615355282041512249951179230184089994236359148339405247920525912436218035850780221645432202219288402452208501356932393602049847773190304546031299369436032323715707371228555767891265656470324659187599292652908563890968326143716267799021337903176771342278115226018093187325444131189560386326381244781893221079703978082251771140124316506156975431191940386576957637673161707615142181103079241631602818180124155723269958976413066447454969842867767624996288848988994585423071219426454576787245168684136241367790073180125966644142346124875444557836410656661516142566132184133782544289187868206982153687858232361743929332812895939585847740391384872183944334335158341171168342491918075962633086543446903620477397286903438054858496408159470399806194745691117486184476009115573733711194752779039323000724839310376365104026975506993534920313360866933822034191164946679766980261931461125643220566830166626029926087223240594783640079707611324454674101760781990793282551327830638080059040286427235276257760046393274235618111350941750894139938325981126947677567543583289806835979656539034628304616780885075499521217276295169817723342273644222390926775324007831632149051560781191764239815985639055969710426210202203487847799705646867913844204195923915013570609190041199328685468164945213753576298570017007410836449803362947465248819016514796131720529111649710629519010884625152605564288934187430225252486719374414830807286416322865495415346269807939688487720110699596740500349982718336369632697695092763962270674926669217799968055812540075842941252058133655771371758114072115821814879991958051991173528404711369217859527033056407611167743407794398204077280335672883431297657754923952125676883432405309585358361863905378236650104337031921739840221747312637833575464356957310640951472967984487920167747040726811467483511513922551748912115703647180192471937694193966565764435907595556481512156790567658249179926782535852247447788644063008296791478865654709231146875576887925556010607007883473395234329030331766628421613148615914682779503704817158596557046574073873863126418128538770305023778952860884755419231599085263001309531916553402905929887346476928394906764076597259083305241369665495620743092266895263172308180635664831994539704634059641689974479515728766758866297353850853612309677416397318750522292437721460953230204703020957785300621052184174061357615566814143018996504852337442642258905847695326685421843654781262045920194237701662783675718773763378131296197440764070358409041870390110892050210490784641825466300318854052047537945536035936400308200887227036537077085273934027602593851195312658849307340629609053943145566166517686793038483229392873273016910824566034629209634162810016398859864499966547327552987698092166576163890700968782683062474639514957445817718617904103194311566443004744536399079266976969170887354445660751091336571206496059913950301729219826983671044775627456996253871918377127968295654398668973719240215416667249942578360378354163089356882137201327284060752672117051213401375346741982244438667589796912284663196933294060923570240338312472906441205330712199564103085546982900746532599039309781934126378803949617562316642519998218841412078337616494256444592970396423210263406106934133017118658119045595346529361398515539823020308266228959178076834532346331958439905492497525059796665126857834478910319711859276465395937275929332765824425731102811151681411799954943844555063988776624445761278296279433765859360503621498720295734528202884908257885007561832258646308188435911714726498127180373139138589722985404840018085046496908939721450882193414529801674405187626572929044580782482227222190419527455502541125421883100928986858571460819652791174162769933800610236966781199321215937676924342374886959099329469582948357375847717493529576926279312905399041113976787140516909041014449761832988493621592706119796634696507220599139193381005481885153120374029840452766339369641176965961895564201791424081406878263316347465190435302974074219157039099072630536224574250751217848463631824207289456009958233434407090475344805059287747447133083432973885743656919487157316378450939720213057926108834064171264001835480993478349604142594694554845998800767880266034262199062549451753432496194187589090476377058426859560779832321613725203913008854809263712332596352384260800622568447819025750275677579335938339240277421169166850019803018910811854144307186214655303025308743953545985303490088753535764465771078893735674033306134877546820352605177248493055084813043899780203989788803325226269592861045769457781307597859152222596540902184134204254786574809073550606750818909581610963074193623895375650417895851330111309407438857608892307681323897344490836573403907250866639086123354012958242744593208393277248344665443784314109296337070440378937552596679017136696681076874780165467288924161761970482801235559461885362979442173624402381432987249794883809965734150262268570457539376186407935588173041895360562776693394215511984963048243316006383709615790107172327378811767518467429676046902601830873999845909439908979915068197710821817644829050123422041390234432293733715697169306938009241447596116991454451837939020935752247257919688199199034734793925736832175510966466456961425277434658780854641031569881603396265439185997591310582218803525068909159157985553395483067843962788571350726924330113319115930801775850099776379013487546311948496900589994582592219198944936181603006123629195526936458869033826637396259867324826235275813094672457951264154124123332241094852096314918606038393549131435647576323409018931968394270893537425767652054024091216356491446274248993708149210366326126710552202781531905181208385788699068828684076764894012579184644573353939424178166717229681233145093175516640709978939663757991622242072142496041607985618610755466451920322311531741124414623256230482056815358974138965973211458934009979925308858809600066462346011321339401601750359825122671633553959230336083427534772314860444424385762636751500792795502135402304853613686475500055703474992338411813481752223026834874560721117703580722315099959297643532195693237096618858421755936929715246286300107540821798143562892963812123140409251140299809404023234908888558805646520276614598819785977667206902683727542462995983912352079068455535906502452884964896794669237362156237442012078942748314393365049155126176955834023179930050971384142092556033803045265341475889994407626032130386270477206124436193707775350004487236223437513979803831141515075497720438195527371080442166787655455029893798409594645445560509789173211563375147147647468417576399485733259335696017834671512218444800190467675553012790392389687464247373006918523941431473602824105911092664496109792084503272781548911649060131338508796136643068379030509556815937744621622966892275323963337798448938184726283004723146272865110257822642737828448389760973025141807195880499980359917393807120856113312715502785584732601849217652607866850921487306429041890049248460211815875012624498693937859088700298308899613102781679083410162494657059215174924467261946947603928390479289092510295383110619354282448341006756258248628511468431189992723819158780690217096547892401821715040393825536750104242448900685377629069624675702856905793615705212425337701464374399605992429389944125701963241197207060675723585225292459889046813551762283613839752515356924522566542224279382032743761791315490155064474127053440919624000990468340736460568692427406124355880552012538148812962820563701429935305437260815746286245308912393252956429630723138593337595561037748545104776470383492064421253750038901638076727077509259507327288798307203817061435820651588655314578853655324865088456966171609441135916335894497100486573459826181084001222109115502775177909877168039992679757605267810964051753034313786268726830373930060041294977029862013674677722021174320623680890402129552731076820569866694900005325918085341809378090574086790752970407848589371687380205590399044372669484074655132779909936070022723366488239527625749569933790137332602752857752985398833774621301125668546438369726194697630898703481002112590005642537060491035334839697360631818592722276081754801523703121178322219493619317614627524488261387106329286737546873469932978134693998860404854388722434041706578121412495882447950483830249717602485904917478003715876139176211796702195727838418422923345458995943872503093447875769578519199566584839452166297948508649491404656679511800723103803500148753711556048908754267443298621092197974757179870321874826174079864529130289574504566876925576913299688573162959515407913164584778454535485234886305122534003721021423672951337849850869039308757702024923103581575335691571735659919812469526577360118790640404101601839081550662684575972631981309694121393504547701771153770866681954876131995594300966342896455076954411691245745333457636464730461956546900559974760463062394181265804268102790264098543591767465495662310247038065066127955298362181378190478007214286368803553224534275668670030762463260013208818149324796319021962027595297171815162101467495161166265182678752546223971639870304186853708083468942788715533946274722652698897271104205612279107925893610508487558426495500685841497266025356815159005033770245134416029989253603020250708571673199778489980646590935670378261509037728718277219477059877433636903830585944982902403673659823450564443189175447868523280315544096872258388352218615945483767761027592266838047476019370637371585192475119451184415583908272444265712573000108056285771414564641190934985243547797363657464967410407959068328897841608144535066197537688564407403815459938696401057092110532629473867166293066616932753877122730187551963608522145960704549061462380667859183051773928838387594366551948356359906062880791118700968938013823027933938412476527572885651299758519418355440805248770209408510417256999982657598812188645136107776585192556101105158844521526371520906633590545713350507652701958019329474571293944956579698927452551331769003067368999198247975638968414714000178619034906391683470918112525731960136625863089745487164287225655161687243798921244919175543131451726856858150993667936871715904897467421621793713850701000396848634970922610365257855876392935320186705460358505337214239486891275900365836622341133095958699115946879635003681825195568852780627995893151032360498200934041023363359388773867239122948548416907151115949289541934251119382492375413980078869009829433794099657108746013077579179964771811365678134624575286485446385317758651375507068282612086818419908558306660038097560497622176774649096900896090782692718194993690837902543402791864715990139414996412513840972482056570477619210948283652780096038702461213330691335227348319879835821928868858039994379347212020649930922030632495698569204924759062498456032880222805852693436214195829264978402705147706842309507414842458205914909635223600087449148898877286150373653476434480916117488294295405806596817369322716578217861370035233357589916367956906516090482064758309250868981573612665800228465851572771424748610804916576008376267822936590614908952363249698945799870000693307223396103693484093095393580131571487439186650790178369800292739596715508139877948067149378637293814498793996449485254565266914765877577459532012465025176143157756196571329247976346347310452914606134934430214836096193732506280380219081720221706051655298741066765847428410707934459375464745324583857332760384663799682186535567695677607978650619851660055136959264794406243959300225887920747628783293359073897229719409522837968828491156446739896703956288207892582076789454435700415840320115789429950026067010427367391499221688695902136362057105185540614264614346948489810765215409411265451072532846582969993534358804358404544871841108573908074048097208473217364763702830414205508140539250456774004090488410875456114123651437424219813933456188708515395909951446973731630085687234115702248553861272012343680004069074473722881934750963815618735762883878372310423909699855059703435180448005133787219358244569519209073306085570790600097916955060043482680470766065530677302454945343052284197288377150851000077358921369202900907713895637361031311332791254503817510694518687760790499390588628912687562950438460717304743481537813571025521760587141189965508115257317129091654132726887075636620916743740532566749860436912152023820260897776038063603394825987359426171617617579590645022405715675508462935164670319705223399491442380155437369963852689158779533356452605362112531321383193698560732376981235340004417257209699386639814037522842721736826101915275970810214351091621418825166007125945055822492278572896523994150878493386581901441776332410634482382070163274242294779343236679587878418971329341271077848503819285142758818916711852082230914455008243615062921385732236038363216252692473257025409558646659742218626161265629079258321607773463825056906196858348628403083565305959962003788300496700316280058752693472872029401450335318127435025468038309594163570998633591951385164523491106095109988089015086853779154470950345375268795617570638912381181153696495242564294775337946672704981667028487081203027208647634387776527409983938221408578721000452167040681515668016516128469267581265818247569295095345936210743166608821866068804215974235497923216176949636207016958039007351303625785395741563187492833290872178403575289877387591143849147438289805664899746189361772681116839247499215156476282807600895034772751750422386980204858847081290741260091435555243053320738988645976407822497374813499394322483629786733691344897834268834900642869258377354641455718695573813007983364624024076027351915386851377028048433669969896028750867761151131934184423468766576034012106658161311292514596886528068686843269841021032461813249663002381553726839077533353058072876094180677843698726199210329075732147557419138871706834611646686541893268280066000343238472829526318856758758451265401370894650244157122940134235302671470639506242437520395253088841953187494176181120664650578568714029551145327042548028092743653647008450634387239336258254389101101545913900875188665507693121393488005055296754929410164421331571856941848875372742325669089646848372641318116852153046142554867403623991764097777456779058671969193808856852410640407252097369964210458692104677218015023507910713622214163291696055551166195938868400487351081019415557908065124642463652379392894010614462493392714588491985018631899880750527376600432134022745989350180096308605531247570364407741279670321931105427183944715364973872337796295717729330947450872193838288921988691987730073693715567983204884615558108869948790020853818472031198532704180065992820856076621159196853018554270099633503924863125339716415353097156719373323102926850104532287995535325396536089846321182030442952237322217874709832793435013119240447624064455426915054430476307929044201311243875232777462035775455974090457903928655912686911442640517906550734042364121506797875260333175824907937277047764433424722252974197583489727467951455716947809850567640483074886392963258564174358094830480854401513208698292399868612948495355971831604967637081992841928190206754147068057517241608876729058245707737846421143307643742297572470996403300314156511019093302365209788985472543366670264063735738210480847635269988235443330611985006347039121597508504568115178858505571473981910747504449835400820796267077168256409525788853129294840309798068678964308133715538122143584030544007112811514246138029646537550252625343917638022445819887756398466642540971993286459185449980995834323608333893944238799600447476938347306194276840372731720712378292969416545531765063217715384844760726997773124279943515856861108745555947352363104940384208436436297521003618589408053168430222337342527851369523342598924517948136360386588861321085748580258555260472235630352223330786128726153263430472299096127096886739311944188073747065810221642920000038723341579765407041317497775975661432415587134893703866456737581449065885360848744352693187592400518112902309079972257470986059394188064753387379757454356426769286422122271987440442457664989095037166191322251607976254109136913735983807126947913668942491221450852478233004718695007146887686375982826457298510395747411309378476356018668052515122277936609472741654150933970892214676267719236443642216792233202587580146163268789006311913203126862353600404405640376636899440233386944199357853438329785980340673726073279607324450145407073896092504479374883134153026618960882900492054722588555580832705411149155456027709374385853913215476257318025403619972546022010708850419753042360813174730278435878475858332204840133991388969013259299265592183476225626428544328082123855829977653975884691443051507859106509234399976815429946433963706309651627224646132240222769025828330186780624606336868398063570454273154551132684023273360752423553423523744343608527775196978505606358149281387406866706267396375768126611957066986524270099668084461704140079832557566356794757653882707275479137257999156117306992075639736627527468692808394180180472850957985060335692650445201062148383140837671675637346589769335935176674219010654835981206603285578317983761613423329098229239747462921975412301438244631434835550739735076333603619310161074820618611381769343278773412802226410130943015997621985744427508299421560620655279513264262817356901629496761394684504969346965133006378189341215303330815521003182028582986633365296404806504241084494069083738640283868296680872396244309517103936548903688173073128171562598239554610264733430591105809609531743997236623464156354003650064547145939948889393034017149658486692934225910521499882360823100986776275100932853611608226414569339383456283320156354652902909372659394559076784662433260885098214010334981694863072182988910577659517188958205816014454543454544275722764563887281472085802270444143921466565703535176859968469852820690412634876851969289199576010212130856614820756578166096399699762030808186845854942227363590396661159137728413422600909411219930388446766481906865254905691840136523533517211630843542148079499626940576620823719314005976962506914278999109575366691952888975532703743787964537740554278278572230755151082084769207696129620856572103286075940042668482985500961841552348198352159603434931388305665167696221021642038655108740123808698940653924630240347955800469182258976618919417028534511806158883015657970877522203487272832658781465172507887295409771286627189547435123836281103583944871791927750879953399882104913116265547423097763419672102914596234978118347601874992006517368097964974350743739520715923863972845539974893387361438468649100558497289824483307986191944319231104152765141743202967776559873023315325985039415259672782689034976734083715651347883152219091528992545246919324590708406771314369987393390116162803330568838646602074202915627180314756946985936867109751890909630465608094573757674945044085203216333037433675178081908523889948054509060802301415377133044121346788397332736105261453833043447060438438372223231170304114865436976394481605292235612373098630392888445560581570783316247682346625305535446047485012917552946120866358919356710420091963907457442735793246204664592242502101413058396564901248006181025849435269568729157430982639781673034118994585879844931427140313333629439696417810422379371583280193781098503127061028317281835096473806056173723317254229379408531937011096190703385277260942227943323152425250292149152510344619049450932063719836411071351931039712275810735637581883943954113229194303909883406072413426910991289741932206546998754899986421282821801308803290222871929779875375683364923241086052644878206882137041484824100897574930504070074327121325729043584554690960477101931128459287027688582277512097653810989196621293787719382435222429948889266624546036542627245321134238417225241928089577420796867214498318376445973390473537389570648418880353343164744017779415554420755001484557987077012383396707733368087776877648508057094099060244846456784833771206384070606019052821586039573320647632361254028189167009447527644450483761384600394736883335653205618719890606035058457864489260338621250720210832856743334284383500161758801070698123488828160270128892563387773784314720320837840167130111273401094019056449667845790626008717089549781806866796979385555988819750643994354754745034495583796977073945898386100090889420389046359394857291959287451200248650815915061144300974663567677016426795899444525618432971938857831993037353331584446236294113968724651977764238457833453215939368368799422474226533375562041422823198837304436486619014246491235827592775934457711292324980074926590490193003270911160205058434359720050532610070513737303987928582431462242748458279853683981520415061977985527668374625659628190638546972553787674299158133335287245675738930171600124923945448727007104849966909273461137142933299841005245718510885647881494058716816709589082226023439316024388257609807385722782995557746688854149916823248106992267007115737640499511588699616023432383381640417849746159887895652955372090234045748944537631511711765420356285809766913809269628570812272258944556971245547234701926412994988413920937445444579388446120415118628064476951680776452567012887821405379821630624894480593933044454688606140699327704039530178647741856087743755641693870918607866459889053288067213407635439550304131771468944098770355141383325312755193985445239029484924017554805865085864065742348412394277946253568891702439376405306989167898153993719903969007455171780260466048374664812688081666944262940440477692651094912325377229987672312515094480015430637783318753240395664015027178943941097843957254506916055315589103122933048897353458159752208022813815515619873665301699815198643336232419882875204653002581802823891948061914523254359915766988949539500546966931586746790210490102002770601049829917799262331289125622887083941260547911189417060692360670116147281697025564225043894778645090907701105631067748339065594710020665814922128414119103926514381527047422274024026764455225692239030823825360079782918528623139266850865890191272107735259557658509537869683113263922701350738362522104187443906814888185627790762761961138963296561955804601519119351662053795879030411170969352645855779633371699679234386952672234474383002850228115062126392627916568409357244483445371020044095021589930214993364127587251491937799407386714001341492087360485423625756344526560618974444687223218562184433420682070597668029748218421275409808128069884169235614988732439935579506124220536137083543270071983240770396844895924647791008578235825625867975720243611287950614667378305227208527175210889635956314424474608536330689181465296392419137935824357498226727583874218278445692980104693956946583854910054146621815328252254174828775414681473224920743626565916272947957409490240689196237870161266952537570735899291865427575484203916459509669684088777454757416631817111481752757533619661522045013343733888498310949691298883924221353613105336667914865370994780317010563302892938286737970204572392662764586950046144583076159126333055813099599336676280784456542123993202846837249444370606967186708023560211696809766589385531375167285085268032423640525188704217732256212038381864798041831984347189887627204511137414994839154161411342520728693431507892352392001252753347552522022177703414118104227972077592204192835228195131592024371143670185788072005404295897091155564900682869134514492780063769237424386773813732586148492813976007223365979037331773366200587050818873262164998740422835029463743898925342562437078279091074530465917442575313277196313548194975616710670966742883471068033843267373375977046729846760122798258110676761538930510031548375035381959159345636790310306089401565178688570108642488447516362844732523767537623039487865601983334467199674412707548533993646969421268155739239998318759254458662734248328554773502358553225671960910406411441430553406664459251747939725314409438432182742378224517453424424846381765216831772144290029509709972519052388756212248369980203682053257193107948776871921548398137173362531012824747371680200852158860485933889748014502013853939806619762972107312363775733060929707297652623225948635165799350418295787358098596121470693331627374883792238051733778673209975229516772479924044766913342197709869158847519512354794085255353161892271112387434194357251436544636378447684952637642612675671270120247445655993474096335584245929749909240681691133673759304884985267642950102999727136199520190386707357294903404746855636222578729492194699492639600138478500730291213479870511721279838872236057660995798594344885219428016758570913855371229847337095607826400323989293435957708972890603849673982387262823649486761708481147730099110563510819848462225123163161604666796820549170630840617777608717012954489677424625738952069117940575848612492430403473920992235182338985424196950479634655254376814510250989088124110735136888629100051728129724541403044907815199930037436764986656911633350853337573155536950749374480462353228523387639811344125509682868071562239477762035932762579246903925550590520576600376934389553024628542906628153313539913114245974576205874362575647372274189534728556440697958167204790650605766903854620128339834828578950251596914284886965999160778547319231523585280715542129913116620618628524336926393954083693036241673576610775338576893765415787289106429762881023015421194539615890055860074532852015825570383138390190706007392110900091497678676538952854213005313915948322752774202122023763785746322304553462828100919289512862720610491867872771603665475187801764456469336505420615459553001039854289238226192750231215183369890467451330711547878653266069693185139329609762787383933692888194262597173509567135132229837902800512364146981062916517033171038350783351785130962821754376320524260677326170263060412848344846858178501563728073974099767744884594732220540746626927211439744215369285476465877073674905705301562721581200055097947542283094999096844237632221887444575591247486841569691547256779309767291711394067169225139864877732534282696785691902696069987373270253426415394933486445637776695461760555859948976608473346109064284927965844645266300165818304556552562349235038718678212925880655522992779142080143107874367438612580262380202261796939795666101155656654353258402219277348964222406773262803420646305016189711098657313117650294981746379823027511161837608793478454837294982097494556764530249298519064128473280162657570650008969747107658608217524271505827635636447615344109917471164246426804897634033724673990458388861202223455921264418204872462233691452971293267773525231720119748111900240979868412122864373401569243629307607813772013341381908585446732304457557299395307020143513409259360300871246644859642488664114225490433150290262555094714710583393676548749964401012059497076058712529823966771872913810637870547331811893520139713996730857828576793430834079459106328925507235892409185157211177464452686350878282352207470430080819055846551957199398894030259207089803082826204505431141173275127329754566256955515582957157647293119435291618772897973853273368946469489880407810960418033435477400518967632297430262781038482219241165771837496092001924970280696423760313579360494386497368092401646021110770021311525993403121079855846182649043249748796329435905170684029698663875122770548303086375315010237871482779196928605246558873675221513508425685528407492994676644786421122054211798388515521957259074920133293878254456650574821080722577976194603016188083255604838189946789262403554997874011604075520806931193262343242697920546216763003198638862290016117658876643969403504606386896654921744394392540712427130168601121950953101567161013793816184934341672530440689725901361973599001501740861281904930124963212167141900995312306584256116732527490462250682264686913917818281963865999869783816744856738070914305515313976163701542680376902614917929541837949484132665057472869247820570341712511120726762829217169300231829698301393075691037311653035096216922509045061163914987804807032303150997385496025741128524471732030964222151322315585465241869369453750581094875930938743990898016565658163393093972745063873921462883205804133618221352806825571527870724660594854666259845854292845413968566132365478233916158674876024865913184549396606448411205311213453792414400085811964722617514100237307382450468324743591031505894316034222279540477685417405548619544494457895823201451603096576999488426564378718008594728151522405275421835606336631254390579493922993760555368607376648245242781335213207352764339469261080374073427362336314407885390742843143554142457390856619619904900897937881981042135822749097417002198562104555456539070874422297963576239020232929334977266496182079373357105882324918157342065673186264205856524278525845152032746612506847077250718029910690292750233478770022504087092708272511389359948386461785558444594390895963442158364834989063090060457736750592164541391999702874825964841126116377164535669247553695363736626818218648015740745150912717800691534534842343489915808644706845272711936420942279976302051277704141636281862268158107369658191209445626957254317623196843795668183065739222669450720941606555339680053217419862791602349334342313640954691320393613393895193553375887491529160915869388236136933093313269107174973049250811082565671731731585039939200074181844160684167409902074643253350067748795711660142996937758292977596886463497450452884766490894518186381253213946002001724543868309586049575146734682880437659412180999411933603134669889258501535826548414355344024378835955454988471692265807929010450876395634137634678405282361931322871932679702962607493170449845343320418334938949105015516554798583434145591791924278101911679629737372186471046517024695061347830794201178958240402977179627868301253877704964613771812644111093563069432170176704083928570445703506876159568456110938888246000543187944762334946415128353894585673790090999343194961504020710649676916394289197035140456533072666340178102467957850335354065573367452536904657431995821052066934570680929698277228257945222847532001358530910814284779360478094191802991159458547337298823801889173864227155537337678190613846189599394128165479384490729854651521781698624716251631773351247105178604379775368957308234856160226447462251987808832648525243034511747053646059778135989924003657161339435817224339579261209823815120389168439154889807533831007073116556121187497436104635266477653679103577942345636996398977003030522545595721780171009850035291256486779400169569223838475569107596740863189966611764049507824496553493227975824451116970700334106982927779196896263005572692662826633845389608249700959778112594517031787408154467819742247936899685602350120491172122661190368797977833379007013734774623937064010527524806900939933719849862605607636878164471949872561905723677667636865589053083226229298856022733853268741119640148903303471630861923130178943545966540253679788125274547513784826633703403394227395912592177253096629778198034941182694324148958257042902811634613664721147105621624761687365757341833536785164515484704823247598679089696828667647234428065500799820195080226504490085101085046944423497347317022301697034526896061620412339412377815493654197097275455311756544762487684172540005119706912220085177219456211989161912143977127558156183174774142144618489889538244390791153891137028376927613538548416444857682291265891990691971565014135085804898180126267046224911027091171825380064126453394928113048722825975388100428039386180079439060519403777684666736116110522646592892365714765809060866253220742158894868329134838086038069908050337926205938989405047430822471332402755747104026359805025581509356900996816173822101113194984531686862426260023087726426068923777151945624321659128049286662377309781519864981696562031877497763972401459044260017320558190972217540611067049621475452895620628536299396692443783149172730768415942786968251933158780723333084651335175096565788013899344589547848777591718214170721847676353179377342226547603928656546943670204795246732917691219572339889747651151838945326670640516875389576887109189388471964083219410960419802419896296438959847695680086619988135087875933994771289870707288805655600295807733334426354239058475146177281957538481084906859478237249733070798561845588170384775743017932086643384799853699796756234033808202409247159926474884064511646046196194493130495275047789311355004979298424554812724868317431785838392697398834528811335262308980698709569247839954853796404090609689414075222405449192108706476375049253087893651887846225854333473103256914272007113730339545573515087994605307694238245770397590011073653828254283692940714108370389939610261880939442418387215806316755013747412933984670566939122121809855626221446507896112359693851095894858433645300521693495594497611972668901720814880639626403475629589679478386069327075341018589466407267888675595283841150149024903100325782625038048018163855207986285050624747396449608864750835312304082445150826827375606335417453636857566729240880890281603840394324190985145989659244278794289089289307980252222895411581805323357966337157956299527059156581925827422473478507224728086243723112322237708835804232799726569761834571847572096113618861643064193549008208078954035722597816527103664349542483517822148338040109928070685765288337806597142144243781191476453837400916692309791536572602605291961098182805414453135552820901681461962489053625117304098124521050479827223076648243514276234463056762692615661100958838390670719471560970440740088686862839553781752965462529035279945805138830028160675280536282036318284523971927224436343288214813864990974774815651984993340893517030923895353819803001571262268124854475138133951872482231606530812743302674236287763188018603812319191222849818523573130769708946922846257295520810477433267575878305088752505570734618433197018952764793767755217215464448874440307303862458571588845359711368016251063726858893282790852687070109785515825531864100397480134817596167607806319485531226049376232014085536851989455227536778327529975978101772802830372967687932527155807208758325947289535939167466336300026908236195304264291567644984200764059427047291192447323727128977960275097378217049574903632365369642001657072245901158972511872803321536963586666601087818579552498491387337979253920197378143325487581080985247028623980380792464260724113336467236158957343810694201463968211897640351832337160142282227975047811048642840704636334448476842714148748673561921378379029587100878467374691464130845805595732938731541375057992937324000498239795938143475486030969839648674214609373456315747022549077612689021851822481142925644995841543660081434586444916928848345819034035171110004037534397637621517457835931030802532846181783691894109762374675594643365032550905062991756613241320781387384205187946107878984156740430737165641344508039676475985127139938523503635249058025390572743421373625715283037476193936998175385744384303696019329966634123663291485592542369028388847429039006167866314610934639559729448720601001974545130538813566537229818393222863507640766966926285840374649378380495718705608206996624024394533795119731539300977376214587429408284533332737981564214675693976723703976315662789400424364716027645802909048489353293717907334950508106255047780603991438604314828510242239618219660140126859718566361499928190533123039101099277888679829252338999270171277671858394477473405782247880622762844771054918666045173702701312477004084051596924027144678091861316083020068896430936702842298771378861197277925468805501288676170444759294144575334215086704317791244468207571657581521890120500435038399581908290900385749887468831703843501271230433923479663069479063369783131770961963367862123508858315427118825520938880927808233103386095395796355490683911753698093456028724733862041661064018228657152806529111995386109134136526216797992092312050777633991096014683477605539340094504773110491623231120257268494316621753265488994855962686619233545380259108622402061216448700226333688131169702998762733079936724815700609201460185554759435973347856574396702673716109651793024931200202477142105109996580960966881636556093098545323163230403473738355391864054965634313025043403835789988824268508377193407930301741440731124629055243775243284454032108086252448943818395568062413876078541524424001577843814355470592460752802293799923413741855185434350626888382338754065704675397849956431702578832118442601515253744218074702646834293579454724631289825201372524676353366282009664551874440650434186303103037806128720065988799978991148261286785955967801994210989815871840159420781980536513523519556386569703171395832943588624060462839747788437941470245875315519281623982559976172162346043652391035726662483089671489303720647593008826147714949516111086561371305529030061737202892389904334032897813936726157421756215977705879806570518993164903335978919349052384043658363592166311503240260381145947251288284751071279663604130351241251840186586396789274674124394867696402657599772129493306835033160253613405085989465597331748587275598200583546836690953920417190060065387483512021488672807668735235693155205052937712570616508012129143804626265147784352887777974075118847035414558929309431496299102452548038323153668636331126318042988388481572425438309873031888560158130378923286189377344342946795957770854336166424143706541190797398942222137998167376547715233095754251219536883603644192311832547048244836289701037861370266437138590420099752137072209068404891078636369939871585586845570589170193784998557202222850502836483771928999471141104219185510676700744157514564484059704869905398921538218279474935623752543106630561151486810325708241725022168275215364228827429356110161287687902326790359190701275660611969404515725834565506867660106176834745615099856027185657132442156569334526134295681861939542235952840218319319058206413322669363195710215542620531758756112001628792497230817956393483137458421906926194963369843756208586325555123968158738830934490394975199715443661837140798995999620325437257963479455036322847539240985045748307984647464602475375452212277977730245955238767525014016117602636344707992299061879813296659000708066206335295205657446618944620710383836131253485272645123786016214063306126658119030688862875156311503179447141603627116980293117746224806818346444882543456668205099775330651008428207230417435191105790140939557590750279056653619716768576484418412325042111504963817313931990921475973185563002229606733805828619425025527901660752043750602682889844427421681923198909864947888195415548590600801751140883687958957761452008198705663103068287169201744305146594216682429611213719704386179019226219105806843479203252196003859194413551091619910703598958648585335054453651824025865704202381212093889178754313700342525716999031955716873612973605800541175744749525279105145741810095746904780998738821193632517481522211030053025284863966050045749577669523042077317895759463551341818367792388493538164279487201861349173227229996710957884788878581307490458235991994278184047085100827264637710590326081791082266951829303241312454161786902092200722913726206288416627427126454396156623532903793196710774172764356054792811489085169582084382553721983195668833292593516935935200752296120803079665123250512033045724288071173080936911854294238275625269783458965974289806865215490548377353113219751540472343087678041251742790038558764757753259073673983107666007960136956515960048443020669835492076568830380388568948440313562273608912034890199873511812071214077868632529958944691335513412987815305425603698374399414740432101128518411101679957352700086573212978414376694382395960410903156435504612094808331532522888813107938482210439422022193431529094751148814110260813043774479959007102333014763577612224010506228264281139994842191051753473305328433819717255231367836278965215786918708946170562775035778489251738155960963676949428142872917436481593046466210118613088466207218176605883809532477726705093998815957171387560027025653995096050954866877593950888321283388943792865124824281395643115676203188591743624000496259204174603398185800996779838328333588889430588723930874946616067961161956457549891972541234176324750355702036448911599413371403805166587645839834800460393937807833355846708697598267526054576417463946444505176440083155855374304927587627469019374913106178521462595623035725324132305510242893440436016753858816469739710217111853862407651202460103680764095898891535694422530033534995737600776355923282849038891148750432656353587065016619591526216061639590105309139936721988696975948781796685141310023771954511650361026472340456407299326233585158540298398667538051902251650052518398336430176464469536575128858950409463295745357082070309976601404105090718192595639776125697777852566903964902900100362222803664975756763220955430998386280461087068649192028480768356444355386050378524424716405586487644326817832957852496570333991207217324442819092299668987692853021175533719552032681451612672776693968515150210937638957825681474919826770213384739467481575729035920336723103131821785156706487484479349609661987527651069497639651819412372692059130379662287920662889124983553781374642262776527283989092953694770809104020712370312830073672924115339164314237400633698398111717453438423146922338002052633166795507731559181027237112143873469345911916863644904294483790225719317523206755174006117411394278313365246852835226678466374221049465266794065866380108549933184751127075692280443020199082615985528019310050594513322911806458062876895649189096100851468600871722361668644174507898367322174940329617495739694280648610424684256974935367036808078168088115093220388298758868613998483332557902142846543868221607824009414250304441167833341541760057591688191667775396683896408302775493650516802419941486653927507528119097152206409639838564851854441666134336727390150740574194882643075864937769101199072076701183378714082125647340782611612372123839093027517671158066134967642899078527110367915000764504086099766004897077556378588153867917258390784385883986923188863788250918696106412097133906234177719298111055743370843112128635295541209272321219187961268189415283326269597094039427715577330025501604184025952476231542292040397655115032023064858273339425533555835253859310382670877098128068520901463824298996156515322330830976227942308776877860371418040701762423342525414247423669062209543413747585425483566395739907290133932698526768178156509212032144569259934055048291305272314357515080212673978295876808057884397853775830754350169363604120163421512082933539940314164638983192992216655345054359106448483196177780951481596909294297705163082379683427005901548736441275970455708146690432315621620224218834373167294361981393603750635930757032906500152376284879379082558533971346919411666724207840799411327513009803584946554906610942588507525995589613145647668221009808777064730516992543377717778150968861727321027772426439061567376530107935562420463134784006092840188452013796691989379181538128543573049249370638479818846385272474795297195450677611189522383150716730989823909262882446887119736222736036947984079881961954956617823990157095362904093940220082326290962495520849334116278405970222491319926215737025366947777528939781603271904359932237348100880205792674629943935450965226397178908755737227954471741072073382064051072655136345780979294119947745222823139810299863039752049626867628553613755218250268209287957602371210470984121491843548655763182243275883111782109806647610713220780638404050988189476350070176832760441165722109457881795287977944294381396187859580240995317056296320058738209465743005680025261683265844601194299422335675654565709125249534692764467157150880863531857890463437866885392280489869493713072641120561036226619148007348794555392314578534198384658319180589141204699421019723861179927034049084483286789622500602048026808617692925966576756078095081281433830389998247497874128369483753470950487363298076734349462018260457537358159561632738493815342136403224834627253272249333392440026489592313945375381404604665204431719613268508812496397233681486170231254424870551857147729030328172883242663807575476183136975642130198361556508897126044683626510232975265341428117480345399829753917427137291833545275569350411206448837969609124112332206918268077477811480699494643362444767413568164627294078053050925637509397777641175552575390381206971602280677111136071796932906028016962819596008458275832199737631302603402202757652321837740649061655120929791069362894819109100895588574676706973733489289125931672620052580026505780988900254195048586050711549471684424354820377534585305158807630519501067320752730439102184737266518782075381255453834179332344967978765971638193281141243463877477450190115462497805790935781425620054894637302634537541823705113279176531058065083464568019487046970037318644365095623708816647564039983022344318506685997310843506915891203292740978629674512047716795498857957296507129737040573166502266728631854476537226903895563954279926780135110989414046257768453978422859156179090636226306547699218389942903232307921192482483223830213914538672300836640555235145630777943593816450644688063009934897137056138036223066541432170121132877802046119782178135770666162417795206401565284733255085249886782416654403770815261152658113892395832065480323909508537177939031310627120642917283581491714920769856495701791270690338863878874689012305641253533354454845223426122808685925299256830406391771022840338030973756772313664214674715847456187918755170247611614300415525181714828693797977831016414200249678781241833976917157315077970703038334201049326151147389217535240863274805184227506368332156368855656819961324245930475420460811070946935768274663843935076770423290121101816731531336821146118446822631567384059790849226525701002864549609311680359780215148454423330311551743399473194127838344216445246622631256225182638596441083649738294995499537585593039733455625632111769137398571054896742765851911077867436908183579568894561126736195690062155716538406888969191812461544350949145089772752985146627548394149177193061806134895881283913776320157857643790677933447907470040213138444468929470798267216633425592357782853827495799974818797190038502765553004101951060957864307844052739505749759769986169247289622740432950086852688886658759913008316806292758711801073082778239655308964782555414977530310630672129218448832966343477045236750060384554950783686158865916888568840077724738279243576043138464172977819567940707270023635351073616646918041069455087847223271512147570722790114662605356315611490950170911012337049467876305252520267961222313919712831365025700337404546952130623855440825402696937934432536764173468393050140129024349499795459636236280534649153689243295652537879271369060745560180479690140368273177160396786954531675771132485058561098234357100351945455956725997913577443838041632532209790876843280075648132212155138015869657297344649538279013335383354827779042987576507653262680249334934726045684012948224678202722381743089454448735329711806583687936158663407189119035683423641669143118819322592505230083440167456929885439551845331300032934013453508295067031027455715194904934072327593734296187103445203083473693869798423168479738636490602522803809608888096047129594253750637112442277949040925534929846552153584863257320990457367410977782024911707727252442705745677939472732494682658915667124605170330879632666758464617628810651233173171185297868915241130080494129151930961360269675717297322096103122644565785768638501512622918987065822429434669846429194569095782149358520581990372097731969172149870249561539717438975854856884577739978996496600856617800155230745561085410541718195733564158087330547116571890200836186347352382707351059618792743296092117149128791484460026387638577151242240390669584686359426269571164462397032293611475688043133915152376810478705156957344070914031618667921188282506447720696941559843198761471774532521575385009760157140537848452027823349512523763867810970887762762982414334496949185174643362399733158509826744484055031934470293655363004246148209283112728016054406644316911557485973713470307535812636450970999969083884659422107337703119640429123691050712027577677821542645143613787108532560059030455955342418737501517873696887417268349392170623667297959752751661209622658805929308795759613859006771471273064561526953865589126357569162760368602616826751180811811578316321862816486318507074571421364053609621950371658114052208512768710504380288447365255692046732922201753043729754053396749885879789004514322897558392664973196576927766377648104300265855115333063411447263889149912745323765758556022834594221119386304642113725223609111905839429292063182244559982300361772848883285456045708898829625934479745636915514648303110085515761839632433188731607062110806215147704589916997525402288422611076560159720472451747146923211580928605868408538140629869767299863425221665382476413086051164091220504312101066380138614215034879955100388458907802686978360575577656304592335796123174047153321479189930574902104247546798203230123719430664492208785080415187907898462841618886399307821209519327577784597120442547360231509687713354352764762666908584822376257788082524979451760398196043164557553447303829562013753394852962626277461080403815651717995357830732798619614312928891144032899360794268797120830216428503360155621350662833814343625642910352065892403927536761665091959644167768457819272207824147517842781435198002149114689443739433743194326213836688951851672674371680300747070824892287529498791566219414936431907385975622765704447533681885408996232883734188708695235447371572701486702196291041084319812555982376052920592010578284456203270741592897542197565818555141189793596001583778661311307159998136007196198560064303947661504710305551747397098618628308246123368993707201092235016559016338793111791662179715309547589067817005897660248292587714811615679701594604182112762710814369546354962087487339930596661697098089727435426832103231554369968498554988856229653905808048057437473017093007160931760404853433668883931452617359375771375304069704182413789495101016339368506243853591434312640978106224872826978058937457759525198609154091685924199118601333070169011776809475819164083520045529331554105104164249268396808754443203152926605642748170184081477384617294183843770487004982227872192830648344379828245960096963376239892252894423985003350892746795698224025063984236036062554374173732025090003105072262997092940560543642932028499429698538670553473190603008347955547295263266485961469677863155503875883782940300528309899609842966462240831949778841922864584352652199299824118485703870907678891412147718940009618066949242179065961534402305467602375397664902749390104165497611258208179751097179750787482039022740707844277783787872259522423287825254481496870576979194302144744463639380956402007993235223418629406432422443659167226194788042571951743497917550092814883360111224900504356753075593263916205086219354591360624956273286339902173488045997232380530171291604027614222320195662615055816861374877007621777475027585018129947956462975457833460379257184298256412130593897161215435651346539985301662387813495075313126213012052341044293609876327229177351284221163053019578794625767910269020372366957244181543949795205282220022678752841576635513898908495150834619755593588174485939738410893556950325364073806134282324431379283902350728712486501609182634980845846816365007843325899699157827374372371632751207243414425116907673303272241617653432105999836918263574393617446078828972931711120127670490996932647020568490466500898660600273531016768270247770164126115591993077234415726942639423129642327461391532288349425199447905094332122065651331255492443834777217413422540147746233258522535781948839398903981863921739605832824296857009579157889673037428686888392707632729057847517057592486708539666854335779664383159634300741521827270640714589098268556753460081654571885870949772899544072952053976540993951054808440936370759552766334050737600741662473659731435326587680808233354905809139489524255974830864090896898520302365003701990105969322080099025741769368152126909792272915242534518017045412253605407229888901589109033907768952783445590172362572202193043627867201006947997390266505514691936790479595835913014863425213743913509539479471141691484127328413756387889166889056430345855496645836850746645640724556535429890419154493466329338175328330367063592585167202505995321340853379429251981151389114540174898504222590754014192442535638555092560037356789143066589662761304147766446283565605863173372497904503880172358695793352404951097027563721487695005178015101189125856270586047978527428184977418031816532776222818518122790266629594272831535018970811804857632563033489880648162864427893222534199698472599033250509694393749715284735935500397451302458556182537277845998168447405804907621459012089389346976348061003960735017237323584598663132565861927607164849817531096791067167263009894183997466911141043418874919610274018876878666786642905879955065077060270729203016142279613210167081723205657760758564153809346487494194516673362370962285310231803088982718055385965646857723709052051975393778494059415608426116606422552105971645633611784214629347009135482222862845640680357842786550383453940894023902076460352750027898157686686518330402772968541179175281572530435660456016077643403674095567383041965030695700302662552526923829654736017554460462257733210152140683444243793605381058177549125641777562917772374126305022780138245648762155268809285697278224847945870006071781494641272624395582410548209017057706646939940596883437224263450670404831312251927674343347409076740228010934554786883848494317218050063032639809501717590860646556044379612610979268716529272472415196376326705729771007713654611537834258883709699301565991371403386966681241560606305108710084516502784882727945516389288827419604396140084847260070766304641200594884089901444287023061776726399081359526260516943199020519719650522269177869468659222691023262591261553969781643389448151310315167207610512352328503215908186800408472650285558099862936767632702100455695689840132430292854596981739151369550030603570540193946473220531160498377527666020598463757785155846314926056349343778432358614423827891827195931599224262355372865366532876134117734811355718629796253074780591388357119407351940420537748387662048875298466865469030690500041329131326447601951954348277678246422805479576487110335025983258674120294750763222499344170297948250151167225981094200601255270303817115328307073797673100599254054514215210420761394627647093302740977875737676392280809437167325973998085252835756358624411166796905227937663800059448701577626052157434516218571721034622989085553905538162124329139853417646686292641986500126633218445069667169158281267111916132672921211553853776353601372713963587338347254161485018247526189390456432958132372703750950178097341799650046062046012023672756875229585484536739441785141630080949834313951258045323844171255847254104244715183666585796799864675864849812550595248781549198156302118060604371403617991945454814182186857323777013262890617636725290324939585717222722996900650373610987215621918265922436647047377635117398266802198628105088521748412082297364240247662461652614327478874529492808345545093096883993198576456366197815555359201927448581083694291971794870774529846761012034794086334911576889342434723975184650357335848853663911465583286510382839768272273892776022048808759962695933672264807971034553733016098398698884144358865758603010854761938117486975518361049950412288087336040040353509500409145909052021192303540316682757296014831044644863432040342585052448427028808886223665580416457104769707291439243386475215023506400622318602838103846482969298761579442424300100029087808435261586075964881927431219777638537057825778525781598558187802080600956174547357164959799050802163306381928093137378222442424347985462344826617950420898194936645482331555173365342935525936371871188671066661629952454231303107305850796146325847628721000348467198224056372787545503695676515032814243039936316577944121132761213501821322271229418809043925788066972937305437004031568154016801482186828301403805008635974767803958867851123800665385850086690551244914720335795078974917231821608811593031500535021243223549504624301770174183598718000134055204564428236235677176726508784318879339709265639081699038259760511252148966681646349362526894092955800835635295201131073504032039304589042228742055851494373368044804822142297008600383674926104865003153682819050585085850386149573047897412162522226379172174866387706031332566403974828195804938356298934675019494725758270608492855840001777807698696114670423073022545111912069288536599878927385205434944412993220128760209694521053059850718308041342448447378276811327543760478620364673027400447515961625378024683155065375564891912018398089911499002269380550345552681871441149518136465549580231815652732268961535960195525516631472088507767211027653317393874805166440038268409261600774429973012302920369783006832954113305911492501891604167380974803479382409249359765638408591693873352298111725985266057516325282955328667957240115072967248853699906517024025306671986358740773555360320128229275122109753992023754612459732324852672583771467895711339969466585068577281835381113229675328542353318650716282077925397165914794583687543716887450258089503617484830121840758809481474115834043984370225808249449337987439102215989003752887318340901370844409159627408461439133405111714417111841660607736502271752724569822325797525489346767599543804404004506369675442407320820091437664030349113291267368830378281137836659511611345830382967277106837832639870778430293255458438361480492566222971320835346149770313256162342380891946880479263554425889886452898006360567571985818009472856472741482902587295419330845001148137105762028105245405074848643303982560355008321147583695121628021567209959722669539704680086174379598323739192072456475745800299652448543097585748857718809862356669658290930054455246376405185812550767155376083554121355156283745959014113368447066869196594087578697848757698297621990244474929941848499656887118737182737063870288236648289027636156281879851709196436411892005933302900229284985239635865283815762148171489630529744129653026235327449511273409475113364328814590086920067393872558570570522960771399635351239505849432921752354775351907345501148745901866611586064511133938883941495450503792549036347171013615609463469098515817573155784143020279812773473063372845507584025168819646949434773277508017333175084110525664842020366717994352302996605606081819133353526156844431908445219643910727925950480952773214867559320120384826741336994777883926950526845036180133846338792302696301595881133405916419948800454000865696825723775149740989807869222669186723891532587218422760015297703214754704009077304382085782235892407231416816528339988410007824532380519137810460918992388758074765527278774670944973318520718197612515830909221205216623330924779906514965118347339370303881394648997068215924998021595429445730335092724543175618148069504982706148548039446638154787293860083237706650860562844114493551475494058787250432482062665351698563774761004946269183892389356125089367556283258416919865694288701728782261198926669809759288502435136247376503449664016294599781878676347618706282533366975953704484076846202978672774652747079502592942495487680519836775726242509765157298802122787309828381850963257013966975846960790109056960320231604491702564390104191483685167361283592913814083621641396533004913795425040800766309740255456464578200064534716397150351837608763389748389518900915599463372652102555189879648472062778099284604159931945561917484548255790123863119308185500308767915977542748273122198402253315791968052851805796514192633840718776791045320449924848491923925268550586508554574362073600444554191418878001689067878272565811428783258498842978781004887966025364002111975344586872935309407162211071566789928900661197930749603972134431708179105320256348105754517640476767230265858500351438360775268209816612022410070567317560016600554255821228034671822061511387842861799426650991722690938440432071948537549377879171179540539141270207985567784497687211104338817664888354814726741393816666682971375350159838091886960614749710074395776200306268061599165342139732932227754094789843588102708756052337437846177475775043677431179604787593471922692977390806365675456853263588352383553165275682594087168460480898557529874737989921682691611765866789348747976872465614587353816032521343674190863536587386015721698966264810058978845233710616282342369810445283950854694039193170488708614396863452078313604679984568523821076837861390072282784270268818443844402944512097243317674667670754832519867373389686582449500955082974460048557254580198207277613232322881144831812344282699337666264440669155892571115026810516784480697446513429259562162448593996318059488253269689939081486389562422118629162404581264332925529444888578671685414060892304719542363248571769993350968988217246786257270700584899308346099904802049663711957320304142633982710686910257665855262823971326881933975995154631888824237413391535272231422662133239161814297624741931389943115429840126422292269360528981393261355168653922014450860419793477640236749978315417973197835295692480298597854986563254806401086849219147347214086667402462707086930113914043097417530836742622323136635465246517420634859366705971148981276012726765068630748946699289223322064433795405672092322035145905076772733604460556301492869854629407263621010454453851436222796620444082502022663993436189699812952130681910327549066386847907799484413139234784035319985922152029362242707289959159939397027529731403198433284004237159305431842861676702347648211938624260289700634362040011592397846129690670225597072071048246098758509567774274635957480947604279084771626183374579311270092183185735184628503120438552122692195193166144723018513865600217782031791278214578988553009617082461670270262774866058157245666028144119416046601204728642404211504727145166681175166731765898824292933847225739716243505289922329739257547470024108483302959242770529476455897469044935819556806439709572263208381566324509843135026615339607951403570480304717459399821523493875559483030794960444379368578434349687707308391896139018597768708975448424372018934491684411120512872499869909364767644665045386902665488819799675117777717405880346956960001691586772342161013434990099696427067577492178589254964470616587445196999657238594698056459335918968279731947755628631590418381290122521650847669327580544412749814530809248263978285297855200705648496829965115973571861091293928865004103403972184838914143524196033604931001507499640034696902555960240570068252936797488779282682507016563154427978416713977703415976804956306229506606166662998491144411576738504605273647290962463458024289272849530298710710461825068398501263598571738892406983791596836327931159759990187088958039765122906261122134224548890272435814490129875608745516311989585767623434923810318815320807735909564643955028097420047654106469154929113852616889730951717757572384683920045760956563590209349695986088366340277624143836821837594777970822425987300986180541688046461945933111026201132443812459466149920321690055606953979590283882395418639183441901624950424670904463698701618537286435887185547782501547119307840191398499296460450355687876233541937666833809949237864033626200486904291473144683166932936446336610662876074979105993531241679636612585471701240758261546056546423463844867344736598922090501735099700893886346956241925864753508366193195778924688275936566973249685243669501140062182072300590802028369813644953921111905416295212663729906770369012925746165346122337935307300334609172752925745032251443943138141765165616402104245414223514034819264459355796837362449867885789900599914561876611242310706104172854194568537617583972711302829701872557828758178521347280893197049955364542107497241815741338848753294704478109775632150740540881852069292969981482404640190372842236956877010696042243305786939093549156276351020767488399026126773759570451744797064662812379831933482378701220660068399849267573991465237970692855913780519174286360783241047726796961763236011977101633949476749330654234803552862757002996359277112325959959103156287032537230648132649576011410227785824507057714982498120833531120355554285640793349800994371634851563604371705770197058096269887074455259323352945604960412864111863563553413118849402436802037381002536865614485897825381735659359009758067996349269357438712252832906591792338106182538567112276788235131554834273893101607886870001546993001567898052177068459717049569017577976457833308477747828045291078202694481910161954427925753605515560005589803854310072371158703237122700337369061133064975970051876875594864817357172870447540411512718013222890370200761443258485894604717115618279484922301954167366460650929627158050808191401791958252733674768036051262864490064589680660149731573019090888606981119710223219615635268130543142434369918299704292845916548154435297795852152310963397224850743563177613806076532338614797264894175618271070820686743243753866891962170606251673848035466213644172744979862722811219080840756234999867894991000253107508333309884830742195833136158594965506434448771477159169684644350804917025998301616673983930493195736674998247831659924382209668398776682624534332606555052470619954276734317920142043085791564538420214884185974342832150881601581760488141831911197717266683947218915982515519489656532479100767966887822366200756668539133245408807395736009639249354408795403758907416793408988006169831603324726328218786585487550727027935293034536874041159355064640854347375390029219847429135565405056224407190798859056522870447015940103610223896642334143553695078580528055396563581593182729704362132722465839526377830130998921627268488343042865066204158077275603241377129150139799628665063170035025063964031167383154123253164874940939698687474852665005698898208483902062443645341200763947930679928781680014865600174202299545788882260956496088501617365989066400940099652858379744182456393075892816458729735592682863697073027697933875284667224367425949738248082826701258312539916919215122526626009899654099212771403870416952989260336332434084267908951521970848770815804244569296376708197250126955756971906809391685839538448057640845996891652833912862882747149936488380519143173404424296767308181144203014194157528905525658830559409785944557248371151680795811788374423367356776590141485200757912409171900708564469596484449168800433573516621251641162335460046256194768114725616328751129567435679200279149016524863828596150575677990996601596020154734074853639588934537291238575018510239848602399163503050468826311417679080697977237294579823001758899611726202618617231633309842953362953106994752233643411411469191233488994228275945005434145103587579080530947457966931914186010730454768757915387123504880976312881893733472938060793261749505653883822647725905358346153412545220726898323684157744882166404725831516674853687814268723871511980681225891343921434856082201752111255575696225232968360946381187007013435637555326661249627708302266791368481672126408061000345883190456468897560774054800731728411607444714985004465756734136937411286747409854099106427508920376003865632501625329377668849158971090296046186603361795017959809292170457169234605063636872791689093371723308224073640136262956951945583111580856192347245969641804097947246844795435008161551169611341591550690442915014037091606976503567906440513143839049528928252246850120696222586218113524892689062617641187467307744763360941280352682996944169246809908849435475369067888683345575463081201974965467677304350580063333178001553796257772780054213478505242015433137151361555110412769895007605903425501326894062257449235514303566379611361615331102974240930952368195329663054058133173421394839281361143654785366173764334748789008591994600184938766217774307952070978100699620379139490999724199877542952643108344180319523992808810993921455120782933849028810514143537295521867031469159881077680709864863080381465696417652156742067991403377375025752142066429732078941696541343855660267481142994729217292554756515180272320537112871497226481400333222157597178165394699221984041747835000053714877645728638021389651896936773785576328108897737697479409167753858139258641082515587360379794055576991068721268021911312283555114116509802461079340388813573897641259613382152761748851508306908701399478458783717677763352619506676881327927353803722768970898514011065403346788180733921152892662172747967987523822905329905049267282082560244760508182215964332016226464044021468755003665985110241869163095981679610388562171124856211541666103723297209808625117144814226509715287438796969452458256209742407132342135292698067313486151282503146751428012923319935549936010978027985356180479453942399221829584116741128678903803363555795981358018927195590199258775434174653292262220088428080421793065205736007817666251120871621246261439867676694132106095727452485127757676908503777681335286497623032390963336026143451319202537694122826711510946320146036578799427615401902571290484001251272533845175619104740089275872164982922626034735317451123314462940539897489926909716952550856443119912952085914494496605235800599047994989754629409007745232395362860485423947124605148238843833375419793508905221422643444436585429151210774163562116364208930938368056199768393849113726233057405840493591925443639059717695705260090426395167932145864875766015069659163204476905807997869760197908810610861068013308124564920428654833272945841960274553100694141985792658101282278065255959393123922023205564570888809518343136873700698285262991243891536971330705968355679941677365746812274039172036491699215652084431004389409581177219132083647663251037635599687918534311831410377902197587791151416757889570960667164337253348927098907344061828975599516196075219672921049052497703066699806940749389345688669772750248678841708352262765054591143510120578304492372083491628921933021147534224660367352426850716661308848530396330115023586234025917682542861183290516430882068081751893720623160546527875597683914965684509516421045314471059854656159220765133316630638012050803917013681268468837768356512078056408761290295917693827158643631091076670688751630783425553859185306855876394739785713390390835126699907521686760135136823756997561309273416635713813876419976259973945987884175453615694166069262263038364810824130721893393873323012326438241930652691525439277196119362044433961232611443721038604326842030568647877786583474288581774670104589019694988420964658355304448779075716065626371372337190706584905502399037184680894234378812490002112341496956913748309265707535469374788947623380536485718538639701144439607390459854233298677866229634297462461693847060115947428607476144809188603428765396099134311046573756336568542619915621377014832473499995642232953818263849323013831237104996463471982531696551836948785894294214360206021562490292999490721874423438599871327166097436675031702886147296349963719532916911000889713533263754685795688693502253411458210518849771688924485907589575535582242366824378198420675537343029388270166713667180050892252810275167027682740841588040260519384294054032351415561957972093158020227938297042918647213840225876214262546000437300738983396417655322726024355755065340963202621930626095812310221323006372943513577538994164078211791421576081017989098574927727541071076226284219764424600655581943925028246384982555583914345116129544959740569909600002399762296223100856684232380880117443005509141329736476050572960903938994757621348949255816061603619338521605575367523645378522512640632639546450571116656619589102813667620219996827923272795332560341333800059746226310934507618917889551162333559244482816829998698254677427885268958553887296938303307299757034635893501757944838332839647442166359569581034565934852797230842563617373886760153914987699230516641495060508522445110629279062712501897742321330118016050342146289348748054635922392064263556708416511321775700247717454450216677922854654039292337924215342900339702471041127307656221411207355863993711638732184820796713094060670758832807703785747113466848396647913605300591371441694457802064850721829176158672680326642504497603270566770634479232725469981233823470739865481908242622151765805640871262941460229441573439562638281147111841030528151397768638309259495369868387928234149796767959783281757627225692809267627292493825150525430235656417580242377830184624140373169716007769539177041415726944245091802702791971325311977095285096442117435621113449218559741500321733183539364505311682408952555872355677699960066163435367120443093178899361430322313976319954581899286845188676014502878616404963989632238559728099920963864361483445496797630000015712190166789585328731317149198400924192083727951465600012067738510910345927044196942126806811952713924642888104975418255940212979109375911016923900698537757777671638638210805879768820801350423974877085430687260553207417836823666143831530028466291687355033960108231704332603565601910422645100148385714246420754761346799072002722244701354425718624944057220391456668041704413073678564340408235443382489085320534158354957293636488468560741629102910247528112524258859084808924771742796007884896160383921888744792690619394073125801730817174102420494563652036681461959516125112278518569457865511747390114058030577989627821632054951679819687983882499014318861038308919638776549200026320638321113345961936169979991301244158726971711999608266564325417930021418139455633934284352232898092961497061174988218582940185802127769727579860977469851490804292343144606895285947181867179524646227378003067407929010931923409568196587442257242387518725617283041830569577600169299634407551603472845700027543236046358662520256232875442115506369841375985734794296116461076027366381279660688101546954770493616117480189372585442504683597759119006156454659707598442085064958861567469302718299108979057734808037144385354043012867069180065612787398870802855609324327787045269631806307490045395080624251047475019593746805111136959358104761550476397982618634442833735582899939921113764659011796953747742732780192552591935349907210255472529861963176900777960775231069758439926599532685900225753361148223689859933354371977434305686386649140010704590833334434274059574449983405521983957135778276332706757246052056631336334466929248000019336230850320815531849491480334473896354790728349804135514056466803279607021178580344372885029898448466323304332588955540292000963158176314580346057222359559871405885097004759397597941034612584048852547879993914841137968728991591204362771185815256085694043971011145788493313136234080535376727147305601647455354601670668797799978099662510343719283863274433363748926776560370202634758321395295365666285057603456237613236095966594538210823208629266493946266748607111777678541242246856321710966432025800652710026370855243187134723259666851482026374136402716858164413326940617221317784054191850110879527844704286089204038083706186556610588547430559274613038270294390650371456433297798397826468821213448967798255745974631247046379667828281400027084538882401062921266069060163731382498916783834657390244215941101504738872011436232804649095992372157110119200653647291543668788490173776108115773797979214070933391554051974872092904338406779693867704936842626963147523868481307020249480534248761467485875279287464914424684183617204622732012033834353997595943623547907030242857658560305483010847036891658615571111284744293718959958876644182018425599625422458461819740785269992795926652989604506927024261770575324165827737087918370706290597680471064709241130430277812811549491819140176645855548796758427543069758893599287709702604283353443252018463890947665291274877159444319942730949873494374850145357087171243727474955590416899117521391309918673531210873862517201382049651350511796527960739604183007547236265382874902697962683417132719046331680836683466646429616778740430984768426561699851244341044802843543746945573306218795025601656731983710510714676042269948995401989443333940658488931628313529757885937032984944788516716291920305474921264365226117615489601786271418144218263593589880501674538947116832216625332626232806037918480042269406631041692014597407452378775906058992685800894122313718759699517897546232806222949962002452137826616808938019108557306014384730803461051147123589469208953064644688349000762245429399189039422337172448402911240010287308279693251904811327032204396188816221256771701491656952680557633883975257551089710005422359181456334305690875650996507429883818070477537721649535351393419694770420308765795760416010780580751142453889388183203725094851810111542628545883776352059537786013576732524495829652190195527331660193644996018068415899826600532391233931506403014495594638560861861883024564263784342140732260666123958487573472727238358655911599906539015459932015804587615337388331230331174834769822876292202157069217153767258529916401868429795977101331448115725807292776615923743706455225098107308233132604818769051888381668647420343544741377332950307627839697464442701506107431465258605465664375603193141530980759656494008957592901023787496747970385971304617299364709911882337594028327297224547333665192763449521706305380065935354434414664305270571625580183599139214700328679653064790892817835646693687268114602619780391496524676323126824044581694570951028157227077157423817999562005522808853013944564423819559528586002071900950518519866764161959365051514932828103189025812467053066783119746398189250102015126488662695728532619359367571810966747313517158991266012004457928155779392590589948050106901123778633973918423155298948373148318232096311984944523808189174897689029267685757698928453326378697861483226433857783158370758326561051498160300399210359051060521078492263002395063075657866242001227591956688887048394985903763239603000246417503405861732547886141728067473937800410097302414525000001488256299273558006847483322327953602489766732524099388271541467224188102781480208548630579981455266865726091924536720444712450981195528185009266542837944689365582494076819857992230482733961420467584660495916852063577042088104608015750788496638793568830501848216443312730615351825507488860871430004404047142842249225411080721573957929407143998703956002011725270548134221678113677303667641418644525690301041720968323818312337296276810048695703970342598616162026571033778028738361834818066927937780334717519925142720247947308759594490579745453203253252214991575071199553011188371525343584806583301483051618256288042800056712238804822028233090127626500279853167540269025072004787882118172285919974456085946305954807213745531080523290932139754091349761753002727998896366798057691989330776557066630976029942401850392561189377814293196964119075558698091648921755712750004353550695878119726564940225410191863405851652932659192339812646226258047528486164124221924258498527536250201864440983991681532325801239027433170004157302834843846489472691164778093396529963817614896793594731059466935168608430072590148061776468014212158711599577453549091408934374639492427341238452586169059243727630765343797017582852338533984276424858622498803997755077465387523993838688574903189876768352316937493543112940827017016118664361558920570813126468947903430123315768165120583433721980194222343068236014735404305913885951812127441784887927290202202832942933508796196272159940599142698441262653888339565715206351239954588823845374070270430321773123992726291107070562208930405644388736575809648665559421659246812662229242810998341245870779924446650112591816680289960025948063094464880845715290665082139778206152755644521372438126247579611445720423654076416371760243691697119182922751099049908363378796274782153898937790571079898325410163262926714431762387442013603427640593726722810000619425718772806607056549562656583654402481554252319335359831075925091386646533688304458652944240244181241461278800958128324385902554322188509669372449102521554438229254794112108432664424729855037151628029362469946768872154265767623014915625447181759430280795604048246389611473912440199550281782628852926534666115670676869994317156438956762152277126250798747416172364114451658482153940254558203675347347761569445291846971939814978601304981462300481984184969281363029300389667036245130062245454510090849447717525974265546800581046440293392876918195905929668268836775613922536061424073152744201158262561382036883502643110222625652034193245386450579977314673967242549645753595316201385589414278516118018500067664923288995388971642283871352531142146883351447940916498384560830928801390065130321093115082348657675051769173656590118216901138126425869129308117494302111978232230644581543091515493798241809292694901225815802671490849967163190350691695785947843362093672789062484236440503173235294376090510212835896933624091308778992017078112222893442345048723831493501501452419634515509172352334327944942568830675105513018164772931663895290317990217648822033129079342082746151227362719085887761456759815123197615291344367402647867671606295496822328234634319683270438901018409467013392894199078350542822143772703553333409247281277167123337944748656906339598045207729119091035556158024691138084799665731749666205671560485977427423197149699984506843153872064256587603181169084133817706639475988337829611859275845260724782102353562354757145246033326061605245138422772157272776497398395653342374636921236527537308826213777132108174099840157531453692544638531187926796048847949103511058205783008107500605454574948054701613244512497165304218041753212122646845356439931483768238875780938758520326808753213525690289144614698326358534742860312473614162764389088985940874026779572371288069023553404790316040847249352311644625720418878652722474748254095302792058087458122631068778714487586534758543478050822509733509366067407626711137275821697304755667430252150117136686345446077709647165618893036561139837040205025121993244967156218763899660577339675321382431318705969326129507043238547472811900460521943705529459103325321919534198466424785806926167971271234225621240569016619696299766422423040227186212046543547976597198136188485275562577337331424343569391503044382664427974084777020667959896506686382910473100606504798589472662781033837077493911888740462418343959051672434166891873803183385611096456754831949119653054760582069520597537377872799695599808113129969549065704515239906463748490332351313172006686313791825068691071649130744417746957422325226494978817531934833864141538616859890645581262511935652457295350667377283646402165452746663944318459742337144310536832507224850637843782481018646205715763218250621368485322551665213716821683266021054894550498775888759417225611700174416694084213912014017625671140599869234069598323361509718275598833878135330123925785764115895118619412808913923103122143521328944659066844104166289090881594983482886162614213379247506761179389018867329576496103014689500945823234932588518533026412820132652106736935963083400604162887837423100719365651370099284312699860074066865214429629597695295624424581205396539076490660250823998624968133989057371875776532224920684642912208171738475364705311892348308643067617627505864863953253923664790067220915168513660615304715286262002451516866558694092628875005123265558548758099288417203226526924089637646953663539882603350231873745523245505344812966326500081997175120389381025934087512353482511358338763859557623321441821851946554029361536577358708064904124818326570687620973418587109718909839032538389644146190020799091536794472978680687397990966855811369765271053068527617807044533843297602911153025354941106567345657966965663422279581251681494499176716416814058599860574296121068715065134929540235334146988887458549167518269054881199897801068136904875464456187814511656564392096144659300938884604500672426923088847655528562816914493513309732635612437410321785972197583237714575773202845438061804655779772283334521003211767023229217643365986554035820577972905823424558117670516872882952454879236418448952876522512885047808762567045808001281244037687401694921335807292739448150979914757719561879589276253048616366852791308189106438917028775981565341253670234200369487652133027268195356618641215204849101020771575204387478450001152267791808064624112034549940997916806987512513710719797069391359269883346477152031962116928538442698222293996963907795705644191509106496425346480059793092854378598681383356270194766738065661688635225690313986837737038764612214982990406838915649079373946475695943468852731045052971288818773442617122536818738539898350572123172919902288928229413092205107223993128477049604452273180148594804904313993265390115677850524744785620564670254170606207401055740039571353076277814116542262897935234798011390614854226600729563377495025990243220502390594363581141718605388209292196167399061829697521937169417610928928803997273146698253552570641999807891940830403734763234190413682967936732668121803241680268676373703999399272492141431673150862061139390679405715869113708304363278281895490019642377947298188389506403295869348226564169971745439720443409163068355369715895449065096925850049666278804813270762209324969756222629955568438223135878097365592550532741161001752591390021386204081923590453368102009180620874304711687159389689646273441608595762010678692321578625654758059240572306424613484610566667205918399108016628476466044936925616322928425989891320621814897816721742924375587684685729778480900985838734265415048236105366626422709864967420695819437374831271588731474387300293061453071789324915156933167202565106056148613832615863222084631338432378165573213577861496491507726584120908189878353461562278789186874485773979148571965347198375765928569616271631632592823124213756274446115934490219389991657895495450504316360397112447895656472094463956457064164381889822543784667301926735950015440675358697563574143738565779913307537079735095015056053637672574540113365235510359922347836349680421395946432269926413928424721803221161784018670785407067569333556715874180208590559894265160296895773519115753453038970965193391880049558320953279778571048458499424549716326963213143779131675310640407743543574585787080472921189659606398400986533594977345635345431684261692206115315497473610077283787237639991182126073891002302948475915950420425878831793364592938928437503485781401505118078077842727121938885562737285012545078087476725112198202270340554794539493502668324760298358641554075288254636742444488790653038527617455783888368060693361063974925887593290037217519623836714363154124207720144790060934505154732641243170402944126341273354182644142863260639355022675552733155429277463062157256439821848986238063328498829948529277894165897240228963833580078760433855862943779641861536415568346670855441481375514059680008055194429126049195118197956558502879606189990413080024108014094250952550077718370784902674280516925619086516570416080963123142968854353020000220980332078277289038359870292243790763939625409378082409127922446509105711422243512103957052171406408771145418480347012539359781594696977296851423250845920608193835868269457141277788560752074218032451585669721625409625534304791126095423567219742619484743040923435921120568870463212751133539651681382909308095444247431853441996207949047414716156957103690698877357466595463323449941767703728198478275397489800841195575433205543826701427717296225319329059497053547745196566575964039120871566108517557641230702857966243665889241194175922724816326482236032808706403235256194552744038828984372767795730902438417148104677860329638812152734475814995354072815052969907890262831591866826288156455976605527434519156707536494419499157283380508747943563612488983807689286463441738029765976547743029961135627599504152140536909955956867073799473700466359780182039208304261330179306261730325638668589518074745478005524449900105207146445726958355639437156874017134403268502479646089011607689937690098779021279237631188549391011512710992177317910437279347873502097190333814435062928112000635743096819968618004029168081485487293293508198152524878659849667860162199604716886432867059256867765362853473498270944555293388478897858942361441318382837361248726098497460335897480758870629988228246745807582418715307626836020088683195011060475254181388967542187006647609652030142214229986600866181045858046319390533221759539052948191579962623654294199222237191310758684997885617491800703877455409350908569760681902722351849333848989474327700397874431903639481267231553190536117428173288596668828691020580189595511815933077457030362137155160346562565387354566699927971091971132859655092378478593617654951351244609339659762168337807672061403204049730346681423340852120447164167039888453536548546763867380177914838060110467122970700095731374256320586156731100944645382336185622991874504959790557421290011339080731258938529113207560906042591444570243226016603313861046027027412750060137624464137882849998588529328619873708369981394279374517760365622012339937485302158836831218265436596460037625781304813084797077331092832933427815953385358920916135390679538120957263634657115414882372971825881788635067127422525681896182360006557242244416366513542047231855214682812494710738574176737902725136966810225780331006925148102018309355013375303794884496098942867684732940066172741466838725412873386464393601833932370175583452190577583697585430155032066547144320237046568025665918344946738816801419213315213050815290013567373907274893056398889822098195207677836121868647069789614950202996275555517619939425064266037375318954862761445829495259065139981915540889846548808135260356130989040921393176680937038100759348752900635211071768325982077273354672067535306727707165423541202301876274523946068609289513887817940696121016555148820322978284154987208366946194379913331516603441607358945377641694150003816711474924273561577233528569791008472088539777093702513258379338933239425526261406530897422997008781295715327715887002168137448837493646349028809118212781194349936975572375546627445036189167986230675375329891559137441701232614503137582888081840676078090276855738111384294076774588999328321084598151495072149085847347010155872838684643208104362736504299831465464593961285930443740528201085007780827243833627893296184662600353421209225091503814056943761716310862840814860959726008267695832995659757038301118508067248998704264932885222349757822176142531801105559246400285008008314722561191940823397555157203147344493965205757195995621028535341109347854955385155720167454106442901595527395755807779688508914747261394324266773913042135457385276276793496144256267447395623941670386721416114462710048608804413012781119699589541997774825451404818698808157540225593044163210932630579137856366049164196218222193356619042499099880190140265147738328361623555216619389816223359152983319403312781971173106181228645521693044958159672030617441463255947555346812011780998705655266607636640577927675428907321597937445110847142548202803553577553330847722944674408783138222635340308721858616673937498069107468097110956159063040016954099307900657841673692991325744650921877851208008098732127731522773794343804702397740110255298881190032714390107608335145571425505825995441741310012000466642722363665048834213429036810127266096493663725292019208092708860431877797799873922078398032075565821687439209522356978963624025795491869883154432552864381549076262421319701964889092093646377564086610121302469937959756399943923505142745836438428494030125202346097431997471834540732307802426203228431397292790017975212743076391095402321914501557580744772293677488247863792415739611274922245183187932939997309788277850837142401596043257202668595065491796368606058879941708066522775020014899532773104414961930880840714498740210224100493803078899674136175240529369001755446078540158381875559142190632385263807921854796226518060331577754843461332975803604846517439488739847675528907354041676104934308863194591993590292373557143089910445951100192151605946719059201540634742539228900072823171923870809593838595532082572901150332692063501716544004680433100104380085910690431937731630540526858992451189498894608259977036536993746888992992870207235331525599411878953342753106902330731489450683325152394612774255805124938500755886868662837698548194264947137084073794100663140388457625794858843539827517575592977073725571100653416938701302549730030898724278188182705629104857738462010931317149802677527349423283986987975104204344893975217539385331860551727327971882567609055051396033755571905413073342497215563927226186569339117878603934996755448630570523315750207780724815874932755677943176353019809219986158661707218928879185877145008852606652489303832954066659210330659004024135791091286478613534902730187189024904822714311432814632265860523093544198173205262311355321828867242115910764140461478696723337424880238927295168641061415219699435384563535203679413984647748301930471467459304695157048634758267897654447062932974832633043072644839018789474144062710581212804796002604297785025223746546251444273431568870494732647095466544370267342908661205328024871389868828087983494391021736990092310244381495874798187685091011139447941717596014960376784062810158985417650193692781958375043075964142370228385782449368678664210400781934859127503471935983144696434801026691874508773760727541563764411933796661638823288278620417395126773568407690651031037293206261923420935820435010710903021502596657141649252958907861753517349557836379017253092578627323916275132673868517947643676541555307877804481581311096791588578008212086294482732397601033246752058322122805104801768918032739810733718273459432292848036745600909525954440245032612729191932901387643744579682254033853398418391978504736844001178698016024880728815779052782664374242992770777845392422457004499571361762472197075422414722622990862218063552525577995127296504007209879749967853818587420517347390971772791199321712967502782169024374955381292224743457585306502678401492302978488527579705105243932820323527809633448969360569616975443588376086202033464659405864552996647268957120572217397395360554061012793632568389523521600180119980505308226563956053759604357663604113986250383604510346296278416062891946462275535354339388231978480731635983306319087405301602250532133176722415981130690323042257547725377114954398071840647267775252245323225934416437980906622475044357984367642876528330029530189202946971131942832769535641160553536437050944509808426123390491793992238132429645888816547838545285012691974760333948220955311815136801221440025229935366439555773233119221233871734724394891298018716975602657615281040038178685613407455755316917099149418707373405400998500072160278126619794540335011572616778933214763212890404755828534748727923977233956730411356357880261508558976416000468972330470732348387793883137857830681035775913141515196536124024286942153672497961170741044279452867235677389374261342475186729365548111247250287907951791639089802084146510390022309746365346287184886692923760380302538430272483553157144478568778643232741052357857999855115235793688002299531324306551791874634201821119848855120120450396475250317686306480863497270511360466551718477269768627721058597390274066673257544998241730786235225028460425798906433852197587526164415798740901061586106943346276874917594857070399448547987822484745482129826057181565075513709789856010983165589031704182083680789911748476462485137135784858532573997024793532299678399460711146218796032740450552015417426472532451027071711495819930536110636045624686399213296237378973938269908269476194237323149174213482430840533916959713904951532504763973836445413014731492741052269028134519644467962445239294180088451480094316322018426059929353216202327989996714726620585727755318882394052383922190479136250902712655180709863447712118149153672942276368351729924626979350807158248979050557765793307851684827623233637715526243883436131495496098089994892091011166834557049512041593946406388354514371552789455595190684867767566977004647007408580065887533760242223750960849595339582024229417150408659285172289971213197066807961956137891422196493562955640404393133536485444808529388830399857073054123772081134087856313625121592669374182663374652426223614019095866742758720758239213276213903365476702909347995825193116597949572011697113117246971553132016011895454246431250907874939347654154846498033813271878072490770747606713769357484742996848439275878159542167622870903678567912162652800381105749694353271542303686347648256680124099273056833792622173744449974854734605772526464587978007468015820480094367009450893765771883362641458132655508853918314174085293124660403928008906381788117922414330553445942271246572512529982549143630365860250846721885298069396135445858924351673743268434840529622185708061384966814191280737156808754003150516310467056384735936825479439798878000980741895741494569738244089574486602136136597799798046784104307076953951318018296306412963070359472023274225066364848581340458269625019431454098407853251619353784523507747554820805178044813324520855095525715083355330660884410739123511373875522474868632821440142899823270172392279373540051689702111987819232815267981467627184969789710540232635303959376494722737678565767352742910098163467216743242107760502944022583763823150721036432339832436480848096745167298660885986779170418675612197201448129439335436149888499026371094411438039570410121124628678475101220096713263979039029910024715971301265894759147675893775163729807985991700762362485162600033568871370072560643916392469164228511488687920662720801093956590597906842816732363402860806793303241385899186169238169227861039192769103941409580435815594388903960703089070016417605462671339141685009323802942498048489966296755693125290095959086473147339784937630217577305217040453298774913323517019051725739569682897813322427892163805629187727697698075121487758147765491287503349944615574526903929485508508277875911742733300207922055201562839378040221073785935490757760288195957825391983903833125644640979748524754628722097366338787124945332239760421365912995324453983435689366563570191348136425400229662982034675542289129337631174427895190587108193991794620606197532853321803663574596558870094569774272092853484439954462636830402909648876782878824956793256647635359535912998343917001821914289028334430573560913308915344883786887093427697493531332489960214895147318625551035546994503382267997147627631537795056021431179379546103882884112885460159412320269907519363338622738383875307323204093751761596008944026902836972789203453833981658057737959711518880923152296875752196266398014111766966168262173311570908691421899156199967839352562369953481546551054202483683010513761874109734291153448460642855301591527222451492494236529636136866100406343167005888314494771565036900110309962639538054831153339282269848436905759274136389124751991615802787850786883760955916300876229871415085124256110246006953522616029100483065703439747626118535073206221931184908722779309863933060322823953452220583273989171223786631389246098021275546299458617472929973675911754222497972791577817298614489398710234581982102296376448522597298600468382363889292350484196130154183520436052075257103041912083744591355562143011000908750577047781992188011731892042090754106982758872805927003002943515162008229520720165605440858120622092458576086983450411702364508152642477311812734470341915088148633709958761378098855635855828492513929817276610951960686047698159472534300768450779939597952669401400771581779942808160137282330408853748988066335181933174346443406499668879260398990540303140521856812781712483123670325580771578721263775122551550478588081508766682646811227212961700196278768848372044308328034179946982956536377153852716553866992694960437886130961610241834798549747783063991262638166623253583048965520948244667841658757533644462299171226880315296282752278891151226846596051303585307545460708695057766804605833959679690307845886956038705284630221195005610917183907644032772678969484614617390307752774229968192455395489741471499590555215175364469098710622678332167426144271709583786524215855281033970886825368444104252720783811270405699067325650835918105481906601709194930366444548704459301726222083097246084003036588249558243060518201800532123747433354886433216340175235692904644018679270767162012802338372887722491351445809981380549607227680865345222490765852736126343905983111761248582921877146621497169955794980051001132768410032786743790375823273610926511306478911345369925378470567058073695952411850343522668328334389365082049721537904179515011444723446812568207430436662614650446763082107990791686191747463197547097651690122667413580456247344557931399751781600362252091683142606527335183689226367453671508957043115997306410177688802204647508195308854527188480740662679756664722308590762961250807071552694556812355994163914714236673639837667497000296467480434759556288583153310371852186819562901571658049623167394365872464920403775452117348537229606840573862599404310289583723881538556784449950366448397025527393377491717725903476975722864295001283795097399232938542984795298669670906402911301556360881669629593408340622859274743404491725894054990134268524042096320407966771681988706060363768197063743231230792043444486859174043187594034600022718009381402297751662708222587493905870267947624679330505923216797011069524556203245215428815289129993735383985376346948874014942002735431553527830522334568538458791244033022910425037547613747824765074150938277737794136622669230101683460475338453757982798232329024237148986126245157106492015674332996417861584964403429088042812656885863697042096275973877581738121216821667339966255101689760812921678720372769877314799148078890503769730571510278125520161256145329162262133802006076477163033028429844042226750541470563099785987018447612135464575594915696312403513411408662881044856545201085191448195655480400256188070781154040189705998020390954507656643404337629525523781854022556117339673005332888603277682092263371531923074708682249136398665859148149120960863766148692577158450915243061857320235143207168796142315904613178661856028172039475671885051218961291693459225559001000968448902884516059247010709177420726286115474146724909047847779680857919590178399489677146322482666943724782816670931396636780028261153784181378658122132855399146737086347800143285885690768263357202626958122383132890793157375604486844998806658489992618932631898503198663668571052708536959657959838837728860736319543843037159947980591492863594267047678111360815849133560813847520869710242375753491349049104363858046356006703958218693735212027321076311170333971297802166719559633082116556137243668139508077210739281717557248444400770889979161206013177956479547071188427943077947986740187106173982476955667919233889793661390845572270708838693130781135240598407802127920527231592178594429900085850133687434155746752120410726765863821131413973592009494266623262467411593219072033300675788248907718660372111309452476024539323268737797863537598054524104208713787960015679399237217697303795798793443614322235519617743949820848966146004219899660098212841849651883862694971183535583039648655651757019056488208949145917925609412417546342856165670841714843683199353372809639452893386417914674347906707663859847812844563994060646651068713686424266804836484147038872211193267391713461374335491692021045040324438090875346783313395935676737798232779553231960757013276103064178336951792499709456863332787015407647283380278179183222704002009447014610178462665167727977877556739031567845898300450002629999503000378443770998799433815354495574391485267680423683978869307493133606073028413367466937289976607486394051777484069220697012005793689979070414443876603114892753119301358594196113341071571986919372203448399739378065028122838242450525787201366191242179795020804250365861172736037195389499545641345644552631305820335839757630464324604152545817209469828023563243640171494862165976649523856065113140180966394791262791017694580830322292235412476340608890591841490842125005804633186857827778188544697362176485105353201278622014236682715488802039992467788647724974979711660974198651686182682833326892870680176179543768885907517739469271679751507137795481699065238552970108039033847179531258518192820392130326781480679649868519455775024392314084762793127057430970834952493884283007657177916794280852571783188315220375074229490084627508889823940979805609127505028439932408093696043527859463655774807378891315463809249577676501427378553441707747191569944899470573622961837161877691839658654762944810483957093342977246596394576391654248076766533667405275067670767659882202998122480696053328987259984934639809279392892227879817303342094688935968605214582162940638188749452289159384342985032004605254247281781372642588044804189377303593550854898813997352602422083998184615396711836980767055470503508988333854321388958753664338783049639599117833548550713827508623093676613475494990466141084960316113683991814451855878572028263464534079342501589512391944964596678051060721944152527853149030075668965551375906404676579059621453862826243849351315463725671174889169746237102040478886658331565967043501572452835602413625523320676890043965075874878578341728686425040109576108833419626984576238051381202370889045956435541210380772219011531375100164439003699678954763352179287119135690889050315984289230803993836592933831333474558647030382508196850426785936375131288632307811009920206591179994018453287185246304178754673722908539545911243821970821322954108592430535593238865360643790840217534320609321838559992379233195072503989144941883893699838345866982366731360180522407728805039954787393218376272410488544851867947477748087369900644782888113450139119213036937804368199768423694957223564020011914799238266419708377952748684032234604813498637136652224539793015127772722345967546898849704725984541829379322541347771193497123286040516939120252253128526488795159969849642603615148236106899260619308411027405492925650249201805828968279590144481920848139949388621567222259694948561664791331853790981919105806963496420496802349178082174069314271440611206453391354424362523234265527030619748861651054683268263063155971233965696048888281346045328698787859539421299446378326801409914056548763574854741869795981282384690861421456838572308295651286207138868234255073386468387028755624074629346762147903776926640133346753617868052292871377068137427765119279147538184137431893632561898425950168663424901645408235018330599477378413875226355405208853643585519855349270988666979370891243796941538983928816792684373252601310921366837568299523505763079375837645417518432097376493447683489928834438271072222747488202215411029354422792185524604432405347830329956079948145295711453558725655787312906275597160475849047778742947862232232492910574622675568754295686560084648207328421249489831887010190418727652437208864119488519409469288518030184851534687927529429188190542922085754016195720533289613718728115044101911346409602033111868187711831953577610797923718771679000876727517123802080979135704277414973609226831143560576621319571048000756741949695574394795496953790093999990840434225025140348537578098387427168070654614945176697470090020098305915465299792065275027919592985747830319040877254387524923935282808349919308879813420693638998594646526189567893324181995283370882245590435301154692468701917681378791561268526948857656469713567315856043870370690443310957786922175507531962971479794796674724360883070274507365510196309946995135987243588486763858699749294496659374732550886786625722992535012112960175686906773238956011506621521168869391488016690437008812832571840723450728505110930992159732877233841999789412150316807027042751972130612059666969214207179347711761118120828715821238716794798146086324727794791998074334226081295863165296324835568105491588679674857318859527860504427044659389707390968052840298506298308662398014045017833016587876504152554884923754578203702168627148996488656933224422103440770122158892478704151366500309638594230528618991811519404943235243765268152427614154508267463702840221624301212322522382907077848759660106848866057327298165445747158115858475370251160632139271800818516170340249555588977499867295504177497241104870859730725527964507205253331715819411507403109603120536648132310758903566813539071334055510494126350565127507438759164095367609031191475509536721558549231143092330693543283090011803633227948025326601680799221141860042276548509781454293527915134130982535685754247574868766126842459903988894910736302625680669525277541943820789686305046418477215929093631275770821233820093357699610540014442157022932283902032454512115083141909482683788690098571975331065977845571196983854025896409129758202323809674314065541071779762148206600603723287750923448097104115030072436037838315756873763358175465349993607586165593468633857754132221279839768122575562637503108381959939553992848595837358067224044471635180153824191368264165610011177414554753238437967178325679163847622964008429889193021627671276169662582605872977338222963967855583995463911630179325172432684976006355692478576250349432502882986016078242144938402780575896792830534145813993634117905348937961784478334670570220681128095620571911508864161672526064635299236996281114504452105291007441706893930573387498138372706097805588752465620602170301702331128183291223047474128019665083168421162399620888599190859419986588252621076034699365272557818916471027444584394945611596922822769660827157239615990900620660623367728828962451661544512516297938267981789754424141235382840745094598883282737742334592924576282896188499864964698454915282555949784271924808429875453657261432391983451116836306213965725393202022836223898771099721699712159507412111669578236767662019597749871577824651534104845357293942018615218235772067602830409587894758066674950989526876804090644614720921965154314625137756549347433415446487875536488477923469939443703217219561835448481003951593475845981996812634354748275624005537884358208667815155151852870905553501934762292715167032543346333153437276465068364394096235602872778004793599598170411871551358220568362682243505066039246535844519816958528474414028273234005765193292144328136670311271856419123220414878093510998392570763109003951901050644177864480010127284001750821031467428245957185762324473088060371467744408449169044647957667788277945124429340633091424673862899688903618420332658961907826512991498762944149674781791896141540802286060430465399521398026256043519092812152852622195355944670772550291271450912622422258116562707219304315310421422974639539538332539888068978930234297831478537083099123042866875320796627903660631080481130885805000603744216870296845514915705664113258516327232886786504487112622350629241424443598961006878287684754905021623906139110165343113926117089023667929991006579881853182326941870349121425730191521347210842079451692246164949759613812290713024893916659601819433170183343477635181324627820188637652192552631528700999830826288181479565981430142116842299925240742553723561550051025190748431975345359965779191624357061330280753400505195196295726689876951541833792129180561662833709937825570943353122175346460934655349339329099443131495166552086049654550483966966570847668207374109781407046411213542160225629847756981718824418057021205840996366888653400115813304415457655613591474361559333142575449394634144721429114694339985611805031914523796153770549510077701225572691652511233455831339712663439904347169879444525882284202884906419044089500630200918747652626577850358394598758594814498584368924791189130977606518103603950257675177218216736360771706160536134630937960526830771019011810070900999378395912494989098177322274705429327277176294205986276837109112370107130383144147827168054285576859920697465290032380928424798920528004129435755190671681352843037407469994326641562071694770084692561244827602667733032496781189846483907003261580798373021428461171420934950087623088871668313504978095965446278561090678248711090352771350307723824869030244076801836509721313047570689963049648490483827838431826641892224028314219071673354596384137776950863591355521730507003858666302480673387454384139590027556990792106969469714653964816323178147692561515116231254779931416684011652306300596142270254319082883889028359036923573882543688503911516809654104258554876516505531113010609733685353152180197316234976332233683159810639744319228561816478723751725799685360689397072236307650208028671993174077173667949075915319615421740423466205426877401962398633091212780387010053214607956454088031284214409721225291116556840756220782672239571090540533457102489735098060788107918563089832915012791940681373287441757824267788295844001426645609215400425348276761355296739776530191073971287403917558969008000524603380089819964053337200051032262307200878928587476872915861021342855902779720226029641850720788708836974728571674703340383221057888334559227972027591247405297944028956520033339194487277562120331656447985644524852737878489092998840318560479130717801489981016172639751322558354215553768954012556742071077989720799117020725539816423371765669159020472075151362960591981733163477584625469188907028777317405274824328063060237928775607852745916904723280115832131503704880637397362137946226322674437864091718401398887477873026102261098249286957537818486860240969183406102678746232838372342523321191693790859455021398766833318422052279227598112905372857663970218684184207875217859346630060161179683519740592512268041379041374363485123476768322972751709670325801162494134749309985528087551232745115201130314523235957729518559634427948859243967550410693163939753653049485001498987409842029086872810487121924916209072684408423534354585181793834475667720871293393398756979693027440686250304150519431960705329637103504351525881542991475075429622181134748397252364157409362772018823922347696338125144939905507237640862560908148762130934968411604261008431518408157128282654087282007704455805691855306432878671868938928908892643233488667194119384183044314933775974578003056232643858026536551082950511799683242294495716394553223737234594210875741872582753671657545587379048896788297299014015913693539531939701079375114138286237019759260818217492865955410808241409827528192038097854368604283868792251057350706668797046037611954846579363249955025687674720210855641471983663732573114536684865976681160118656334027948035464753917078488248181192568733514137108047546445267057713373414712474826019019387005830196293450312440585888644177350789995322204532021378767991766314335042659860372050497575902120865908308269587907903877212737333535306791383091829662934544197557578893510242655382134290249600982338175956897955988458039046932282582584112451640262937792942877242666458590721290571590683565381319301594333584570718737842473132193037081729564126909424983246846490200159201414945091243226292894052689238253820826090152509281928370128233461921425317297476850896634056774045819082666625504141901108009820768286735344302745121790259814895763076572868083516084071356243633083176698905137779019592378414766030998442823009019050409925585011638208616436899607248917958713372465972293664411775126127906909017231514717708237917863398244162700449278207371734646513612061849655726921437400223480121711529358476760241352449727492628261875885377342982123508862209422820321569963889175103818148292945548040859603471796816604939865398639804593319737332442053581552244193757131595746228205084050340737759748116162169490693308629821170532616320692263156178990056941183240661268558269279376334021162201337000684369271395062965542745938936704095620537030854086050191643239082441723154771262033992609724368005981592804064900463214910884243006699491096565032088792480115309017259355541883365182621442428240098358127839852943085471692963219991052441828637066199069551101650112030728771908738942692691532839464581873699544232387527416615717286062497875695195001262836827666487650922468321211821735369294726360537666261378356735288769797484103377107313547043471946488908808333847577987494846430487838483032869079184168419247875864178845281337051267820141257491899491103569585850489040369956667081480291729953976081721695168860875832936823744251357359765607926745781537407013557746518031795159578991561726338427550017768942502135067102937906782220801913805852457306822076748369664072957440320897277868474953581533651295538208179575756404592531435644184843788056525781335394014743781572109069756930266797463661304971288438985386817946674549192129335410059238904426320220740459339558431342919309028638818700969931795666829073067279669689055046908570384005570201114404436783843061793320681429207672433610723690145292577835916303015133134529953935598395135977460193994319569791063197338290086042245838769679937099406618479673157794325986173983219181085113286158167827282563858237239395543172164902537575527807714582450456832098065901492082255395283492045560173961326243020901474380011795469344630777932988041719232236414476479705860596027786206238556954798321268974535782507600572698439899875580830303028217824951078969519945210477985538930638544927905007520565854004604218934508393088547794995450948701194414500012339892705241323132426159818526424544305945082859047681725850020919375430813108825428179332290352605739131360188692605315058464947078850337867700247866659354581164887805238659515978284448436602326662232356666142810200663351563455876785538180399826224834791672456704927137033793953462002066447096356070292623402280797588531252772691528772965218466220940750822332635035704091248875908721575689264910735434385592407378290423811015586629449153536460083475126972970947550849675168074827169987280899591142039768363704627903296365875774830104854030909743323117068108813249229322506847642092368876141645163395226427992505201846349965473633283638029284806019943612805478158768054083650405857293214371283810572064306282421751180452589420898299160092704650393372512205523179386114995098763164650700553980560133757081330980886059772167427433961505494290421134860573366908865147798364102536429697963262348862694390111321014799718271629882345328848201975790234393634916228444043135213442202663687628486067470146617548893223326008708420530440218219718614111949117685381370192085288121633997690449471180014340556044667590126741760285057855077792319585898395570257251136885536187344188613764281569011094290977551064918932984599502254334019534976294959280758499020464104303618048055284659896672581235409795023069021773691193055266957305330452102805753991571252462734549227510985275436080964544266833909479039246517990972580513352892803801917060560046442029346448396371576179599764038999381515068911656760584102104109472213735092365754556406426175323418968470052027019872136453307633876513714341439281853058107864024330702096341159454215567979296527356164333363748973428204518379930955689890760732462130714155751225791208355344299517846578973719831994270576229495789753016148625121337978342809318112016980206619731679826769276754457643579704729621513149402422918046294610652158150456893959558595805205008932428284315475175647273386225339102736328235680922746639048322402370649970820201599601758543314199383458167807372123988216425959285270841354942372795889289477922808783758715419699175140625803158910544324591839885041001184259389635856266737487185643010842152522899610367166160731780581853674255301688536192193857386129988545747241507861314489325785241461966104063621851302946240617672425385099405761345493231904200234369889940748397227118408320564227344130621739730334233592868493981363889687300875819796338765966992236767777025379059169819358446063728131958901816071540527967637112514789825692951449963715016424077028089602481412192479771552453245196578779266330518245804073493457226856494556191288625171804639664644333479149197114419915450058585286772430363091486667372142284678212273060288704286876614026454976469028161704524338190333704645829472210896383059411793086424428725659609739029994437976660903970861035310611944239436331431451840607470634546952726308003002182268881851919025038520954188597854599380563576921396295866292396118345594324557530138022708387488930642242047092524516192269659541253814211916254122072106127304004274419071307929536681956667085273496820186631490183366920513441996485228583974530923342586039240934455339853200854651736310543000602090287024060654994153294514675204673967801926899869239851546433535561884439802585678213684418255052087829399668086470815349898224370281923538157782855597574834071768041706610504219916605999784094770247588579907473024379558142237283767987663875336361814727433479063811635903711539348885110924588031251695320729450822525750190240837194015857398511046907575167270334962110256466386115629374850644047683438265538126091150275499937499801451266121437891528152854490206711244852277237839287968471260766861572606978693788704143542471817405303535213682508563882484763433968376599214139431100937404993008662335984063684464937104652797333697614564473515960314400994346720592375789125342116300727970601060041477760187102013943683762696323875931560654432127444839024632786313721787837472391336372701013336419043129305840040637167803166504860385466976483113741607180659016932378967817662231635368806953431067077304006060053689844685965283879729696341296089711126236819829427559708280382388935107772580167359480800261877922546567820602996838055690187730624263162240351442855583000245132858040057251345935550951634208827400229221122437216253454304797888746480396621427557880356747838431858842802645111247662094173512935128894776858751299448704090706398072293125439190869725001969426856974770770761877901965106445157846402036280906325395911722218833884394375532339923406826743370636065681057088645501763387029053560517709893893012974399783828767904193594161429598001840408124333922433442594804014310102632653749541083576750784342172691037193278039580513969555922781646068623625197505954743375563621965888382892088635964299990372417141437851294151386084757306301579495078284040349473613267999971019296442134861198100364307152665589877677337567505877237906926478447892956296620863965725597492279738632099303006513863807920274680974362073544164276875711076787595667795818233852390180409380300703622968340290592311856815710923067349790123215445158283569451908073115728198380369522890918961689640022044211716187375134453500539797808308574827480209429644602480969803187982408153140684988157626462610260127669228210765719020209099844605457821988755297757792805437626364207458226105968732179700086123861873493115852327173759598036793644121622085253155095865911622110915386954035363885007215906587004834433850753756434849513727102313250635885112347258785334375010369152209261927994430146344645595368408909358942755039698467169357280007620537032722320376102406288976896387694938564544086458541779102215116129134462902994295619976745322952064333197249448908348303724257568707481557785639823026981000693202211359251704810126194590622812109827135240719938520293137070426907579478259275583477934967624233310983376833460658609439508910499812940089274168133329282737362484326253790880727679340196923763661171844163365231643648365520553805385675804320707534233834592767993419637869868615929577966371810574989588659126846097265529988028759473926419404563821859682400492054451391609418338321827990081097474148605668868355553596356859671278546803394513654000237325052997535292060482563566622664921947858437866786859477362580932046811402915547573835680864625950695357195105575374362390983411932434096610042539359351179302724779778104149322855224036919815367212108471707934051583291874597438844304184004124747860938688924868658936831846504591446987546879297361152839771696620278587495634438963030956315203832742368290499570528778594973244229358667178892725064022813421219636928761101632975328552681733201139876437508010341299339323535702450374673062938487906655522090533952090144902786934140902210290465259566074785799775057974027591535432898878532843228735059743108326032344400466898385822835393199992740091202921430435321611273094571224850654648884120776056958387605147016098891412516764188240909837148649690826758136655260927588976137565530520157909832172671201088075930181650032099773736336638698170541859912567342415933730695868936151725004614941184504712834286343348294895390065998249181106889543318591685596310734522585879908307240337650401980884032752540743805021576682758865222650350901658068335791197248632242571571232306415383419061689054984085026872493210678499853242266319407188114425865924027247727974623705823827643240108606673806354823800703484889239322242696909104810499096219750723193037453709161507122306544137688992397361651423557031512388868776750030403685640444769251755772250549870964903429011612269163562041020770907402515058057058507509401803190592907565825889958024756418603134181993695526754110422405717853353284290048553252558110681713102914728219489464152854601300447243312848082167470526989805190033382076913768348111023520330055334911502813685077930704217309648013042966227286505406865532463436959964570572238601363706726896724097409421271575520388809833700560247986487364487505250357332300450694257370460522967655974031409873102783631862039091351686130870230333645214790000794429767559071210652139654254593964087229093481666313732851494742750169493049531648702904464204878903197601417151352554686264675993575767004005543981805114867419292989599773124677863762843400639476305010753837246104064315052876449866166097086279191771703694923071072095513400406680444492306695908056567645344487336645831288348264098356182701041143578002050395067345604948192450722773407786905279976153260413054103599491039263422142196946003249981219834842971132051774567280151438777184933935123517490122989623841071777490006569521033450744416832451780599059576387049084497579699843602776324812622683909266860026331084922362065034705799342933683123854286363359023951292885616637540908031108546830139386616237829929641929359271730152340144298903366682587351177907438160465656987098336959637629716563478551709029341023429058717309200414681855785422719750324014006328701426410680431093432233652315044812063495328637404391772899418536931042728367857051130594176120119320505775539062878613717929407716566903094276369907155044008707507217958813780011407674591185726443793663073152202741603032727518104334079355398789042439365929494049307122907759892902577879389808357032104880659916093467441584444525776233539208790140855482406284659060683613773632706806065918015377405681261555677440639545426112213890110936499000416267423179302060921781074390710971116934571675891853276872150199820960804572789047663912692666114938298554411578241713085978185267993408899061307196376426688113372566054282298195173408339400803983006408887997223955413769065400676310436950728305658374437267742952115782653041284898278984331818880310641358086122842802237442875754979483802166015748245949796835510481506580765041355315853302069724565876804882274950314248446403768936476176380094844976363490059147634781041164445332897459324835700205546339506037652126187393164705264978497165139650094210756230977685995456016271416562468214093960314057423769497446915690558815071970678849012562857918168802589728979997429883318321097032792080613609605230327348431918600915025003263483286747439933262863058421940507961882106693469966504280540859463035447434312210352105850453004222842017771455724372381944430944302368183946759377654322453266725795936435755976051555374582450068026723691348756933901620803658202781573351743217730963388888932299527288474286933419947760820481117209100395925926968277572082074630234574173241823719111591973903101401584312639451869481976807750283785986701559760299441904629373418397162823401804775905175737065452859185814830532708045768872014412397874853699090218293594834375820062266747352319783566414161392327230849554245706406567254415499778842574921125064961576347304888804843634622171742613746766380408722621081720926590762217578570280877835530039252939065378208298636291562859964478761811179888686568615886223404504023146905533669272263560441954335629105736740131235619873309551791754383220418369103969131078669672880762661811315065431999872286134974556561773411101342191464944700054019895484294132088189301315835013730727670484331959673951739494117283554400330519336783396826046996938421568175826049168035239046804222214506421592335797669882416125457330447007900547905349207167581792119386110599259942512464280301607796067229450748240362693270186256243077277082446764766571071443785894019638628815543437151211596206899288097449560906911856935553644061504100991544411505888430341723011102338940961426662017285978243644373289972115305280836498151474628893276875242796497165589407236789959203636259665545731397077893999477778538853201860293921287380459605032361695880792742793901616060372241916817174883003503995677672114448574306173079577474832819208627209191043350317930647731087350741329920665597552750580577674212046446453356210996731051553636684521243395615383296076720956916120255218122915167767079536468155199327524665176675900600107752259289030352484215625076879125818630754736841919895262622769012961640264985742260499019301165520155222050497115561401982166951734618669074197820275504434033462447816601899573417437128109829380747820969370581044846288308666534965833584684286610653179362196705030861368599333250726985681855136604728264260889302593221624277199887245480322399407230041640982934583379818021196238613750358804252795358295915699813003923816432501771411408286212508736462302393968396594689254330722344937247926891079009967134861475825243216319340379902567088391714312027326072519333341783962284759347044420986317044629854383593645320754535858353839343881623917942627757686108258696205582891391987872746209259310391816239664011236713140239896453463235588970818932460414267043942628122503962011359678834227709035243869431641267443246781131457139227894195268738212774508852538273873263952454350192101241786819659125029975909051405336611717480505261729617284760432541190278891923297427544507006093138035438816657884284640843110368721453128760003659379159867496296482627618559352932788161367312074691499588577913330591154510640387463884053520363909965802865691289991352862666860844024312189748483692771632739500300535408625838547618998035045171892193806282682071957685552656781506027231459780471238318685439575171148154138520052707649649817705741795220277914820266600917232973574449099112838091216309215785483182089989872182541661435738608162310606243240022842725576140959286403225009185752335402520948447086814459961507703825930099355621991052447336875301506231161256072175842061273732053315109531996446082977009653732453048511262714032547354529845772595233958295457001937421416780228635754693261090135843654085993874015565559762829602190806934336198301366780188407166280043283845843356203870088475512177592186226450917108295456350573311467302960061857142096501395633015523904599051814396749129538187275249416816117760677094864016600156604069685590682925800372407982859834322321714424275829915799180367445742747294715570091827906500944479876501711016594027272386800788418914825243132433161269515378643527628068954560562905410568746237826379248978408774037396046500862383805173998763116095352779817145017499232441356369513153216001974445581374123970594907949167638074671275263680246098493903409828389570761711409348146239326199747587913188539714047884077440970787443437378689504461360479485462851993243023069905175133891387748813519252969573671832770310429631479222235340458057958811023356358926292143396418492185400627374624838234057718976904992408882100368842073377071756828708458875358157331334522055678198156431131839024901436887936523301226765761580738768989757738798428995567600510322814205718005851105750156079441801945211157355662300811417662359712057294867141565910360406746986740879459374969341994614306567435293185826495776133794821752160811873763379234991845938135780883936530693442030296631570180234622290172640467845859433769261461976867022527454039715254687334154609046056962286497943548491535954305054868506936795479977105897822104786045576949018993123231617720882512449831264998045236723267252573630424840786799212494380157337186345507735989900075896568986051254212796668416917324367427969775259836382330225529311075533173461322769316098149674084412491763468217861095902532607683769824254670323718359513574979680426600217765650442210016068060624598679590771366493744718722426923892123905667039887784410095757591314546407646117063725382998476151005386821464376842405354103859143473559640771893242568618820731094521694171373752333057952783168783393477100763371050131090006924812864784081141013036611153387537670595444956319096268903570950642029411840761712195603845519916848404150658580269242621662886743436478336203045525700730809724159142997929071586327064146073790815663743571403872986044458786199016283190986910310742906674541776681773003964335969345191030552978474145795597834106555164631679986840878498641348055271358045723591156179643515275882013283205656718162222559602727519492873320961980663143420367614558167208466394854412798886761950501452437423364286895340884669146469401195870828255653421009417809993101753556703599588396452216495713851771012162807238793141504018162688013267706068648891388902032618340947238810370128732271585340094885611870923868916932761267477320397372620370101328845009656575025715988010684905667815334517270419591172050040030834294377768572846335426271916965028565546800686100633925426070851787254317820982670119634220596907806517230155197517770929477259075501514591579307774661432698515151087159982405266527742050342787503240782703543693932757792956247243450298956311540645939942786328330703037237522089393669486391666511451507619345486969973791760861311654961778807584355605365266635040498508557772880496929737633971306639787965977336877965219021466919379872287774355867290881519578758795627246651096182078411504327967296078988149106269128855996048805646298155158226069377986029977566690257973789197890645450513388436599472067242349513790751304012450968483090201272918024780975600970801269910275549159704709403526059782075541769102197223657335049408616087286602337455179615615255659754724035202933742228861020174873957656865564223079077975300147331770888541542579180726347572787556471935721349105328699348156406904401274999641235370405401932594298225936227424283423360595328987655105878908601026656688087864720572779011587784376098632535896630458057029392562746280873026405763697720286623307690652226939824726118399289839192363450734042832340566485066723982604121636119944554537305816460158704460617211745809581886799445396350451948809944598254669415584149644369497817821338402903340625504428292255583581554720789000408019830278579342948846830715467683793839571063363101406438881294251779223518959521649514582295437825128031952144699785045534690401843111166721049039698932554580343726640738599338495598716423997232007987681849490555306485295167438083810670078332523203045366302223690591156744607060509664738153452402898617071162714696860784893731345440647347085743240346797698983374120195646399472924715485414628826349030410504507344774287681527851010152694271596529002309117668109815151126079080798774759222203587835089759076013477512074151821291720505066468755601451436137343870248951999039575599702804710874637256033469356493096392912107082109239666487031786246556397937647554291674676489055393022111603860298469334524141006266257048022798244077142040952333192599436064957028216898782221500874588068678090003130489771544984618150554613132147677184200145753351021525233700266699133680950686488147083504846215783153958469209297492239848283311172340223921565399417611244721122049700955965727652528282047382584725680161071925225758640551291607129581925794939388824790782490443412878325814780311984093377964506089984806313898674947989526973502188194198312577133329104925777569201959623817119132299977418451539794362122113657345038466448056152836103283616987846719261633681325204759412764502387384150501476541595157416534669326024677947936605703238587422999370101374521157724751246120778255266508695501379079368238534726197800381390024996222178873778562872642965108300568604257655917641871109118325438001010387866750469693570961077612458455955774638013769082516652840951052091064054179519074527285878888699660889371510881310436568791921054328432767196988403586325380791119306423368392919356997726711711357399107902079236274267673852012234487017043393950545533081226096442434985523718970313585796908958529454896973099289873645570360946091758026556570618557533548120187846129539822791899368873522404845269021635729040373561514771161178368121066119200571712342851956580688463006885614162302227829081584074735079886623760950533725648439572459428685531798124273856197270634477457909168864923519855908584511350648117538757384965648443621489145268973337193062639033651471736894327982560986413717284216267587662316555546388212096735436092240061289818207079882125885053016504506901794921143336652413443539500441768502461517953932544522169226852150894248462229802983305377138832268719248593571186619186164273287343415611828719172310241645021132321437152618507667223973072998197478405139524430047291251287145409584946209211019991880080023013572671550125000586958949801769192465219752977874218277911875405336772280881609268332133069823098026741233920163300199040531272549894413827730175071133849399764071782227799798944319650089518306768412145423181071667715656259135782032200888747579963979027149567938664808085768880867245624296652896977961565205421976664575458754339532551078824521836281953366573142015873776345174586887197107600619908256123727549289048823829005874915338788397368818763320481156887456646470732896813548303176991953240017582176951381284041830860382407825510823925176088174256861874394735757563374918962109716172905207419574730821756240075128593414741024748359761715718774418167614674759120216685926798790867872765508534147161116974800744861079754414949418100332081949391370277361829819743713971332648548377997388167577225947653249844885201769198666714819046998990634447860406540056423079253792656942244865783476985403241859818772123657604071194284460916208610280760942138491382151182919320701527497243735021850557659851419779889144787953809113157134269122825379717320567743993906664508881994645426633453637302689196629189482786665187014108980975007450308476293101044625712506828572842353650087414196399165386840629642233568655669367922213428255244752787560873158897032060146367823384286068277363548711800037667926225291960989121013672279867492286963061911528420764579340105253267732203073505490975150141706390782987510367334714766154315699154687823355659660693100109876146802883233353405014099808757298358397011279704881638416507546730623531550163925529035717956685392161875059877171539275871091985814580210163859338522716005129094811968412533767966342711481616624287407051644982975161117369322034930136848696569529627759741594595474134525130134646245195633909778903795467256956595489428543259703150808997047817245218939502209418680858281085746862677723805346049546732175713732498807818090307112450512639912073156792302606268092149274498414174414543196178002469754102337911254407161717098084114701775283929449237028472456274248591697184864022159158362024717892532833242609297452363297241012459442879145536452526583977733982059787844679341420585486221217085443970562145499864014425017172837569780338816516359552750554038406256130692824777277352171560423827727581643617790937287493840969326680780470093950816594083301829527334937557734432034406540853812260750831713467315110191397553452533987612323472329459213529831432746173192776955043719122045222395896789896586342824023073702444212820930498157928520539625308532596191003663435324121923727891002433772970996119629674283409552064272778161603909085597144710521917926698396371695460326294333381842043947035170956981277658964341011071345768408621915732465540451239779947581334792102381897520405903110622911319150822221566802887858789802402281034758612567051677265976869922098421074449742997482558867205354849708630837532552360467069482618297787707985635918165768076689698429128638759312220542383121894594499049018777678781359593296405729186356838704899519797812310575544660868194679529506337495367127297628665290271655057708287271948877577771551253287467313316692526627915363764964540918231757436844813868614179814780855371642900091700937502740280029394267654467737230553521625281445521651434495189135400513027532214646134463332310642234820478991123299954115622368215617100383469819315306193744779948397736176715435654964954607719053957055985033257880947714972811115522489633481100489035585704652801152119673368097274186016174676292369823295737530684322014108846976684129498977535442183853820294627141844650241509372485652010116580044407654070489413216163298797756679267567954490817046569930293620582917718626831492213259097290231273819359734118327390332678480601880904067171453169774524861182105998676621858399675511454709586122121943986708394253888548007307196559919949765793550711369159360904225054927480544062406935422470761351508868128974367613810566245729320596267531392428943632561810376229985889329351078999900055751659317795971225511652743507018716101155179447830100464678884086121956095808028610436542880499678663112763880327150910574380501000028548769907797350952723472073770237794561306542649914774347149553377490536467254156981330008315442512384384213758004347952900372149207412457577589297613038064462713667001538432038668000583531789737120300666367016737152128520177654724616855714204565175197232117832433534096889759038575079288585415918122925624805145690407933401279541600743918375315893899882602122423415834393617719001014784499153839596336797654875843718807451610247254319062660892000579306422520789710235806219463599546407253149158596821482648819221274534389035775023632895630211707943327706893581189727016016567082836585159703906980376946183517842515134188455461858036095104882770703139049546680658666805382589982738230603261047733294929611977594630539737366240100402734974691107426047171879230223457075279200989084480949658142761080506452067053880444830401939825063543428853228771241398506294798588530703801088354296190954799800051029545604188196326338766177401989080671863013798066373926664477513460089979800655916985170575547326303245378476942769743317289405718141441339158300029012796264875203559837789902495695007237462161581380776672656624501042773619405975415916916339294606089315372162976263750869590401626141515796163354187025388514701708318788860196872016575933904934131110569909892711409946617463458630777628159433420429264558473601072958817864191016254527695539135050683355486714546464134249755112494113274955444125245314356273687278682828266697821337737940728826115755308753354125772169664682455325088834556868363248868553991166992075597036789180826858240250463648605327361258689167713610560547364496988124117634147144031652509819321702683593026836075763540557548547768947343305666847303686509870252325338301428308113371994644324594145820020410336471357277827024515620150194528715077940562648615054731195902149665825734849489084901520291432082365353992024699902781857010022234036671366384568352112133459703188593357878044840075412221942004045839453099373920383457846278627405448166649519771111420353500418102055516070129484059081145713448387570968049668662032464595479471738782114402775451741427323450873545460601536053251446149827979002078873944320228890640543861787998414159430284306481419177786302472540417301110611280401394026761232022682891201823945435041204765368429409302360746343775959543062071677851994172720798668509162669377290423836064882361335362984170731831424526676347691655659405764938438777672459123427735065219665093514438849538204094037769637372036550966431612086640654865631077436473488550831529671915158875701549033004503533772960309810967020882903486336009006490166889022545601123626580120054117878429622870039857186695862512991888932989128222619057999457362539707649105783590858229469846923538741682374290206144217739228938823838447509103930838142643580012065291271227337727974025967929419714784709868638810175550460014910948168010475796268881262883036846488692326079877310761418659657126240206733697985364971702929840151520925264203165391246954248583000476753895256455458119467478247049471185699920313481661674627017333067483565021337043173873229792665000191926983472736568959750195330016456905578322966488838432545758302292493466371818266667812465595141120905954715429610421059148277694948541103267880302982493665634594597231045905989621915763696923688324923570761705590101479816616629243212964050832916920924762275998100936604070867755406473381972869982126869469318585146573551053581445998838537952541841945513132967754738573945160249159856277439256740227477092398660773170081723920000863957054359546360199931183742801350021591539061970841740910774248063755896166688108931839777710945770699488571200014551654541994660012676051100366838504595329022429545142792388267097259624347225901288160931427549271539355454209310916857700928019498887632628682484879232366228759907152769399293368537719116771263309077190380230372307765567823022077856537171343087795162912042515928926579146246326540090158181864503132774958158988967128425649708824355646611827465368470785070801669422480397072596194339469062838045119940795002825929084810669904737307689899889184717095774417740444116504156971139608164600138080233089961768098108838456537558404101260020432805276706244899346265231068609669930767191967349248804953760080606605730264807525623807379418290787123167837210437431196734887063825037941767123890606007958859113628689886595758062421031577184652353561339630023458754840908239265328359034115396352360516498756168982068543089557777819109419749858979131413862700132769026469400097434638285834018361953085317967077345368161406102784361630188410161289335538169572817916970845407036691988610224714360331178130220826073858740035874270571906222292854789022289593404992104264751972907069729182671285834099840569673948586859151121893227113455988420332860803962641875024593987971988843320988744935439088266372792919256343377640912152634305802619328983034999799028075425291425494860027882102957948051357591644774811442147397993650635523701081403416534126178241830381283060469172501430569604446684254791043955500786265815326988245306683691258930624076161656691621974635054966542065279279861462977340109728840687343394452994601689562240868116353416564308104161025276184922932709609030444685764643141422019032872848884389201647020161926847092030965765596796087657012636130780121054490399070231783972286472710679929445247212629863443448787312631526007012133946351432548236045600521627607188494221161296386478452591836147195151481156684207364094194108334044826152121073683104731705416446293133536379441684009494150395843099928226418714307152321786471965425413627034073389894852033000709734579773935962428606036845583689072493136781711888473594514146269408198542783116667919792907048061768588749212318175661155035808052670573855583635415428558386607319600037159182788130815206238906780390693192083867771667754367122497312759965346030225692016411848401940984571452934795127693274352831342160266461849110457145369227665209063793323031329234833292760194600173169710492712704182094478866312717266564835586113717059996961954426903881802236745203196934099255245334601731553715860332939345091196613709613495231441146189886223081752123059733021751647798014367366977990446429125156946600870775910457293185710671254092396007766693952241876779925610344123902145895050561828305849702070607842015480637321285173272752972481500166211683729655238801001245714841071644582799834594410098482841532862672758943354946150019687611536789276202997408191242677637622762838738729879929977490745125786526155931963458000541104635485053599250522314223115986065778288126128709827087018618436499314069231365710403479228749234241086813960730463334042451294454871652618314997197640774392422150824887492154428161296833029579891040326695367105006375047674984710626224652793498095071053568501701302438826655359154236201582413341435065024754953241143828585729766071508813570397389416705445453560199896606366631978691005810636852563927642185058819930131435816525019993932605475720531978155513561873420066948502518519429235855473674788510821139604260120770069739212225875509497697644083679302068708202590678805240667567139880338277313252219016162087750705878103751342528825079309456229280715829897115619826674492237577068092680495711958029363758025371726707921937345122874583038214895101620228174502448675188548738419923761273908503067423784282638081575965789192426409871727404597394092602744044778426153981784053004146836263160184452560442490923852783784634728554650236663950528121976325518221518433621424748790831260653625583580322531733595581422231172832240632569312207864821663164132975632797071376002957621843737818371834130798295304757263218379469149678922812943768716269307903059846589894572406222851810586973801824729545710908982187176975051478546754605259469286976172435304385588319088802007789178060648635514865648298924671209282496285765751578291894206265655793046512687175037190576747954241547922797624159798011732770913453821132339299711165372965431633140090122925354734141472577012231520131170712250462199774531635678876846465957736168073455777236930214519487149182033729895097501281229551430471386780857310758875747760654046049718174644102190341965456991231310121450603468940005152670120739036237665917462472277744402539553071236963070697300527958400099642278346526754929737963337723031815027772989253841146252709705396111478411903399388748537512154516853134661632965308245629084518709740971472816494471484181446485748805313639993290135335551423360387526956545645727981509708443265529041526239343130952064708559533128808613747707717579185683840103047330433718940780908230287146476802370501183026807740321066660171277075331919536520264030238900263077726822089119640209910147675214497611102971875402029049174494129859172147901423527721122546598581460069720543712223116877300568717994083008158536335186030996280031164986459031939479543982340314733951294227036185791663787410527806897214277576412526408422924503758063227919097378522158277508050300367909419568171736683971500184238169491659254768883687731099142523092543991747548155422183206788890732147835887079193987830878882055867759324669876060228373434459223930651600528567427842243886535027549554335153487503399685971775104271414899315495380616286077585502768732963484491564326985274979204426057529641751633473844048671385828900890015281063540744190174170654134357038420436264230428948684299365685766532479085406375173836608684424282645175483795284515474879375047550252651125541590766356258396425445041723503753274515765001299181347336120222848017260266250611275300333931908185608781054176872738928131710661100204926050640672957164411629054644757488872428053892009528519451870907646171088093956245622549621734639630382317131804595013647108802528300611883276091398265091231740152340438799719409611713563014974025361782023187532009497485267094325893450274342325372184458823578117780076471568046276734800581769097737536667163392820567565494693508242590756603150186907560267271366546396547573460282218341637878215693245909877840415085430184497350225921353260932959265275754323376724662587641521342093250088032637566826011170098781092996196605310974811210582799723523848696027811484291332166869447639353305896577233699467432487820254800517931559790082358603965364928163940865126660292495079833242121773832459462778839301315786556809348890519770629300222914628193077574952147467814113555884537431508686094768087810483432034517986329497260538940700562228492921124129409383101367964623551311946052321072359289564805241387676693718861233589748164961488487577224546535440070045695502969505475117576918984451639320434898213322188995511777758073201666416902370108608479968608758660122479584338823921807052616553548023582675786496986632700759410884567612547818017133757289410569168530036782871378086167843891012310174358086354682229595688848863929034882824818647972081671881637066713508426796707429905608504028923976067725244232384842638206583043536811792839773506120797109307504118814575290435421957986881988548612699294541284230285298196761468516061604428355889434301313761719146157347189180575421269051101560267720240611957910113279744921593808882132278906431124210639277667330590554771520307951531796673243919207103309631809946893611956837332677525860546710463612431552895086540461811242146512072564341589612348588949698443989041028324794519635680346145993086320715697731097243022712015153638558918425338847095989771827084527485666816774236948148137250321199474284422218797051498049621634126483222671742837725539734676392041533454661093043264898284809853662770160747477680182444925198703890786152901710869831073748226766009182695268640171602951151174647011954437152020344368162741034048518625003665147643028118091477896505574581888735273964702865099366792863863177581153770503997316652368337920517827363879239774306320805156887125212159203117171667459103738490185995968325272231244262972090608509769847490338077684398812883138169682831009321880205707770033993330580760088531725124659692059474086856182271513919453352200138504684559387844152223596380554366678113916366582590831845538162936194056395557694762003759417396821660112477660481902016785866362722922637520904439026946060808336475256969883692278064725908787195371104788397974542085964258201128932374812919327969679277431615550420388020926005275386927758453955953813526820216657889011424850827138209278672185846000938563724893348128305603648954593861615337236761826310659862432018440628483644029860735546959242989955336985138924889696017720495331472755516429246495120357161312405804781349924659428744560104621279483242994974237979409405938247759743899517627266184512912105812804284034026027949281201150802191974382372817515343695076376388966480776289135460537087642971909415025428270609025872981133237851224300632954187069823620915029402770692073916945409033482615537315633715523285519987728096511992069059279686781616762973863912602472524464743872005223659671605688516667862564201578879006874202675664432751350317304496156974369451188306879599222659738279595758397719715390621904003271193814526810752752872975474010183239651845139995984254181471934492429026786162627620979109937097710181469122481086585718766607503499483496463890403948053537224529434221067354171689922632285669332017831798585314100611532325615598150000086313178630176846929537679174019998717986635191094581891310236193199110269414175848733717501133066334654212234267377049365081607628100285314748200513179053738000656637692261565153110003051984954781877636660202205797287394533815270737202773231408322127027858885548095868890001654006862189221478175511366574678469475532319058055168353313809975907602241037543634789622817758417273294364988756815649567764403677135509505630874761352028804617772689660546407266300985556868333576630528148098203589283370016413255793779458001194896760346705301559426062262608910338818899442382167734803286911024025887856655213028576086071648058546030423347868529459693902334047530204355047172583137070141288620079679906673825313011613941300332029545190592194025402010656592410907280839269979953926346752601817866967752947878032595574574544646826937640924622715508588821037813224608684876634726405540123493332289372652348817769879194132743615928667520054928431183555825220329099241431883413556746090378149155130651760514265052899031971715029061050312071161924301027893389523768613925371154146509430698778530269535283219064565324845627811388302931401014674190692449611075699631112761753662271547544336563621555136797599040523384667350302852211573508484472264010512562846730502837481308322119269422870031372314872185007027116647241611735208856230164056989884913164266144162253638332706156618511868545479383683854584630692824996389579626909424571270378838741278399817636977476617471524880828595253082449206967289109801684249262820377643367469837921234215222072584275530394793315036621698644555405308777999501378082701132727205837674623003969552982818456392064540191003883653285750702970882540397227662208483184450833424987858141510611900648684591033282223829102640237749847239103974691309393772731660180279564680075642846209302850392378695291490646604037895327488906988823640334412362043839792265951738256335158880827517598078314233661440932797511510600129608284878174694204828342293942611280393924861555928204470442199884602060555774822672900929653760776953419096206768364793661243284034767722047195507803740828999079547551411691932070407958239311970880693495201804275587628579988312728489335648938047330531945772791440079056014054171885630491536061884946016454196170530956233675075710692304007923710774111072633531667621142536187304503960419539313862023813701919076250226534566945221589257361299132239938482060815186299029655952092334805473533086903672895126401928631306783741445424309686774451073217316911194807452123761886998388710780713413573370392465748035446360874222322719791920133639517530225120151410833587290205591602101517581143299022705939543963513393581350949286583945875898778430696231268581406861083067953605480817145214954669746144910274418014826984740974730288027367034171283275331161341153190496295729647991488052202643821808440327818872294962700238356069498656220817462704875752887568328334555835690465594776780177314553136379188972282267485940854697215924459624421393529441198728484662462042087009865876759965185600927753931715446600836544475414149170888317504162565124851393534414761502249844677305259255864139537295851830467135225120269885891969033111495850971015635261547925657901148327433005506743589708186749130290156094867723954972731004436650127051439535500712539154681376476877915749906823268607238024663048411407695599084849357459308969072473872562095991572956128500777361928363437362406145235211403258851516209656358688578471231687544666466669595463325080413788234306913469761425275914411352941652373899297493360172092606442692658728554888054886232720365528110982400584565420204800853348841160018698425292926295779220045961373585685818114893580203372447428097288477746415043095687165794313959624075190413346769081665442804159874034600713120084721970380940158550450981729650812182757687620594295807719749826144647278652174132561591192261250153298978120780443575924337481869921204938185277909669465854177686713114051627908417467555684032848009340088683756130579076946810644520354731872358209028025088995130449954812016044256403576890456345000591218008759201477560252152122361154001839617937272156365197368658094667106136115722858485840813393316813928370913565361366395560655208939518832128029174771940594694179532066280835051058490802953823168886876191198190294661098253914030407081257473189695485609404468335522035653898193897597237027092492214258688865129532864225384944450261204291591617635747320943296766338547648969877015463224856647711739232063854096384672416984504971671620141489023133683069642080562442169186382411573324366899361787766712913492184631748664115636014855768680283924210976387556707165064850406576941371022766886472549300780856385586183081280244494295526697374973449126591196378060718869537405062379484739312116335714046221474615734877242406851812742264241894254786719461893190548241647213697863220241519805711915977378259145416298232085354135257909464026636272417894293323350320017573907000104845471037938568813456162462034698704766933615090011282630800074897078721708321182360714325185231977196549424194129227658495186267859939314684012255618941317246836113473529539617743781248068790058152471584396140115901857024443112185896403934393966208318499711449177873579608115797056464550917764064436273045921206132408643975067088379213670469556075125168800929663195796981035293676323952965435229438291818085765211830869805786087096350860120547117801614226752320958537373101141484662689861475506033714975226100611586208199313073665837306708586837727001706987677784581189730068344923064126236973006656662335056146604425476975358104888964202805348869029608088923885099658119647512222482735903388255170940514491362381745574394470351556399694247911660399731190418516353384305653521710840884321916047697464926203013516897027520516774999442871293359598708119047492274286466874865218212397858015780476386856133535188911790594841013301247436301008634325283283105817285902058046293705533580959415336088628265335436938311757140757598309657439389786543254212304005253871750772715354337078046596493446738828684759330464208238286757174085757821941694400213327829840692646038463470716847941396650970307112235446700236488762509532458756560270269181840156307173785993190165221395103755208729466654669356336316315666302012689691775084967358766202112966419595774497378007752902726041343846502705363200925989551516638191335910418238001758560475334123140358911583195327380512604666215920955232288036656499794264558354267798218960538870757781858770843369557554317643637412942282747426254603815172500826779346629612371765065876693313527039616593479104423977954020406465617424161406023558324625572881151217882165857343737316399257147234950150717520786567012111247787740566569755055603393759650657908744554372790443435568944474271722828686349205004751622926668220975339690521967807904086345446118248618099072528257361865483605029782222292154845712627357173642320224947297644622708521545255257884940832661412500458978319995278890566646059569290971980093530342400169432182809745466224438950072559516332442356570093560163957130252190108435543627646784432127094922319765162259370011112081419489240123611222819014445581307215857405781742149709132566248273540156921371654216138126094650589681850812962589875807428380235273807525065415124645317012718709742173506494796022793366052369646605145567088054397680674047133711568647065375010412866559140670972055997184374369625986276109025654553824139625007123424211369469863446297105019722836098117639026712892918114985186020371031631650620173849504055507770030494040024772775318448651591523151890143417264377970163054683309881692024977757195318797278854165205683976771664183064530511945352823501681909324347419324566406458032448169467633304827766393038033029523367988472459066068824857425488762055638375118284364152318631025678296848011164294244380294407160534072114076287726089089407733988690128926955743475120527647969118823568870912408383699214360147055618034994379459536317835825816624995670824500047513955696986207096276390362164741909450390211148603385310983327782876420731855456624696356406173752468516462697252104767287468934575535789103293467617999566412415746867836994908341331372418735937068788016726457171692368477432418235926763329392534083993430499263469089242186843614649531992625005516971103219865643484624456298314738497984966583268529399820270579324940595337477514103329793404429633869620317899291212281963793404543844980348078713314830498759439816393697887421794282266201384975579010653547723645979813039199938514648439187255989505188357775127196867900881880803496935470242694657810962014127284080844133217078762243603386271274554301331448709936273745530206336643809800795137417208355182656060243281579407833701864896801517978371986780613229742665333178260322852998573803629704924865426925168448234025474121709394993868633507739608694020602913669392636024580541355032647126235364108277075872396843104180942524452866622775908830920760329031991487205395058531431540838503212299652666061703502430083505771758513895434152856519082164465207837512733083452462161429850775336238964856952887557228205157704584647787583545795073505428228960947570750856696146917524851345714979120786907766945051475350305630359824748866740886819868125066654409148397267939349942230552796173143453573119519694416890801999424578824112554691038427795616304262382743440508185604448039902430891097305068206354785761443667415129058162114632359068396078915723913625889076258500400459520130998741335669583530719657086810860251287834108570098541640079457114094092921189065859029940807659299710794482373768417134010426021660010660161270479357051705180083939415800260103929745006675274634607976251743917430778507580170905331951809593487359660031796868382300198324846645041636551694618016432751655248244544744585488675891826001139481470583248581410809351284651392785931954590885710894010326998388953460706801200032232235278345418065951042703184403446485154244807705214777701988420355702664337492625697118422801185052109500485921764796296781179012601540134499148518311295534624937991036280875917277931089269100460082447814082597187312116186972545362517306868326868991544520278815265615917923480792449811474608489629747876925023397486945352519476346298541290906698106176000184586495964255520638724773904630686603426501271648519785810422610021954222128596556293829958064576071706150188811917979713959243179911433593516047679598808072810386834883302603348678280325892543639193254802800373201690459803372272916532679209259468077388685841043077449487779298758335392141270015813696127307897253789128546580456999413190159934260724396300220749482009480927147259669925258734010275921675838335369848282591443747207146029119387727616158051263307386134714334621254187637692409983929840853916247575552847165098232774368948050913260326188917728286995564617853935609000695630189006862376674430949587510377343329035326176820033064908270938346249370947461902853829296945814986904507606037265252284693607831808628697074122973843114047078844564777026542245502049904443441758119118666616857382540665063556294015080574827492370909254002219339971655304338006283607646764591572862160746743563516200130731591388610613866027935051281959599028425675317596802176808697518755127733378242555872191735038055157484949313182592969166710063811057217831235287047184819454076931325495092499144586451635811986024363753736077609268876785073094988592402334303628164412654165426630733988450258221964887098757692723369296877452188812810760687221455191024115605246983953152428883458373346467676592008643803730610866582549338842988904302489422346309866579016294395748054043093220860302058369175738218006523725201070208969559361591539987869999972422512639695906404514957143003482893153750688794520751413508583940460790560732403177070486195905885813434643355621425169616121929086969330076274725616055779992343889328219294145908962902575703974163691649040153735971573825857795304718955326584638384907581582325561227488005994554202861889049638585140861096724670804234303904661719305525100620134597087614214473708638901419058524686724424415515495120548638816387699717509406741858070770195018753800765845675874736420705814199727532238573605331249948123807099393254461351969456072590734944964228355044408249008045518210411988023771131548414078153346183364126908672285020991111018071127957817271531291641642826153777160930633132446626702686430766751293199790877007278614031020948834716515933489638705541737406768791097474437325368449343800135691407632685549491571561509773814277282893299225172805707038095833514731675325109525318584031483165079887160527219417448037788079170429398585578632288264737321394348935135544046005860707752618860331315450068373695512032552676857224145827972671475225387024928273077979070133326116670206760021278111594654213900097198441006670762215778770986494760535272039647366240222130863206189718294409563354420566529368648706005699112349755168390903038570345009303384745748155414413879836276261301886897583433827371188414389772915122774761067947211958644276949605557476334130548306546003467565073464290045274784932417367401660752412744902402656252744002474321354089725635700442992797700539130145796817643339200356383128302638063787791611875993941625788788628051335421267495862653589356209595932565133618810692282173175654724078858355146331054106500460666302181088711884532490144243924052656259150305590714636538301114535853557505727426110239229471025966638690322712837139882578126574862636158375428294477122868720111959841612560028378153824419012205209409375958990574204345033801521481322765260542507849096645010586131006907403330395427726301881367487533927865883142262494198549123036150397896394098987811686387301163372462480867525003858548428413896651360150461757308167503192646487890459477369041216180853776380059054590178754257739392564575211152509307369224295341796677353810114063653733819240345348435221423080305166997062862366134372554590889094197261142037723263785083965277316140529279952101332295027524803971786672926614032795210832623186186153456739823988394534064332308934688067375068871023169386253811734067153321848971994292416447482042289298924165447062293173495648300312835181309718336772405770772884813098420693485341717199636737165270028681220087387519060825116972863639299506052581614115425346286168697556007013236156134071071115126085284051222833529299873751764741304325784167915408770296097890916478279495898896270264228426773606715009564833363228051347188089758833225896823690807859108896052725626717357495412461121945712638532072928124032790476117455107226282141609480186075750124984637476607826267213215459779260928526901356567760772582411902424378433275645375109590114097168162375310015264388832562325390454451555219592345945114032748694377168937271871701187872847749175534496371255056702521784576225941217833588732633350091055409995263743444402068885835601438251753284333086784957409211809090602306541287011631863526740669031961656448836145690905881322117415737154917067520106519128735097830186167849481701951750755959017422547175336906043142341511884973711309944396204489701312494139630523728431449519883547737580168750533435958882066825829412015974083870427432997435289181096059583643782048836420854463226493070418121340367296478721381193713404954398848563610969582018449458335937523561093479866017422722254425984931422412638594606300749850592967108841026952062275555792797396651911529049724954036496135409268078493322149268185199580150544593753481209123167695251324959596940727274360097056851975132343251316095927127185730768958561520799033425876067990824682906823136410325749216222733028509701301349247506535556124816168187035564163751350499910642706759465229605871191714590720532235097379930931944582633688907311954017802478335219592389613821742179033735736224262872033401531534774556258511986469417597174181108482001088486262102741508913825737705618944851882050798109768427185124683031413599638976787235796753860214019806061412722056761300428966196597631097841935921798664083315712468011783773372449607720123630180266731448653794296498915907331671070088466720936870603625900376685047781396703904220564707604245702134543664551154985709262449744168048548041844045800945265285759387648681781479499682699101346959660875009527878556986348510651201342018976357911889769889007842973349617594948235525996552302065373584761256980234480093443830943558606692949567903214811026037117251577224172611046324282638834357280001600920277479607981297264686704136293204158765059039523294012839345739148277433864392830017810218453706587670400412231435037843384745692257454394361549895843114721507932883119171752873534614948425166858083021262713709668230243254175947127736534539536885366791251517378961659440211021338382990784541935861336669567296417319243779886713245063436013007429517625721647289648187283708248342214363577996473078088623982730831756224660156259669078008460518655907455628748028738408877219659785839409355018951163609258277883549478977066855948278406780590351760678952264553641706300783495313397434797183129603508378102761941940757122712311658654787608727706786939466112733971572125995695017152174457312611604763545806281755436105030880031886226476308526194089611154373124201627167349165442223162058599594797528486511411627978377942934222033883702576710173732267147473819805874012199142376498064316865932720581554499196235364000568534486169745452842848037867265824500033581947449070067669333980754197402252967680366899263792014286136505968925179544949154087134637481131977636858587839229735735644787839587709115403626531839928924684467544248055950364623316989058723342683692100282556859392002399524452289824016792921201767805087880700281249969109547908351949224384299826987196902968188452444665172121912907147166761935430847019976369323563850241957659578144906459982057993182133686168585680594915764963386050520445219836044506089331731897377722246708186843730543159226719264146654534339884595478528202992489219283847841373967331901506994424732711133248268810417899269040080914217744584402666811613798387422083517896693445138104901319799182440534145726551993816867174108328953973320873065189883692674572376868579376110447390593000697895775038226470274246063139784905571119809083923903669521163625641011533462420012253930160993389920693492390494773973168796207251114175768182583887029608356267866361600240271868042292383950645218226227935978048349762798849128000309858208679848743235337975455809755450150527123181158284079174597392516486102663363588577949625575941519869499556461441423780052224237398337685810478631984005406225037806231630984611786677940420595253075606675311281367772940339658293696045077537614156379504932501960154702280717670070310375035331314785815009636030770134788527872512904594483127348246859427140293031749382001085217148196337511127197414649111056962728736149132462051424929825249517502359682337797159349149122425634907258212514430671571821559629643746217199771250935682748900889297404796283841468768443277695497090461043069493538418938952800538530417931897717743341818991293865548035940477595673021835783650709418472506024026335296040636938274619031769232680752620127627634174118182106664817871082736149737918215930254205524434784955196594266021387278551288057516624152724271638634236764722042833110180512598384967703079247943480265281400385235543808750522555022271772833758789677879005397599911661079916058574812952385450375458084210106092274989986641397018055741798108767185716808204875408127134935311364200650128152797569825944793680203209649225980521414724984962673295212957032460362118258344712583408857520435724290601807670347984108247943420062472664368663407632571154158600939656003022070384206709265680252434377704683349028931119649056967289178555246974609380993656436323828773697022281638722594387090358916850235388490016861958983047120557674952474878978340403281106076967121572398128427985993883330462890520310759322754180152480363515926151229226847775006435703119715808958834272550668238747890731162083021373606772849403539568277810905720195395290914953015678116920342878730724051138708077707300760728149419951584211570549743235582617390459006003123547634472267820829387894967238273218959857787668631565714073491358467913330891524127632210583010944914271763652222627721377950252799674706046578914604720680491835933020599983499669309682196984584749065663334104314951256245976080037765891653750806933468761174288464682796054887243106327550435479756645658174064125490455517179984034326859597983623500498031572659213895299848977325086593643480737025699393995180388889621965590685566276188356105214178429726437587003741843581949113548499393120172283172853426309398536368469618101071709560323902758982285043407125808809145951973286260055365123820516211478560730612253267510460588493050395240931971366267033097033102620556407368929118934201164514182634813329248796981331038817404790880228037894560061944121888268137989147686190660296797906255283688787191063764120481859462831287821351467183911379705727699236658657142566150729608889599687017227094663237352645682903824400569519639903039149255697762824655855705030464971753739800296369697867687195583277281018202604673031092724784082342424311126253314788771318676707552033239993085449258509307015415802891036432725217203116337132810797294423146676326683943532212899429921091936907092699268514389155672459472967608560937169004286821697706056666109553899552399784917522391669888423828557694454951211357666857907428498317502349709667067767812458612306177797263401458102627404829542289738486133932968811908010666152507520378693601453941777203121816594625817069625751963407219454463986726371055686348352713569737190577968438950775242948018831781649783304731601771381224088222898463994726609696665307569221499737264477052927014722374374486335133899492836752611185977795631433945076100965537180960325795507227249184876804168106532977482744017416060362900359437655687281068737744461009442295083312108982647286264119040398357442688648181266338000917597122792569169559961954296823010062810252349760876644265547493914050777609279444791930274867465297398985959429991825743251831404457038755160059788588290964438523467529749538455251395624014618301811121282318750267895789854901273355309739707115460064465703814409355362738544536861865236969870263927645951739290482028374741309221955280729301852409213939855476263465173760779737902405183989373298548209189745212603789303848716193967100695559547784679152012668967088588816495742428575066942900721220106593744796197879004639432613184246279856583791905788617431794957405328887200775080260037007678083175192199483422536524664239644631233263320121032218495193236193134187495525279387095406692172366774356847166240031723657386602257625331271345419902214245729394339553331014531528156287284342303245860504756496009500599569562721926305993622287037684762603055656212801075128500883586467120168430581524932426483276798781489358756263535637748620539949340527227912012936546590002378738441693815508423193970187748942207570837893500079000595744693086949208132383619905163849913121728754075405703874310820557698880364095639728037914221546871282067849604691183142897114644665555590066064913139165859055669746173336436793931611063043535169475246632240533537321465900157083523310902673348915470915846869086578119960660536008783674887724722887311995078905251837816201595083791107626224511131989209947734090211693009643937643865207991095072268523062349448744061389805236805903454356435457818313613737623311502573074045427063045089626531602921900263941119129154877844253536286602686039984823823167694724026707951953659451342192703270678058761361547537681566791970332308259065413951217154438815408270876532359114093127513774638307869082317071085434318647125733820293069105262702998710752416050714976839002004043200816304560062423928566837947800403338004285789910815289023362951940783013962771782660650045525529286219062253100416712991835235979740101194687759517662250725217391165093806263780819153951426465093135665846238002602879469890507060403270719790564867764601734395434333309871794051466636688243661473548546276691917946923756664704092586656519113327666713964951548271430176910107787414948427159735816335309659471026945510303159387379195082280410171390629048556511492460939481353273857635994169178769556160410499466899108952024306747857347936642113137337069915254490143747712629378801227656856111270149142511504091080038110352077015707185342472496043311241817997686246263062536583301523194504588455854891125723083189215016962244686924988414546070240879892054150149168012408427172725508116945244912087689530962277955418468363444420181743761949382391266235878186131414773140768459106138450914349364935464104721916457488099391926464546835421395911997712780669876805310576046928779124607994835122402300154412937452191097437024674189358300293549757738702750826955944661193660678377469814640998366381623999183264697042596796445068724607135180514542749344579109640628579415813579577743615117459764087929232586182623686707891083974435688112622316185270576864722266746184551748063490553368954918479029769365722207781374887495714613315270560116854963929942882584719142973298429830792181360984677538264268999632967560868130576518195649669096539774122505247670627281897300506465232142427365789651649502686583422385777935651690693605454897199098859431033840215097859163714216675646486560100112789551939506892653340853857195715146285760418298842343553402550327066151132886685726032895125013429543205411756952885144617959012388356030590498684217879830868525706778071742609999738975463953444945246376120572117723847312800068831982567333250219081494207967248022647261913419978040805101742335092744845710490670002600675876168898125118364976282380493184768278645988032945865141444294888506961624029105157771045697184983695426953105551253384039900492012012357303283611665911664530914607330650568551062335792656334837500049718057416214806099380417679552710317392152551646374806100843177723127136733179122963737667000218823588716275503355473106028789391115068076081465293136797957161984510618334101018229730390314876026460531043087633756065866587706907400278743306936662112314042013154067544137156228189903605555076875760418528327170680662093721350810538538975889819719017687992070502409714098415024720551713705949437676788800883534892901152878843742521899540915094650049453062349747372380057048111685620209627743993469500455106028538585749487476909468933686183507421238489152167748303697354059107610692395180852928726357384072211824809077766680968076924300676956679081880626498773916116918997700320750575748822613212752402494674816879525327756013296045682425663856987731335931344285917286248529288154037226170618550054092179212415523379244193933742389915554368447548032437751775749728676865253590547768121975582970127976577910070824376202070520824177104704401603110760992683829005277725623038099558222722912356576972792402367064972299064581603819382223602135288978754184543025004608076327823972217388934258733961066156775331531555655053609003436188006099634742321863726909980724940972868474116283429383575136689001560326573236819249141033489424335174278190217618657692111657797070470740520906177094183261314281032299642331987600487643656908924778756323633315824206685179943310356124593121897707011564870846930213465559745062393443898524761467409963016846032657090780610776695953730745876140148155844658759769668438302250377669455463938480636421381982683862118693686809700178652736851478345138173397647183563516072346211035512850862578590725687869854165878119030510612247004406678748198385630413348851460154077719338694861049131158860477228683569113849046975882922885202574920199001846983997226317437303631079331947829734697925046028361000140491173316704580058244004865801969208799857318193080879509761982393927138767441866897482063099616570429535124354322223038926423995352469728097274812268211260005592789265566066604757382363989255317922319236684778883673397030982334463208339481515126118957284218923105840406612152109694880771053393942846118296507020143104372941925399514225546576305381554700105194121556198340196672013376058382642927524765284770614353323149729727639405702775682825323172603350370116677577233497296270542749126203360087724323885707241934297250999621115600760372953354704022981285286341842824798855535120199590782252264766765480252657494204374525973379384124940565655650821019016421983737848784471574990947632262741618780574044007967868906054054750501397237461377137619247764169400574661359266134802031394591872731099309401245890060726458725762221479840364219723115734714931157359993466182853807703199441173924382585682178792321116158392687169302965591523872755652391893306300607142456755058381178073352212631532788731756095643256497065061915232857768994380782248443848155607673429796366279552332733731072484213318022800461182769494305844994884369423117447150950098460391845639444793105844551320129867560720630425578547814598167525287320940496148361376364481895374326171782953802580807984978871464771094977979772200817615753895750688881461303878545855018143025165953493405651814541650003019077515143975839737570100618990604644173442463290501301934563891426566538716455815475202750456728742434769480239029490074267574024944974922379554356161508830531157089505316944836586637348428542097587164476725035515034928477428541500505179756031416785227996837349477456342257943205502195645258792187430228677021042078232105007900706978368742406661334710055731755851901427501425531012173329841838013368473975584890138720212010683542953152260770557427103459100226504489119020678776828759988886035941700364356104689628365075849594071946733104538269783221969864831585367314362446830310329447934370466689440772626099602967383995569537383626340646174257522257701523091760586082630629493514380417349294254292064648442247356256352999002066211206797383966182635782470230296742641647230583645738009535764297299024802657369444418729737024198180341949542952467364011794703481350914920842846140623204203053172329386869269022663186607939214753109787972504041109264793538798845029616545211913285153086892479290489848151854768576162418449406836244367612237881920667811036173812062702965519291039487071064321612041833424812559704549805023968877052008438285770414505114814523604582196943963303602050455022343871057243588849425880594579495346418149381560034497343329320973613590105383864025722756529904142568734291660210818754147369543224836271809872746336596628895860493492154466475084313604851036796110261008238232566817204265511089714955919186820014063086255354951139566635897285667350813434386289521901016883082730116688848101490471458407530100314564650952586687887840040902627368437827124880571084060746694108584048318116917932939123927639746281666458015797468463191725779452066622064804625884142773617915680941482605723003438278545951996887203830407094504834755216398096326386882043490891344503179922055335329652712385265634310273078816268783184927903646900613150355042074792363558195237228195283406380208270688881753285361935710204088598899488705252292840347095895650790193674787127917313778471294658631063573340569512137654081767954664311606862330572813367772472047982999719036758248909208994465667806353438022611529192831796094510195066884073291786901799883562204984727052251728110492433195032005514772253121289746676748797608813096912670530052367659289507252061574925695021761381756585862264311774007372782185268397165509082456652346536492273335554488089018037475824895147508745655514099608821883940167039046253099972469865646236736612581981471087027803697581072600537598300613336785967662546004662753231183192485417594448886985687979830827425897665491420425809586923008212653710475517776410779793369493365122425100710427703969469897408219514961956114330817543379843499655433517966956630848375592522071329671897581496426393480818553342112072551408631992909726890328988418682183760353729310036845899592523352071890491758736964773122447352117291212662516530909621662205536108577349807506640647831342923719444545081758062693986856990172451031338840458166065299231989225416916430549930615065700382221618295491632335984990699749228608946432071949621080947579421808787681275266674578240638831054648958972116318956562734955371434492734761925780182095114097381737080693424160153926529675217443137028714328306302580222647555932499658659063660028022078661098944116272002726505573673576375101632913974851094003702349778336062498583606909799681118718879917778646819217853275904047422884705523018568052556300017462327061661963617268445876372463716440704131845998894418676587063696289239464111455154099262911199054926737069469288125961671391784943647192330850441392482043747980045010669250527844701849638715083560549997340558043430495482251845146202395132287695145859120311680438145222335978811463641112190831865073462836525411672968057359047901097528153329717436012481012824500376002692351386497398586810996766531244027007798259756638300009373973357033167087285863311152154548162373698400817268339933518486995266625617152573952957986016991181176788412119674895009117526733899757562238577074872478571656723682708747627322789411436078618898041389505754243074055241394003634537420179950394211068359688857440048836192003955433238089962738209613735140123099461211638070536744109042044209589114291619575443415306378630990656647250417731321410329009797152181711760619490789543948941807986714766945402349987185319277943492533740378112204378300251150631549249626871693073618762878383863934802163894825256123294750436296563333161982262700311698365239946526321481051284710345908533925992437366215080295116599109102422527697629594816581497763325140987475216035815230149407989959844693392070690338330404915886575777495569420890261795432049026005586271580149203428454079102432447344216486853997006858015182797382999454396675846353468190547137184032474104891580533516165020541365334305712634176655192059037906271281827277066715652287852987028692203749549531284326535876773127320392172540133340382610987003369351187950029054320448573522660762409529711651388155800481260556474124595064920213233466921842069722177385139248406394647867141339971838927736967791271657830887630274027734941812820604705397303328628759372005514104875099777835646063135700236000382267537227948188781287658044070095424255861356493273899525329480180718625788778079916068417923842626243672180665555858662521508081650935096188484010273887042565982297166457135079841318800539037852749866322373586893410313077072444917636586992700983069573185318936501539810684006265872046178407106825883517470358299707735572243404956177753273399428564722111986849215585809985896254532524522524519896489290258050816281471428876980992511336356793759231933622813610963050246523111584583398274028296523987020599577075875994200252688358977950744297818909122376626069628242946849463312866354597602888841767207130450075964925468971643431222722987409670010837724426811279339593295466370581600569464648784579923627710959506470621583300732766761550351677506502220726501458398175110172558700509866701150816951374605551584188686151307827403221161884280623429762738902825559170846628026651753565450996429557456344816720180721240568332915834448047601885172986488691417061342249505858609565909454244410580229189002220511913414746045583175305093364645114644058381613530121645847008095308197238627301984094215017696612205678343928514733167415327266868507603356145522187305917974880514071520104050246451641717526949895728862314361475935505690123192372196890219471302849886149858615265359339404767235116132399477387131988591017157270092674080634352700229307570700257360459200107450466247367123540830257190566153349557765352426230191320934945256389456449554923869664036251734213414093999214215292205559372379505832829326154585083373672725774025126250100199692650342072809300545177298315063490801425750565797012788399332867589786048856102194474211819316634494606581004692003431097782126034221127428927913402996352383991394983747998772094527433766913885810542782137620621564919270133670070452553823856537737633002751118906778898406222488349272712080158217442113552839238161521733554277780531592993155504536098035830353450768398093725554220292914624496504146086923736257519671674440250878160051872970607747290824662497093880560602085012802384504731014923500143190443502075919170611436637686597299237102517017728496439355445305006093398097527209239464681067802279289456510068317342216459519498182815448376879105172647305967194051603253407788030021670900835244351702743355692437665702890756547136926498111719803127890909848416872850506184134299207477869552715145417694918585194454950076440816235981493818423844324714953136296664569031589350632985815831715689057367380045037236041575748795612786244758519618261409322846210888076214577279303626679247829262080043841743739574212771747163088962260738993421753228660725676184294761970190954246261208921015823601461757322510108406399163354304778820500242509355276886692702078667729971459397130626962134526078397192872447794358234866500496870934801241492253232665542386626822122764291249352000119146231169760782574351634553208832243619631356826668994948640580064657750196948593970568155001062484937762685209764848686761220357110048995796689640340763925192328368876340031610625619337046529797368461552766412070152044343581375103638969621209656066027851120876840732409922145385778886329970088094482799143651804394396470680559004084197075577921110929525696259073617758978865181540684469247335034911085800311484014952381429599363163117702670812756662417518927304475703501953709404414093745094826691328128965586674790555011104576811140710876679931530796091619993670512512322602296589803028077993635019304643084618156306815663243640928731632065618654459515371793392356174163014508584133221694044908274786800613884653697507200877086351259298657199345779579532763982521128153515317897914822093173442439447691440440583311681901501609932990650258781924169806428146345795525872963927754466594064031923314152186006099730051047574950718458968519499393718962162281364680191569273125595067145163307432446339540634141260658841663371210905719709396526075488767977609444889080105331650262322932845855369922263969284955162364869111149757897165348312207066166645472265665039410366523609740172587452575176136250042924747763268580969511038498413776020768368254989243032445148585210427846215319033193856392571606723717646767258612333770681252913963612873371684346841893627175788497542714210143618259460201470422840389187939362462429016114117006624308794767457083880226250250314538940486199246305837504922924065954610128863068887188305953823407163283924160362075275573695394775303345400142108085311933764431901485288477089309750489534056410315186366665611668967779193799182589989455377707229411499292955779025573355274370135535204661509319878807358211105907399323602861124768066136339579240145548850308353545606565222470632916533116932292749785927518363313769427216803876939288693924137191990645988173249450324902565818725848991031505292811198207277549177054017852298272868867654294026050149567842826293566903869797269754564877180809167066067114735377004277873130895805633754235784583462352008172391935518952576094363890334997059663491584838563249021563616529849851040762405205270386570811390182862509044010659243243799228675963025896177491262028654707616081954765953043998889394737926487428900252410127850706984150200225602955900886403888262374202902750910080767320267161087421369403999669399676948437348261388892279941775338906016634202990859668464642856664323781328565715989621281075471633608453736927317688114152703188837503578930251340255894647276417327897138749283942889992086971438751771652680278960561025404273029061648414616639792528596887899347996557157909477351567103949847380825411410700815400418935902440831967000711255669261710282478258972978767039216851436081607375076132070044855948996205665677171745215215420391682650873395413170779500784856895412120848136064108032121947013652353867391189033672418212370775378922815516861737718171296335886866488687115112109159199284447126461963811471602922330410793279623039397376126261388073378488321809311216625128114458542142415752931111750719318526084968015051766603224282737186869612790893153546515324605245874045376258576131785907965551398826920400788035398191148302159564322052852540888504771506559282094127342190623759051470842978142489944825740643315574981963158327072497438118145735947804299819828674018434668026190494516313737285621738678093347630670739375730413296161473655883891310624388957630309496477232218411906367920164486491091768387341410877770009175159108426316518955829987622089822675077560014358964194121988061456490683535772132110774248300767720505617195437378386923683121477819120918420478350583549718335958280722985029419470576522150692749355606401685664149036498900949819619757050746927648599038783763845497628276469308614167208322323972544780949242645490160950107561395369183784919218424367694461034595260151240398478460833705453646374656488292307193993071327216453240393991845688701162912436460496992171898308099862915266481267139711947805720722255947348273614089169201945295025799934125998981034549173008832795862581170050563297729532919263955224230982557338038049979860648308441576669241192695447657525207133266625529948887434971141404505129286660469996151100913202555368368801622250601050385550259863917707049046925647449803972204709128738281936687683942266478134982850997076548607623021903443222958421139101402005601723952094190110604540975053432143420262183148536976300907509320253591355995720992323046480592881916760219312537108490310703059728311692008914341166518138919158577138497644356335635057837791353721433340649602290951399532466778715030372874381142260167303227430502351354488114348135119198846914208472334754142867836173645754846060642253501354621159951000661386970367608960044095144940155361142080719778253011450292844805026991218596181408561423122996361733911130339940466864143145703776783208078917116896668384911728939307301285494324014580963392478175115430587437930874019297606821679971449495442637450018764765253098143510603255091678859181398550099958949272905925970725370839608465450355330327951046133980820659220990692171654968260868339502521756629307078867450141817382257846461426161080206704297928058697971943697347828264320713153380659107489884898899525297717829019937546632235579420593306447120146179831470984639980946355189070936707224642615896436495016070330448700426326926118733451312746106943266155791207685426629252588733287494934072643825708826266930410664095560490172135952305969394509767480612613565996666617327804463850435787478785514249768552130889125447390920492810332484202621540770017881807903044461369872886924292473987078235884651805664308652782110385883445369586029883544494176872586664901160963292316602769071887107344498514264260820273382936354658529290302992161625449102252467651472529084517540215847249380147549212998352989869614758010511054834199105728863313954488422757314821071552000056875490791396316765942455422104652434390605977469223379718471705539971151812418336343830336079004450291923491322242638737186638007671275647782801113265454380049634355132980864347434574831633325909618056623635511881136327022389586127131972386270251696700291523720927503593825958761680780738007754402370011481929976796340155836581776756860167827706113354422009511569193249447982925787458470906709489182551848646758247133384928845309567918078403971450682602845436907197081268753074497023675542154165113631750386782187972513725036766260242945486657997952999651303240395223038618743832922294659820785065250838503452751668680669347644115903357560898181668186006194558537285232085567855383584471578219058921651930518125791060363975428707225247787789129887671332229560784048679740590096903146615293131428383326282358168950993579387632768891875207622782641192297156029582102869114748611942307235899218594290576205747815413284616874024117967979805405146919087443908645368252112950403995564193819301259656130786036999409928447292693223401180788449578939467381333062589639340557729216284988443762266608649350447006155238488572011409097827614025667714815541144445478081874702266283223491823491464422162305470056376266900560825505220662181277851556386215432686184925604393097702173474606124851953555810744429183768269479238618445186903019221720392828857405577832423665381935757486571471126113647474284248498387195115584487844427833363330001077118795507519936120781492820178714280889598361351237464649340200745623974500797944194052704297607679134298145626350158402702238131106517764178842163784413351401915054991606120196926647518064757235547599688301172546223867661496620487482605927738697905653593997059127503693233342041219546257275060611395080933934047604281567952639865993614546616699950123229178598701908189749241350189139143684596594541608482101234593090860286189317333610836316485878027522517283683964403483118594176206066368923685336695401318058451842250974639621765833133053471006243985999181798344047509495793410306701005287385948433537556646924651810714707821828725446213337815893190314287318002301118077588266883601945031132540552844476321044736805006841128667639539117042632767655521118013148825114518010659774466148577416675037160461078309048343446383661658934674441739731570033229244374768983027142779814081508403416965343428135652906051561003872474675241972491472885195187617760399063191815493596914257382930238059917426015019804607280742588800905780642147067856836578565633823972924614201029614615261761451936475503124140974773542923805939453810153939902205705089554477009891932674513686838140708580384616982779934417231815580201776435981100955628904922772707526515782422283549316386196068464352397200678148628884516878022952967643514957382921335698731224233021033141977792162900202441802092156251696064750493476311314404385699080535058545214050842557634551847275035780405949657412501517571458587304544669811937243494618857302849735600691178283564173162360507616379172125808249631275953818941203489757523368974849719763635043762054813543068286119141525946145533452557015703544173527731073708387111231649785284197147501846810917474247375878822758338723354527009054522746133071091140961515105420039871851873184788048912692320761913020980997307871560479222595839866739206234018477969009938602218646594034537782260144006583049064389396538971221507944640834521838321377910704101477579663478238874490379330228282399237545223604188034094759590938371027266137200019511045410961603827081640844447951712208204412158803183194238295774313586753465168633473012267439041582781609675765517119916591626375927336798778592411254460125992248666679812180418912779375136324385799196775774965780909873974890344869850387082115207294409353546105581442191147263733521029824540246482920299704109623396326592159655337592460918400571943679885843467040981386087594860300214161191844785302422002081411566261603322564537137227442761697205363397623823870678931678939131733342533781400784579679500410711900258039139682129484502450201608915344295082726581083362502318139811718130256648350368352670381371529086856544651522764761253923980162284798102873022991742963239211403583410491756801683114274810381223422660295543491624747676597711567868665707642548830649979375957946812381450705495996489328657001499420734124571937185340861736475666762199399034513274797640954703074006323530160273190215096035319018852301298155280217503084817213935307708735121816618739689180624474472604060841995702223271308991200747883635731721626984101736823971526832628903761595845730602340584854946826190191434471676182850977443944092140912181949504709853836067766436989175981797011283385109254192126342613717779850030115069628135706287639587939656424028906141971868568891411321944557318180740165639837940615943814524301933521173348790696163595760532821894080076752672482545211728182136519007514396336693922942244593695329037485838235063960414159373658051493250455386742820508028730581387226563657808161579510181934515468821055403256359013837566552557365696328083645451973440638288038593803677488907021740489155963207961389620495847180605887045265378373369501629900441075961436991906621953061268353548007980889304505170728013602827883999324013215270217751996582634472149827858111870817934077816553004126107719251636336475734904284156511393071536176835975793690432495086391998542259044403260058989526877591104405833165201211872324256999196595829208490080176320934363744546094898515838940114394201252891839995758050437850905691627656316585372815662117832538951094472934385254675266029236895177950452464462787746167884885197564584100135641320796854216223792365382884577566544771678339239396893801497736259181454625476889551083792325787436028675436982477742100224404751490563870770773507062339457786715476035655694804285123471107308748904514050890537342788112829672993822629511197759838917151556669167596347530283204347434789079935727887541277630417747528434918695086226131987031407732911960164371550715802777584831893476019023329846862409897567102382524464511052019463294694017675723761102683541182720171372111290959887438935085620232717530526761569033785682196760918897016162957698427010768944952385976190002085246110660592832692265877270963448704188423429650717124646206985022247443644759171365915494253968307723421306695655968773288250976324144279215265149499265884923942712244971925527706760337064209706881392755616633107468221846322269771214903446955736919548831320769969273301728825635256317301544711535195654446635366350183994759700237672978908826173564783836113447677915263305643784880847627486619149686565747410112907130106834880202452099791382293121574580076292719460230438400981428323556412383872028942735974134400550455528912913443496825148175436736381361323416293795899293613272841568632885518116841337219064499446843930510368030799938915751897512572004009306243222529008545900382031856792434431804209662213560451135676760021510630577449341010423954281405592019856885711786322484665487544952056954902374287606082926351092029466794988249776592259375231487129993054968012687103726875741746337152983388334964042295258747632790451239198434685681219629530051940180831147436316890014862116833388046835899379186726693131302377344397133899103181450433685178280106567047093232659497335891334911998186273766347839700733412249347704447677651805347753900911400776945548709986694161126989454313517394735205355753047061892348163024413758235897346516005291930778407028057687823939008393448490761373312150621298684719377641895490280358965625753940332394947838789476037235281422715025443558885829794847647406184232133102848375022031340609081639509505399683511549324333372461802171565967509217644980410711754544267702052144302356389052835027139908825190056636333364102443645417720456527940566164703725818067255578840669682520199190304762850241721352259460727306484950219918376013260642906939745287157223390376937278754684066002172332447456496898211209076322619931830491701301577559833122309583753095032245180753463347218383957090783140204144350875532396892036462242394834306690243892830015203355229161524057105346820350362020379965798306055825418322240378298700379603854680445794057764278647340306208012811850926532002653610613153094896855538237550804340730891871663283347443135606020876583458412415376174820008021267775852982634216763991121821290278502712270225238039033817957968923948191556374050044649204928923679062013008126943234877372535236596088065192958836291098995584672442352862507086168488371318462578577441481184024179915327329517737963701214555548277839612352144431379409028283512745178440581390935507857066587225154273981451819155778559234983525812911619712034937387895339152456908795153669529686797092340000923108173774173885255195330275079503140300755614140839172043981535804407104031500187098203695405828287398717368409945572949326420596075798094157269702882549536632966959952545071324876284878139376838624789624004796512020042563607788221974042241983920749087068337811383847947358645312189621657332876499492912211429531725387803986601263075585824640315741256789370553917184618024029486339923011376064862064192713871873104382161596532757890284472456146112788020479371563613531950290783074584537989531627721768578158228682898511953089573620847502205236354820027791214154149609228771940482779106200037730836299104651560369898968561499574094624437007609820303899902031006071384533159152374357298105147957439178896673785339977251511265330931568706882567686417708443452539721670696928640492190499505653405726323471569974108497091904931507513394815219482519317826778607346557358412217733249494878718793477140340917328747071903820436587370349510108684395367925249397182128247303031558850572615064002047333052403802491763386426175202469420198263925568804304199222519391816262580494492499375299174449050721179760867400883841305997789989521624028806615501163884171780126054468879267048423482830063055260413774171952221859043820716520210290953990487621340562454173053101974852497163699517432470456760444061400206812004126317838683510737421478710858408721922158386588085480524697512595185146198024786449352825698620021749593458588583267211438669138448742248853885323073758609178128719780542955852729368189438778846539518994604845992786876271543159789875906125272181987117919870861244626600234396561391151574835005124099803537292108972350511716773165354674600133628478448156597974679514588711256477755804676930583327776294965732060926898995263565234817841896413901667988219969128287616601096846874292425406977897801952057208119291959140383842657315439918873315691817970464737764130474985037751546481518470953739059658262320145754892013287098068518699606860949869354836509699526177159796209143686532436292125743552347563187259416109682802913190636159805149150440848875921737777946217351010059509907546694262561506238324223642031081459773208351163995197307934070806056586947418569308074488660310167499925902322916682793109521633832489294706096203222263797396544914457058997956955673230297787112018519697255296175101756353600153217005454772237301742107837073954538720688538195550976283151127571431395495431439558191618707905182616194779507892984510468976196167961623101159582411852435003979580868497195733754716313429492742805027247685756982952469871208855535490590669753314397936562613307357842316161839606046675376505556642629334031305781039231585589901907059052428948175454064708978798600713719255703269797355716521753818556172865971794548363262872553030117937314073829502645595335734551888683486842263557728878780462460003425656999470549969546283032792315285249305810741640505135127371543201164652119969629106602557761671448740237198813455391547464952504251987195769103537663203377001952881713994167065348479121388433372425682759947913341465755524118015958765585707640722443497164909660157788713594400291580320549884461894577086681165985485620943464362137750040312745104752920999334387415529133296960520797180977834944370362354178553448076340934905476287310221034858525066607697333499094465909851102469034453305876807371487603846147671126029973801847955908009290507608107870440756452245464655080523420192044533651564777758075064013710834534240323526046907079167421194454587496220993143456374478206894534646731666344194718778759855685418133859417634042416238570368980324423987700423403070804343199211958633793071613726602808215837319236277471124509988844151073628147716708228980205958357773383848534265853267076198350732730856344601525416990301394340668545334306880423163068477596179690560037037831167477543127700672956796898446532549014756184109411922777807784816737340663898067385951923923082164665840921796734015848828506944386472266536091013240792925435120973336898096468328771058596559313687079777454818694712895620809393578931502981019469301502549549335630867475494219721886152549205017138281602755138873197663708817380452967197887609540262329567123848156249434554067747053435395085737509163548242367208949812378954619033824107128671699590805327677401494348306488324836031442000285990272357565989799818205993599139716201528195293993787334456803090930039233957198211680597423147667421367604502898295334626428037512009348967736486566300986212650192638646495006827212055305132583330124404913676757858380856246547283595475777182759880861355683017457533180560173084544804163561519662388731450367239284690171914344598224862776817846730487556825120777244498887966386277838888660252328235107025002786578779052449916634094171128607929935180349812599079464491236631722035024238949024595267832078689043671768658109607356668585966851760295638515565374723525815158611741842782181505564091795924798057706202963361924739159375921251868454605368689092207447433749973074060550700455073880405475623112501893690807271198359848115335838844372586122945171516769014649598547108256567341544444655972616782503842677368712795062424832093052211483887613785412440294324061438437645870090019407066469983682531178031665767851551468728308836906039355817545248799038998279574174057272199161904339210250229648673756399139622888659606018163964453954008244090482626340197260966102961871852468210738311355313638984121238467487608688083612742773149986603855878839713795996149442914316688673398030975197449061596030746302246332465760207635051491746536974770845933118775137857832734624159760717431824159440142566792706586913510279886868569099800255945631882722189876022924787248869280011449625272589883719603067835049142378614714007463270603274121919532180455755551112513772040022469905977925159669514743614097658670588719207779766346862870549615561997986937806294892061288837301613016008908669986499329414638942850067251352750047263895078949152125696599469125303021926692761794785984483632639347913165371951638171959045696769385467007760786654187342854960656531028764512114672392451215451401075046948524546096724420984467671068697386332892086963724251256842144437966473593916634469556001253619804040040960585735270829753427618188012582902208736621514810400315775184317195305171259990720149801289911758792730570183797837141591251403577995398435179639082426129986253804844166552744948100983332148910390720910253417082298324871628136591836736920877416636681036187536844564700339823219811111856842826050106665974850452222811793132848054025767789145016175058818058106948856070056482096903700437935478040480421539371908128486180807558334229845862738798731326903302815112475173459286403900095201964397870388038947656780196702457924614601702003985214811176801201419682586594377019895922706699835062769572468182096656412713080078669829488978451212234813503135818500653582869722252022184869091333737906956553542731144130892962414390469014508929547973128415199662097916356697053501953779238295884788101261546812825151653290715900416422039659733865220135519276986531928272621759646526985228595315297996538817483974862389841743366453615039161428846567392904581014783954142183898910847418302660018458923615785210262739233358248731734765427910636288303700100741168122946175389836396316062444528702750422674540546060674834714129558587584731027234707654674064487278577697251220424141241135371840264631815703367446333520412987134495141223242220559818540588234442318073346240163347904783417819034723025170714297201208696393517845653305998763496787841988176300503228548478568349520896783608093379973943469781449699343299650478507306398404056406065419554085299521762794988623001212292154258748717484660105958380152157910091752675970456066991700348895628330289435238681410264379649363175962856994327501368610672001657984846380170245347937750752357926016600061808872767435197666236178409486733924283720870939895110564783531796220770055031039877033218197409109815154436012810111720120073439124276877357399147130185276098406174696068971484431457955733003606543763385494079216788605352595128071254530547554153035629208872959606229549721619838939274347725859067286560813736630998587869668798726544566505669889928192428885269906648446883403929445152961792391731255653097561469473293204195754431623104052360849627342926862299237062606350069777237456495093017959170268963331523628701214168117509175028777805752156954544208298813794574541625579161564632676192114545737944340895558625099671973970819511196801128233417656066056439608567253369150535432467377730932512028640271051382004158763034580352244340054807358099506570797833126494794439188336805113902110148797370431253414327017117562421035016421490519218454992772434639646867733331846171945160163543906101413733281926887351995110304749866391406746991537840114863034694412299748157867517679519351654720128127610274751766871651036052422326240466442151865054650848236612798589244525993425005112078116072234500366673855350982604401700154263278467019105502398430508931939396820068696415121467699581892073633375700517159138899139158190978617847836512449582671526589596847502777576862449563057773820069746817095233256351492155427933054080532001672672297378836527013546513087055127860214896626450498435414956627496829654845507996877301348737677658872000911427443746936288354013066049134406211496236456545397847210877620291943920125073140580191977676357796979743784052684854540188112800726922063750406496340854838152038709592742663525184084104713038619617011176725361358580648776543168055156954470233497006537090786940763829357188266171251946349474993792658555249650521738088959564046691732090090483071802195548398530730269230372410348638711859165536446715196746325158673634796616274757612863681099036622622279817057525454681008149936735358130408304306779244276612798094937522463855741424711341483514902666945656259591725845457216288738766874221084689509973552698079613748983187687214833472998068785537290121754447780824018859618786708378831295313516116723860798047081084777032074227299336237290758363914927101919824153557697983949442350269925977593862118034725454711639807299041022096588877936242408755400453657522623144606229735046004181125411910972442888359583771026794296330473303009913340888462802195493748261014468198202086821102556449234749869136589825159469138858290835760116437345078028668369326640814560597456646445788592703992297485002579005124609914511695494106646014896156423704330711130512490367042979833930287678203362066791107109879481363368670814667778425718906591284239518030604114488347898927241310647880555506619787381849714388849125028650170556293904678590304504513516103368351269604060460736431766845863833752914493502546828875814517354206322340084329130689849759548002053413820063453249471340253100336877260408987602717733757182978370262992955006310655896015495086888929062159733217254731668611258997625538410122561238476619191338601298717067196389033093859841189172987258681874764971857036701723221396982541279153374538885994258649209480004849407668699525198285086169441705444068386731798714864691505923106358111095297729637094594110000760158502228887933268746650905542316443922345473759589516058249999253877776795613930032732331929306883703488786878675640557732059193504521325768285058392639822661725157956193129548641603575895115055241735641289365850673091926355843559154772499447616985146466147558584251978945651962867592431465166190906040612489345439042330678156613749860884473867959328352192293372827025868381032415012745618678447099487764807869165565866058545499663657695961922933777991219766901558382063500063730348905333633851787582613264847472697319062405946927882185259601014486128882374578334865057628193848067963005528310811667625735916139128113443876605418091951874583683884907334770685544102702967569595653011300032879232184665138601941059088735922132897314071357725689521102182566235378708787183500435406070800265432432821363768405279823443714260652801275564534901701648671382451199162192407040791773489594153813629302542431834996307158585623780931974320849065087335535330933883722286496929575667019034975273646270694132258925046353531128993880273455549927338982556107342632952734264778639302736175837735684713403342929645475425103142774871529159326806880687308848234986864533418567309239797356545482610722936232566053248183379557107852843370051467625159046881238640212533215839605299720029112280872722621867783909109033971628921992002631921330803389546739296100269461686711289339653543101296244924079327505470506214396952774795974135355654522827096861554311302813949131654487641589297651668347550120530802218830357956706620574386356983246571664310845157660999512748809746215932906772063183695915883202738761628101052105477713845387469636368969313123668405694739698958840086071787759899719983516047770055368528698732279626995373730503966381310331397517511702841579904280328997748512510820278090628587617999754266636795788391353665574398826756796491319484297266731880520297402636531234603390546891368385461763128275339322094205666858765758886355400992407728107915879189672819384838786615867237904962953990366175798671267037389219445968071497906147545861963410592852222361505060655259789575399532958784460122010972481861027244839147439343183556213957339905471350843366573390990594073984802999618550497753550281879385119711574956587567002127576438714084573123219636999792962093585192095313586510635419320089114279367052255614780346558554859392310130358758650279648485084818842974473183009927304265159588682463086203630507371653512934331151342862898375895849253213619736011635431135099991350947516733461354422043682632994524543103234547576855368198748231195339100328937481439784767262637762043934614487505732476158701175778835553842633527676224131165738759027701724109211014301784543540998727462013242769336044749765405973810036447137245377651597737194754517688071576653396498477936726507252848688613918078974901480742170043064541594836725608328792894390810303895635721779418524957163463276369208979823169665551041900850782945663939024263172804121423035441951420786078427124820633758110380509353558504792524992324170151588523649969567272218023673093501839878342458236585388154425994012840276903853225489911925928266727187872314080605067560811324089601526639508077928793422670624727193094376846484075744721166869942094536481874104850565997959878298307746998247140185557182470591489585300482221208952355891459738149640704799398561895280443017929892718155945325858136011466540996630600945356471147948212416137105380244740631730115236564735981405322471587939809591822340420192173950175587911508678417278719082805607604426248319179552290538292616058380318036669505627825335110940147438527240165115129115486239850292707049719822093705774518280812046934947898945736684560640078752588608186084621141343445154380332631122642117025158082086621011761433337136181464501726606970889099003214375317296317701186818231645559442948703931766347933894695162819645880089210577929765266532187985659695736979467524462790107988316645217224072578394241782300887781131135843502125461276793223961020527017436221699156094822109818471475376377358875417048831857068240651595592604345079879129130618627227187038237931216105549962755964732753611704508974849917960503491332531933778117116530978679124514802758980609638134142358518558335441559989363830039632468305373269738687563240610876895623520668934888415537811224123013347680806816279426570384620289597578615827697052057539756709804109231286700949562423794838811768897270528332600520314107018657937669729991556807066115768408466587503555572952408810591667620454632459408377398189131119373893496164522589497034612760574261360074103199451892254807832232602596119401964569779898813584160263991331438514859510653581033795405608939906760354506728599552597821304250671028111694925844223264810355705993338805098858430383245464938228538771855016338300276379717946472969725729158913488602536120371389991770139965026447453547117046467755620481811544262936142450331735279455062150587685597002593337662290067923044527123830743000953328726407181178781292591211449540901635704326308462052156311757172369599639351811366426663013485661226221230671507176001109597788130870541820779272891835115736737591498407866101514439346988526738910142203647694724470737350634898028331774664294691123861730182457553938899766934216334960201600015952322322031800760473318251058004189363193642637412334183156467353875527418579167675014661876312287262328813518677565251388539060187075364709455638403622642318851978964181171318672384567122035651523488122443615934287403041348677353218118199027150449291748749294789995659790536410063612559363877995588346527860227128986294099847479737718104057255328365810065469327209264547056328211548234481945719492740591036572989552747891683079972332468512449821107778229115744898215763142198634119169092259172055242745839309511383978794550968921191497885914830626025929278162403535352878912627434769270855791314699349577283336932827942460197617124421734570411807036069353833110821693657124619390129880695161695773737509580753477536499562531687137159880970101169088406062418890512512683751449919922355402715485890849292879841090199026807245313541182361832841122776467497215781090182334676522285304464478307521925326374017889151627823954523871743245340133143579845960183068761276112405000588584719028869122438470622497694088589089441256219238455596100156374081815991431031389051690666157504638754871327135219694281096870946411977098577274603922787187727030740055994989956980791550101160033272389427678280122478862042424690672974449976889395317198828766341783101977253680593595090275111531330700293037759402684409404252786949857800510294583882909728891032258286550978777358355289630780610565003241860901934312887348115418581507854775477671913733340525466732620828892412245220081823794257084732338054274023872678055894974527784176958841718487177286943545674962186274023897905277373568255806751998842078109216724370044030402116867812932094074935668970566741095432375601275772276326043063414776971272046982209938457928207583562700316520718518070987217617938280417190940634603827171696270587520886771660631854479951631358789228208429294625596961339159800757752308653443065209864744626277394403183321916601796669636697931062156226743107723716512388077217190457916152512005356215331588867396922715174602750646633249147227556922483350264289472786192215491259617576010349435161691472814358366585696892410226722442334203490442840723420323811144877803023670800316817367592169539265145362047384464983351411898501559448368386729129634126572984615353639319121440920927703396785914712545620962843293846597135853953858097868379608105247297407627839535331091715598690150378010111949473708889994358535492504181082597151146085041016806385342355911395714423731008621894296161988551965766304523846062504475507487939694445977101884056326141160653359767341117650745810568927859332488020573252207442260059685798742993665534027636527730161612998726749341438573463366361712974648654796818183747620468441629676583068151774768896407982688257151392906174748382254041300169676867780450876389222187649190138703490889211173776749754939376602858263997723375327268007248030684523273531218597610261921275532089162838643714964676042518839806989198995328664457638242909433946894572395563272637844646666232123203930242831648473231028557984913743356918558110332602387677554294548469187815431018141670471203618182632022661397888806013036166530085146107165924125331444776896576044238652025287745637574488199055199799744472713295296124198416566989297749589095383356395830595604660526962754209886270539581241128947295495553055716493257542008570271857429843926352296486573258114655964848319346123988971291414401178701199331053241675763881497314396975759539531142296462570692353080592948557397093574033980335285866128569421304346032835654777026587230385835493957890981724877348404661035294493849291835820044594629317846756836491529208430579485280305627912576899047356787742100757684600583505371262115759447007460800312059671800521615155336613672557772138914794102391091254354948297625412448068331879643581120295855735492431530124139920308648191621477784420706546017403283049275024249369301769764221782981451781118220988287801877634718098309282365181070879240873035693681615271819870872258358994429817419026676927734569441339744503644799704686170523251935209024306073408596038826585423736837248452882351468263014199549385038380884825918672457979403002756191472469998708348060622284175534017389272665952646932085263062351914864223280664880076768002756112741889670423588816509056708604597616564516657551170525455525530640579579984442221169616910467272160143145733899861419553563972949059321884480630074656627834111799191827281199510165046878863820329148059872155415973988367994099059132280442218149439603917490895055218605808323429935108648115376113771889042182674877376663175209731190746069231332372696934394222241222498493203885122010382888588552598134497039193890754559223531302634554570656375737676124275897272555807407966516175360964705297973369138235581254764962264177163220855998518652804263428436325057317558034944466751754025430414848998237772963273930001093951440690540934454216703506708207444154458044788698330407575289411257551844829481972998649613038682811425923814142445188376827427349965807613748469709703559986068837443267460306942934046764115751558193544448915622883480700122057757843435238630167166454469768344570164797128207771585925517245933930024652867555242514964791356292241493854490692608947386983152229889904448842722441569688221437790134894544049269655196983825034174387829175647963879366831298809015036601534856582555985429751798184567836589773936340182735683598846475713070390871173005323563693855431357153023322958070301362132475874366084113765171751315210819253189812132402886299345550101608863736050517854200913829380136126327349641670075650257281109209663113097611501706495090707953363031818094318154677712070672054408009455724496802117397516899558904569897278168761434336713047201264605735090309051069384980093763987662940236036410322505172788927793602946407060886425688610301752024738668206104015332961027484079493398605864303142363330371257221617678175439702393558993118828489619893668930653095355104748031516651446113474187181983013807498958944898257549625954316943237115926752333078485178827868958259890159282823000684668280378651701289349441122683520712738586957105932109472475258693973322114143553416038236426990694732708375872346352561084211015906496970294496131061686589567426592327637712628337571936589613208833057842478510561768537556850020640974957574772099224957404523071035916662837103825038622535539256050500213269593625791329924743633817152471861722927585927550377924864861204681344590938111865518899029138833727649006818755829851624966410358456904121178332972972946285023832621628388230186936412173908675855432561924510796602843842626182929354445044176123129290104721530788604225339086811340628296237071204590858265460008799351908567661163903365622853699812118174318281018766986853188959576257153649719855569381109887707860476687887417799255543532384233915386824468116334704833653694441309622156155818363950279845425106665005934228515856318284584193925892089800525141023463996340975001850641740114535340279969558643048291203036269120846597546419649215430575532033553286896953551621373242922197022815889402031601265330555068535005911476674059572537201654253263336321701288054431104750324556180039956612326410186303698594578800354132465416982338022062371498261931987255762152365426274842258130642352052152753836184408670385942315545235830441542878671148338726217683344464655919378076386854153864133883716659102858877835103505476727074679468061697710322509326243962477855357777529866683362382271205536639981075919714299351359128535539347249018782977262743309955242982832206386260801716861284129510527478692257092624254292318427747278622644383846685763764317452344375257128450743367565355590875491101019226155322570190857126494908131559980355134350607545865099823139603031984690891286505567316847721501007851893026275925396557569976301977026608215649647759387629739157710752771117025718773341525389074863400719717652757520662092704686603389958738703019614012913635025865788207871282142588680111574245652040252998061438341241213384627960059961556438961387171067185400134150024099089095124089657497694885302287630365391794743743694360263518404664056765780003946517476790345815632085964430601482175707608860198730729441817871673754963071733662069132341740667258247905700544493503891578710891340690321784313502655531541864888212448730239707667757997977820239999507935122202622943001746603153896595969998734276520558605781424288622870068279277659370639335213110038860030015826937481804580499342977822380447862539333320582200561753075360079917957675888421152299498905833635769534866539539101356395032299633649809457557447215231429537562432210359699940417671570776006146272091215544440765894001743705418040537506947092133401941387936848407355347748171809339525553198229026068705271884244044975641986376357201166355133138717532847264821513079161440996285844506429748076673192438457874309351958988233118053516723815773694364507322902480910696187369819076026030043430785623768407957958261207438591547564478412586370977216595454842158997867200453033494605798693122045145314057904173630245651704526343571855675258989001038007817058359511980340129692663947074134067349458327413688993262011774091102234897599163279837873239023033513002804799659989882777819930202517320683260442823499078120201134622785758398317468617504014632042639245116156373187889988679373956643569077014935281591866482051294124737942003483338178961491657580174137125552926372007191833979718938553089479861050855365357298795324484132228020914555291603808264097549720751176040672140909155376465088250659088068666889162178805416554252366757874861736619836419053793160508182942788919349872202820221857202502465081128044672736640220309157209984862276041817026048032490702033204351180324209528164386079279746733566670101315045512363019827519000027296511517814617941821422393725845567764354960670013267307595577572291582137984717124549421652210021729720547668592935665495987171319306413349580608991666758873987217628676722975119858066356590476813192432244127542036014079203657683698690197625088537995188277785116870075299182794951063235237981529174884046075597082117439420005564695402705755703557239110365127789357088267724464006376756472387541411306348246162768323207836403655018746884327039405733762075296796152566900818329814274837399385128414350928487283586105796301089056680814268852929270946852789210083095769371759266897860888112938684231079130603531454035942260520376349298459162855503755518780510258677774433781710803876481981157799220760015871482961668758030313580199241341309505638969701332846923181456435432772010798572525653607651944758129850347285806247851955654293909564521628548071703201942366865803330988649868592394607150291676296198397179476186088625402473575283199481951860609746515258490806069012567608230557684774409353918317363611607425227246572102123087287321648000497807857693964823216984286040415018997130509523222718315344418956232482515630742860891821491310851436432848942779619239863663040814611433612879922690530318666485117940907717483931713682247101591175673846875412671333954456417894069511942472894238570389619462906417942197160080386597759417110005341895472609786367270840364261435664553102372552084773382839978418201927920885637149139016317199773439317532097983683795424193180476224209079806495510834003207886358488676886841314571482103525726033113499426719308482358117910512076209486194605676954668292796945843242779887203493058931330756919656691020723691464825356686813193551140920656322630351595735450689114339135599397299403758401778509124505972245990173013746262848968996545053261612400612922654793688683215692214620900590263506444678373085095334118774868764945214432976661308652282866844727368323817869547812716730410519884840855278522645458317169667873052597309449438809071352991771611179106704612363957924253181301930041989211919367038042105417282451454845953003078821781457724325080290264170066874954628659327541867624739193897970501396569189845543259467753301609549577268176576361019948868851087077772746355787698366681399208912228322948292464898719772297795967170980288694627182616710970369767312812893695775767744316286059739876087440510955583547427508555557258287083244094757749175151022223509026428972334454462690345679398252927773127606554627894604051205342071003488236702700482180163455661777828364345304502555695520215112866550446552776469127923727821301685011832404399006838865279552379453131392075013525883229202163194283520041974891723711810520903130074208203865060932666920185913493323683078285324090384177917850045980290791374942113940644355076602157556738635581328684886400744222852839142228730876341586063868261773733010541057572219040321375900652208452536479508704931750698924434892442610849825174687418598499788845542491545748883662052971589936235305618898881568981910527258393816054258785200678601037279322286721651235512109918062883437447299595674216446064766633483309225265117419460907720824331768122231433555743510134768278737312047804519327935144628705390391521169566601208918112036712370652468637702306019714338814942112725319092043913029369244720187599782811455256285880923275632639269282410136982032799250249467212841245692446290061659298096233521708237620065952949795096142452192304992474597309491744032258325017772993098564593283299324077148566773867608102981745849508920919290152173204231618921733569054165462838232688795059078354123775344306081551180388899517305134903824079660674340667747246563514411856782430179804221180585145192041419957590975806501985482527746650916513862600821335794104609600735964422002287045567602998604410599899962360152348972789935192827478282415890012675277449238326148762836336587494954239301638464467319839570809183499473806046288412902019301655814370313954295486194273721197886372786611811639175967221093000645610885785620317891575548968275169118846061355062253154725285019581639929046003365343086485696046302215582538079833861727709510138797729056507210515816352955090625337815079900397129448734578584247575136115374430984064640986028630863166979708260142445703981069399125483713062689598900142408518970248348443938501082368579774767454212244048874902162966115861657879347612630169839878018998228597780144282234180319643568636457753490372442694426165375390310087342026258792208469609559528646697698901558344496943944406190710174584307742023895301614106877121511090069879373129531257356708020278953202830166339982001758907112999483764355797041771685470209772429391346512449194489624472790038321269000511362929296901938340849868008610965867299964447696085145538316883359299713569943530670434487872208714416113895643854461518652586433586579682850252446974193959699751726883933547289287953155083883042523559888120263736607215651718215778712939142255110624021905360424985657169107316722320877730153852246922972399807477727420434482825071954388471347405055376838481589684558601371636149615703420538093221722810636588940768428293746977459848522676320291975216649984674774675499231170151091594087726830404186496868521535519356334267638096570667578700560682857533418305400566846668456386489152091248226492654655016642698758836213641708554052931549654889567572573680053088618215510608248559771378278408294362283749293571408238570635965457096444500213233676849396220860125301498797179273846985804205512620947623990962199074007428556475041108167709667880471251957701066460511780981424761792927932285138855114993096829074541245823778465263829749468019893971736062443479667387109250497646627976555427791682391343893643247010484663585215842466619829903248645390806717417648256835412736811737010316124835817040295411999433572244011807009156767263070624068108923232246810070358072254912096287939810667888375776115550295768190370151008275181493250308593659125597213950044832808164426096107643139715145016174753267672031389202277093487063137505859670960881848965783291186754949153125939447711354419373748777399805328234128958088323201240129951135754493836887986516239087157372828841080124783723631393821488999464632438708138413115410479367174347085685359452030111677740585883174449007707236202227977786333114180941368480985198521083153100691915239103052041720173121519171282862496189365535624953524251538416494848090460398661775037184239057515594125794511073050060312307586334922826645621181637787170908948141727774083736472785666687121073117945744352841714568961735492779978293215375854036036872589410871653155224286887584891458022406512072213438157553136144665799512389004250014653091980201490415655553360733225262815398430541668709914721850175141771714843498816081779014366596068784150399686802571547134128412042020881891802978239988991782051591076520047016369318846206174885155364697367411349515444968295826268180055961554772979898399839903956017132792198924430893997095039669966244624571964490766676509656424828821781768730523519624243633788551369151879472687739949000037034074007849070691179125669021231992383918079314126739226832708081600743525716496988947180943080562520033815200503415073450072743490575267471949097890429245281349786672174348641420552967411630758142730704755282827058721852407722271982093031515791750543902417245619417110261664291634678462665808922018318495106639809780090913726928845808606340643881195599721600825864233325766465866907738696601561890369606781256445798165759272075108954015776203343817777546405919642283625765782351842025281024055143510614389110492136057757258038382540898162785940158540547130697499826492572636410245141482238758929229374811408691711357308725002819736356905133647149040669305578695269759248542654742177059055273877329429997436772534813216710633293698053794986193658957106972881712633224158192124459036800446729375373948572186716559514293674798608353360715928828488142707575301124802415191381629211010567884920216754001724364000788170504674772791890922647747824154229551623683609332998991125377211981881988338328445586336004749869693525095240023952029544427840172200360975150883219104471527380610014148009566326883701295555336867587676413687322182229867257542291312256182611409540384649136015790438940021820864161253662223587699063594951779248534564451891316043753067324950126128585444890167771325774682931359436108376857668462702111812463646042795156842529053228331832840657445899571952201399635908652885111951995980756574345134081407894402637864895125540784788864011393868958412312885311683166345649422965429603287670405379552698909480763234154168800476838106561379712743162807278236101895065525597416965871640082684915564910352516813412516245959679673547661194467452637363647449414484215496092072293769635909965016947510271051511773092301707922540063218146198679145873440099849837248934653918819873236704279246271926878595743587473466626331202084687203082105103672831402600111688293908024274149582301933403493521877637207304622235996378453749449762888235585037468559559409747771465832835054299719973133967565226429076641084494086457723451934321049239470431601314174670355685819547177646285682220221873981708161945592011157585686575092136156217102698319787300737554104815125468080875099503578563026691560178033794636924052412211638842207835553563608777746030416533158791221786554432701231808934536229094221798657626822405754985981772745164271827675555495698300444233794725148041713695891231009242057130058344357867921673920580795765801563391330875753346038153393061432539107077842093355097413027445110481963435817850427146373119020355001408348921792605597895249400540185192788637823516200224003878086265871073226006871912715064222640033370193717349379911782929016538079124600722968339763039759946402985900848978575307928023943109250515705729790444843016694805152603291786184897032943726463015805039826085313494049528696082203863834536436534013099859253743844351234158061027242675397487130884125532174923321550108999880998232885145839963731419891743901609493043246497670724373826088183214028990704279005568261328286737968411830012361896322131607142281976361396724970778656235735045902145025020463619245368911726956776442327284046263585058260477794019253428124298992344873666118052004675755026094251423076008653281706562075822554259427441346247945359352981249724531628107173572765201790768647399519993456750530014499600315815126906244245445521637397254075450545033785207024622384213022086121936275815849178724898142002185046283978913103995975760147606638978989614573080074354519936562598314572080723466274147687654743734511534415904694051550752372034710772766153191465363473143008164067002018809434626890808331195022653606255391390079546817686628761690497181765365753968744501319376374062473999089692493796179231930912713916228743023603040251406955408277052428027287308281535217952009755001592541657539681665635029318417921495214972743623957174057243254694633385928619173054820827262092741950212967432435636594552061157257328038401510726406450514668055861698256945564449524682448433148065391391526193740684568764877602840703737920188138010199532816429669785243421539609162550154831944705845055701406936675601735932934461667136650076392033969642992782805781269771806609339456189681262696747438839955683576670456619604133077162848093062388033602429181817209878623186439064823530124519568009265981371428395601143359227418109647380365250474692035396520709391380749308584519296461836110510885032976120486281608715524069914626618079410731104640242962509924054949337648395302903713049262940371730108229408959382753145687175285254549656311466132184300814892510960383207950258468127740937818320575065598338463463458529552151338898280172539289415089623321631901997921936820016945018584314589443860227311587711831153880638812584416687520037411856918693482126566211380491034546178076399242906869825352698217169196148921067205210032332601134376543175594723369273489499616409934561423155106865581535391876112907306981464134184175935549854425577088751479258461077226016495882875174264017529446047267643336706175483304303298714136038738338706961314436289699377240811304846397461780894359186008462593514947184989082963491633634804849818186600665318108404131716591189821182771336232291756927599043357353685003102519867322784975060714648676664303842384335580617286748596725758560659317538773426828027267046985851741223417521039750995225960646905411711029395807358384120701647267091563439833182068770440689556477315325462848637903370046386649623975806197724469193394879154608536076870140133694754404830761827645746416837209996725401039165228988121777218088702191561111127667246368736284901795739471521374958408118483462781577636343795335480233875959471218872368465624539055782716540700900714917484760060350862354049460484742264304390978573131569837293573559908115314765771056240164743627826853991847208003428024356825312562274475519865938759563496488475654587760716065058518716996645947306707389441496101265918383690397989010001538539474275789821629286152802939217459423983487473279725908627242157261944442020634417130374862600029908568915353793284013627853841644628140165653564681592719785394896717013279470902749492648952471436332083950882535430703038495008211717743041401156329145832376248700891479223628416900237430810839787577773694675851477145820204524658040376753222100584603312057895824079702256196472200135746602310506059901734053738503536828655436003704667037811279057851647898847341033411287246049064859674665516122861290642141449886254247302762835165729463921396321949040688581450445705534720605313100438953184499169882888901361600387146359739309038244837405314379297699660140280080566506807926584701930050588572893501841241747429479106501146318978977333033318341591865787906344372717075520251315007438129688640321893220473987790284694988274485417635808680835497048696863740573700803032292851700408698415252787264728979187194668318092791341102581473043986311679159413728418165123212805846637828737631742522703391607255503098503394109972569553357056829283539534040332012997729333023295025950840127658875675348286251014808660889421439349919807164066919404724541368241723354708074400283016284531725639034593640891898374864754596557739136112027103638916621773004953852766753935612149760489324344819428923916132753960829132277724537709260708479087810018944771916122325788429392837538092517948618658118981716309973409865614278648527463384784190998128255134040596278964237788591958374831092859867892971588135670654045461383755787633334404406434154998377486649620500380297909214743663865326355164736956242082724609754466941785247960213946309701082551689213793685939044881723068788792389643665359404239483536148126603047481872169394560434326875000101622336932010941887989057136600432349869839230021383617680104979926749155778266478980850628089437465846181603037153081084887988530188614026831192296956526225815190639291148744100831910038483570447100849373571320001265697944145441604695420725178697217706902971135887121319834320058989730890908256043018010667505630902223261836593337613282819158745723411582006806885975294407454664780660032170783038285003998512023284167347974478638175450168070197364826722734323598981319721103042933215744776957427050173604185095594604983222948114307390112054807190078645213237885925194688707612960720156030748160231690828446225469173061415764646691574310138775305265459323368050275939214154449688964171137712549405630781664526210259151440012191531226868562699035723577022523660901898817224214715302487673443037485681842343347394394852243314574772423149903981798799997784927306134497696081224574642810683016630701452447947186820509448696663755251115943046772884001258703345622845461169747913334686314013193530152125555695201499634102799918211176990128819571337813055164014230513619289406617666612843480124711266669833835355472526444428260965303728776205658501299993942249504972393901081129365275220048363508850039439843367799707409548881962344652963776044033545846054880218669661217162837734616198199546268175149867821949707703504052831353861268242513243184444969975781274097783045321658480197891786011431214763536873901645194971832961265103725295617674932397450765437204736832438095345767489781136108363490739638604413278062580872554472046602651733743379400672166125019819784614732036034236058085920295262573729101362761820890746519544663680056076230061922636506429048751737620198873724876605682808685292587483581967164202754655200388926600232803039072548761558796001383328718701739795322277123565626720882957438159465961048904405390433786114388310031863871422924397844683184628993658829971833329022958785263390217272044820111299748493766690058581154850372468158016202247492417926689104269010382487866155012395954187676171812108281984077345229259942545861168481963599415695386127846496631030182777784917968552834547104822240289568368519541163678668806731365250655617620142384899968462455993566567397963130676259443788561474290337747516772315758310846607363005974014686445167519825040165105705737299810267563467859685156800325542967908878870003459300818331111402119985693319891269787453596485892034938046038625707399927706443944615688456176481915045996915040040674366643012329804599020388951279414341914895493643108007021848763269472899771101894261045297168229303256585469680295328463900408325367677785178749915011399655588639985962069095832427234246866912262724220406689003138467414957562825903806776043471240983466066581172238546556665280681756339325544992440195096975951798034955262489083530077483301332786851263177884727388128523105042455219513009021269083343605057838827061865370882531479222030336384403769719614708450532965053081683906031232366457016636922456276805891897597127433317270323512800261912611764630256887273059158220673919178813095299723193836909070546157688227741497390908031324976020022329352777154493957962388402940397426649382563688062042646134816431365597740596342345867683479222679315105468705601771744928133384657643378307139219732065908055352791536658027028943901552198392984839692462917477290512238663985639609550215822550805818491318859668338596902994821531899185173189071897994987291550053085386116611519578085666908892041339278314078885876111781780687389269929682774800221658583807766221105855824803208300131224236508474823686155351182443833195077221972839257903671380916589714979709152392428999232990665177337798779972346260029486126059862839948231439158365242235742809934782462277559778085020429634379658436440162801208385054581230404738510217492330564441374122299529823347865776269006929528657377666191164018575065463022790671599247549478229419331080446896172710421102645552330354246878600084423300627568977016080750897816912719665700624366967872471664320391741927925787051611454317666304651102441843836852101061132724197090131681313577297904002127761574551271990996224708996227751998164606695365868405903032513022097954379644166894615407608841696011167755473921733790815608924383619942951861953119196982781468824701006350245228122120094870916315925133754995960815090837153738988484538324650859883705478872121710174645282886948675786859194511437667590215348429826872603366565706652292011206761044898433218215470576281092850338122163450402232499672196524053194312801670354923535729448360134331898035817073701695026646017755210141236059129084415126273863757943569173800246307040887527939950048112462098475581755679622241588517675540033017839878428457288150231423438087901922194210004082727235312937908517698105016769286584528812860367528973389308133226148998527430292424541570659595730504128287849451319815474384915260801710703575365199877011836635093574686858559557326486439739471678350847589984418087923106213024969366818529961531874164643487664987541821041854587523939019966991760537873692528939122335291396674347060888286684196845178220010852086138006457991068372502626325940397586359780105891609873724430284409281028051468864767522974732237710772360451326899335621991319510033018174210253052182768397019116478277565249172566647613137740302412662867949757150968571157440166620105939409915472160479607357245594884077977073916859380025002023884338059148608715620544434085650538724482143313343749587765802079140971521413074923832552357425518787066599881160299591793203150854079298140135862188046521631903820927895823535545936512961038932668249891194096510940339956090752867381391126148417679890618219905053902153675064371499904830850882127716068304333358371474547727779791556795270246444741820326274701921509405362095366969877797600141993895676779619153301744468718748241156028050958975109432483964759462782647322488490645376534678750748753304415958661561994631133802099580568186992863166055347783693199863322033262917653170482851623343405048520633780077670666690281352252984827759674322680006256703714078164896687584848305849747427438140873683588503311999614452596055258303645399248321962399638882285884535131280637359200838940289522338589669930668679755942571657139914888160289360411228186634197275693170028797755017433556941567701194126440876681269761951335049593462328226006955715634203595598857937156257565979166375253428295814437923884556839271951109875759047484259802164044376958850260495267716359095802322543086240131433677862052356538795219090401766835057480011518233998370108403941237270982652550624653821794499040374766090602576778475461801546218066022652188413424186232728090521400354501940270124084400867786909865866147531627095727115354610577355224625331658631925638740592753019311360639268171706894397101358538630259436565560203405928592843956387762277976603298857948799123809524425489272778710186211835885440590656342207766004068897403314573741032812058696004450494017334042359779577358018838249059000012458725926260803475886317957281045327028615851139962002098908546382839187152713248277537783473133548252872416262734992468833538905522589825558401824876148629912338200634785541104346201566129784715688920092760113979904083852933438398628645819869494332008177253895238775671456065094202752530590785126734331347979026422945233136533369745286926432272075855012734606501573691554545056945021797362282740677422810529523438510075224790398231043683183371413308895641440123785646853485493495069531256610467441878950381844306637843045989624140405368310795536359802766321378493584082004362068150720713730102000874571630058711643193945421959899372571701177925345379683586228065473784104459112468689407222490456887171024903071113648076168284984518300862054868408954418880421303042981771225472102680101595682716963902273991311070472928445698381326808302601102325871866318277491243822599393941507501344274056179242275211778870500820451051714834131295817595988816290601205116093293813031651338401303364712184620304190165599992685859622291336965642704021127481399160962198944701847469753016237947342625061910993762595492743256061748988667363052431522252386720980298997299966685768657352721785770865227083620093735670077326633850773973712118329030293580279417921440142464331250210012654222007804783345249758831111145222497110304985489777358291725896336110679290256689982145887864312857651850689262986546421550079242134832838529528890342874502557981428384852253754243884193391405521846349544772035686845452482778598533896487709831206425883856466159478819391135613073065664100286352548133678476032381705033394605199146352368029476114268204891133710622141125343451681861330735565130625423892095937180225989702419030239340523934285419770702428584716693892511633440866641907478051717410543354756931477100570368565267781370428807484965524990408394339495665337844091298836962610602855467138172890349118080747130335440469434881959384947567797041021821100948592921431787142456144665254758758284763741545474692982597428146068759939699615875823649581895518699832660689701235609896303214478377211895158754205327785706890488558854117607799930785652827789536297090860921798308433999957898325655665565567045885726907298662177751909828841263532413063671828496222815687075577289436371961698550805791246424533743772245700587242607210332754417507959127873328214680943463427708616472195629989678188577180751106365126433041316797827976722047064045164539527669955410360208505154755079440594009588260337423133849380208801063586011458646427115412671866584775707032164802406968074653843537436981342266235733661266358472229161730778356307737574721838953440350873045680382320805699653514366627749707541990139659865133907898157292162517698850802791239441815244599542276574687809371599343649404300845934422697469490901996373442048865221936986519174869125323943121874896127961733219335440278098731471884021451514871603806303683405108369815699120575757968872272824449826738797822764876710340192795135995754846331515115530080997864255321717062725208433477540277072789972245591839798800229469939789755529212609680412339949797495516934120689818415874760567566622058823123916339247804349845042492443084554745561409966375663018159894363187310123829145666822568437917572446085891301829729056445223748912490029573013319856968215722732905423445028642064802905980068845374513535131885576624541520009337250049928924338515202697822893740362604168608826308403739966532239757758182810404044533019542193972633557330699948861458698082098147752901386870273617112978073913568761733038716752426312138110322395430600885407634988869077193722989917223532599077766320593465221368313304548134555172896759989197784428410071265935630553788131472846036452363291000606215862746406755404906839836852760553215955182241615603391404921696819869399371599813809186246698317742747178972272563098108111439312355263528366210338826778673114993363845189546259663826995844021862686750118619907843746693971950749487241048271544669131345944503964343168016409082352706211792564056967039782510083920411926631071580293701826442034891030160413624155176927482168548346766408700911748545675745062288860718128619505006276141497473152477896080521341305277789446782047459145786562265192877477429568176557079044650117739610898104315893447359135737478288446958732695594388467601686470418914242608145600197026393761659479862791253411599162527115793116282860842841091643005043637953879771104730748426888409934965890109748846677683890656125254817051824032359427770401324512458366566327642148610647388100679556609325733057269227138793601977404630582277028880376373964600747092993040494691495575674263999311011955717780185473244003252401383770299904738939767739316584418259472452363910396799256955033100170494265247978161991100735501661616935314053179768422753285104874991783478721590477422153165841170065764599665735878933250148179784074188803573588142532096215304504741619106443728784377314242184707435737120009555086937466552356889213886489974930381834625423400032720400021848376700669887338095911904373307040872819031035950642791594922773319647217189446324995379780667242706836541329659881570187300319697805653316697045591335101021352389791398297362196573657685559811759487796773297944085633316265594542211021117862299731140837476822583074379080795071076156151090331435098689992905909309980154089775544665591291930742836777460970103056751623637097775611869326903600367674890669159775222439365917452689187362803384581329689500993324384653761994840837173830940128636479332048290264225735677886733560593183206945971352316592598116243901005178426107711233906096254552486314133371036595721002063748191068742049227081604725655120420258504290978363175704547532248001876988775865829658928265586158964548054382030984449569879294364958037615995767807051820021691013746582985811976844596661241916618135544978523069863668426529969034328516974721415260594355215590656289831531844328764145426999273849954005828991065774747419734424117263528222003721650463947239579171250527640855323438811804593128335896035212456335415011982849190226561481841329043062530156693193319494674276363837356019063366866162677046875572925345306131992724635492913788268880145634368439251800866274016107499733747935970400385833851898597143205715465152410769387779883420090078093023317270915068821201834297107340209604578652295950727065401250398340894013387810243400694691193139765644266326189835366918824135796931914512764089804765233511869233539725939699309925729986683815478513607838441760955320031857688420359135678409847644952601745792514486731210628338870728329589364724197510702705578444638066840654454432211683485539213494841545671994011211068007753511590272412773699875247044341566843454373341516783946734608652020892953578203071946782822631266963082595409698765097399400142331717821993614445728546687711985526285079462392865871182665815970684317703339819828765051108681040517876905077521027275558067255371132518012450016115003860266557695112921531774975481928301337501240032761001345646221963466413237879056957796235865168077218012859991293839247171381211882097346198790013173974643133558312230955515681794401588310479395923281309746042673605872850912583436652403969111121187378367765266651155501142880846971743897748319893872048007290442608541144811741921426585926583388476833710498574286267177565482240957903519441035821189875072889960819381452047273304890225540454873880183313508381947096613334607804773582238443638060160167122053587210475964844517018000922053324940838423534614895028175280865435887288547416183766123008190932780930343694248021806450758777028418995962037342134317933433090178360716625991761023806520684079294767655350726820465504865944980834029546634131032509312612898995655402099461149396922187991317384529986736824373304162387743102216768867030440540826132299590910342806630701197379815193609080026860217762524511516465444716797397615183779133668537317456697821711465906251723569332948869814683945246409136039141004163849776287161339699539474505169787000463523348213665724737466509152039267115618362466224045721941269234270388504527470613815711018152332031469681020393037167794877501840033788035027559363116354000956709793650784755744736939126757118857975499311866934880287899640646409031872372620392233455149647678892552847926177765829958592989826651113237429593878898590748248865589493366986562401161004840137437322686502959420227656809461792340646563103580938326124336520435184148898048120807201573294788201529455259801864110989565037603820365457344682823857122578922489340387292171669613683670040335358542494851654672374176053326533899467799886593584873184153045130550797512246061778454482872471159942812253179419920242914695749774933574033489792956488714289542998456867382991122973941371501362878184500351476663754850550375349734867442109283880832057713836702671620074979866954338951974087144281008884201694149363406820370100493660118131804897924571023923483702946288272154049390568794026098744739188574698212852666765449653202532684366338299288075594757868040272082253957725129017765695784072382846240509242683138979684342015243270477139697871218043867281164363906653656172170449599200639935572444776350290266452213192336425081821211461817866064085041173206410810878239905848969701901015255591255414809594289953581213133433939532434131377051605103495318853141395639362094883819716670521582596454726029667672492757210826258932277664006760365095993552315006184638672545487914149444070962209756343142957569047759006696612233859920857323834763219330822884336299216153601880713112888816951379845488577640800864250180618495732246545245374153648330250644045049836404156590934592546731779325468068222321257061668437423756224027355428123669958229470889111423207683192557555562727523595939552335473310676327792148420649363419589981185807750948974917833847926210853352946336322609218386429716841010446852392353457379021997496387399212122108034312948845642983546047602028976173180768028540871865670740100366299612275931627658979500584451565584496177962734622568921337962044222938570620419753828283184402939299753481164803787268885916803749903844790837867278389594993773455264644408781648344425192947134866938367680602724834823059001768590766905483859898197503192528415789984008295491527573145546125881172076461342828032713198588324841356756461756133835649342561351345412860839732316277839503041201162553005576075701455480189684571827381044792782691287953229307231054492807731444476601055505866597643332470470374511809895354939496944531113652593507744352216219658318739070202179034644277157187888311155866469925221536798051474928522257127243163111263540134245447899223961037971338858729923084521343999177894719371481976512941348563855851009392732221752904451063929562242734206335691389200214793665268625423767804645959181655826779756968234308890746035374995047793359202105493723663216268603446104732069377601481031622307417708059025773575069840951342049516081668064555188005137666095519040317294119154534955766083079448811482127941967799229178425225353064032350558475978744872889599022394728454408427270289860569060057952982493668306683739858506364109955446941494864350413431930955590198099973934085881153436198037675482624630505622314427990242941847955027985735360472978559388523717952357080387448962392944313322004678822643225916313040309578307052701443652908334294076767721262848730617355563862096064746132545894048684754619326744380764222864152961504341209625054030059556472147579542163810666257134465105163451361978907241993420469364894746533336761182063460544142709956341288926084551315961279496482457295019407452064693642659950597065604140648024840669127861012581817170642712322794277998279074274033472248538706251464935416415568082902797172225748649782491217139298509027535431085278519837228084890857216468921559248951078679206014143808416824113367633152766790630755674450626413369780300831865523476461800281914299315635233458537890121458173646954349980606204158395437388629675806717641205992533282660626091322572744545139773456638815973532678147304124378473332879436553048299977341456092389769129816715914385218257117315100385050068959973622899289810356415369066914048720278900876746538985007017902248208444919157660616532434145551451590655374111887829451853157571240975709072338856136144678588158777268308455904241010453668889517778570388686909343201711364572251410129120963764137908139964874798071626230051375031362889870700560927846555893611067098377417563648590208944399632347592117023822787805618137356255893509239751034047597764371301380065426291681083880526084995086377102542757878466143287303113030201092415192845444871502306262110956921022949118010171023156147625309618257944995323264353110383257060621437263252441447948320058286845613088709028218348603232024355239862375909981664004282959960322790739609853866515951465240484250752378747640728556728930219436021769248322426434689554958532123793662067191891178292774784160966673387603111087991313533598518802018744764167619345320052503268317311998734823230184257385430979450184757400494512854023269517707052464717795739109555610253670564929926477111617368409233955286212845691938116360741152816023129425926612222465032083645914017861200307203822624847258417734577154185528573780714569814639426664289865320460257418754601169297181265571722712530680835117935498603618917746962286006277668149355706800955881355225846164841480898383980433255585968882333670447492217042660628260663315596081650382949789523088304490612270168193834340465837489315074575072358655023466545486060836956634451052413073197473797238312110877033234134779086831234409103961013480968128671146387529399145400113979657183137020766719555484952815779180608399224581754375851285480265584180684657598420231435581675274776280635799723615641334958114407966632171019718791107857464294929714282261477465006941605089283030295763127206376952857012967562529015207506412300768377166440792028675410670845119981400837622166166070450429989469685875081469828373283723937517331573490034529801005031983926206844497324284933762373284116013905042748025833774442019700829457541824479343257101677169585334387463371471012021511411351996807937821833602852121272460622481331960682545500901845978749281285454558092700086022711220929001009797400263676732283392087563119000355585138203996068762963134992639732445627387231112496344274744872948673223630085155620840445972592418833202369637437323696569064356594849853784267073265693665395507406605963870942424831352012800019017255142298565906671295513220527328769259565640939060929907288006448594599391542893637503265017100126267087870519661691188369890244968120928082011918922563351572876169172747644822103083845403876281556095808239226700395675352817338098148808718802675492962558489668008595620042218060875519287151576600457538158477320222870797122581424038989616024657428375193594937725579188535476809038692351690074350457168191979657239553181399716862684794029129146556725207992226022040100217903444007577569919325525333963228777775317146684527013003232695898553513873833344252908253934736786045041266921578535684853371746884516732902862469616233770751273660796350840065264384259790360362025776799037026433942298406540850498748648339354748778700000054699887593444547345574777477856126267769775952484513339710967218605240399265373318921742024007567719661311575732580194660489945695571841928457866357743094462192431414943858385026040115809517907439986304500741208843396776785274804568568020574059548040620123810417259605824954784346270373907950386977728148521301106652906307176771657466956682506528798622874139705800967156460615033855521058230311418733027441244807930571798413393388743436583787912381685692789031633929833540084403843104895054097978407001728699960856943356637424245691534164685706228574550836386543376850899462649891059285980751817506526536362750503329332085445106022082309852179368838884958495007598243314893705858437384522868245530777743542305244193739861121507067458723640958362347329197532095173194736959854803941311559211008072617344915227562077465687017337220984016299560893719911623142280612349955247502536478803554451856135214380158887961124875212726137044581529197775567328766842264301719008514076409637684390969941298336468449271251085307519599365554841848743738269782136839615864664648102775484552096039743371176033332860693132862268433351905604311829449418541155931211170841034715728460712457070601657338672379319214575831108318898744735979930732031621959213566279042649758108335485001417784306344305571438598560873140281185457483305048931969732084253703786208923908989443693430165607521221098142411026340315036423616695880840372016204037330487870843347918632943096776002671303993489237322670644566879234012695287692882006310229165629603876845288339213475669830862823507872256701961209623749656344476647061328155488717278040758743151679517711732453775138491492568906120218292023196090305758493987893035911812761303393303210495774812937274720008623241976030592232216772783336396426050339798285940864095194975203007133145749800555672979097015689611563545630260655066366534358092264979150264995921248062196250577030747754849708975445299309435193036791406417536482567063341679060204122511732876629997058338106247460489561128542427025793333062898847721877938544592991992294976446125866031154575997793019328002424321687302254792190946783594056976194089776603569133326232834791252525871753504738624120372175149875812474564905238981322202338046738467790955984984304021160587840186112708447185352140715127872024839285679888297320011587105644860575941265361023605594543872690424675528552983098700996426866853585111526075214506117659479503225125320096097360236890917804017414281027248434344122644830327277604994745310174314615998906234200421305687210101757551045302432656601125151127082740965880544210666736006969132239905188403740622638289273752605480569388209375468203589310983854289995958542716736038123914452913111892295960497198726521995327117099798667194685893571374827521703470412292204259973293260875915593946985013413661438156627170406855744512026161967667569756775560738027137563938003342448828083147195345690160230514284307448905093584320549909890959152310477666366482724446025532975130077215610710527986792454420299823314598311857161464150778471241435154333972306536967938442413162451307988504791647009455603738572574491519851177049525345007811721167315941621141511223933719771869553456598012388578051689803734579274857292368389746222201847136422900996531758523838171057806122332439671760970638068494409717441150469897011534257121452973039894966009150384477854633229146481446862093631247439984382007268714851052578700886269861358568368177069273154790226632147416144553320315322763071485469723454283093064752839597852020592142611370211141626354404104240468689174416911954535458990281710734922323478918594590159665109747134633275911409523303438918550678373497438024348642194603526478717186357062609969074436500585033728987769352950819430170950425155947579906538922662517248115721292869905772472303209114994368600464471533600852005216351863190945407885332858889526081626991101922367477400849078952294317827587334080450540067844869580538963505916038195147738134992941694081008963492234018660053224649942305375697372426557049177665172125348378855276694263278152305457924746619166270703804972729355806051735710874729888449996610928495451923233462316395624219573161571808809802988167187341227777198562452841935826875916616011848226258277231672434426186556449994045362293696356067099030189912707730845005545389041401157572743806633167678371213330789041408840942379842282357178168135146871227756486381682918604719801268899361695395072259548237627527498540039922198770250194039675654050744342397319067180519599012046307341424585655481028731259957139668681781656950899077114168519212042604040329200833566890624045220319545875672082751918526163062960287133010896002224055059755289275008963197458840955319831788754302910321802395388924927509115515820440959995087411153162049497729501887854576575677011953787364374625389715938881600406903876279761088361568114503916801853146031891976340695030044613046222371890877543800184643522739839794830078627740640308138328898960987339617918816858598191755101593485996335498423151589458273646202543121457439628768342181307569364238741998790939108270139609534261248631688130274104135550993008235112403523023927604667833861505742882785779435977841961592940660942043635726599572420586318887584064993857758707634860901255595637349641939827351581410500375339093512771831223841469537697846562489791792712166320807582836747418975733692348187789666727220943402133189772448388864453893216754761781331285576579043143886942667910370925985470088199179069244936529969554475513131547585432472264638738120299239437388602593066420742386507417422801154139450415513871246950884262980114103941134972207185075558352305651674965378309696153524368872203380117221255772604285810160652900959962085372993879037406961793194460060661723105235411586736424408398047144702233316402051554407782039787170555198528169580887907938122269024084390317658345984278868689688849445150587658585246865730586358801409250134358340229850125832123033766997755275734733674485900970843750026048895680867308935618361703058973852538021340100411341947141809883760605271101056517849789108598396509968164378200025021886983192529076340114962292489875768163082135062983062118702313633806675357828995571493542907699477639249751560096021921895771196654062850378835993482613372077909920965421209407563390903200689577077474094583524724392177794630745529083498436360025032996645059292464779551567391807168001506277424479704364756823816870593314177694674306201397595359108004809576628837383218708380022500004081362318111366738174185488132675101261295309326082840088903576508314276358345077332377437973431117015371210037332667324451221997933360883006327816464467570472471755942073733292171189732819532543054019478487040199198754693061916138200336165651098083636148034547884389730168860161997860700961837326369023129212926432883883713274063331775308460861689892402352158352988606515531330936630284843950629176953284467014241580390924961568546003448872886734645277117373789997360856956695550097429309623464041035666885532922283314855935229333411336940393717186570886278170375043399972801466518033338858998498312725902365153327113695211199584249973278889650084252454930555885464942167662703581274797299757161887497216679012966678086137745496613319997933369284534358847661899403860072181323618452752815025697526857999780799298657821123549818516929831968307101185312600663683075967333848708149186786894011815612594235084438967874430414369229514532291044151525499152506427836177813987660496260090803180730434823088045576860384526669128626708552190367292893747525774228547114323526521423483301637859164311518993303734348168408215365312697284908953279416728462581353458880868565799565039281627527931629928585909090990121310160430006965747363329384357841537114939017548612586520896364573647580225602962005266679305547306785054115030384242140639930960688300712624678975426446261491958598772089640117364483647522412865265221956530840271910502191083398878462318765070093993772697167304643116003677384569621728477736960855370436290560141442307154744529605310833374048095070515978878877112646849694796153698799488981672296585733639082079721301101509698876687927733943494104715986465661808388398026671592974162303351102488820051386859748575055397484092544186586856075640258417918251630894813277201239093830788408370970756214276141656641662560114916835944404989709367611173189633519030375027524747336111294567664697080346766982979174307796861354165713710897164168809783018983420740412468163079996603543135630507990424070301068232548250471177626227495203734803327631266810259852849966713449510866456940811570565057697217736469425777079917520577984007356789879503384920464986877663228293021755590424655566145048315544340655423374955892263154856185856094187721115415496436621713659634849897061600854957563178290435745151836282992770487414626331001527166260350575672272754463399515714711561000327628205537746721285137719808135703079865737349714735765327340724857166407420942022130791480377360809272535415041338046811875693649919981194100268941273003430984407506883729979940968230928286129776250735197394571246592845317588249098707121559225009944794379362716119873101757181767538766651622985584602126931328850457227379594981798944232501351644924554468412126260462551824903198106716085932862915676208657272520944691947706471202407890832597519157596787518636062927100408361534522303287129498504610154563382710575225639335030973636495428122460821562741300658569405962545122598456449687795106752008218368244756312748626310409422259071925249321183310507013695201514011630249495349926965936603470204056863376337767405352273949343465266213073613724402175098628467604185756914052737729590887545983142774601695722747128413159141717901551767191647479596577468076882584839527881008109915503901288111636520292370438053256595596684239133485891274588654170871300379757373692801346224708633094682562976576965769060730075722938669776515082082393379677978418078537471380545004118687426693222489254540548706996921681237262724389308361273616647278712444137668182890589052138267256362518912438152427943475193555318700503590111343221804379394044203475858448660474652325362042458975053657312247595360966862244061295864484222899929368843986135210780808767945517249837007515723022311979426747533441575880485323015280346250707175181754049032473159406377845888139631644105988706982120600872948915248026967810716049706853413532996499379686666052762467945994531688798719410564742942858738270011288841673177522366070712896188258526460876459622562910751434869792050745183939164392409160325361478635187103190138496625894229662962431767926123967623372271387917476751902257934289353548961990175781942781793359316174459536066563833284791839292765995506649564192464144109390730251938457692665430735625185018487533186611017094331862755869823541307599772378745146187637986199152392131946930273764579613113190253897079006111432678794311841146543317312294139991417144406921125576923515538641086073693159972000593328972108967259487091882078449897626849000163699750370859516652626471790643588049163196357476139674698008468333935184961942297168125683543509632601184878948023203249299809072442565123275477513180453773548374714839346784496067066395974205055940140511697850514335435129757186450563785060567059482825735270320437292116928239367789388003848931117988036126926797579432582043704830978343307672456712639484968119836722275028346862530916947925601373935585819050118626379389410208580123115074110085638194997111321626970062774131641746432650465411197423838399461551997858151350914508989049160218815298353293910724766359648885709318399511501524642618998528750642200638802898190572374780492500539676747940889485525102220396781071056525471971762937996448819292908139452786811044657748243551943927075040838709660481331489233151677764242397939752572533338193952771701716493642946782059982885955107646830663645026730797330092212447227820828967103103343620917044779364790684585479600250578944093264804728988751163949779902942175484010788055593920709562944331690900053763266384517386597355390868139984899906886034007383332686083263673018897241348230652375384617720253537740793080106107611058607584415646989240932473301753234183257566349989239905251701676713985187680369179199963256110292171939673947404976474919497086998966643361216235435664913115880500258369288849327803464856521437834123297885415156912447306975419792708018219060622468779489648259568462381917766367270435843851438312047550009907384981923210451761281610808253466065870722888686305794554633997962661269337110563720704787830153234331372168868958530739413182092549685747208252637432495149808504262487101120768125922655322983343143387044064185998096861688825628460156921969554070376674424080721241544911053523362715432100691107518883020609003830183234087617391034046557249245067956967720201301527125515484353203197610347112168246313415318565719455725965628109597691678166249276020174517301621017189908051879093807448661558697685486587263404917631685564689518622452470444845249446244254773925430786330623536855414924317707014861530274717512196220923379978602080487469640721065912291890994786438465959437904005975531388596485727572272056641693842704733549844264222626463878235289020134049062976159902254902777812368077189080667328401518635910067925118418524152929086276407357069127519756631566430528494701763721811459860471633176168405950902254951493983482621363233261277014060074695987929382638206296907870808161986496305937014587647945937119595515191715982598372295322873392320665945734758246825632838121654241616011582932920747615000713535801833773240652207722074101400141585363764352812392353226069299417835361683474242994550111900431761206299095115266220591111634170021455341057534482349104350457887583047359206400884826179151231897029504926675721577951537762074790731787130502841677094834371759325065851783854096093704293692731900958092919252397270638522070937628383225683153960835450452350911780442748939256996405591989068391229404408297933970415774387924381022153923395405835504113621768656012882992243576095298121220926372985175657081399212209369469069471505232807745922986422880282669166373203839309173546023900317601810549675230258888203135351455389016375513816166978225056480770062195994286941695278682988747875314021213999847388311978639357787459177248686031267162826808360002766955243299122844020744637353146338531180960229564315279646959393115331046112625291188048843645271662490169293131384364055552805522021593862982506767973844674699716046211730178846503692138201007248232185230439688640726662434346317554993668072532687646570743129605464965742014788858724642343068491804990868789126274322683098344956419302268946418791508286084929859354653201342427917487471492582747847592518391760526150616597661767410207080022210623107357145530655401644568933476434751928179179847063138391498203868541420436574637438592638827911733063904177821890416855723272195360404365958472503446756593807756349612730780517911953194489259765071287943163119413850599299432391782352725876569010745153862419375984232748182198639743155981076609447939438550985715018342750863215981110708889461448106315882194394862210581397497664063346454238785640613883278604627703345260705742599673392127413636484887761864382039568316772471090981155072098848700928047908288628072401456294357134069914678095379841230389532587714472243548244728021211564902264529226927333350550801936451390912353464176822948658127116341488446487138940438383796311559848964087872479294196789601704882820468216766183499824807259385185356274854371004536137535807547593736098440482998251374614985743432049694815390831886526255530137278085532265296825433061032911691571226188092134929879103545128399297317393616872420901374105379442196137925627337251285198800256006563906526686327894045690228364851806154259472496125368954884346955803503775829068397792253466589550529612640278648144264042914143766377112498613383916375035551947969249676418386076288854060423444917794726698515163085347102328889833744601277957824125844918345939283471692653076228256048916999359044268746101430109002605687103756199580916319166870735133126555517095165180999383952443788817970696008307850306803884626212659925780771260775880880034397834613309972590059603183476278150533933350088652428004152852985444308039533374501320717398934951676352766326895121961597303108319574761027498742762578748124885677109579005927502491259210783412875302790055137452476074633935386095909222443310244498205298323532172118379719091662890610939050040262334858568165052734382185467985642594689802992425789148498980317029573202650314282389367716513114282254068003428895104265272373634363270439747138599295571914274100417721665147878648062357860951987571652643506735997685318170265362718972160648129565432557808416091911995861065983798399068289218156337663004144963795187721814977544606567415122590611688416936458073198486174501643534917040037673677032823398172427876418637560031990015217261279594223777911511538725347480198929580766627950907056425196769674521310890865479144731822184210694554817775704429468653516051232036428202885397168429317828505100417599073727457402969842217110841197101707951119226438430728170249752736511550309056698602028716156179101479021586285597459939287942081789345088729811755792473296769426835851993041649967290223186156377889296494491157348628144777231272026926211861498389378174706263546941732224228160153197571468855334854067212113913336219196385855594456694344874928377304607479187882711392834931516355210211546167829290119884816255958297616151930544728505103333741511476627068781198109245866003077661172372657549969089227801086873243587889640952366644751807607950878748784566302711750928291351066720408655539168738065279947798727044036856803101905795251324728107742682787370875388526527428967248912529596056839830887115265010684675513318640074591548552981899141725684729310332971551712446192219375800682917496556949804166118006066164641830214348198495154334102285786004075573722222382683516872415418726122793533915949498447451325311939388867638372995140482301408460171432412340982666996028219426687746020350044408561234738448991486705378311063033742063237538401816044149506685700686029181245557286166945572310428612741157967685536778128206918967256517641753398835589262000472498978310175868480641610687703190538574166896210995789931198136355484623556164489591079062157506552240940611658083781224928523934441970722023972642148584485089383381694875320011027860559749041688359808212722099488984378790364212326400912372213693750132432493974804617571757318556149336969647571514501041018221146281930432319948779124063524332978388702146975588570358755337230435794215414762594815677813428945007956940921752750539100497919602265149678936535041785816488747663628892316450621579212447705387748592968365934001526434788456571919933245593447476107669238013936911878717169703816380325557345480738473100962804766538057641962818616469031498958907345168625541207039556507681803380032142532213096914627713517750206324999327986922859678426298922232731273992315129744007286908240456583701062955945982745437687283745873262054960522585453869197047242795525870105666549927616979123038028924252736343083785533879912282317871914450095373911424489420662465052046213326402923007729130906133149600196485485852688850409052454582385896686074207768163395409597090615133351892172830374266426121079535392084497657075880070000955964349777295834342960399998712660021240978688962774299341613339760764036280423807407950909113048612831085802309899401977660325207462932266528544231523100197722265814642195271211368498610516080496507903198323067900863014064195631943731368714017032507853278251222984684804768053505153309986414466256880421007291874674425630405462217987280878798802070524812628707532521858657133684441738397141690975995029561521127395162140028090516754535991135406009835656694030607246357374576134868049425375416708106637601342107586690778255195770118504914900325523866373672820421812129352579424522593045636706296101588967636955997692351752775407406392275525689335798999163766006287681324280702001972863163938392443332176318527470678835307662056060553927218608887926980194155380443271130329839948009332199919350095397012054003992211780906801516319538972969302942665110515464718454083576601353232069228947526007579538714001885801150068713456314067277263581820410866203448650592835690722157189169681783875350899806818840774541815848328749749452617742532327265671688022435848866738309000909541417642746174414018815998332606569228122485360534061213678218950382088334369645668205121145698217426186910849161114350096594956692502453172870459602279819265883558577765785086290641087193231516740508848329337157551362299303394342722254843015604988685579132690160687214381544840897729720860250262870174727697428368564902870589797296670124027844589867971066409559035794352621345873184171463855295800426263099146910825344782060932262151622735645133093730606265917997528142656750416176284387777106000359860447614824102146700651903709097383892418097894779846175718801798779028484059543260293019080313297633639455633225855877035136792343478279926346018226243837010296754891343580936062338090275511449838947800242701016518333295796109184373452448680763130218828678884334127107404972651400561785491622457937974183909879110813012385056648942162928017552779435588780800038660163185209308178308227407813857211647048213206600692175048924175277632264118483741341912959791624449863789743989401647073820309548963057670878299080940124618986239419308025897103678740919573209032999290931423273995753569748604977914623286857255981070210686958161799239008272615848284928395736215929733384752601544080037374398876379112066312755260209218172039789142293787931548916064226722151202911006986208193500836368633456557607173659972521973848935426151360779597070651490473198270383869277973435873338043258733862827532250430346684148961844893212198529495321127412852069095213131808692457057928102730261587173251519151947173332235073919389450396978665275490585557612926468999109904984342616454822939806213692578430582571213494698810095674709123614985421757802472462785388074657642088427284974280854194662011243460305895593615626363387192394956035055775933110211578025898810542339481042097617362033221533074604898690656904996826399120112258241952751282693013951205538701677771982708079118519791619770760970311494254592475851127102434198750792615640096905082138226745635498997178534219303844611894440692912149442561379361727597599003260067691479506342547165415979250073676287079685431526525979034762520707316863484391859383666360604063724166349055489017041874359157130718442791425367959319565633137245480717221530840577578044642233828734484220858626330496664727930573327306592436301315810990004223264772904223704867439092285292182621363200010018406371747976080360938719804994915074730686210825556284222777803675819073548027422471692472359237592314654481958552760237598038466636957092925094179387186728619111435312764969792337300287757018554418868253585069951764479277680768368142871417237358302283055855711639399192006886470807718406267848397588504604921989547801644262265467371099363027314501166904684379375726389808513100349572494405030245516876858479712668200381053766552847934778366658135720621643334685379780085290430204057680898872701680706849686014511861090183585531327301005004768239955293642974912465029498755059311086814578832413490937680966562452791826946723727846400437259880412198881623554128799004363309510287963433140733400475300017970125460148365049300849490120096986516524002881963229692663058415878408547902442826403233728154488524833528381874346620408108961034160411540126567755272904858327750979953099287917499012044926769073270969437865203619373345289692083102169659806139249956301583893949237272470102303404308987740036348339082828479016081848137969628824712717516609407164991692088020637383390591354802552853900535695738859854337974743535628727807608531200665844173754152168604459988611758643298996503418443030187033493820313619110789346679144632715273815464970773642628179265326817467830614081943147039873865659843155587653041072188956542966480668308532793540328778065776437505647237482849630165185963345731397332423903516261975817955623748694715633479562594034222833775678125739789433570195535351651441271935661800877869761177688375257134992259171428658580651059005383267015471253028405459791509779669039894185743252901086986266982510705188761502699701341135973063751967458532533316484355256892650195562587963145489013929249863288704729088818257158482530557416185823507098440952114566724064114816698665146833520544979217790327640671672868504454216372917657889460299023071368112907566264652199909281492079920807312301803707405533232358635502721650196591519217802729773386816211460846764385355770686205506782006758174821422324893026420567107557488677620715503502239198106990193054319560998669101098227233634759362936235840800647808165376021900225027354549639130069700150023782163906086244349733611710484583729397115541575770861125878253183425719225400091382360224611746895432426076056752830157798269352962204191872414250464432416597986587672613334434985821024850813319299695162529951581654852709642841370128994569144414962044008016660489640567587899080732800176041149296058718101665410454524903598638874820740553553164649796630765503922627313456771546484600526554374833059965898011997233692788191902333129871935023833457125575312525409602678780851890719326863008332753406113674180199520700940462658897838935021757920286007633661094554212734780646417426381681630833344331042514773445622555256144639360200478639272096865500478785025786898471315116448531105967786869425898874680804942496173657461559550439944946381276474294791667692175499588922969493422132787305587090917959882098151914406382037955918608625387577261101700765423921244283192314571055232886960117631439273699977324386207420643073327539794545173579030142898755531991350214229919828562275198285065111161287382218616531225288793952233051488054149456463222187894543988939390381307700087959825792143108023745646017468115792358748205234734474686102525852265695725665778062213000602144581770428991769484184396246967115600476223593394760880632921448035538228710084533380776324120208522743619657154171935295257357191051774063182096405579138460868824339111464086077912901837980559848676684835546133327133863532136964710194237460337299823466189799232943471931416929943430743559231496454102320575850734768809793842855931138484197446806328488290759704281963057303575922249512760296878396733825715323292151374961877386404455508115485957573102901081844909930183264405496434267123468762300735764666207111490105183645211787539438309832432676930517976051879436760598930195785242452797452795681418960119890643321783058835087967723237295892026373319773450941749687214267523407582386387768029461056471664649915152548766610503112322750995060157292642294147855136838872615113143344063898462237254491421240486221836012030346150461461587879208351822117430681101712333262846777123571125829460873819278164584781941479554810155497985283427459268100095620021214480643914102290444795478058036645670781211640796918523194565125098239649427626071481257567181208331616020990113583520737073135289779341810319953603068392690561022097585385999252548341494977785927129604110468486015003634064162402063484298425854080219471132156831838966973698627826218013928376431630481985513450569096031258337359726711160565935756560316813755203550470730342252063888999601330295519985594838526466219552186693485276514349068779823011091934039190913761659144906512091607789757699244449190118979259582423453835653808985434414709329754243014700239125882649736265973911712363586168823262256588446997017685847014720347822149392956324483168044464223721866743396681028148546264331976698039113107286354232427548683414515086453307676900691306626485755396891842525319361025433593884678624790866746844008485371610939752803778290270940977606739781265510390326033224104125368606036864495017827303778352749731920499599173381644650860804849161114368569302142133802712826509606993149076410650518286331501355415857687187281311665220549586716259933074318230520070935220373189289759691203281389970003275314083830204997007940434617457713410287718308649390256704805660918330118203958527937982849042206777676765313453907158370735208769728495577648716839499404043101085178850087034027295701830839685377505191465033388435660725912401066184035940140460881369523490353777436291744607877425437700245445266366247458646052152193263984765061994881926925786685075223726703782092140886840132936289401189709047317335908583982446334929066551682320684774508512279165301191640412660090204270250335174579653982499479928197548857892020805718219827697071684478454440368067129495490610971598585501868083206013511142864406350301810349566503854280629195012412908344626449405045693651666095562564775926848573747580606000458354760117416447590398860039746177161459051409206969889059623843798686948947890105443328859203826103900489575546940651943910641363542255791561789453370604990543372247453244934878102437739255750453100176056094848903068261704719465237994012222250807322091324784415250284988098059372065655040985731734068301315897180699635603587213394391159560629620730401687505180282590478161206887646676033738280415329460772346487463512216373213027098950348999093041005150162965899955004701441363273909572619397480998142610564013244979269376141488657539893719426816213436099781742971652164803572330440159606621809264519183072312078649452559780932778903296650369734987417603264516904371146932314477876662686276450765358668199902541461203346210545770532552587361071704499942465084448118970943594287281685818320971706298411540127880297840637436717137620787383319399541306870232363221963608591578628136668685829679769893136364586316595968334845456663171642983770851150003772386095903233190339562282033192212467452524471093903080733362283140730936039029407992741993160792663901585472027426299507306416633341175129527188950421811440889354675460372121253002883377229828154462289454428101668495998955362526366791739068027362547409654038576562967247387526038334639021675659535505115358725525145173143805347769750250703311280817376321193254743340760363810652068632174819753861715837058545346678567341135148237776777534587696675132894710029173808660721692946855311458270513598386881626443806001814192626354204719031045589389534307019779130133802074293711211554640130460620536586555331828266465780765617225847461956357417658310686255948012867752901824361739712097444509273309239157520775857581636237671474380821377917474660500147005533102878388475930123863405918637603404696568672097015129190260355148562976933788509934080453143326241662034140138204281527949386450754848876463272941286671717178071752432248556280777643186838305966754191799968680796124735878641898606830386419522963143802489000733397047985820625328892811131549026210117710307660422087934871643228101637629406861427707084012366696722703012004422651658426283038337861235814745606867490419456577572204345935349807031652210584155212320778114254788218781849337293943967896473348933787052923691881998804772234421498674262128925902621280942426747040849324796217239996759523118253754651821700593990396945658546637832344795185256494884119761687598871470614880369594180951481298584082551437925265528562842662287372988258562681163936102217727823092944961910549355762458093561368861976366382849309112829451916245702482645164427921856487360016868483795257256828966571336673185505137329084185536670177715239495742406050838378251936646821931109855202639238947353554810487840717678565106298649052187813193855210454592633986317873430262467916073804951057013887832370926337811643093687257148869936066228961708702179100890750944331589098469822635355834826149532771193745142017595253734712225329149916166633137502556182478953115856885526392996046475505040905815744086959191882631600262332039346719978370559061765259920671507117981654319765254761361423539741129729039467910926278818748390248826136579525033488936348248043595416303468922604014000664512236247310058137451680906997807317130020736759232258031892986061345379258906964079756498748745968634687847743345688996021606158402125006441144542887187852696438494410316534578289023434419258633465047820200807450815684515659915224826929005332929239534967341101584297345780647210221921708808521638018555893298104259487615990762685318142232242419767937212595171364610505164493067287051464175912445429089134001336514493684754231676597074471783338650545225458970543351096997751638959997947431766514327085683041913024986952128085396634931898206497908884304926500685648603469591757660884277596798710765717266687974574721360627850811904506417542767831322371433571313406724599956361884629842205648773414622846025214726433355409487280447497190141286481213783703817312245878730955998855489346232306816636922505033129818818928775020006449625402132974557088354211198018651665710130953501072960030609443859882198212505781897033140910817075754133461945725672013456590004946332335104255508674523558941447285505322125476625516085790467085610066560991352830916142340279940698630000178533828404169193182164417201240635272637990300131078466320099514687624821067866394827500185025339777577171355184847392743941369320063898006173548553752839251196634280206153911106110478500899124613554195888213215516471411979112880917674669363915639566425778360052204298401157251681800457495318703202515357136689132994687168986193998793840536009077309830059966428177057588550985796959285753094574501442604818483627428760612300984251652298369686445654255204535571566637392991684244873041007724063943839981315241016190250177033345208610297433408830177279475298127374856242418514396940419393704349561226466787365608099786503672870854073398724204896366714674241802740422508139467570055514437547057325861407362700813417848879567988470619162563452991063990993019673525498503145827817907379024775845790349364256214629553239862170458675860534013568567084249250994567213438908934743381614223684019563023894150929323939811197847974792293348005510079358076374073840644316745646712057218483906911184593934319943340622073407795769235470617983895706309904354177619385956556522941634196108403715320652359026344719365122879150394831283923427675244253817440321604779701143874597638097536404984186783172757347881611323892557729389038919425439743346985340998944082458136232605785345523575170078338284322942947891669040490930229128525484910451825565617122590970956356397806299494185201447465224341812955953595008276926061591296381562546024873469054359871892664177210644073306130565019596277486507717599572726461548123564029176571520034224596070192744207622351601964309537397179841664358457561428015561127044948373499492648265574586036485222456989789327607104588210666684604706172304222344242683972530977982363671615580149778579058450696920774842189360359246348013348246762374911535986819745214861027876525360411218449382037190985993177588043508587677324307285825394530014372095476168262822230297430312361795546395843734046058882606562297860961986953594734826338695773164000211409903216525337561384909794780668567025842418032775476523051518566719625691666791385689213227570121414359956535862123511680232053174260935222801944184082485539870670674057604966914826402484645513098707732174621460073286599834006658163252476738789324000605150660126633204406522119507841478417143050498569709664964091844709480052791372602692338287011986565168478654277000624531361439544144221139838011705979798519013148454376246468112317652736895316201312599204109385214819988148909789956433699477813726014812677956504999335089159780640101912363733441296597531326488286035025854434444741749894997010865524201241556863722684100188522611836954893745760572029359554938414980291681490449788445665003799536720464750462871893841912355978359436701193605245100581430735556592922535454756980986881988244627585273310700439881987553469990977723760533384989448342423687486309375738685082862230367192130462356654779770305314219779426462825642248887271506643859395299243357020698046539581022506689031574146606991437601950334194657317013007086286472878492914925463624909416021722197330512565076554055525324619021321775192613820980310085784322538763070870005422040035836592499227074248585980007949776497821601774966828801895797192178827318640622339798882392016211940176807176505147747826880912826761274191735751985667185894922701238372806503228904879528690192151907269046841860086482067808930262868568039663990216108571514469587466306945386538526681419752156516231215740071245571224971512127848519799078543959778415825065549649429147089451786953549573696381692772983947871847371989865717540857129767016965917750109467591238443152399614106237875640020371121281773682090436017914269664426585248585716464503939306429031567296195788171482637145716451024043300586685580518820993526993893793803076455777292181125462903931497755571598880740001490734562638418041766961616455932411465562144602230878834053482281489033332964908071943785388515762428135902889902836827483834403454432661312510937507318802181519958832564800775503889302598231880179838923992162389689122263446639928499727225801598192649546476291906273017152107915728140549941354640052731624461332490216406205876399507882908849802890777976908136840151330002029581489405003953870784952922942120487065085051156817518864693727584040917763036469020976475709067364610018518382098608605243527160741148726171244859732523793755405233228473825741606306646926811923354590731599496152304068033662307656360180272476243832911433685584759340952924454953745400121404747967049012455859928707940523626357176415693707657017356987564510179876407886562088554625273699548063035425695725174554050190122727010850282583036545774919638509612675417699158240408441619294350973910501859234934508740134037643993687393656528058038372530314827538661452514113072865276092981486978323463193908496070085689146207204338559260038117026791555464756324509625364918863894806948599862110069899095761073115777100309249995511347555486636475892689952926632753091953932934693165445052752985478158814128691349275868260494612243446762036909781850337242145109040596743978115140296853326987147545959947334952751461632794481120847241688139205876042226992360070027883733631982359964657487607641065684550127095961229614687430956367813829363024999375153580690030290555077565430746286831177708182126410528856519658279342358922904478201903066047068139046837196375041242078392391757831874143335190980059498982505295818014918380908633173761546983916002304043286953634639362675939558170129333430787581774611095523715474997915563366123894550479702274862910753795238910957527497415259251676134040832355266944969298497579696964604702243165281335324286227480146287980114036967578609273192071433179784592514351173246808302839043136850381412245192294996942905509500522122120845285208275745191150686745600798036725250231736456801296716362993716561854034625133417727686028888009419005428700851982879247524425653443913882176217347218781946792891182697334363303064178650375486358585341552588633158529682265956724908593721692350750577356544366737970980466654238436018544197204740532119258765262307897389045404562583128820234607103211199866145149536619078176180590990797962053104538008614372904160690506593781582267438889148227171462415563055109825784734273973293386496295777698360742288297550262403966613219729370433835295893186608538903496258893024020933683302126275662553958826315234929169063640456363281733406268079315615281702611982145343747049152594796015540104459379582360808975374300190122189519125251415689444568373404018783224122472650024246856328932028449614363958948334950464576978023443409998203602199672319808822067023517913078060003951072861535413950804650160124365077933144715095913649731212004140364308306553385696128160769225624181967053484993863023160120843714880738444300287007698108982148213512376605893165125013074234204753532683485275147300902828376583888568853915782989588372271769473394917851324807205206610845742147098527028815268382243380918317979446161191356481192077605323901610083559897985923576302690812499979474604787042719585252957953874938005194430528610728548700286407021569984600504130428886520172859385283718965774057306701237936757214155873238197416517353977876611842025868691536893963486026346253224181001950090429852263498549169664185109985831161239849860424201729759298690562492648181299369177317548622536585512393889556776863117714777099344634976395911028256188884828004614779015730658269548695011356233543978785294946501896831326657950179293910790703931618881045194062455452624030283873046048367833347991028947890753596881743780748564232459984895639534295797993825441246081506557292251249416912127460547496115658207006457575063622072663798578474900862003120618859199048758109048534941942504761858263706563499499311940705405503027752057587579037493384530150708663498564404225786232235619256009395258374049197705694098300183976540800500845502235336807377175724459533007286283862190506474117849959930944764121087350565738979001861273901310552238718631444153906350396938805886926581109687997916559723466608547359584458929594664438234470115090246445983773097586248191783014534035452924083872574742027192251389976589649763095739771131723634095132872601102194105690404768831928054556108473674855214501439050642169206460408617832517113692750167860672756777394199403539106884558384343470112675437956904278286366257018348592866846388412930746185093919569342008920143810576214530425256701658356268789790211455075599318275702152573412812763467179100229913370326839378752466920818948786630433289744694059072242244748078294881360116011200988019706601454198269258765246471873750328903351305608089910853774729713909933106911744350117707022307877714764847428650908661419936392496117966052519892579277463115796478219516237207700515951878696943809669217909640140807883598844355826611830560938355014771874516022240918456462506837308485967473354147638796718626140244898935439231107194695780599265738108745007343754001629599471703411209716488441694521300205588122000121408845085093171134246366821337951761321851322291507770066164632089352889459472533833394782003851728118280290528829093441409886825334334855154367232691354507428144201782499337948317417480921966581629465704144647893675270667733802973163859730983862167170596738667499268058859231863189945954000466042010405078850267352719867378958124048404939915141412247246007814879009178545891573363736751740723346184879431800700232359718743496506452367321407195102079183494123825910788260159816249634467359843170352453631408211929823239830547969910374124387884336957917348927436603487312279936545659259794880444320515424675113912904582219052984384971729561108398228508909924002712603297650224515435185571584446888852721404724078620299568754874682411469798691170313773044091522198931996412640684213840825925304088210417358551113981122350845865396195953878461603605867025248370972513215934641799402016253419562364509365076495711665231639992421310301248473912376365501522935406394450555047630417768509994264607603381868641633889654664553021568393062327178086361040658089746183965986913162470259326258716356404901089372375955780754831719284971802611198046394118421806899691268117943004450563193810414211575414709648429689523287621450572584514899104206496946532779102664214771009244637794588756620279778118848391851393495828037808182115228305306590970884586488046720072541741623142005065127875859417224945577515621776149400102783947164176864346056160078160375789411645253648808546073721836650734140691069364234463541375615148043617585756705876061043802128880811225759765054530824212721116643170315386139575795247225369827839997852730440806455622033708967594029813246729209935260306058267699460426088102060697960994016826055456536934013619600572769683794195360316533175182187271717271030637743586454512355313410249683707264974287687427321757474463223861124486861187147817895925168626258451890967556749247535985340857606244075342277863712444368280590059680431931852134975783901966019933234424809499038784508100756418948695731809823467912672040680359596982642263440636807168487103739150533979738689475024233270360348642604304643960244655419051258021081786873373200968404837448220746692115383609238776526313375338744512481193077229406803051571080972234531178449051690731702388635131552085047376752693041186228220901744027253681782343975358259272695204437464733263951994347971602526747681559006380266200833935243815117635024775977373098441019877282372498188458218977159348142009859108597916550611988550844491450112849555488295192827103807475390095297494129864319656665087888555505395333356518482751013339689727789767800613924695344738977077911495402572734074987720676344715987132516781405079424982643660814027301506667745039242546310768331908469250967333315946957476033870383444008120645930766014058587746794394518516112135787100003092633284839854976100655719690124346890220970056691829090272198470903091600702910180622972757690096391793598815114081547797395081514817657855643218038001134785590840165492836181317056267218748726697450688681395106437436978017372476240306130516606594577502636456728643527590755267950973752157493631907390929856271759913199767988733495382258565413301087830445961468973313245974657600880938113738895104568019673401334081154213174957320483212164976545660228541830271084108227822326251804684178611922429371095607435591371863445013736696441937194102951788907561257962427297194150448912274781539228864819305918491555737117849994136024971957972953122313488900440869592415528254950559143680254317192063731652762439603533903769430916512673761033827994417777696167838993853788654383800083558849928068717792007184407632911756631524222547032698558217102557806413666091346896755047300315655030474956491196807103378651178706974091847339366027727565546804817696267585064968896917087351534937861116105286343537567587494676527537106578483608773459064709856280520757231779494805202427801411184072820434282134673806904296010651327425431528475323809800501209062554388138607720756183185753051649280726380702210971353857263833280129873530934276505003191939035182563996530024940478949155970459740638945908857542839514073549544634533290148403434237057425642972411394189372878354234519022851287914093354413073629764791233596166178621535948295041138632555821001726567904257762961486573648410407704759261345450141665165411539246464157254762704340493437066791176691834829228284942750377209154209275392574474542855302216082313694934495490512634089589516543198071654726072127080713191448183691933051563820060604429809562289542667212871593261887068681039462446912052966685578263179892063846293118086258967263202237967988110649719809483110774775679196279169876617712263383123617341295938875182874603770718953345874627199509100400245768969055651869680164020361350075626699625677421664897964928721426659624380420913066713038364952265172427750219757210397243733808452520792381005587047233800636482832543083326346968756062687479000016646152515616233750853810167688899095267466036516441097744336958157918515292811296668518285117870896633397531230716529113574344767019207605603873571000989271197559806516232318456808226942039066605478997777112698426871997862645866055712884958711859969384939057573656829007837328538477968322148451092481501090635680445546825663828506597175679915034489352378504735755595962440996204113410746220863124434644215194892901282582109420917283300659508859594887962135632338095388516711669494157788962101120804893364781536194098619012529420212355162952964388874442264325827231535971198199809895344381079623831191650228902466929638440892222673454251774709646918866121906930250121345733885083056709090652176696355538496106263933222770075608686350356794075906120275778225655252326077995612831553066683645821940661036131534886810154715453847525107451097323411519633519206818278665933784134485029640881545912729931961130913399020384561324835467140509814079045081634932422053448768972383058734482765882519866103093710935113360450871862543020917471816856785205333676565918493264105380173533759356298276755762456320538621930163835534657987930433359031370708614265765160244828444129290364829930674957571322544906067628546979364664889860691593884041874096698450283598467392578413067682024530058763395742992072105873225031381760286739825984212004551611929920789220448763982151977621118671771803602284257161229118097609299962757652462902611339138109329185680780828688834752921721958762030424838329799703693833959554051723014233006190900760431985214623287660012119839783945653118674100934782559505246889456823395749617458220226696786129335259063515417546332946595722992875481752019957487356362302965786212140212109651237801244058011112021309226898265631523630312511724514445847819415093390936445167587351492227097233805679453583644428449370259331076209146503745836583311189972754415151159566386062245726160181509726280145141325058577617599689232997616084599898646994078879986717906266522646186467756119642242126025257158389364321667387673585235086292334583584114525791935947744353550203883112798992878375265967929725297029732829147549354488017336805492042054041741521736130036742479256413924446065205084190048003113445678297773980242703688131382948005301686510897098195502982275911600634876121604857911348127449290480018983591015473801481158352918837483408614535092980667843264720806721841616122023260330485459497620485710658731622267045837394031648607047629585561457986947802284019185129346172516776426389679839131479801297010888756149628533922906632779964137483549797674230201362546003607252264527328840306577937585526250136616722358098023676726886843243819685578748565403756367473606303515377215722666082745425062129422352062246274554472120146468253904659006243783862031599765935927187418630468854956954376065712146161851151387730962610241963723858470863282904475310436653518643666916083848319082295731700603942999431576997828053281383959904702579198538187104639091744303610707249669316206000407366730700477837895203462800100980791086637994261660213176177509793132403674131987396997664694541492210010858691514833179037235853575886689590692776560281034908307234368212502238075740495757142984054041650363099441048934392836819083691958728186358034882037789281036305170094169253541818819067427374329234505024476380871287239963074815271902242240307180676737856979630613884802347230924612734252790982667866544365292812421217954405844282271663526249578268433741823845638299096162400557461163529722461075236758741671597814523436829992741437422260240934312419513143912719126940914668444222526152596170409063147738790282221564237631127553452640697802698719804761248849281633596742704244588097739324991808029690814434379474682222054267105792097010367701823901622832967640891880420335268348434413131225330897578199308672630371241301443585082249151317367209396723280626281341028117211342837080797287703113673575611346769283258977648130737927939860235155613528076954593176556645142276530448281200005263937889185350235891043510383375009126829813169916393023864568439278261019730728012931841524998369617491545905289004312859809786211028218062833652715141595976219839480741910579919143810002643829080757109941618004080352007704298218818052890976353800631299030133384547553656326457463537448732741811579994002606106132371403087200001179456135401866196898489872448462971109495495335354882170855886174436868092328150159564881901998384950015268863293168727206134232088555760900937288121610081072725277290058267043107882542923897069055417133897070277383973523709687450206201898383823536873169664164325329099461062043921892178462201210278986141546232879779664630694835769053999052369586073199973638110580833935532663831527825863618616512562260112648408334007248412550333878673948423679785132308108105350844582676048868058667279906925446394222706387806348385735023170585268281870481906345218430193860988786445431415345233528736205546646174067301518557342197504683978072875746217388834547201959792125678909586151534337788985454168979902603903878939508074277570907019823268667511685029714752140737875027420783509675282765313880845018378244991693843907482776370298233253249514891784702601505692438101659730041800447867894469937160174111144142298393405013703986293850011988676906345255585857298231102147458961211357199883258447874172278201955338578533376255521653101160290962547849351948585910499875560903943069656003091316550730603566193121828595142245955414062615634933474069496927656639952973549428717034852532693901985730562383534651371900677290204841121310307051426870768237932654175446066458012088358589297666700759963027615158307142301973270481237456096672207050110449711202055741271635553030720194546796730174352985195816063621686728545088539059122635580081307914519990478733471142434648369792299450982619145620767548122590564348059717438934526627639178299801580253370293818295359453761088068828950769821339013669182341324047944907516177271210475237522833024116523444542804792219778953867553457176428754436531439735733031870433567817520330314431174266710412738396495054142699602304228460008406073991731265863044111243239803171938816436105546445838075552746409847945254093616739910816772833809356308260528874196731494800590646609292157436505421322271752951434240936378957925256709040302149615202852055121360992288721755934435895066579803752401939659410187101288538244599729907168929543278860953911314322899765866635458423068967641607515722974614935109586211936097611338219076608378871363434501872394447157380356447783231484808770104878395523067926170614031841109430855942421843537272039633243114069956211472616010640485355387807911353694760153574264108336746637588802471703936575444844202979635135185099049960632220181560123748367226116790728210016514378829431218004618344783354753290453609542200259379021646269101739970943803992323656021325088078480997720611699339369514755936401431398793895584237539627862259405968484483436386727543173244719560853924693392154765484232923526814476056461248400722822599844312451346308090037131829658898163684216467143713711967012255237979051753046739195979333015829447019388487226276028658281212758327167375191552449983445486411745036869946158332483824821735274561459962238755135965126591928241328240555373556662910818033118116686123761889763829192196071662023386598669663033812323366539566734589562182693408010438845905848526375187335558508279642008353377887255747832283685136848480407753343312730217351024670633717274710648708974997000868549870904218310720544410975960174356504345429904243534871717338657271954200235052610383402766898894561538671954774594901098143115657454434304958280920870605582085256156655892527039511220280750643162260794162961214007913181020161660971414771057270787697863590046662394977111900713144616938930009201466413185082982835640381849726893792660656555983483380567167953169536845191053597330799553536480218510955738600930872925815868674799174085617377981788936497136119071089822593670353798230314477320912289097781506064882342209646740988738345868483993149990118353889458461498058793603513462262849509379682680164168563396678395815516346609181213105733289116390355274700074280377299684062315964016884645594219354615814483206677146354050262039738566607691632257261141418846155717263973213169229322296684334249899744515520413676402537597453918010855007021383790621517543594845094334840609108519621357063486786808934315482364832209968920693130183730394203213584648694709581074130020854418820159211688293543453918888580421811489774535236973926851175314484877615262768446358982708641100750230912668399530923873281446645030928915673992842166796927841396872266340576538630146915577001180908748633830845570827236814288440101879079564506219771882181624258719307727971214702084062926482586880472675363748766764084357118286088563889447494985810865647883998918661481043882004994827350782915992735932568615347842423395534769079544765533791924438324443355052055878028781200298368698501582294114809156546781956409043483973552856057864668942490226512027598443811489679681800695927470857446448127663428430633413718082400163885176535479308198770779185366238284548888674319378567260835962545343349994773185358560825690321505953851477605739068052387609123151635598980509216865957475725142874781144950593878660968770054371419634630633420797449609637329614853390681242874001932652317313836633601183569295183979606096586997705382803096491303059328686119776979665183128478513502307133173169507405101579952438646016179337462631000414274020505448768227814242367484781558666516909925451455200067420220408553903486424882752872198629285466332815875857560773394765024709440389509022412316079724125400827175728753222229145232500050812730014293299816194823677644711368862998052364092206905304060732076942992729618391940516520043237870710487687587547149937992679199788219079345684674956674937418207681256353688250527615683617311825133368904911841153962457656798765281685185210807242853132359519810259147608700632598803073522113329199788274290621475271182540719669815154261722793897870731822623065176535814479724125474446083974087850024411468956887307640475960135507114350565996022127925256785399747480297963187168591206870257850679546264821585276177673041501033186097896374135474622080330769585053763861922243109123118734491279748679070674185321729268374093283085226316116829760837354178708168506338263422966511346888451063598998575449480795250010033335586006845940767701463968041446410701336057338594858619826312042799254096506755227963520185012819238545071523466392932641355885523452134934601316206709306272907696529777010895746208303266633148273910915509687922479448857982582820573218256578191528132495675316770984265427182477611510186682095901123051767465142178190808444763081602083619088091198344952884376328083114350258369559882026565702419828410822088927224084197434740139975835903186345667160898291171083152695055543474133162858629454050291233303706648185500720333866973363798107697425389444107616873239464879226889558663194316926779875584855873828687326954247945639717470345125322200184568447322523260153887119880246141906233399749689061707433113896001634344110728018753011444016883277742497595837940394777883515664675127085716260187700565941349770941554288883009355130382818736683877546312748222330031305232676646684271950703314798562212080097044697265502377976961365047375394993948307745692654210184567626706742130421677216696384422471563689346167627109100152916326428341355381766394965469561955045920222429232282787811358231567292547361020732884205085457055776724459044488175726464864960103170384918409381922026835462847797449686529804536047922867016205274756152943552110080950084519857846440751719330137414077309425847499868489299543684515515291927605225028402570997437851206249119228045926260703324979295379665726215240715988278446553463315826666261926779108102033200932866227357837815590136521918808060138527917624078158275518653627119146582748023308775982638604616145221400168322957433877424083355954945295089868540972454175910702729326488823428335846934835043519820689839991382511015461333447325339269362253163783694488461092989984668521257836579327589390962859394021244761216498880550495869811180338712906425671911700829271320316957027650966281454656027243062596099673499441832886446139030429617925348016095827317810940134544183074042327238305278327408745884058682607612335970454812528659367390722763235355863894770271850895755676210474496815880762736281419070234182798019042753873229979058203254279095241452639734324568284665201322189801488401070076980731847247144749499246009235151781266798729283659094172005480174908280008409941935650604433355539544898073172140059088032099352459821232153010783175635289194029863228894002390832731218305575187709457834448127454237182858118598404404105722120999205546490438551019108306942477514299336357282237767906598409804651576311377168098085344818932946340512862562581091518663136780406553578897799441754429046170765590919617233528128064386231862795365939957542743851530765330401360736692936455243433939914857134820013503344570982623211160697734556027476088303872303050658143763283087368273159417539372000713005636421539135316629150371354396781627627749131997677530836124389179703253932546793831377698914161715835294391935179011508169462727330561504756126999077465806202502304135855231068022307424842691521281658559553741938727159483559932204904477466655758194579048872514480873180770692394474743193104136045905064530630174811141545650694532483601026629621245477614208574005609652746437689949840716052432513650278778911135538194229800554295932178283905320875508976732123708745028312591486908350448500932061288649025132349179992031059027922511683727689990842244978301693555912274930828125654344482349876885373530756170302196433287571007338059495517892866190132377393133060903571074498183487133250545309960413231771998467266919081298093735176285133317806887989757225552663279533302563543820177083272883385053003676721598550255106066802472260953804420168957881186861015620788220210194796404776808108087111725092256360487951048717533894938161711112811030877397849684279061504943135778697201039357680097614421029532741587743486449459607604283487804752699371929467363894281842301458190473217420135425993924523071465444794078374323701449226809458152558928343441394205308328443529536304556315248022873548013172822423247608312202414770961757014903686771052718313671330809638595109206320485095726058359051748397812512113792044824316001678107117346853630804574635931843096996983881962310424061587296759535743949286483308779120701728725750580257872495270636152772744713743912897923218495304562863211026986327602302957821289379539504989758562962556628997405806143228763685962179946546909782276882966952078205710395906872746219043420949429709911113411895266929679437599622587097188146417269803102880047598790844592309194459286640658326122178216887774707166922654843497013146988087005662048776592774612441087169461367949900249081388652890738287414831880643743475791628629972220200691849447056025949929893807319761477818955156694159199596642497543749795383834873135139164528724251025351850639919915730755058931316228751323361780380697176683309182575668570820278948591639435154251331502802203059029910560593018637205118445883378829902725653531268616051457153210589501414527280378871220594944619909771305048401595434401596494074990529726006071781155180986358936937575457419051652626618158366677319309061885278262913626908406850436978181182890616795341099952761156931811693935952251357610830276142326352796455507597104853656617220182680025943904934450333140573043530451437796084149344930269781849921240142524943323003995989794164067153388611976196817
