PREME/G/MU796001
0554460624286858669453876670789247317459224597294248266853336036033716004760649259995333209073559376376101108827477548601956759329499991131019515003511245950616524914053518323680169054086949943417389929312058427878220584566519079157408397408912677887887973500245521823994414004027358584161151479606794977535944936614772053475360423679557005511437573919598735911586680631338428803975865532422165881483635807906793303504196700872684110728877662736170902748282752212039560258267769017023219711946674292349082677857629864005962526349997992748577267915338215187795441993948271820011314192369769445368867093907324465507676805311437557432934416010810380045522603905075184236071273072177355617733392130423187007230508848351378424115202974814638304369551725983362074296663855742754844643627875558927406550858827848795342904809580550025350834680433144463416158719991668009883548644733414916027714158100626092290448903794628069777665834727921218415698671834165366925991404623314483581890468228463084959200088821001893419732051992927773939897756797183406477832868610361804251331701400822789288220965127925164299141812901450969849518100311772919218188072052855402235794876005993887257798585473181986978937134529451076230128572450383882611110620258245178366537279079426418312628806377347794527105503378814971621867476282241698087110441371666296686523466070333831345424238547103148415371356536645613034168363097806896485864623208875965416110351799843864334107973776053501123780092777965816532117670356118709047332779544701908470079013063214269453126695881764807930828928815809650684316954538740496075845841342615929399189711598625581227238463280311175758822710469457024880886067794511984355055547591033177851330697037154017095348794445269365495592451130303466249183213552519718531355507069562341403624148269020572144168557331185236422901245651968813844727072769004435822893607912052790198613923257775091590251299109933284407730368958140971693258369664556915460696357998626547697862085529025424452781356605869639627636185481219538054003377943534156224511673988087651135868864816821725568084289707960525652145651942425591280628985640733812237566169245958686757003915185632499652433107201554666372657640059107085638690468089144955348868490943101995154369966759076223733450071386449903552769711775488742817173610855944772997984504274166623277594893184197368843559709014725898355623536536514072815742224145065247807524021657462236788223279666086202513212101007771730712710869026594556248565335867280015675148100689414718249326877653382482890410367765874043779327234655155773895880744195667844549594693860064698179408659789657152016071991818876378736218306540533368537462292946913579319370307582951423555680703193728504642624707418557666123804330074000916965464850866417983185815314189176806679603747727351426059827195221567047229414239369863287085259752673363465694601947415892587776970545250645193614954559635448160585968342663453261001640785523715289473318484176387965951582755518510212203736535197438367928149213961029554228624920337247853644736701184676988524143246660208590710805901326507018190719232836429646393605921448781460404313042411162933975290978272172006131531076575937912468092134697840042534399899399174726087849543801792568435087663306031334467325053891056324037678022621496774476107274529686363309721518723752863961197887427802789631877004732727737219327381079586505210851903741790864900847701356512092323536277351521629134578867197474957151103586929959670224462774139639419104335984357764409563478911492285959312556789486770875874131374040927671170255402542745837506176612132308450400219111203543850575221063603384780206072752993516912359547289589518821720269528462928247600682141067133411217297292189247941503807496222739107183609302395115904760331540116606227133753349441232107840540069244611699845733884049977964206172642638735751908064137186055773354136955762464617604432583695959500558699533606791367320798104261124202339642408940214591859913895172756450152783494871340968750554273299700692377419046971756560002688216587648277903966609371210277028290434030406082877732263515690040849698977600465142058642648546119952426991042793039248085446231710192786950974998397817488406005605025140196363295216888639558070527051926261944805835039210139890643934479301947524330415672161839960569433710973679768340095703474089653884214130928627160337924299462384642585887897526600142612707059161924909041034665805788907566741872565887833349803258726560240513984621598476499148428550076190364090257423711905675110680819481819618682831372666405186932851657720784132901662049683985520967263785106895505085495565692811175239545242090098757337614308699179348300615189816968924493973777698891707764746021844508241657451332863028452585031107981040522923679813589931713473099972218343957302313734050302589011320034081178341539424075254785839794982492387599601614984191586281791103521184092700965314966394247475698409482059050067586025027202431451073666890474963401831086970016041546970602957113292289515855070790107595731687776714912887671734771985854578126417299145926448404693654792271328892615330232138780033560057314148565702255284508507745447813687533996740298305565956937964661965684847438817968305729462890646456615799149182074082110294203900236565429157645252777293780166992818073021729407549943086457564699206168829966323752217986968275301981332909109922368701626760285346549405867074989201217387980617304444556716942111944713412471188958162110448223571838080928546475821185577739375395061025986502876053106981653606069150687460620546364040349966735334975712659040511690055953153975287929040054290094477682995023351468102325346839267882335268990499487949409076836968421818553941246871083520594955137638856307234465661690421992494523507137352984315149997565093556301710336653533528540657747381252962347108669169074937494986429745622544181045342938048633781740806203297460643075882562074562154407939744577896920620936502069493279881442880375027405928012671921858019094657079338009250947470083953645707059770858145382337011377830899674331612952801749338391984783699554817312157354743587238598659831532498365023719777531374267296490377354463695158108285612324049218554687900622351785987343752440231150217825521770294986551528059386849373231497369546235104355356915303051125635009834865583486559092548379754352396816043705524031165038520244697945239885739289220541859773855915812168282484991233449823573903194527550460564332845502169917872149258068865122023748378179201386675031513088879002062411058998314612648885202374517559060604644801760208443116557697367236051667566615250147082502764738754969381649311837417475412985643297725952218844285238786810177111782132130154537950868050051867781377591307550847417783539501884375202111741993502161827517678460415039162263900154532987184463002162849554678941102979388385904430992210986325916048283987071334010660708417303786391700854803351801524299121025029207924485412463587391945175334293449934406476417800209433987941316105950645343287477739530449965288049762940103117923441503649079232854791696776211006297057647134893258314032689740995018152393521150738475909619548885212104214332821464610691235260697425498583576428375465599342884294250113121488936113093930838900979445128390222990630505406932862666086788816884971567094030724440107700357244541270097390500890554001899886906649594444682739377860126005178265788416869415354090064116820461501150912388003291285808592444613362458062323970792227883822301226086160960321072537229570571758205482368455205845380112120350077530002197651164809597842503437712120584135770922188393221708704335427821435254866951470811355396289024549446174751663311416291281143256035678829716735362696998185167666383022928524377218461296701504946188611660854063086464626194793739352687980098536069785901758788299174003928165213161864008762596102353578914876056547632026507694214014179100989518435000221464532069624007388738540572738291619333955590673144902228480420877518658396587525537974601349280975839502475766461647099010289440398168146815614518192515850290348798981870611604115145700585936455596688173922549478712680990470370682790164979535614868473777403096618506977798768438396009603262400133150196919472310209984478374372796682327428926603474285179364292575658968159136204454525610726139455257066837077256905504711233110466361087159304824959688951094105835972043783526862589287752795034901566945158608160521700428957059403821972611361344539915096009055900799942845241872996421977130552497246294003512609943693795975445388925738922365145878430055395730923463236453235180445295150043157477540882441826309875131232372267883882694604742434608440069843374195076672032541505461123425792449500665868247061218383284883837138539793851703418340624670590529230898517942390182551382864520191123595645924939566575994016949512157532803463672332623672577058880444199873340621244846423477759278703315548228630976524954121248324430324998736393407079169235192982412952537721166937495729941692010793536323218944100940158108685376760105864174402333736154788041117770403481651552742677218605208951672164848413972112147884814503244055378909478509114878060505891807007427172164541719864858484119199811633192356939296671455430354180945450163054404432330128747948288276300324619944361926889200154235493968557730555351706785079865177904767157871078011849801664005542344424946562443985626317917742741675277512320238785428946683616592363497435224258043354569650245197684317857669283137292437217464499207555346424797699909592689660254942620415088360005261857946434887176684268102661808764111190873949201306535540602623211422068352836010273067235856953323990445328144942506145105989222577487706078111036409618784740418350511447905281364650130457416180759509740430275904649657394249712286175732591384164283634127624244100171854056260215555365806093883288761295102921697204745962158697768050431104587523443587250700439948037530082226645216147916541408898887637225016623004097248240827319222795452057196132413438657806631035756616155565894677224142894439796135245440386187239007981961044398082413785536704701450486650444546587238955113569469312099813797342397297378309783844450743348143246619723648099373350661620977701642988458200039890693685106113853339103796631923415962630854754972279813649512410423186454160075770015885660877142495281801909646987733872093531340260022118795342332425544030322796561572795485537051373970396165775697078405970649622764759909493081466512960450619593417913915002469169433790523640270101012312200480376157171098425915964460999265560949855478429224546721411821303841272834166487909338405319208980608467522170272056007519161036688038572494560022991965519041099954138679779626018230973043712456589327692437634305157765528183240745150190304162883930815560350372118343651662474670921727534533201297969409773350874385342033051975565624735090759020518378911373399949992174154642379636046551002462972444978369777380780516408889105363737300276143938770112076641406535633067510046381645193031039249784955110209808863325469372487408505139671224395518753882218954626337916508052762601268892426582832596069654342928627712830091802326753527538131049605434312584498256179657858185764489904136099204045384272408257875814361452120885091521289039430778306199778529301130923601655611997296115932965593024845798231801878048295910254638129601353270805311372189269011923699464037187010014686516799306560987396182542215482418989825319140039006993110054015376844858838752430975502828761997314474129159522520210942460191692193421137708630296083928724685530671856338696023446772724397927490595319413170814702694403033665848921377502824729557022806238612197855360888973112753149976083530042106242309905099588962474745109812060579337263590337188915653214360925906196691257329108987685428266169549081467990952977504047022927224035132425637608181106268305177338895420418195169267950288017044249801628881916248553087038746451090968476914672059297314416180776549306872690074818930760482058290853469413212097569993213332609961113719525436556428832505998791655638572335188516721430093981523534246509286653735404986284679840311774557268290414561909367900483408928420132087107866939365470207486930916679877187249566088557950269443312366570609210239918450326087928936182608703223304316534210194460084721388246146575105886145001269298908030590321741272167266484813088388071561163794570635374705233411965961167842162064489689962782932398286486322103223127533597549161170199483684167131026913664397662085991105578348107950151460995618278258974136401197575267905837643139265119293820953332002684603901452514939516155748795257639395730093080898922664375130841975453280093972716607769449497778974616026225717350395022241810241330542303567072148633076507846157517885973395287621506784095018354010151387646717641025085940326946501590493869938685590620366256602379159145497745779015649286310715215553224152350924918094456831020564443713357849597776169086943821757335988372634019169957191678430515038190058134261952064579734651244117691023829839702795962435663041008821374652090435692510883660330788104161699144173824965617947740004432020847028387352399281252851650170104920574876262195485063396280854541563536161159284381224715625852196678279083946585895722687404230992835205957730819167641600523865158623956408112554286821547965141272421355605717683680609833869941162457918391731568556984048279963675107911589621005836550865753785191022078304105184872338130706495852527214902453131428707799807425631734099641252209587187145895255575602175553472078217648870852528589677741536420310350048307357776529308832314437100963282352029438464923136475286105207221477007972669816155969786797624220700030750040185601518778789717415896628024565014682179876281508321611964235550127436985929453423173906207949493166973171498941655460631578471200835308875292648687444667489694369766522296219413789004690666072326783973205018328118502727388723790182698654173565335259880366735891404038429025473514717717110485169876802273508860517997129045107035378489260912862675456400107603590617722691507569691883314243588941205838022824173283043831092862972343062436278103562111988181484599523158653363194176048980344732477193458439387037237393575724695640160594907189068597847397308033363445789044218030694152536451881568455462387372645048690568239628918236918430704343847085145932356398142632511344381297256818523742988804481092224061110704227631388062573281808516933375382407094243705949467122444797891015997133469734980267337494579446864234935977720863236586070001340350674336768655328868761520635371507652607789208745705400608498571089644860696143295982544159410372042502964057472428037973441227730746341150351780349591354604831608893957506505931835772581994755830676727714320114138306880858115789168723996576712461576387444484672249480984363696164954172718510065253138957196985634159521721142200948322043183974210345863830572725547521380184047895992943466196361459990923794764227870737726207522192092793908879246523485128680321329886944941461275138103461650355162832024741139317075878828941401425728252643626968890362091278973101292947238650569507600069476304722485344092733624290482660721375275046510781337532904896173052789221709217435904434666376134778483075667280526915069786246658312677154539420439296729707064811617398306362275028626442939044182516635046463326131385463425263520578667669792115841471352147503372272887430984968120171258392923279304968479146057851144110962849444963725208062264442097636407226338146861249444649506483614558042010334962200113252106562690900841162477197553022113677659331959003863234044746579034504836419828620280769102954743427803187530740638536410843233105254464477639829671912524203018943283010184246120883464262173182871213606527744906411645839363751423285266904187729184600070379168084360184704469177379663448779044977296131635170303138879728486536774808253590412309876898602385441430298435953576668609861912133565302950030243430173277578726104915162029814013435484414635580063601460255458746288350780876083044958528189980095123968462478767970542765819664299221344154261523509410706688678082209713589212304129578929012919143288205164595726036641500975456691245716457103183574987446566099158094579181751254719246282517255874112225237882363341269251074191968068635550541945893736093354209179945265862102975514296656114221571810774904365756492860512651932376717443088038464147651814988773222745851744500919921928274890625547872581192249656050387141559246921256477734279555023851866007510421564703009407346695690821447316070594240014810713726092854789911158356232516510376817725682583154904284407967707045930655923449200721646383398138312740103005874072374964034940231615578863155371513021412336394633650943663878310497252696185353594620857446761316490962320631378724677196177316570201461001669989900298579705262953600021227498190287732900079450848510731505995250784382199240784782331049822653348780544600409967361971407171451510384853235462964205545387235021487294177312715959118769675394734454441034697425021876755987670378817053272298829256188471766525861454579710045091769724838452043962784386377451133117400904041434870797735071160113109523388606051591368101396751412487807767263377660911423527185122279632787228906149734444466200901246843405364868848213357995803162412207203869870866511969312226869655501435524094615645619326268761287135123004912410835003817944286154813245191494138652513740324150375999204372329008023298486936064022769625285645873194041688598267144996014291537153246456966977889274056435795063099903648043623828627465056539245602081396138257455898442791724518062365359762800984757346386832613382252739702734337646174554594503295373362575302424627548858004663598530480514571426507554813008830408074941278157203871201913935124190821519948525647081730242133642709331689418100972228325440599402944232681299213576956133170659714262437263811887559605050463520351885461835960634656889736582371241526821505837107187148582241326782738517920081203472835087255454273583112257736514558242017791347220543361384801083343251315745560463979317175383132095386594540668123879955388328314731376894933664271575303711484268624716999004605546383648628925127253635088322312235789905604904392526117092624191795681296527453341510167489101966881147262159607907978881832405147559734656313309190027074559998669535649730064715258062299156213249964264713337702006711218147370422572869817478109894589092246583773769386605338130879953361683945386795917762712736636241811355579979627696234288541219204858584502025067961061383253146360416824195303957029871244844998756741725729825054582624359627563530038851314215327763730996829373555500771396623822441256783400452352614939018925301352504000196666604147420106417425305000105260481445109103944713080974019753890104792903474460964047565995392506913764829897858737402363439061681341478443027748036961597045842944103512539806749453306668873955904472107944686930634505425956320039449012517414576447365635003019124898391738649131489042283990904972687626161117330908396640596657059719918818727361781503358425230671543081336825851481363592494185094675425695960127082877517834424301066991472567389887485705629440703921931323645490440025588029459533339189725113138566112769398456127762723939044472038318393634760335128643109811816095626226537950073986324814873374249898679276465328050338945050948818468156637858416255054244256365953108886719275085681674976034885921729703751473173845799871229215887879693648120888907862563829582784433995114993587219561647133611851004962661888808122122794601756527977444153709505890873398811878390650435943683818878089690329796406003631596506060180410805293478390017721741631350464828863580848391729054042851232480116660096618078919166252733744904091714641262324087795401585219856238870964967696355420479021769092236641609144680783065249218927523298063143488413254748554788958733502644012971009886220477644007913492513461649737041301122139881218462460519887603739331855465080058230557135556859846128552924744925537421350164035174191881002015960780249978830059204762772301950382210045552954234281671719561281173062387872957616588039928173431006539993596574261652477697423161011614053277366236134828958426744548733261341638571743543171078353745375347887255023972428843403029251700376923212306160710374372062737220114786051408669789739589605370189151736353027218554158713037667536805598298061897557686664605702942725651680800359185938402307196967874830526391265833564899091364836722711739443785719700469211841077509256958731203353453771466049945700759458254039332706966061738394650393049044242483519748473377588909064967433698201932994663900511308171064301223423136710029348107583109510041554202463616788276973855794388672456802711499768945818587593357943087741383697464465658323731299725783299884938002519851400986465370894857769751447517330270279373404714862629245341893073618637090814618234191044645380719629368820456026312946125008399058455223004784909025651817684978719171005648295979127559379668181503929756387306226653461290184296758579004841966640538137133117813327115863986356138810936950954775563687706182898560718591283939363041471271554294394027358548479107017345085838896642425642882888315107678463562468044959671331762252227457954148782214581496870811175218480858677476870884630507056893457347341416587291872765752121964878475719703732827855532356455305916034163251511760111486122604370205017620905212659921212350624398068087418386743475657939906668447714643875838132372273855465985204360568057415046881766847718950232821369961159539854960209285648076878072674564199965746591458193809002420511013117264772256150612849567008789695325214111182981661780649292867169882590085331114824029265905557004421128434702035765594014463447910451784711587724402524387580143027765796764789251312723367436524429646488126423590409232278477526081628451546886579721831319334871793873649296968064402084992900913665669131039895242557315566248154410089430055644048597648048660074849819118008211875388861897892040593564908530882277628779550848342711384013426065037355589293217558751741675246168436521261576252361557305849164323259130149928668780119263651861298671609696690961241846949539665762405884075526795858175759129961974790247139617262781942808406680133196315437668681038748280894997682038260633332130700722322925307907460560978905210996553517724491414928159501142799032153467823352727292269946999910397596679639772265819296867764202112130774953379016532563257583966919122074519158791674943900017991335216094802578633609335122458699714043369133264459889497214773136938373310752301437262238741218523518274258775280261496896795410348098896110755471378789692709422610012744031447280154371586045968306385247464829785681819311943903063999935469984973505339222187723470384042739082711322593034893648201429058160293020308551331745794598862890713937346790863297812669166745954260385549167821663848418887203169120754823952142545381893397589863328395092604869592670020587020822887965397069818992365423781168139350074412887552317993824277071651794854194761606949322749490537220332519832247851027633356117327148075073981162684964760014379482514572054515430455102210656995007238079313811292100290361239632106623360382169576866757825212302285667162887258933085974970660706671513590901279073960079631116515937818388442200772273569458689952455424505963147467044500589880312244281238879314201246208715835232116475999932920974850097105052490766832744491623449090251221062122797524965710992363167623783470001774284694005289498469324483544098715223323937463416363161469015667737202686470849630212303691368349354704666843255828678347575376568228768532932282917493674688159102245903738549845400636979045545324827717745141738060981206541616418190588698678500806654156583691551271742812794927001254706670895169121761179737420940685633524685251553403004100243958144434922567387063330531046854917270978906211517809655841829377629189880309346739240503745863345733520625428107510820881425916199449514870681581341452335095987184212087485266462529025201378717251630273591213880514211855416585223965352589500865541546117041392581400252556333043513761535392523128033992523279013200264982424569099140285095673364722049615775170280086178273626809625438604547513660009632434011082384529196653109452314510341318649025800177471532760636518476712725385677307915903689295268784202751767314426596392983463176239847121053411454433563923645323162029649649648749886904300278626053825157025196699212640983311115436798527516928862801947364273575972633289307660982060871872931606108965155219824021395397295353447635079925801463058557866036140318320367246889858827145235605950337874058458261978107005025697574640795153674754599675166255369838197200594401526415226170577280696807295525394015320108797258365207389074368580455190152577091474590191036359918762280497121773057766903754327389425071327652813032758921512130725226212197630733052401493309041279057826124885140195852910001675827758314930531481079579669251721163255869333277129969747738100014304558353517978680344646673919942136957973934892886086010299222293476749633705656742982844446225114029730695227768004185822820400083997698238674024424462058788890087218046589105639947629395625194901833593966278157870907371874174765358052130628391745818636910704631495792321147989043031323950831991342480841498662202437884907088577848038680244726415195733061623662636185630331215467377800901271343143579574769125349107178812673138276076790633109070848853662758364603791647558240371535002624073069243191432261166687090069085421018556798504184284023533053048371779106789839816079302440621956512487693981042113360789274875384437327769225262875254674626284802540705276581433168268750019839379645989622109203453099755133781783473495068253916222617921950606802560699910472897012827219173848579193697328197090874199938648538070169658268692117866718781003346023254524454813101601007247453494922637622441868333897609918687146785006650031682137697736855622464092957979275928066661052342787814277241578011420374183945479404497779577222291819494572908554122591005725118444047264486344190997728159083376369326124387231946840422797168041243035788378452900689987975901175673043132031426758574539020455767739696340584077532652297817173365411089899721570171268591106501610376311961015855332023029036158551627001236143956158077896541621269379666705843679565241694853498720825585556824241267396602599604020871373962750022699160022339479627441115031201739530226171168543261544114585820783690791879806251153402295589989757278315206394760682243359041018728259241539569874910093554925547310746328359202578995259717760234054174808124357619017532060827499469916952331468417456582181982962894510799086817077293827036115275269322927101399171544157776360609298523915015272319351671364965197033677055588581778014561190200997836730483665634529904171026050132146368495781396362025948300065634018091081926885013316990966585998012163218325401794999347855557871502604183588719693230579520454498995244057385315158140370884877574755690066170520962800632508240566750388255310283896447721549842090760756620522026676900127424725712416127970214136973547749696447083880245560198817355481491590256041930799864537783120885599817189714308263627466862827857730671768218019096478775764074075504635320330746977349501646301108847905736974761318255313348203290242175522035662768737709715424318009919951054252678869269623314219533121002693970788110454505243729261868866868003740872475395280849704956074617653716291326078182817592492226623004326875002730706475647294149771285950806654829827557365175398457688812878605734383373600105275931749435026104293650622854682622549751257956546262999549460708092578230747457755730622134094649975135457205881854719600732816076203341482292911292321008780363575766877911408087038671389934110091153655439227591419421353176480823362735985284122153628743070716628648633735378818917072969428337434661316154020518887364067699772913373260287177780991326345003404560157042237895683632084093775060434845574117967156334186767832421412340319901151368668931798770128064654966585522786657405071743752325222198846695437541542161996862764891073225275352056250558541801953736109346292242571066657445650616941216828913982379697973589025009565630500007694156263855244354007366569796704250008898156367715227044682793283049856739986069402390674976547399605097751347789149154817115131115352743961458091891007782763767183514885254257813119324962042404356126154458015914395916228399473784860702984945263208820187503844327613815556272400116465104093260144237001350202453382714147921589982908643168870294814519143329674903109525690658584732896418588549531088852944194502147581929454450031514799566918090367843002229498038993648324359951356004206996009521251732717044175310657668312330338256524872141512986545712246530957733184915010512022034079510565286132047790804789588036343975738410210063810612110089981003513090101275300749699086944982580296684919882154311782255027170165895937228059953978688652452580737826546366405077703509205954038172797003721256029148845574026953176128376234626683393903895332323582041897566306942597491644151102571319976829681689409592287453826992037962120491481673364384364248222122853536261933651309357520927513600363243002079877455189709608119539458398724085331061574101869646203336593831861504955332686587110828553663453498112921594614769731781770813495056758365456794062886757194474618959072541796427789119384293314619320981439161366699901735488664796314246053734932892143929019580631102219926668265766902616440333116160772246070531943640800344319151844429559732894373657812632075742344348641099592039425774581576642346826915797085105573693296736588332845977094126310574539158668781694132735730303609228387180669755963976716815828642663504047221952720447718797936855405545267143568551885125359304604562159869453969644671115020247410955108754932455446643692435498244551377643701506390909537126072302319098128399168277101778859326073143733993284797118823251271880528083246956550662788221318294664083039560888157028562050223920366672736760594741198888901536795282130100957742886226073795391056507887987934083992253492987860470927236955235095457293932043486048627389649030786977686143526891411527921677403725547285477614271480286018430638073049768162444836405987087892469600463911917306184222760852910501120517307608474914330368647089244359377594934849825273450818772044446340520930291354154786107365106429302230990326677555771249972111615007366157548911110877344867248148186248181575289901501043659815323366329081066925347943983693632062126309219501430776859834527686501254880020234404895951501581080684477445198497235355038190952837581689719713602210908176289044877142512980974053914103512323787876962851535053363839474816172910166040014303685548090050491390972852218462318798973472853939878577966296064201980164273440306341374337742260750299760085807072677953317532768777808922728528206320914745938092529232717721259329094253304952965663769186811352571420495020655717837994030356467932208028194382526773085741290150777968417212283220972881247978562693922326484830776007513195257205542542228281397675058660016903423706474967717753982408299310942024027306341423079873344925356972771140580349853833833747474884439234639949959433074302782246130409708333502267823315413198221576472155630528375594969163821316526180765647623898176966764889467130442885921365958120872973714660906683819040121062589598528024512603228653061644966240205308883752899558174409532359709329864722603079764577267417789663899799457448226762317483738634212607924015883224475514979174643149229658438396413546507426114411546614995007042235021035163177358702824628936749559087747682451810498941338530078386715207648555507827032398731461806705837210062441750283165088550402434659537172652337176346854326434725138782502518385000554916631459998010906552148018141996234696668896031461147880480030167742722031688531614424069821245738620212500156933645705906821540981843269452409322663132167591247221250927748250261214944229229770013824210152800890308076629999924287923981267029701199344487165711986153408623383071514165971833873184623951761855830915720992760303780610393564909894190143336445713912840836098061443065625606991081171860965773157708240083633940061453456307282898056270937155008299893294780699696950266733176073277621385277695117488552339250547955914986710792506016947740450659659604245743754608149588762221938448296514192314935003402666729537392735843586348001487362958156751967934200496456981126350742091842773876077892261029996946351016239638270815696086770909973513469740193436331200783160900652914295689652547564915179160155827282214442422160197236100796488798411443922159725796932775442388605646668341766774624397961380484196544677569852918672314055531102500664424352378446526149058228843029685611708026921343996165802988005791961523439258833694551082767171655523590963613827781429296504423790825132623333082526002805960500021193336978769842782897185988968626324111078496741051824328494612790435035539328215195789806141876444996185250014361703776101834042516050780072475963801564453532813574020767374559819009094530260255450411933527822141466974668042634202075847601683174894546674248049498948231184893018679842243109722450815157435004257245085845206638610350596348078140000361033170817139035244904357537899846495509223740708714299179018116497374363457926125528058204249075546423502503661015408492103478064300586158649718477153840934956594255743423812638084293136982964131343570542225765894036416629719578126390956827276095484367625127142799616714328866128876124241872535210044343652217529337773417333477838228128611610988336476493100846597376944429430979811721926272806919778019550108478252128751956476113909462131368712002344841554863903305731861431156352874001341904869887947378420348859005247228989450798884556567965585892644849577374784573462662332293245957942720531385113846458587086191218597549815400881047202736199929400703632365061558475228945614156898394942682222400595054367395391264228524717107515374350480672472039238346198702542082901535170605703836512190681294080311961050011527020353201201922614228917499706461633039225683606561130601484814260523301164781109460564472010640765526790581888207709424509020173428843895311491372545161212927600686484119613437144048797728094282976187207558186217510092710938400968884219601034170400583986563836825263160647888906041183145636405247113146170059794047179037103602096190188119650176473408159281482325851637154397932675623682967147011213974075753835977869637386757380752800148148441735553012965047733906966519597601189005248017565233392271379808155491695434799402193769745278911702614492232343945511685979489373188655912530405878840004873555987534454446757329123647175655283934365641657887681299034885483624335546707578021760150672212503030756020778458655185144811042367608994700813157140824294716224469467881862635337968777135035382899512099742379567448225063356596663087599594986540672687670622226416969563531101882442539515309895370890036351108275852842376560668435453858423962848899149616495548984411132134066776022874086782068961885600732088078299807469140285025361348504207913819605909792581275654493519718591780754978089768791241319803797442129105032062382414937596785676766951291764429114167994514274886683486575573344619679754007621588710937023684800720038602481553603996394615486655449019701794295618287711382104864371267497860168454497917648807007662870247322544729262740243266846571859022994469901901427690649268250530153208301959694013228103182606864848401901019534685277713220713320797199768771515213795371350079937436668893432409549650368541246347000240714709198503748801038975919379705198635524200552565572259902570576389864836427964477974382848622871008619202312620610987692784083544495918725682435866048009149163847872453526355148861418379659089582137585383384358505843796471311936344926316756679921955256065534299055909861686813806980914247475084556382142259990777862761903109428118592133110750003197473401422159666297689800316324663209833291756588157096919236793603868316626693277626359022961245638298577682025926435082548223208126142195225761395566878992224005309532436374736160257498074812923384051342031884909720583742619320819572357438918115491641441631124492199348543050055843806465997718535465741024938925221621699532398564096453876596494478530685284415158608529830262085654626759992851791224123047727861795616040256183978261747352307138363609461227366875548833262811960245718941140354130352965322308714575877125951626895436893763543613442196807305115273050699007775566233673313627747358171631355242639213639787874083419231183639315755715618774793387735894391802042316453052571419230681440247762410330427875725585442674923421533437119797147512846041231091823002846401522791329504213284588920513821305813517202407268273943604176584747398118028074119103863849166855490409615424282052681299278844651818051337240977420714414468684793482736963725444512127036174157934253855844413367895160565159193327343118045725242907119696030716270338163689092695778241411636279589866385830034344332589072602444959059792032970331513976537305785091328711713088592071607387286598340974439426744643545071128084854462173605646956214343603935570535764997053019834817593100044123672297483291384346274969984760292808606132150254662291406569048541386944524896589268934181861646819227549333102261975853129246483346877274540914042203953883399329343862282219334586326458437637176018500180706151536038569933556898853956536561028451955546595725779288300645337434444294630816849527507868085050434860293152449383518029825325703038762882359802136202574777895733612006062099682009935790225846312717456361946276527877657605863803077121378354412450648140940655740991946529362798280460647561120642984741165261821486827252611175007822308494448620131736936689844078334877926620843629923701512680773575564121498703908049100022376559913051759220594825755342662096062904678141447203371066540371267140461431857256513893105934458984418721952914914108436932756260670492717769599282723998220776895758062217169550263126714567601908878360835239306638148103008208815728486643342018037007860364376030654203461744241359712651147138738277067003004587702795010908164679644904951587132615981516741320402277569391750993581958721323569500300625712395451022144906612338511366088302240144608252478303844012902803370920830191032384240577321073937555078350007708949285187533926859104296123128500375713826553170224341415340680378263452560587372839327567202736270106887570494298711676844815423603597313987104346792135274780374483435406126313569996870592226378953400573827634716949333491997537655743735081819351208894700881951092623401635883259879161481996345354999699205070830938491578924311729526552840717398624361618613568580563801769085801345436211881940135552670113703507228328352765062327137638113898602872596819043998805821962729308759255423636465113321412129065210218762427956249803406984997583847857406430557693371874566861702833881816918263072274564879168533052631687856757258352595787546722690978253566058010880351202919134824720167766209360309413556769605072352073483365768413624719522166932598982627799513422677574091798935808915228380592215853900722997798619140038984864070744076647830497622281256317680124030267522065513259791372968885761055879506817754328579801342001365879194225938023632892754415647104859523957527691107821412390559195600567612411855180453734419837782318429079678047796579979911253701898169941007798740522706768705830652199419704872245072338954503495015796623266779266513311047271356317654843837957108295029778761721173314129454117232128109149689838495959062656510534508578069848215319246298771229848046980296987784692726390569457197515480154048461895997017379771370201373357811896889890461385175286604138172636020186969763148046632739471592641483843671180942560352860835079921856855690482679115716512433524155978028878468217811704729876778298872431313615923077922201617491905098988826587462656852248811692384680831556833761633663907330878145149080795173126692699494349116736916721345672513702833898530155700554165657282834128934119631128261204294376142956443674996846750226362895866884737497771309203709608377411094847945834828061112643653149834560618275976866871076549417813172636355302703278890676827416640145352096532579893403545020447374864823386994806731831522905865993773580668560973172435536228959640584620588302617696113175776543177264213859880654275749842322572770877763400614312395036844861781176838550931377538032913064012608865159296040886019823621378787076273245997185937577788666929792082704378575494988711845910150280023550899682160364790544881529439633607538560034524924569812377380958578635739280372651164000025711236112929537207936926193012347589573190512600722955072780308860519627888021683840974964082459457699886842368127950646031420854507073566038260804989278447349752890762833297321530866971455431346066068527555906997587863326085063121591007965678030771973628121770924991608922849045073834346336226702068684340481140725514101017298394685408022011276979149299102482509383041981506985722655046570852925037558649319987821982292533282782034450386231080043645538453213436743964505520636461819818279599612588579094310395836015918947294141102876078451163665532685962784815534924469641224271524661939220160259654822510387661020035964752674529609241114696249652432288963377848707997462254147366636301213768004873427209733431566267967623991847663930637608764719800791426338240590908763856632999021877319923392734651536267089330742470093801091408216285678319989454969766872490551632176454200626751154561647779090294893073052152338673997905317971243153146163279011567562250453793266957311960778992791205406458418557090894280298386553435076613945839676303782171876229394970661937366841769797734243045698718741682272503994630692054524574581057754897676623279045391894146575836637529455000506518118872215185976915084739581505545172238762242675515404731452491960307577689385401008138843554034557057050619887346461729300387613022342631237043535540663940321199866268379769907776825023346998056557340755266235500127877729297817031236671628754373414405275115164487160354276411763640964478780219736414287656693365454094244222920859603015091015132898670643105704068417595516227084086835162912336602771357527333607368359295409078557680851392249395426091903322265262548722990326137604291819216639394404867685246165329457516574174277804822850528620490893311665512867263958080676398613351843213724764185335425875735808654636704857767846547500422703596172049466707407007970413910075149031430238163595344775859895424920700064293851672596587343083316200303351586239935167382669666667100419970033818336369753536687292132026690142222428533980496745922981914708198669048390602271442802302122324899296896735484328193612788948910531572271693678963084638706857445124791382092853346866174777528908416563247728931049957612637731345230286938205886978673759389585715325610387260204127740217715931362312412539142183339731308150642736301555553495768854176321598525063562829493698155301357617465488748818873418891856597565189434623811107419881872090485195518867658463560351590916759737257614485972849891280930123511365253275293441122787896661301562020942016344876763696276544796573414340119805293594337632144654658200324616119752691141647993421368476614251020673273800563919224282211499375736654072271501562322065519973207622912654327744915492936274520710443341299871907140951787097800922133099932204084859586104461799153722432645560592111781663359270160638903051787170882022607128466350942516855489614044372291888005046946646326229072843336199204567774190191050696807307605067289459948061819936780800688723093590568023510535226466044311319116158949422680270053610461316440418040876774825781179373232566987184950555439240148784627095965574681580483932539192934226672027008773930866832719415690850979499314825453151602068256763670294382156175550635180902890785434219990900398780528392494410936056365317248476586219824029044106061951869982544366854721353164542678882541693298878446519667028029211012201313720763350751267642045071372820186168215449563036010136178736604095516766601731227113823242771106895104332936630499673239007917968024480072896056433399844337799720641828432352646130564534511927134099403929915724891368535524436791343560078218134416802749606752417354441415521520953966025953215530862372703870242434080502794642906983862177591241972604335137280243871965168478052299050041219740985998543067393754765077242985101734379602330112166233884482372289126826166612117793970504244505048346195291230149536633126050011775583278065872274170792875014221705658077556656370479657774814865787816660012583820456948850784314261157641516336516704245012414962861985546684643372026834917122448367484943002572018618255260560420491297484580019732609282270829754347255718423413937268855046602120333977070626169844397035129267933555236208388106105506312653299320384210284128165603838435433232343033810409917626464316136039446231822730722338342775249331556453612888501473507729923193527367223521216189706536556799571717480768590311482731075960053671851096194276607602079941218239611664557524845463404693384006360986130710215306859131087697887816733598651695730327839353255524006096424394143034747357372907124623686095811415510244929327315050327218087394452906441476761998003069475633029422617676676230195900383374760353608064728959684673545133249748083985599598365934130158867550734644339977692297797194724133597885518202326797467420392820277723399408476378644996975564936741661769812414775134186470065369081782352365258283687543228643613046668120837649820658187221058394038077962381615123607557216506376017485004785749663840234332608830974780023501333997089169208820249810829532745434216696701274378616757802074693163096250055882089348289776370849359883424399623857319039180109409843437371048102533074762288187141602964966590714893613005622769282592146333535989439984219297637516180319847064245106676320281279559271573566066244377516601503978234870133368418266298340448269829175076385996957654500487156365355125441385466363640895242534447018127696451285971915519643405216594145119509129562040491244641657197942531015656990543924815069822322680281849228998945705192675445021842119933120443398851690287136980928164828144069799567855386774480344362597099430975692029756632197266232410506752453012786886621005343520380340117565023643317331523142048306452212928636363242300628716181788238492069049150497557497925502303452891269789613912223684183509750472653045389907505025808186642732723178527332839437904710377425739849129702728496096838711527430817964652371670604947624472524071820036345146398488604956154992780209847063790495982069255214940419239575382265745507031452959117694912825053779002972348728695334297404261633671933529130435510117818263371175686232467079166056037674104006704559876100834391850962657481375308342096153887012553796721892602721201573407973428989690815647182886601193840358980177753234155447697894150912543938761747415677731080839471578026838445721852313402004944519643640252281755186482676254502711742660240551324418822877496823892925611381490732882018530884330181682634221326971789335467021863686253561703425371927929595354936149896547449823709795004029506459452431555359248493733943874233242300621760781828316250482006838694425429184565182890487949432268162597501635235334513002129970484958468624196524081150808972923755321790774125179797587787858618089343520987467660032388148805733624379294089973499132768315510563991715294462982294941758902353307912463951814363870472426963087136867171090882391454229743661746122358499033699425870259720580559113670221078101645068046503216919040991329901406068208990556352508048635431573524069861951372683129529937142692335541297648588154087566056012486348043163961001145736945401984635004437616229162974540037156784020847081121368011492235286811566598237917723849999717898435819701136787862963523144904176655723547415972457818235185357026185828866045843001384318923548421054778658381333467314844121060207061410282037649416616650471182573862866448668644776978955119487398008010602584285334336674719072301852228657913455110583589441115081420168134826644019496525387186506461522632334018834094795750776934232266022792194440282239193329971253383513581625194634693055943205546634753388719906367099754185333555891693140091500460756191310017143613241911552043951327156679401198710466124377755383345544580062215981308626041721466796581140907649334733395068676148625100896750840181592672768522348277683183068665225844742945228950383898333362380538428017196106373069362097580282243536216896869907794583656866689847135478832938324817106670099196297776047026761366259655705137873166556345332100902234935770183819019750926398850715974084736903296250655821964664624485544494205497334206123607451926263829575702676849904185555804656285083442153006455038063313130332538085599199549261436173204853306422135944608758996972717025708667498221739321270862334988829985320389103293374834959386088914658326234416778490278597329849690908049520983553312827669283390305298887312184972655888730241281915697411420876178962352374327338274091808092340613221590556652220864708873855102968668483955782001968645408275682910287987658704597284299444049206412682917683284619687998428811216540351443281068764652707989737947188502571047603865571933724946004918113562883506421248438086324788986940898580159670023128457325739299365218099860775777926071055224730420046591376363058674741775649341085664919043328222678810696836509880984327422955191788086571692293557121004460746838338720397199078521684129955495952489218657668579929069489081863210645486087856666339654804787268148755769269542160383776867677158391140896457577071400913971931498269462295280174956133524203735895320031575719775613069252475521862548618641698335540737428267000496448934031441461192820529840850729419610902076519569582072505795422568358031851663159208072521076005484087502053362977540044463622595903809598378208508461186958938578865217072615727901979190004432570603795258633946914950563526742578954545175672188268220569515931626135194244895220663281223689544321833986895790327918931744006859752357698637070503057034836563147578248834175629274087705561161491174151605113907387292452280303533069712404591372366682601680417491181881206604548439705775036591162933445608766047180406791432939093261983714029908373402376923553269259832061311114913061929861295233017209151794719677111990895767704520616216316067829734548482034608064701473413998245784667274670107765809559430715763716587647475931747445629071426937448139753751986381235103205385809462917272673964470005723238739439400116759644602070994023972169031299386056108974685744346060669971580564456311918109563751764309131230291180456333352096040133332636042269269075916927182838992774821062557557455567646843660938514436828523425284875335907106080192494215743885219029041073458132520196651814218332344939521238570863335446706074139524730136365346637142126721306681560717617047251087461475499830072034042519971261121050629904558642362999629323209117391552479189441706645394634177305495579014874444270521305073323321695285140660346987308747752297742339800576768897917496536644003135207160233260366122997863920502878202018044515710582319862086950355172060502957182442569016199553094967593538684458966065908825804731512214962699341459177337860257621291231408849299191949993918749092117482757501849071684922786950585527451994367220296092697892341594281080242046302021289430749693486413414193731952234360403810312783583713830557632642505360208949653565337180024835570692146871588608646390697828987193221728292304374570264132353014010446017171105247468702945651193087867273833584937537975934674200619498687329615543857261120594267321295576332379624581948508879125466354274165910525767198482153988343737451683817501736557889167039170627410501403272269757568561804811186720664401909694971350788355667074396476369998592797888950749359201691191662042320218288609655839646774545110043561160500668725963388032421299303095453366475200407210039231074705124124569764247271330144059380568126080264499034205422638876662292687793273025352044959912404166487063359925445694540616584459112591807376699171227630376780722616508709459640808437145119964286918862783833883220734567403540438398275360887752769544184012450868368654872639311042893835752515698391538524104092252660608917228659471938929069846122765506470138189578623550340060763181526295350114831066261356191706075467268406319409986033607006915833561352282364388118575519116371341159393633164539155475185056846328622669085905429651503469662628287100004031736061024869110928640475145990753325186748904565678753330557868797297664541250316439726704056283841298993505804939325018468450553971571602889543660296495530473336156898532905988088858976269707777439665231054831930151668496761196026595216081704449042656782895700360299146147488508001512957813109375951204484981909005088984527901695422083531343356052218976901551476107174953279017683381787058540005786178907871082187746273045597871643708470100876942156939275882730790713266140743637928184419264962402247076002072295656719759565067254216415643785368609990918698299445805037677686747917580057712502051266435411042886858611430736806375596179552022335101145292098135629967804753781393615379607435512895100247203014416401528196145718555764436854315198371563869774408425839084753782255174876538607244968960860000643005444909647976921123940928341785046316967802152672383321133932993745379832280762903721614631608086577415890830135137463180537660829261393367187420483755219208531323761322960602172662355114966071074327814610431480914531610091951826473314703425630239330811867254059292413364180337776768255137587005050087898780711174763494100502333828419234142619065962824901095986400550273694695193239253362253328195807520439954663000807613890501619664661079600268131868365358818538266977373322432271546098139451710415260331645771927142045957262103904638303362053567288197845959642650045924396014786553796916148283699080905683551247762342982497891816427850279840635681580684985762662008171189181424801883667512737470152544526554579321378107640221535352615535386169909170633214180603531383748090333790227483081318103238228670442774398133305483168067568120659218234379159683898118283955928152332529307205112363529992737462155977058133185781628957194755517757618398360280977558165108984840034974463931809419892865416207551248818451387496371785704193117799487828974582323593172672029573954946995807482699569297827792284751117130478609130834154007351339307095404596729600765789906865750070489309158038153187118428343704729641982763250138266374346164681289282514628802803103863177987660264280136854319073088609392360117497841871039004032497183092294948000154277514850793773024673320891254104956156878465142874660818391942670899636671815053081076072420214246138269616882384005948900711726317773942989484280176577209432213143049008860376259060618942223270180501758301259747877071612982520179466307308956526982087914266085658935253577151739269373581321309081470535966573321691904679674558627669004613535209681561700439078314436244854935446416082569141739116993123313688422536085582494967119159191522926049670444790733107311235619417788617931971371090954344265517704648629029124125350812877925301874935227264947359474321955997654155508039777832051206368508933268425000092661835536411691078481669537501771247362372314878679112755883878375510030364009105537619194440023871668764395253555359992871272727867082052181416357705976195582158283255660098042857425413543976619167702815563785050465965192118363409523843626497221230834940171055313026106859246963899727565010239451490024548069215939371292418383065508315391654513197384851729717385526107960160686652602540746942391410281205023083508367614875811690489555394921773167051968035600176174355127795744919814189314102308207102735230225936213792503515040181718901544394909425519058009108369442599816888134833924453842147126989967691957668678949482219286018206159872604548135995131501498646639086233832464534391278336865528962388024453157667174588476064776444709698228573776774650149917604878641634621216614415084585397703516710057102829757801343370805635719519123369146127968791780839066503160224963898993283702301458391617043721287844578579048002584921795905676085061253368423999204724183524403837387305585727440885580933917065085920962721647617118848905345191330734695116797878661027443910509585721750205203425781017963076248587444429559197946137270442457654578506313352418318649589705028098203248974919856741699705655604715703219282585630191188917510866764366847500075720031242829127846720553395242066598334782355995739945081414081984198818689942864409348609682840320595301851296222810481043152951440476841645620085142432926793280431154393120369124627423790466083663412877104699963569517508402557075665199484786093338676064208549818692578024416205396563370895321068096673170762612654111510253881713157685610909471685389517277346931952189711610536803627559077465721848331081907568981133706928647234670143836706126661440257704643787208254712157490817552731150358484227409425639406258269802773233209635090404278731793785169521293106141852888943623995226896499586602907832935450088795988924560923660841613228006008745898708725396185135552271974136742527873936155267348056623395253936262573831868965747533229308093234273080875911610159798535939953338913083477911948347846559937215200803736226561755492224800986725095086966554220167520233903871114892759496118282869467941836345038680819016749156787203514576469985956968746614047148595819523223023744170882570628203903614243737118245021460528088284100576532146151987773014771908650058691742843337269864142695012362733013390163737008659484082539665620363362256947053758776022477562400586158135235102966521402515224121346958831490835499766140802242761066136061182005274503942932840797670068063074203035584039945456327797396816951725840332603821550925933046532606128412385077038490180018744190549113942538374384216480546263346109659972561620802014987397204198867680359196866835674316121073565921701645765630926792230831377227167040213885937544934389612733732681434228222764150203752221785102091562644817081699697503988146428854877581196613800774931273645482119354693803731249206589023852481269287852127886752063455705203812580680138673055313873175471622857962971474875764203645630967251233308868725910207758689613296015496518180990674977602185371549754417324866978714795163669533943613030621200337051717276845625181317591549217914367846323358564032943446370634344542644743281522175478585584997076201471481997225906848026818932577947802863623826947639572027310819258614229389391342149120115315582889420467377803393843726715067292628137593363447358359219930718637374825404901801880598057612904396219624734204620036260453198401565012397482037083718733991805741503925044501321994980987080404028457642200850447344108336274603741901455475862325234860895495357841346524311244553750737177978666660777392517836042439754362148290041216578993912647037374401134452028647622654774492012998846935615201476917238519631527265589120514436432672513746301643240167769898181918551957619092268672456922102518993911566063547500728786740718561093370546995389337120600787620016751547541157459876363159929643101969849738195872644418339903956747904444420322634631170365227984809997535927343156420520655448705533201946482416444514656833544668626586978759043645742945222843640976752208963912687668903986377583719387595713548336711962692651662145401542009252510747723062182226597142586780752695155958395031589585109418299740367540251101626506986822914459816136808938756361643881055721060428996528133460191616372802802622569482398421061937795013342253847597049074031506021638420982019867374536278191655206093055214420044725519079948511783294850395417412173070795368195464004057997252246567489662512623698262910467232810093677198733845566399224041523780542626910942095863873294526316093622758576316451793576871653776488461103901036296422183442155448883294022993246263134453961395302119736545209331614745893229263033975479573546967728979985571398405556226218902554201715721884892383740476769363049852963045404358396772137971377410750178346914908646994250589560730377149976681822260102879725323662738623332172377621087412232322610803581414073196856085859955566174005121015209397521398695828205652353268060387766538729653671448937543791760450263936920276946481315620424223352701609488134317551436710923771454020236201158253514140820402608825347067134625916830822267494722671037239713537442296681129206731895762927652404904565512891225885679685989114062097624230323835255873182012812247554028418951655565595635493063658793186260686735653916655311590911723730868770655406503209437230257889074991797676215760003430524861858950662834801514109569335088838709508454579724570595351960621876682983881474490919134044782094702908925443242896549324172073942967444660115091172902790029295842214001019878503536481739354644658063238623590381959403350612681779819763194801706037135815435062837408271483396612177289198860953648955687842918759689276026070610519201082928839764731107111247850799157280982789393930081332334193742479693220868109227520515496278546008405090086375965928170578914718508495114691188206706155663055757255460009551196025807396782528326456062812731536377092298944220249020226198308687841650292968569767001991583034360213639496520614638501198096426980746738220447817367020995284693301683157228498376920920100408881534151675050236841796027660567712503106257334261600403393183624562114544040687392998814703704613147550505119331465832674626313950553458019110107991313834626594911305375210052962106763974442616389815454290358340260746078018656304811316206849159751546474379203615501441713753125427795581219961728545512364422375931402470221507646076321891798293378279942790626475139081481001815372179225867249417292852449805577731521202497522708185618382342307821766999167877994066030805041369546201953557110588453775481669485462333440914712844385960034721860619952554451901288465290957794361959118225606973762404409507945751007484433795370805892042635735499401546199667510220426848012110698825120570219356858386388806210421751672654375057583355399101979554688626040846110830245601003120961758756941914145281105404239775457985910296379757755045267477858579838892285040802971361269698115028750529733929624575894659659305825423811199258303270205697514963102912284982033388740608247969531633964987251952607350123671256195233705627893605481013743621533945005477244057400340060556480939650660246740166756315881116538735643322606849899453586068237347783741224222508948402766269824480069650398505420394219103950825580372411486558695362870517205549354869064708074519988235932483561129796282750151823640237810841182013360037320276892553317588925102570971516686357709672161087096236837162929504949495976945881056419412920952612664584121140285611075133214405480270768526061311634705572947615638187367737020830345835524797728657443978536426295897116175643030549014001327844220681504955364038840358104144858570808385950022598152784408260841712641627671340807676505239894410780443364528006176093660854863388753603906709622646642953024949441044643116244200764347269652825746492450176273028524259537960647732889036305482632571920380247800279365254783857171475591041597095831870830741254733309279333854646736421097349654348042113236434633527061726405551335496609890462712951118126789565397578149976904715427990848360906328814343150796378067409803879235450994600251126928896808483075268726691171534740268953135277102587717774634125707853911139787857854835857012007307597284306693388926467135033654826877004386174720820562941965317543624716604518329106498751724362155622348719136221069621662790054067180220821528923751466898368292405683109470264303202451611826984110324541573423243178772823090110444110453596559223830203530525106647686797636506219961520694739883459030224911627329311689315676572985405654884057728616697854644096660038535877280090117047990765877113911772206915912651076337959430792900435598308296541019362591824602706652917875234801892169455754289675599307158337662687802137857930856491645479092475208145442497000486495850768820835202985417383595107633632754002688955364312531172833428868343810888949813402263194024469256310529324496694071069532802506888587837094531223147883572866264803151294184090009411548389494350937583958862556468087103978641921107541494701289865050377224279583193143503299950903227546819181408279922847475201452987260044593512523271451831269134211297197967523382584368231087081915692529788962293260902442998984284836839951712473342762338348718585027710592058751922561815286890355851486600916488722349767284567687065980257195085764473959930944785474267213609842466247309661456916036842781854903315521430613193375734089282204283538085010715722997685932839852788711162431522276305328501959441120179442423634183559099435046748736650028186274439950104819297189407073271389276609228675287955996120581453920964427972177891499272910607977286836299020991220822923982664193437546300272518930455787919058727200392949676557347718082893290247494017621201296921258449531960412522026109782476151762875530850000028975450279413075910670086535184235714504871947454290661790451595352004497214448865558689999747234442773190454282525709889131208981659837799240830060807035233652328810670156899692167304806358742684104122117473569185611144082504311944227506388409025299266345305909423306695178343237740336498387250065446139678604161350583705554088464933445562753431362735786880564077138907768212938337593395606321150158287105497875033559137976345688160901133760255661727411420223267704564248034240077268752737268355933581347407935128961281336351062151445043550167238582543123998320019471249929768706124274432767933979005275121583225585056720411769639791127508054032894395544037091906387636906614518535051152021383294718727546579278145229697726058252659087303526041919850171426293726417208025308672750390483031835566026468961472269769419935784258736240760739391945047636864975892043857663079896393722150431885574895623907350042524425950039284869719456301690764453759523175952702050078872033041765596032256500136449835061592159514704484802911964323451702616317926165625436298445157924389000473566564388006682042501536375359068759339623382986609018865967691757067688640851146761573506661760025354566274216454725884373359689201599702663313349106299501129159734135162832510733737563117416933592535872557341270229774188584800515053874438635988189044213897019970447010195040417858134348672393321311243791699522588438778573000123874315961692545206181974019619642232585300542315920103775263612528684027913208397649774874628883299555707587084081037492044957897072249464551214836567775663363037833729630200210221466495382613729700435671719028242611034459685329768306554305330434177940885044225358976174793395964456593034914628268612951176762840581719585814196201877193038429387907726871552572666241593467193467731814928460390335029318966766462803611872413507991396285167468187201454036987173178461139790126756427387875820706759252052172467596466763681655846480215082849499315251376457677545765531622146427234599193442821719677036039667893050135566336883047541399166166406414212440561543832177295300643594884196116267958345999114047647100599848045356282274187529306655481786172771227761465534538252034659048127771107780270765488237448136226076360094646787165711814930222709136294438728552190656171677040966143304910655560995105613967251743390231834436166928031438854761339249812900770131204918468315295979730050893792822900604582674387165546291335220219488834319517437121198285952683403082386723173920725999507196146413684885632376294775349565740325572186256710859930764995494589483974239115124525969311171305729290145837807679931723027918533661183606663254283207924210146490067597428357804966433937542167767694596315086109090840981151938199780886170517012239852454955004572070871572137296816955370095322220955317390161006397749853436271000722735841110961767103996573056270370678962332034338475827474893316275015449070485759589830332077824891257792458096571975928450209463581328675883699781975175436321394472431745212337587302799581412639459764657606831217236256836971358042537137037292778197500419501893128875811569399379731099714033515842866664146153676723244282948356540232772444503889350027350486053007599249454606037121643573485151081696005647987972133922999937017558687897488345169925379036381259016245243785932035357422305814107121351345856154116573825760474778528492491488689907095906839307318554702556402600972487637170816101216304562052446349093473398401930394978105503656871789540630441455276920085038941127723296637611089170732249969384913473916986771117042717677054902402234253819540002965709403128076356631286795851095390442000483659546664328327148300969950334640466366694872926356819597719926308291466371175030208025389322285202548434310923222048071456603113412322760360167546173655253533329449993204839030071179859220768802498952020207181930555386297024791470148347192030926589396915042878206031530238200625197801078789914289979419587135880666060976871080472577275221465091135837723243088292173544763878201807336938559355803015576669084094075053779888008861616136604107096705041008455953126881387807842292091344856297438051372255759994137894278922101917430797845946593033703059623835966728944756183775441455217063599307385579978225090998232563476393446706876289450446766640623727116810930608458763737031167284760332902438146786173833114801806887310854732501845766783734512770349905757141054307664306414753040656773591179342119595322119679316230892498491849412157905295189698219613660937408646824868336581544068391136382381634116013802657696580354000046175069798405894485445964946781315886027141410545192329817177801242097117169000487599016822895364794652366650580247275046038689453189117898746712549834520444942506604802759105085492508400097100645228316321267832925468767628553651035384078233881645337286244715510959611608167755241720820777347962406362680734329751492552107131117431249531458806599367357005000458984257556973932897141883100782671125131887900603264498647601967710935026719089632510516608862685419037225339582660638576370392487545412493755476081589231490522449396863247908360180212968825042434114088641624514363561409282093745569556469954066342020362138824716427881322510319195958767324873716604130887457750456768955262011468946540491949563168563839914512832209994100358006598882851202880875142404413519515255882050887844821380627739317902170643917307530993757511369420836428142175239235576371452617727274263151229536237204702762623978227798168427905284285582201112364733819311321447440336762752969813527329869960216339115092450942223088086567547726915403695980238418044826478905922535658341691992968746876731322361862857696727801521434644902387718911206787100513702464704954436448512903187506491959661355969205927419803841727769097655372044575105253753406712870347097537558922106265150858699289266777701924934133257446224228630957667294223559750394194604318300997104672477156636010316805329990333238395770538938446525975067536352536265205593065428323338549787403067395399234191988238837601468060143613556607311977875072933851013035415838387480958834361963693322942525601898742240598308402747731404753287085295821060319058677670124104186388707809638296452674144091288706836484307075217508713421704745430368330943213492882019919151402869239086638041732520580123177440792493294656284642706734895339090971058904423274381906359096967298657564679143489557113795678739785602251882170399851098033486293329313321148458813959564823954036551447052294897843262990435109034543650873298298863507309595901501997389850367968265503965827341732865859302403804190055011541819145924430805182523541749912618917755116101111466423285365164753071450991650657509947460387615226754408848974851273854948157175873720958246112690898168079226798926782493051288743703666617705709139137536061643053491316399211663560438787901527505338203992479990117446420686274867425539554678238787011036917969991503846745102432357315191147874086587299790406663531602389222193389493459437996056780968647774241565914313641442164034428888720255817202776241190409375240750254702458446366497766840551882430719112112385148108985728380132492142220331684736947884412113754325362097653365637104732587264546833852466633977010590306413815233326159471839069984401934176972842340420764677779462043840818143252734143755700642266989372115259291182018250345670330149891293694868862776773852714426449120388908145488489536633867166775728354515689639425612668711307150184898331191049209403133082639917707784702350544739914453980703115913352703229264090955561108330333714031040054554799230199361650214108986172930931238098003935866656733130536261684314527912746068252127104555975072564074451036036684807584164212420418114817700557830804880359623288974602489125038798437351151825646930196508487898365139886637668749153023448623486422068640243433941948415386092286978224198646390537513096114628573527900277121512894726922395498939340525594260714967360982392481139095475393212686365018678510994760015904045834788105567208977889493151635884485285150502979180183956250842346858977475131295536897884167316619711302095385784047105943096212079395817875662409186038318478174603015868807659682085204450788287620323779781538958824035203933711687493244927195274179383904206670735580196811283497414827330066062070298259315846475753936459883346301892725214667631447057790854167782158341129134678629669892819027572936698771730650835076695383709494868201796141277789871722482731299604551050452513253423637925208679675488345735960662885911077826411204076166038504338933311566005040998316075714944690438456030969982891406805457526636233482620860752650932195047044791733222667839386120824516996835993193678259764335084566399067298241347830863253558507951352991843134892418133195261465247945316434467489615004804290318454754969599509718773225666371653433737997384626820282171685912404742845572562207787705591740795741742674771734247729811464655427862926658891179260674272513778519630083074318002888254631858562353072674235401792003848556098845430230059636459885343771757140553592008552009866909897130695825217787069730998572827876581612395745307000742206252858323673271136617217018183542849801478063956271665884747636748773829844952938725567497389488791245242296734289870085987533302078621259549918348485526967053378717998935314760565936600171918248793354877555683273089913345155554232087291751865346892253921212563991952985991796566947813940478574613112269944556129925717583631132692531236587265814079587310543888706207834695198746629060403746069973540217030478490112023087312495724638408638303769881872951962596097306917783789680636471184549446807954361533533741813104370381684638344654291881286000387379127430230256918243775176309462720236750582547693232272137916997174960027706244053602914212061839608720119718712503091783563770855237108217064036245533814506795975439048282636450760452137392939483279078838668610111877722471507761858105815844776454303067599381192388354167873550566111899531916417898420601777818981755479522109174750383030150005399583319299464040506040586780149714316201707205876216138921436328726326785180715904116882005501730290675669138379238724319593698453680059679538496589614279784566324932113288383642958042177920105223796209156321533810300619645720350219179637701926449038344028857060024297278299102524535138663709309739706283027683756110978746536688993421754756887318835469084629266011085648422331108080693936465401670980225261954373039565600328738711315354276786267153658310831091686702271348142408007669850436421508623161806028660688906555641551250648715833732745503958275811882820129165764973426604643193689260393282946346722395981756960601497731299701455824764102064214271720917900599149376123977363634737667268144481346545681174487570821317919016259450506056450565877276247749637249205372057716131604964552485377494700147586638782249572445210945900498452494623044631431869513599599842685883805367137259334894546684442523172372309356485737995633064783328859299433047186243320290604647319392800342259272314474511204213057553193801783212842999779688522176259361662061023338682307354361148549786875832008164563214711786015279770189778711159450369153084473085775823004735888927456249122395962166223208982936962160610697431798170055306147113251902354471082036091138860426136402090175268735334034237406875884832764750059723584968372524449718960012567496164821762851695977741079458320432153735949345880167506543229189687728374967222908681329827936285912252187041520151031183298240008441576306739271282882849405648547179193591347054973109954979092992327221284153512971013345721314343522167104897013054241843030732173025830164494129752131376207952120406510738170113925095474014507687550437214309649548768603143543931969177737178311135622389468591839802182900583140453737166344565122009647711565367179563284858133399638247556638104679539915308533947689364777344206984133636308973298511236163788905964760855851843878055406314846701425374756002557092591094812530036960974509992260648612209427922745497477942921643908819778704184166283462321393983416592347630599423371545398237329606141440026427247971721419166060055709309111585611505260051190450236304524668443110898925141283577517584257931714137602039108890410739330663363629656690430398061085907872562617380142179425272742010808641032445650962254550658634977246513289678083518322509722652973209704726543972587901813730490870748370536257993236441221158172592502924524594783594831321345056512736015485624851050940681677522505962425777159589748941564670889948985207178967769698098004754269097448770137372092162705199617681363959489757725360953544065601423107921382327889305922745924146877584950232021100930872557247841358331466514961106541057399163409829841827815705209459627504930608525584333388157696090240030604328828106401226647770010150391259809688370499428135115213085598726849815050664630218132567188417711312931723559480423011063558823121699410287008930778992171544195479498384843284610440360067352003597847810386455794874050809408365336152617878799561217605049806121700448680062332341853840221712469842891770897444795617639638288584351579767146044003289128400769106809086536708614612801357196865203448066312466449319868728409459130041259154717661306458950206957897501742599432408189278776698370091912203075828319316310140050703611470976971187983642708838377061478500986451771650599161196655237117311014302688768079168838789822944430368197418129770301398908341965321179596405529180066743789784629430391690459629069798605842166477339296202765985769853123472247905310797137985237330864026200001068533055395394698828557500023963058133645347412092396659118797032048025231878492664691418273719369286570588210697907758313424037252714994012209207505682523456125489972069621789995008910429574436765022073299415351496254936468844667220351853631105578461623412028563974021793750041530248844858290792510624093561879419983933792708186268554506582051601502110565134061078257177584974455571582371637769832668544317225984978481976855390685803264595199344827094997852977019908376351295569688216359437347568485924029128125704096133760512492986999301199015123046722034511451001826366157299224559387640786242722641651282794775251021528209146161807726761548512392480955115292790328272969684045025258699009358832896368995840019379031951757752841267727228116030852466497167582176649011683772363000511438388837696889907695538357261983788402701520992130759301638116557081063899946889863308510039498234841263930455271445249053060890798348403475948226596760917544867613304254333214702080539108265256931236789073192054854312623636791688773836322118551553425686414115021221193830748832905399884532895845166146568371916030645944427168715837956010328397237779915028960391255297265990902183137258568361732973859266832329825724930600424841960346734948471959511220019243333249480043857782084722843790099081787026049885723826532633917766896658367056051510678154753905620568309297642839375408535112623229314225442434623904522125758932992678408189597421737650132048643852854093094453195898911108666067191034066498136711476112608276088849352980843138300380830305514558051192091619477119586995929276754439354884731414224855483071202909804874988097626305528539632285253322991703107196754922702573035178547377161888892397237676944945096645880240282074648792495241024033373480281612879064304688716965249371321049394201172776049412036229149794340851568483563131249812601455490208401002706108342018980645324995224884777399039934615536246683922242970986830742680885161550461099571529370149342176121350829708783739299888088061706566295436370823789776999235855655866311488796085832641922473295374866326627308414564545556779987647518699823752256184176133673148920722929423277246021049116989052857561385818843599587774218755742097065686738484298211595264840385253354521286174304011539999267254619385654000120228116391828855857734084607534648664319975298364832438183682877457104418019100084617498122766533297856516933811819542609853149258779332065757800121532435923661679099929671262224079451480115436490827145800579501022770184061403839610506219565029140589048247109735985290600765105999479780772985473290867850718502166787439399496102993341929118553802481522550117996499590445472801387372533450339837637923864364079780893154369493093489333798147853818606084749294294874488019191032955758165292688661527166683052913325767638416190559405574809901151910304154724874260796900860419282269894540120369665338522405701958968336043905053340998172261928989138796143168629313514699002904650695992668929090657142728248650588023170327143757932954027735725691332013536316880726913500912205824134301390458397124382010462777927112512002021603488275786913589292486807935513479116190032536403513825771005476113941477742225637758101695431873263086206287882272139692729078764806956291248737794055992451495858180814951033340900227049802224329969750785882877227218011416793972963395641206853235189921102923131643182530156976705698022052319100552987597521306302532391700727599764613811666941466554856236020729632002869540379116487452836408969491182252514575743370698218542394017572669715916819204677068108084146681304899899236693256435428635702104442771876824512046854664726189242107489779044796141308165477885748237848431977653708326763510276381126995398787608122122440552133254285339790128061089144634570016142563123138209696234829545865317922066783444334748176752351108192512896262503706450831729724398930350882949982758583234322171212476300008573864107080438598217124036694204113263989020051825613664643981732214844686453945869710384726055600092526365529980641705145254286734752369082604004679160408763271067320483119009014685141215935620201663331697965125642227164236415117267818101930872566362126360675341201816295903067763813222137837632827181895211683343785331218508070733285990833775260487466288220823613191186783848642617644164354951482273058012956141419302533741343038941804812992362853465210044278693781790632942828011267954395583140580197763812911458421325070201047858757076841713277182981763174326041421145170410327617803807181217358099570718403745183665437508259199099018825074384564291133458668199471774616141622125688540854811054026849562719469049954983965799300761521746983670720226515702664886068449835210344970745817926705881213303702817579573707477632866729320383009626701795887223610649340201701404726976710465024687585117715217151257687337331010365575645427769124294129947871858254352432515420731678393380460254653102508178770485646835267585406647969746696062825296039150035611526814108989092143351148879140018863892172184248900664414903959158233211556899346738759842756795519700613063949406159320713036879321253628628713033714676386928573608670821143326521118922673561001907020230336664597151311382882165948861076903131563542149913457132482140445683538613039722698731842633953093518668511606564606950048808492253365125206526540931126499279625811357526223656525836993795169446697632499763205003249321189378339581499022008489530705943401687270992208459611539527807551860596948408774841032024562344588571070575580143557955173514949365909763125176003716026033304119636465261215590538446128745253615966657041051700866770320744651904743049826671704381505118645328584362433539231995077795204708629752766175157621438275607553922032420619504768548303825260178921611042934257986543125119350040136260533147764625964548032923560988149388081199627922098549740170395451953774397427534745056767694720908865617687919426786587970051460778104528105223522922701859921768391805571137830455456630266281548343271625024686546255412192742724910563609056346240006662637578317104345254003474715318695374437819363517843778340495175783632834189609536939800790621318282096850794624904590783516194785103897191919150133446548117579264337802874850258502896559689163495941586604660194277456757208825131973419695385184041230621565154666592573473878750043244002901193635136115143988070082337378524346911677090194058690279349207944611620237044620093116560780118386052367822246711520156631003979826410605521497465974181346966081772507128128265006312557645146546960256123500779697290575680190724215480589053329523340827932943321099248023836211755963828903851958390799485739405353695196277162801445029113757947624085716024964865502245373787327616104015355652652654805439823890094396434073129015834285092667361365562171823423940989754626787876957554077420479239868379016358111350923017173626804556113044049811244680877521076027841808616085679233173575186298745433593875572532589039208504739812385883099867484217076564241827065391104465440802536206501481149794609660843288082038350286665660661886914010102504789698679587686132134751196275181217385111900886350628397746252693671142785897031527883697283977563718170865952585862256393998626410654499995141540788511339677376529641585756477397414651091025720889669673253696172230403088096840678676484977843144717128771073491860729554032715370949972546257594720228178971684767139346440141769283684861955752757694380177758444739798327934215380884116681375869257921519525548666875110463755185540122634620863174750354871403297408564685678527295947323695380986749263113023588357220623755091156377391146226927024027258141773405881560745913599252551784162996949166813677153247583629517698481458441072636750895141695548788612069149424598950155663113994227834883318874852955268740333625038785450720610355452384076732068471120340048744251133958067587715735480696167751144718903717583795383179704290735697300129018070260912437556614179844672198062071435015496129858379221741912899649786692306757339296897376176816055792566497976411835005071652158351386036484590506132058810574462934824584091072802649090246481635959843302694922197198826608907300269407165354892788985366756486216653194911695793696653567602540756411386668437104642094820214620320478839763428060673955669636471373267083905486500150860181030142005590199138576579413155334316674502436567279750468743826797409848148440674460126001365155565531163473551696245339820632361615833030675681302270188168014320052965063545483020435763022223011859058740083436199937730604798910867642431159039067904193554400752715318720430491761778124702534147450335594500484699394392185499547709579913784571135032995141880044874747501329502637968551111191137036150235042075839519682531786620789214079682818036852964502582228239594779740266550603098919723579290193367671200760319814818721980229971084205614742930496326965515676457543603372737937151260296496816765369969174453700488145329217683363115165910323016705161877307138028017413670608431621276903659500502259282141240170292517781761458549766324050808192347532127496499102104252641949145726454413953156194880794407045019551554978547358520659856472008940416038342458894110641229594969785536426549688123477100283943228339051858957235250028416633055320366412546031661626860375811977357198283025606956263101951299753192926453530303751134480045141442554973725836335961695117325513139829211000908323692905069633218329407401786361854709674604784874314010786865259596669377004522768044792387835599746523935849884032256313407441843382418882830686844468486363189992475380370885524283112972280269008735474696339915108849415148770325927454923726178881976998360916009608202579741151464211734804344952668245902074428486770803062924458982708286039342410440027193777127487088204779626489579762747674588930852579829157252234438313911719567591014064225327392253053182529204424047124211279444423392533825939365184365615170847503918853623526874741838467196668575248037890838076201576987249071622635982306554216649395657150472814146653491756053707241364996692887841480227120448033699369687461899299180676656128602857782794875943790134528396908549265617772544088069665135814051192515428213011140023408762614137978568467619487170277250487150912151162144013460516888260742342605813044133669397646059221405866865174117544488701178797843132835107546255518490183306652890773048746118112051497973675165896321304391417724337167898997338616822298913355598393554601343984535273930492148846369153955963424953673394248621410282762411634744205210411769932758644437367414225861112124320843599946828765290734686541772933211595942572228099668488956012962008877152793461003117141590550653258349532603782508819165610319810551179296842365002573746575315827256019751882428217131376407124060147963031347350248922403669083489268002974254654695633252194651197306311163836386638552409039329831433026394464818691538302574096701367890085596336731764702809574666416615187619144114016117822727664822236307465997841340676401167421657817313562539909317497416926780781825424502873795143544428249480670916309480682540142227286364233825087254707207643256535459075593817769281042295686927199790688366398785491398847312536584397029813848475376028508505465247124858712654536852464786705989910935556553288139928725311450942179482932111624608130064445053828789512454396182190659488022694688101668266130162674082523449192685867801709213074452563910633113015008851250761311580439653152909483663465215285669536703783590331897639424111189956845780985777419632527692586193869218655945281408806088322006071570237874229974620076629683292859226795672233655898382999984697138693062306046249436722767073052735238455944528355986275788100192615458432435170579453539553802612562966093874991139040928796204787266392329244641418775734718384430797697155720329091061021956906596567932760062679070488702077858829753467221594383961149158133506476053025546496244868570486451065008326557190163962179213835740344311403000760408526798235315283859996125572305076347559913043066633882933718923861376071286343603881290347122063674535329786241949883377242950426236140482731517271530696762928611104141825166306859034186389608894915190650958278745533371217879006680089195905310392137111140937862599464588845257493691716084272809537563123611799076390891700123525912393093249558934071529181983537621878314215170797025355860836506120052476350262632173730518286991010924347016158408920327433769690843675884682869967155989375568125950802586819250331799205768550672380845121843007109079185590724116900877416709889495459916421842817537803946718319880512755556839958891245564217987989613047648233366986124601014672649354574550271263641906148446083571454454902461855398078235252198496793329268983798964797084809945757537771339146461000801192713161307808091426644657272416873996165796004634980335084964292397174056129087418178317980497396630045408354558536970670586558862859166084533817623090067288286807888784507837680255337703107727388293580745451171739870141742219955872409318475598380366441538955709058927531902471538272242033973071345036160243558397337369105115438264044314452860750125447620470681569617401777467808482215627550616856326587370278498617107880384236901481607029197412794300356802224141006718094738216818618275647003160463729676276320223776693709354741706128888615712615153027299982532919276669255833333291385283272011007130815570736856757865831447034642584556466993832020119150465813339758577587170215171917429955998464419747915491698434348209308615415209865191141102496328973252455594558429081532935349682335551622541208316435315181836045855510573877456938864812185619199180483116628523410911456310738393913408001412979583712208523586458566009361859286001116188206768305071548801514041135511851437312012066377245692852793407540651753676358087583307004578531453709488333021517208276821398056787689680738368990038283947622944622310967230561783954155102899893563028265053815621047699224545187056567664984008871895079050140479149339805589312896379184508095954436926106311460081764336282775828578604604169966175763606068158410157027641641631562635069398214225252841357567086421878584826910629839448283267153883341543383750905186420574847423668947200250819001041281472243610384988529053482247441796655843500407629790670886980225944470023377430268943160953188657694070283628263269808952649432548772105740989549284117305242514438183970195299677628524668455282879599804550798340839684141140777365152392371115260717059797557014735594346763759331253827594865520319597661311771647449015917515034859130367468517814099448362639115960217983695529011151193416351414735502521135577617382183545874288042158493376167891566492086207210983024774980478370349325818957578393771504285040625754617317627080487265620968103754270763280065971260512580390283616133665911227500442213385837837522169451250979089861538787636482576578020464249304599385640930529196926467215758503896370079357573848020396750203553955822904013443692694767626807447241764107706420485347232779985481939663883672499650067112609869591070300827385755340444431155144817755827302032236435145842954356632765186575388418966689163830057038582923479720643790299200643515878302570632750692615735780373147055405606710796037744179298595643114917124990870535706725540380034348430424342833315213427054530266135387092856277822208422620029895158058326809879837568691134101968469323661632780757128833256904119133038390081350199226315403609892078159152146172003679738767031949473185867144438607527430031631717383392697110355711280495066112313238713694545703445195320726029837092302927034744437810478187941358250473042617623817905528312989139274183014112396453286635183207068476731060083627262110590383457576451358799696240940865944757123734890397202796943361712223823004714548026404481490865178095136951680427282207463185311371301297283967533668587942436187468621120715024127424449154706692399775964551431957001244359013849958464023892109861708381712314412224680022173560450684748403583564619340178914269975988910083041386984745492297712114655563693573083208396983066738496418486682883736540181289653854677954057379779139401233779007935503842210857894709840905156545521372742548540786069218833247444986212554775607145737111906902968996538307243004125798657907364370069804594481287033892436164231764529244555375509153525584749566399291466651306211374818848149202677141541072980967070074118364005123632711627921162179765049799870709188701327113743553971166222917787660251849307985746230904744153023251380475458170559346066091787793290022307061964613194886584764295723594031908250985413451698529342925692625891440064719312616063095666509130438415554410394302753277598613462674253694037921515597126809387976991168383341965053138971371657166237188793811194074302839475286610023056896012736416084449279873571768982578059412102258283401736920444033460658354236345317935057393755631439549782738771068741184687882581122642946098596605053827043945950896266515408395995189026375918021956579872121549039507333647406387829473098437688781149513133541479829987336145236038306016901956712182155313985810427630734056374205389654182887646213644131910693815416744059919770138186123257802772793015530799625951770814786721607872595334547612536058251350154527524026759241947513562125885401878286359306407346213974048003676490389475044402285058117858982755064767300847567485631205211262747733112176214704069659244144999598720043606167421559746935750792995964526445701458544971741837037883702165049789292365268755470466846726719297130370796162582155184758621787121876259521755936257440311630842470006768510988397023113396894555848449204687729890550899297284552638524463720033260767581163965892241853189501119560137311902662893022427666644369801940008755274578315984155264963314250520873130458211574984639491249936467151316438309451879089513237790099389792286452570252613964388019695157658220928175206278699025481737965316206156053323564724907063476979850165242514975782748341952673275566906743414554314255378023038867473195401146762606000818326057103750132786922836996395576936677163320898122835097424311142708392659419100163077339835694903292867286420512141295346241201709164289339746107243751375489063895146704446719298446406578927848731271077471095318490807989893437982178111845143056306759554681697663626915051374896196036059312981096338071443406792748882083741437033558645723387130053234158618979053795212099708432702787063973345313687049270070550736084448068471617597549915902996410776037461592857075292638578403164063850794143874229394768643639979888299324076762096286481576904110790011208741909913063002542356732899688662754716294699591481876614337539013589072968201474477903478477746587975898899356437453937390851439092340450940660778250987420528615342900673447838426515208345817299623886927971817758532722262654032524773491846114093197390508004687942260428403698915968133633475339439096258382009154042709202714419849627481097575624896727119583983162886607113700972820650954055587928373443984080424601175368420230223870098351439352354472721335799426552527365243385347336050279017254759934915128726689737067669122717910333677686250867807929849511861761411283648589245499346655802701390004487517366831328063264702377940599686331994070810094421209834972378284969848666624890495581870971257723712820420559949273938169004501809037477223293229957453779481625044135937851218090996892096410671956169047196519195338856039716654584254854413496197395036090792216424064151396582013938535252998346069484206891818099223309358457651195221250530882388748086394188628618580856106742538772023891117703172695148329961423304673621547521065395284896737818464861061267187764276941065203012345558605085941110383512347607944781890438707039785063003994212590221367286247983200834881736142641362014102592683005252697314673994641850819207750049839840338994381127220242382710651652228921102067262583597349172593202398654782782210086763013686771213649704975222569282409256034658900518341742306123482483150721007629504491595442131960017418414952363206277816057872745987755409734698756661838549255957888788872291410082474825163771491108309731088090171947249902938879877279098307778767487600228676216404152072320656278519852659573190913256304933183134795324414136426219277475958780219243679378575523676356495145298782155697688096835361375754154303123662280740624530258417272396428033522665982033220619687575575517522805422905641495710612241827154180172317338591483220414255143252410550424074618899061024402255086584016589138381122744816936810103635382790543116358973883772091774869773098716020781657727790824344595384676961010798721235542379881595384960159121124815008033242980201589290119154271385317066517299895626777420488863538043915183172354957350304319484444790051259322084509779330765004604190135266119258430661222009407598671999305632508154749270895027532234464333869327563256124753618686525137904309602264315341951629026116905443022690511733915398556267098119545399359400287891626988350299685010642746551015814372231101249993675342202959474769705941801869541532436697974533311986130246194880435598424413404101461169318462087567699434387302300190902041120618327941652164411148589403658020786481386578890348529884939696082491045870425167254444376888996854272485125412257055525374031907793001486377290852772403295318807659389445989874941593223440733948542967355050746068274353641710004019914809970932206608276262588577117707102728592351964838270916290403762583122127961217411465054488438426989697530839425321866392341058345995221708929774595328458296562560253892584798904957669187882135044558850383230160089381219997070563586177364826783647394418663721118187909482117010907524063086860387237465500101641314835225336970015237793788887453562784399894908614798871488132083121392436630034903743801748043061047361492694476883318105472964337577303854539322517275091207951545757430627046437965053917223754838369795398171081538636642739816521035714706563719952928219607281039865913914681144835540213001008584786537182466863211213850022406989091352213523101239590421353051572376860198032033917769936833725471766251624773910744927133801902452842761010662528688543981345237393398072157991692062901838915160008114251912898177659238332221214216955898782821073313139109680991824904909290875813097371201308198208433046465348304256069279758833247247757792998724507622691449962097123499892883222696776535565438505833851494816540942027550330866049595118732632309248101221315046340652684022115792088253126766216150353148404061979282265942265386796374912676867936954169904937864764574274951470181124491257255298117385447876102601176520878339788475984410907384124961328421461248715368663831398268473669794564753447574682556836961558579939854542200686298257266235681110736670056019571852866237055690064133255104751678506367414363592193025539536876692823327511207225076751600329026594711159069017416200571797637488371723114720932715191861400929244041884596893541023904844910412587496177908882897578016948407701315617212387242024231489153322364012936409415198616815979303281682664209069500031680863727711884944699241869426904806210935539115067000921470877147856982307215292058192897420327683574967052676632582591059186973552185057440025234056192472335310503573324871971270552199001600678486360899697712870569440498932344460808088883862509933703579982978715703002289145348844472364989981601724905112284392225308640751651168941235860416250503732957302693783315594465740864325372760142839525387508902026123322951756820944800087607049883697674665725028905958726337486367627693191490019254486607084610079054278828409097873558327291897615464291041894200621090381252034236182560988849694600492125853421705930691066694469634190486867606915240859661556784957603257585266820437543062283943783583466145895444622097996828008706676981581075940587634577025870979954909566160454945215220579271484983229261902077664859432247806104910903402988587212535483737478620688415056362637191541134971600438809833793124368988359401103714028707639995030598026511726962082494509844340991725495551458561198741496113535230541126176781699207359657756969997133204418440014434442011971720056525984347839616139243015011313948593707144338355080493136190232628067115936844479326605886762975477759367327337721989845579312913032858747082955966720517580991819709139346584154020761965038480539639501792390787270740758894512774039624364836954333820021871017031059595964612325328396190990303848727441271470961341159767850529049449339215539323310437687910013548109775676643747015589006637600644510467419156584646417930157475068213650872358467092242653899564717193206408371150405494589968212795986791668351608974972456525660100664743779477712485080959697202279473519609076034942581593433416813967875904282304574700481016849797338722064055631893250770006369632369041221458256648614157186117071457406988007412590945490617241773782909036879195381208520351056632183265112785139279516502794733513161447620811356004426443742203209565764256079714540874645136229286953552136992214278561607169570438251815253675642906107090476552805624938211958225407293527500523697016000934006298493236794590142054920663333353362461935646934616548942278797292829412727549185104144358485008320875636255846800437249714570675566208526849509881423405237392747161355321462830551363386284797477382764242397353613120404289199580611739782715854096529605188039209261643121916861599285881075893382996818919581612635172974611805590031071429608838216485650269294082186225490754903345212296564258948364114608241801063757057223928673792113091721882451234584873173960179651240378953833835969674066697026257035894231094934841753708363540009537632630082912273594341973999019298781067715200737744827197436898229973597958554403056346838518179662329749023473003971584769514692799947768516329653117509574021582567605122480603992097477143223430387632121748563449410011515568876281533020093657592013425574632026049900424490573238178775387142836539403466356938693331953026623213958661263498856230389130100859303737854019929855636301485751306095300762614125988172020707315656626622920840238281919255091807373324176723171520712146527632472961490608194190337870398396832824055679898517367641029816532257114754083549052598605970285595152005553246994971455423484522928390682619382204788102418226171933432833756956648588573358874511925291432250163258426188138661631348004825658538370515432201550961306181080923249019354691374294647697572538751907471138125713523143413926687418831035334526351385171982325252451370805931546123596724555470818684638745026836407517091170401167470517163193851348349987200401879830316003448086919564333323268585558678904538191379014541415849276509125457896525222023142861778810013692699867765794568954402166683697149530145306901873120951675821928909856926933184577566832948055941521831244863155596660413185579702440211340212020601673441662772106787669644654414012575321533375400711951308090187582344350069250858983345963537207845738437688948638483602656367683180536773996581838803538890777677585680717109692952625799032972835667391497552042176121617332129798451266752631147176367001292678179768768627725411112311734663483623823728300671365827668859485476097351088807284110238316758421973522248014698559641079851353211877864570062949159345560176626033786304621545579105359435561778417004780474831045067336756021081172717624967326810039338850769548186035192655363896778618146074843511309231348014881958515803218886960801885229338537534168445373575885848707671782584803863556744698831906240018987565429227324731063731742335575592981651616063549730386698012222059611534408663546281286701634672770697735185005104276522181017449857339428414147500266030246045807316863260855667762057388098804042344506110906058466720916310813360900224913086412650912368513102714186334741108756763633785862253320059599940920249874898638285902113476079829019234885014711973720791600841975970351913598749348923034357226409357768022574253522904168483467319195633762942840495014522138406068989181478537387814188946800465990412264277071436588722274058536043412885251804805377803195425320703239344885062435145983676300426681139032430045366289733472502126049929480044782816601184517123755586091188414092661007875087731600893685577941216680005184712274659610860068464127920339777085549826947337504901256432807120272336914277262550324538402816344089368998870758753009579465241515938881624639613945957810847603965356656901252377888249644986522179693059104048506743074449988484308582830274511467409354489386706873361603034543622348074194096423169218978545551747120326246461676800384530740107672144665569316340721880956126192030435221910557394128381992796189637566035835076888722464331471538044989928128005873567958685093354175651641671619536995802006450580144706717473934316516020210058104052657229184685201746438471367435301767036172969250994739735375310028601245947674881836153841947818267387144256237435257886510296580040070727969727532073454244343697222401267271458205715953489072169601882745626255699884701012067140973145223084687563296953699255977239233129317378792810135906324132144957798875928971779243730890270988731035524073289670813166944127776371088891637452768999759849310282739910259804125448895997354204341990449202655954425131551229484691223992084164596303199040503234019801048585686194969707908050914433412277701985990353554882950581361229216903996396667281896039773337652300108580244264402908348593380361292060523351931721177374505702597893743303559541360567277123742259531619377645042064047307248084661675282202730327501005445426986397094890731181694966382000948615253657282669472894904871764638697934474521383483139124826115705365930463248678577354350178141567921201618568130025854172226780647774819589075402119754359131241216619107935487462525850792342435483175939390106437168676790951428431812089767304303649813525936776993923009727594812549615275768641355843911807141193821337079100207131809843076598761332357127536356023431746641953229388851217340038536849611821169179946776597969417432283649874367502516359887248850090758606486168473641343788512730504413908245079445839579374215697052102854308384482835190246675331595638738214995597410062460265786995465426147653042621560593213214078491224342376289330999072154245801802350951537087467224222203188341215811085158068054835717315842615875995549812644423627272633126480137464996918640085898147679662011007358493459726314661146985500002080578195703566485383718724607541697243533908795118156283685069038530560675324540987292233613980423842298490154596485009235863123668877861000176538770184645517337050123066491710627502287572705648488978814562963269273652028533725206210712939667667456578642759784911703945946022585984583220003873408156145721143466995970494847293950358943634214070280203449217253786481808710667747082211267326994385358157752943174176772093551786798259436753645013582483291934161697007118631432327457889682635561218699286922595168984284183430215193324964779206267217711749908875642280652256642710518812112211500224343074918799802364881337525616490007447511966001017709131981378438836228364306073499365250698899787882378963456211036233057057200776092438422358722632111304782785989493548666999378667523994237123224603597419218911508541359411235411757824414310196184236836877221912358700954990400201971514480175331653699609863271229615989875158049724096943567316688467520206505613952397607456150459381285334126827458419684213785359850008600007243193859913058159335786716393951659045149386864574395556386965364701031726222901087132847001504602392102371581959906996780860880673376266436435973321670531352823835619079217010886124869085119961920094813376608587031066426699019905666284803261337952470829151246970827816441610229985347339851793261854952623999146480388990501108789972469596795454243068535297190296186707479040746291303235842247825340686193707813552041999431482002318820719376587132248478254370817973150092941769439790121482759981292607162627014459331803040171533171571610439799359723630596016992416415678838008661164694292116760639755513443397169347213695300531115472934081233801240434576765784963744807955045781292400293433340371653865838850443421504449137368036602764334143409180034528088436700851769645564957203023541566553014832923980194122699857913142887372519578704185295843595222289261357631315596958702708862983576128722210724583952592217914232173099313715795115155815353130191655006598461777492421637056162501880766741961542886784152884577012522710777524035044836803986237742328605395102336702240510390637794715752643361612135536440859912869203610212498966791937477343368778485695737681356074766810694063286141175784198058201922748605102541489107450736768637959819611415337743255036816011806157356919673249579530265838597306084191279927439513161985387936082344468365669535421050562978608591801503144858610777927711834711258324258097319052149948584508433867983528820805825310171936113939235043050295289231937564553575361014156574468617573153900103420957676024958110914249721131351666593722001412559106121676412269853833627404098343858868806602012468918655353462755019236608333399498178086907481675234873269538053857242874733011397756422953570931582060936015576732416526532132345709923498619554132078000091175272186603592406800179743108975686104463538075820531990613015611366518398678423198380783881325998660183599220127367059405707722583242563100185434856606015450211525368831093946667483442344924339448113542419094535103271546283883260092485872953856948435313664264000919047677327186383918355527455163638284819734842734353239932174333631867540122285104751217883393706740334464075998101505280879667770635543784586098903485158890355217901381705388302356775046193928901827774288256006783877389281590637216446722638112764528775724032926090856638261110429533694287672402488466889034742476373824696572204584398788414638262934357119948004341886272661858644165804310716735265261335874298738934095816528706082845559365122400125854039596657977928543682605990830037096558832743485730011946936106900499339908981289070799514932815454134378961437400417862303939829475253644124120843000942600795381959958599279763623525048144896335642817221976985276516626953427065484578052930863314227836121863168672809065289022523526159964932185056876551141724215400238422375425913677121330094600986506400513130338512713628214338580302783209982792570636311162208230947737150255894191397861586286876807791769503796650861922655142796106357676697678441734374357783633784581250802590357693295066006645975722035179687615058167559654163766364619245741762124549813146284030781438380268386760287847607473495073879896753510644675565480176333129454895340772777145780287075449393959316790644965995628665570223300944204377383802849641437065171884378512903844678635074602010406019855985445404135367141720393881608503397006847399400060531212072886080610721021935147611002079283582933395958887778593816967404026998343925010229859703580354644593942829463934783540483465993939391569952912323137578735391336135590172478037263286079277711043136191632411221755485011599503456625944335784815133841067802351916851119788081949693972197939063976091831115894574100520276123161117050663213145501036342657901619796392871550433411601471736444014748473891248399205156467141501485639341125174117337690009532568899248042671883575818570248653917551969890036664662796996329210830876202464898944766069758779754240469727093483128360512744360995263498185212556401936056019546664579148911192588845165246434970973362779693840735272985803182230975163914325435358305841818548857249766221350487834617500969877364411281814726659548031402969399956582033648598209853591862645926138394723931919099470392580457170889967441936991428146702454357108217007698629289699331166272178580578827508787565471300698646866819298118615949488002344791289893517721796482995566020868367763435621680933407314976045868338213116396599178689945103748889315475566547355659818734336124560569413842907461889965351701975896668866412408626052521308895230603618332671656914444892599718133420237883635280304777574652267112738729766098169939039543192815502140968463327056723268127072090994291301411037434115037106922978615944730833668752083949575835020199479290115880019781182051722230822139734612026950682735306612300193183995394254250657066510090431000903382938187632335738352529836698137674766791860728708704970477427306347580836412399479851799797954611107397569866858417268941151353563873628219696982864219887725849012886600757123480807490146689734543729451184554915457245004590666790650006657571257994412012754752854721665012199015127897258275578146969345326472710787474226381925078269939862553247756418680272167431875709220074169357741007849749607559608227022364052222033030121307464735638530879404055021431255922741361765857834182011178827478530820496450032264494528450806351109746101260952896198382479592410558977219712132263138663029511549487043754290388912208488413485824003558007563487313901033338394855947945156317871451094732042451295747001117814205104537794835899028082955256804582834795438025919878493169597987585903427215601249190217432248898024302453793146124556685401272881686424320284608826230263048281532664432145093211061291596003927740916391023642110721150296457641185664049430083663505820299299762591336667907115008481957499529034550423997748549345436292396618493669921260349924390603016277151512775450806076704744295187956395306594444266929058284809130376268708327925600471952542658605017334528862811725765077771376399037942231747867022666257747832135641795119281186143541385242921454888684496923677777627442913184216044629286614315561382615485786294770849803627352729649342455037636634051345650108818797609576695130923594240130264523023353424867741750207357699499746914083651050222069826868313161722290578437254025478616715727378822308472001795631106785613029746305819982184995996968898847656194685220929335473724064185796962774865952223398726217534643846940910181983588815838262346455989013046583162471358179056571007935666394973914617724153038453737236579277712471606575909948101271206256272186851772578465724620719261686815044983137760534465678003211693583213691838104669531576135046144008137492802575409603305380304572781304909753518818035652616772972662330663779984209320651191136750562880947177698399345949869895077008357161432787987318507764838600837605751841365518398658965020770999523992360466049207275218066279046412854401617833914645860429706799515330765045299465590635304225903729455724086697980922411448152081605116179321856845643254301190878533271145873400421629886265164073163745074604814754435211181879968092622439567953519544915334776593771950045390412877339100927565106097305769696671603460229102947726310540583326977084083291124275680266484742130267947600125948996306110727567330710633387901341175275627191033352300945534135283486281526549670137635295251520762184349410158271053726499942744221088306965296738846095368171115504095539217604322511129665572731416145817561628440832323451161553258026053944191454461531569587046855890263099235679554319099247624337107340641900422276545884223072246549145091714224769001904271734181992411635750242155224943882985949696274689595749384988482074637701517168636968344532749347707833668894278027376222149940180754347145192273056281715585349250369146277289278034102458136871836299238009778540924903801690720443755147806480832544255562740640014187579985705137134489910584535390459392301437712936108942311632821832554657949312821860722314161829339904061797170628875134696495060308460407186130206788346345002991927167023230788799504607168382821107600686938897797547554736750595109439141454984762596362653401065999030745433127965546932936612230185924361731888037870913414122183956192468966674182799123475747708107613504566315535758495299499001875377045033266560692961243192488939358012688252128610290844614819075045910220043428513226193068486292603694747026899379530731850885366607179175665386355236654177625487719600289348522159738729644663550811979585794700299681863128901610929675085214814589355163074582769058203214478938291531821455593234598274805901172913786107914660345524677113084378761238993492398137187372613478642862358755028995716184499136827246135222638670476938899686878087313438216551278284395087705617054055722996170015498611734546378992808367948333935464411364615894589114810263429199802386965915114700399773003328174215270118781843655406754524427024965154619793467914084386926388636201463916449590531206362544443317152878943048178020789363700398654374471591281469911857739776889767811750361739280344750559857797959629000763784463119265548122386367404651571173796025548005876815208320802411997010529369843970267681045304217492587380177000655887597541366878629255337625616930824706048994445712108746683998167505805344521442867872699991103459585331839645521124201790300832860740826338996591216975684231334774887250741568940543795500253890584558264451006092403194205014122819109196413346797016468143891917806396770672249841415809140307553667431367079265530498459239570209954262974594604947994242142519027814651824270649937003265036752406407949706180946108672827196567639098129640183203466195713406573348319347791240390507816979990590297787748451440916486324742640513297753018987958912767113200820717275900564449418246480611641214556186984174875385941309925406208092477650168671188504086042183615066726210178291644310184154160907111900029297736354104964880747329180693645638068433844527072445220136733535307637333327486045746626958582741292498991949397611278265902022315992531182832988106635768327691727545070214777819503880129097536404886183841094405426350956941521388543371881344453749748454794608921635756292733778443998381870819189903719452935223084695054176275002425556411802384257578540085285312393705343080676436109817061288640126158689663023817102178654524167135602699977310399417285234567453773852748807031625221116068769312240332946244064195009426248095728348026245463544280879714385657646960209984581869080626485188818583092887440110173991524907478668836927429686821950543387574725310663346527089733777489938102931458086957281631290812121312512582925901336067459719658838754292100613743913419976089586196937488239004401913880495088039014630057088163915634984435207751988405585390473420511358857651917702717596256950838784082544622571745841116099110734390317645489877926864521815041712415847475075570676471347681218360705083394576962034261071636937348951277299825194651947271463733544456931365969170812277594134691141180405344567578563915698131591607543422854574478057588286595272635651986859346757928626270965669836920323194223910272819509856213040866095910429905862904626265237485408760271887187162309243891978377050060516219410530200037638091647704156852867318385696926550706352652939378874777819751229932557082838252981705071796675957495955106045029798602624434852744335760352863763507350481563632331636811203106449325790141319806225977594620628517082845670625651002912841555974661614178231126010353164053602562123126342853642335165373758324944771666777330170461673084840306188685345381749896008759305444195796208154142949726105758493868850101911520389098799471864453093922800810104229371698156885066600375979012756648611083632306368180261531274756574855547696952774984986526893305588775761730903644923154636895986419183415113196230548656449565365845914926288386765260155796732230040004314524689633518684033835047124863619217284035740360881205027235572909290580272566635469334440677714889274142556941952369304648920314644422360897036399767210711872668539797525846039011435424246888928517920924463225367601843022116738669760976018306672722437877148002589384101519267608988485946851448170028971246958255065268447478288829850362651989564863879692048338743129970904401613364521097453331184354491510750860802442105573096537802384304990672794778695946056294788746393777770152273025614844156179671630084592969052042811710741567406781603477926761787122327013827574827337885129784761450673751155435171065219524970116902116919696153847340445688386445755030303072144454892693682420109250338517707219158068710768939783137008527657839097471409072178582648020194832022525606033338128760942958098774350000273912083326219433744285288877958180785908439426657721523918875746441028583692435548958723194287772504132361799130280964175331913981180288390058274826202729148534553286068662213569472559552443449259229444395517613857431084089386920977133456882955577595061949143437764120231524462777821509130742083244793764102134162889778645426017976491765047094942787942337741707848468101222504778770432127159877622008644735674637745077515153503788746614171210649110780621706883782362095699252114161355541781100466157942242248723467814178112928667102165732896668453710077418067872115125040686246145032658958753530580998118772681346511950516503090103424519517574540311015052168369436316340692837453003036778837331918404812536227577386814465463595081460734937322515588530742989087764947753351561307395814203687420664716152891422364211369914618130680978737744493396497838630176089686394736319381152509406736039736358324610657015274747472869938976553641240133287611987908658226793768080858789348297855882397632439682279307829584005062622080379922385822723051995742029801917776734939299859507984346680572692386511085848222873513716456195910860774411968567202251208485725423692197454886477561209148192397474424964720937389093955339489211944572545277368616490239478981719849211911588909964831780357341747100103410124553854834225970086453471116481464747830757952201480865952633419708986408394496457412848498663428221781196303508438053716645058291764038199746221959965840105789852805804778119811815515301119984905878024581848363029453163587649912693327450137584892073251117190262987453912162980873930123941992864470279465369841453943956620775078774832995185766325807504057515099177264864074617283417820248133766865508331132980707307902177842456265584872850856695371237626852640277657606798046638468363821667063623203566340877263926553506960499290721108638751606991201836461232881138302844322288593093117226439857956035730235838556476501480121835809289278845865614073952760252109558234440165832848113643700158768126187583789649934127414819821171364210709735318660252525717452727538549918569305330532976555074703614777690389480404935938429833922056275235794999392578474276302129679041400659892331754027715195023317115680112998057035049856943870355033416268784668853003890077396247744984502512380160224893521326962355596667343631226807046992039633423082981429977047574294645550535730029490017739488565333137449336633898701903452720720201762095861788264243720248346708074835734287475402445883868634086558286324144845185780356815282838299261458048760067069834628578920025087356454430680109245225214249517489399790907461020984193610040947143186332527882071149498580831953830527690769450836686364929009545661332305892340615633416987864339136514191034566604645287930356101187571271422686778704210384809036375748268774236977806290947714969332248231895715302392432005197797109191946736209961071579706616939308767273289017517220419155808797962362048336736827105170434913235062697897926514822667674619643703547127246746149712446110804380104288656820902828048647311223694271350253489404484391506335150356581350230027071098892550524210524570848448611545999944297745286137582381680064209754529379171513929196938210396844356972729080052483176281995405105756869017670110503148785165794633316841497585004736986488854779572100151391224589955804969910103332420240467941155025211921502149173270785255446323504519754863594468509954914522191684933754921786149845199730883311247957388506409843294498473336356737531826977423030585492686481288768587225137709754256001393591141606225238590096477230405917072353222545079486779735639884631920069819471942535723501682188316729374442259510476610781505090419190461631182680610248962595372764631364443865352943520221303838052792368538273620420402912877246494725754177570092935692839857922325650959658472243892595859038612670463756677586952176476246083724238625268651922188121903414387501764065445749790254637588275643595825372619350655596231620318253715216485309952520169417399770496521478588991912994137208050554374924982891042595977581180519544177944031671617684341063534316137383149710400649247963265363066645066460224827561203285843416622303408112909723853622741187871474843384024812062391953732024011604460771792673465053940317719173007859761232374137983478871038907539068722334589029548085995306448568597547149086060632379933153785683804473556746124030652974329600819974176667036471932893755922784897381622679295212880427411263988811730554228411223921003644931842741401936330878871435401407961761230133368965442006187395329158785004453552842051820605447970448146262827600255012602217092953091069384265237373180931026518243443031391841996844823696313339878715334537897949938108005757379315834595990837778815391691416305656953412412409572176439461050523114943690241428867051262345576801903607235727443060946576734647471016301373053271815954810971617329509577070955944199848558038853422067686944686184748222949421081872367382305135130003661951288647165450876503813490553023277404403584854511763918369823136759059575780807550459627348204663792072039569535830317294239976797976765700814605146601282585426688020428964729640812144236637030217637018901013772030089081029143699125140247542444194469292296691159471797768253401706969168630798677001850383522655160048200790862933820768402740848201868146049915010952551008648544706236308545835277360557044832038651810794739425085780967760028728713933682476498941381260474834824510674213196896077388511269166518014477212324031521124628045177154258748904231523951380060519199410288915347556817317928518342259922553017834192356515156322908704346180430074137160477444696193684821795852469887793039317391368337425454940288032876510749729779050239885470180902329406214527558154447387737550073675983272120159833982585619990553164707666079092026063026207250082826742034292647558904091440786403088089639334149518624415353408262062262881194566024871507773821093323367803403609898052099309252153649394252098733974669607650425988831469126924038069080658511802689312938732425442399963463133391917713809413954982226239465539025090476399520207668567225787461534033144929655371380537974561395189672037723887720820120513787587839321230446777686585714155888147150788675530233517016952142282028668313180306372505425412735495056257254678595221364805554365622250147929146255695503942711011351398314571218906234470664831401234267632789542320206675439093920240994512585379115726919125852975060527106727458926825828789066398251380906253523198904722550832118277994365048107616818067310122552027283241616901124919588556219945507913923976414151054021485200479040400549269776040728695613404440694443661690207314287086576733350539196660804683939479785477208246277363587992157168911875051999978202019806858421635512728006224884462664758994255333143073667084287679651865714055018879735724462015626328309680288092294075593565953740939409516288644605385892969298880086961110451053946989631352890032569078524528048940200503055628145052994640369633147391444104479420079217893770549969323035378249667235872086397512497365367297853456009051035065375278002148039793684910132475198318731253609760685445049871755259784120252555512519162427906672138900300843210002058886605161322283355203224031547985589971583429403836625683944046094987777048727831049436784423472441478773389555395587184772624792302170161684320397994096798323042025696278308188224661162384765462932050029789212649108579068553661461194989181314710621782078406667426788672025003037814014313474233140392403956253389502643955977593918327822489378120752156227682684192054096592854426790592565017558230104293955267529324557849934733124609435363004000251058176947466044152149447638178858587506652152626893785882418019105846111226457565382267140686221595724279370787089239711690912391342136771343787471269517881948819372663241702424502357940079882629327614641453062309251522061127671715954915192294331753638132113404935631689016649784630747415812510470127093933916395302884557463862555805413401724716804850558771803878591191874130962804224403671586700769255512499546014702288492421729533794621799206667755090270717985265134888850188113960968176972302990438996391313691530138737613165505316672170635834522404274642493781219481122351679687659036329290446771792621046054699076358554982583113996726244091470155903052346159231674798051943002851033982766856347875108470460940206129570909073372773358076708032240976085799812041970094782622270587764264537120478529251802736282394410830768376852714278124059243270243335788000362750070398168709883458417578248337326122356739643810377302010324034733172712670879660158516146523423789642504194155232763824470424604919293141614274086097486499461934885621997496700286287871161705109448718037154568001368561519795832085157023535327805254479314780561911025958800900394775884111125774611842323603110029687214675218609987947145838667555264161979471455620724918053927707278171943866628220268845625823043362879707506429418234166132792123095700874941676247218531635476744453544326190876224825086414540373703923413143077441607399988426267832600450408633560851773928510316956385459679025088146459345276034127982502743190390223589927677216181460500800593075451838190492861828083974390782766460037007125470063213785611101266980290668018465415031856592392839090824960637080257247997766116293291581935548495377736677970392882393026289045184076787679527340828164063242070390812974750555265245446532837623679073749664743412123982192452084943204150876139232591509751694440373570387752088183592546457564025170410927432189790439832776371984333654313034376886646467683154861930176532064029494526690106915134837488612829813522214275834798096322024331598948235558464345837107863452951004893086260031412666309248672906527228906521057714498878309972170675153839883893784691499731667482528583297409009310600910596350944502565265447717165886872762156744889718278706629007336940246344126831325823462731040796871785538841707463594681293514991225444811520810144015444279590476910085929574577892518403168962346615059557509037705882460451344416445782922943148745489344853550832410934828630256661477210925949315358134118834731815868667302507331662697658684707968178349895166383858953777643175474865559143092985748733279058820922975450008303778205408526734832579906051388924858044006174659321924497656864284431975898968008760373491824768439448390378817321176470863082264975868043126445152208420814742396746650846435978953035456066930297452776337975641054968276864344267937028733399095036209216539440504538476110708173213583535619914724186119443673182466687233318592538598911303932320417782552604735931373180010437015597045949651855283540657098493206776736053369660567387726906936480633323627315542649169212745900744073916613355760295581320575469403690097128573865473106886331348094919700004586368351275945602550642484120146936095980881123361396633161817393768472527018197183516195274683047871497842123585441518292366305138937415331828195663328573652905317632981823707969740519115169508133912483981694523807338784967476124168256386702874136705389099535761460941082712213992665334810927705662926547767449383228599070919892457730448349517873456951355339796668980396305382224029303949310008868819300237731807186042589722033912444148748517821091841880197075511163403676284265123412364640964896771439668149149051910903345880398306353927057067198873995092242100761677697719945310340501917108515160595851940667847945792659720380459087680392527044382034783231853542908992515097556389026728034543319351812257994012742750999351542685538389437661288150413121123301877422363381487677879714532318809887092993310400564825816482904537594241008553362667108378043112719159122962821882392158247611782474661914364282545197914016748080392370002877917759447301045439932615765332075469120112139820279875176985026360739216677696620189925733394572990478263694555617656432918151755613149107914991823174775118242917967482337043543596077928177485717775847925257325443179623487369000840544965205862803899623022744231955250312409266968751923654763514311988830094385868888504064856755082232956266447564915951527121990656221604306296152297586874537925566745195366850134422007061763299562821695914333083763073292521125940549407517302910163734205003661645056252865714743892851050066215357046496138845244494633732609187792978172603853378675686448515983798240079585622148782913545590198445336351404623950285343730737564164338145311021052294659289064026234251995153245931100206905192490479156703127738826818109727525779451927252452549942848718579570828867974962072954983997510507617003107131720925851667357962817895983622997210170367882513354983491174015091862867952701373794634043318417422739721323423185661509081697780138615935744767670346073379197194403147120927909674939740186502196544708314952901197973340372261771634969891084925593121520442080320020501073391940820273192159654643068105890964917206022067427119827556214584183424357444567332988244325393479175102891766644516981117944773623158102899668761275435308994510526135478906323294030380066776177802500076805331960078817264759150120700975745523838697604322655604267367690054652065993336419019947303823468988990259630445775833538423343727089791113532516546958766978822379364611450971242897039808449270371720350526439781928524543693147095215295538466366349672573806097666680660603454488882817279535170875210881346609240051856391229516010705963354533525284965818296318818996191254519156808459255696286162149176712093983224187918244108301752154218466498364196888150673324413506309793891414557808272143872285475243223168926977365507727787199176706029607824260089641220445865439083508851464394164043405456209449797504258540227447883576084805933607789595092440253493743161793531787243878601325301581965990849028888753828041159823145680078712078018215499712477746920086588193244604538194772618986049090680707932882273783808042735034880804580123502598860535855089272930122016460249580358878285960289291983535226092580885863278161111707532830658163733646165861206826415619980874797330608218532817918247604385148880031462136750283260912138299496497195076280105040345189163533357796203404214869564701950377074395761835347822688684481733222406033398738741217770602518434973907089677825757664578644526067165472052818480698005161884132794723688600476240157560508381121860984356893085199297568511774812281335337574231187331570094862327869771604649919829769222624748787726595077620855818778395151476634375945884653790470242655305509485782173243952766512725957472523850698574216643007283107709850079693691378308969460236063876210824996016668890466559680185366461123707483907051839667925389167509926006658562075827864192150755586109397531454059691839427847492143351043022224715548730384799212800049843293392945217732620678287554496473499432495044187350991460277000746534166042665286636241921542672566778855119168406306274310758245415867333825447238044829796234382527267879499562459656951165706544397399631354427476516725862696637362303765882799682177876308677730571764975532562313691328079921239913110783512660148455168126355974808707227022513758645033752117649496984343770690751899682102044568955527165296361308818122293126132448472166582210035592901934122910894916733139972861866783735894995698663223338994396480877285143432156616456971488182968137222846814453228455399025453636221596682815044610642743422340641351095178182316543971385713266748357181629710861797975289057600686952352833495569857955114755800660343865257730403420960321977602977908824008241494075035740979076013348685723754478939584682667098272968959439014775460154659981779530808915655981677972101740332669500794181259503227346070240145334410018637366603747458835441881448988829761900515898519392966523110507255666052487113025965836879982320545643075929903926468738930721211663837727211823730381497584137484542506385003029135782266388495988442257216693443828491534670084153272405812540237463436955265788522568620474910482836749272817970618400938736421017135247101265548659923476587616263609162080413896990008653435196432691845742339724520467267138473006324734053645104993757824199443422078508818744997179760929915808045652643856252343711815442706284347897904808235976721501384055426809229925623275159770746498319690974040216119558568030830110204649191218096109050197194745056979583388010812509810551273250945681191647799590750901197913727732367694311821871934560768584830400569851049319561188293784248819303506069479969957963074019605071161702891638110409849678161464170677558859870185226365024768614539731340031001248780790043007138204972340680724511453926637361596224654352950740789104675620695947618820750609023944267060937841160665353043256114842523589845877921619057360515722848591750710202917462074356757919231054911106480885613509764214814131230659038218360186641062801804188127238087061970701429002312347183254257581452281247817354330151002655770047604564205640744660236385726938690202500953057625139536302113175666116489463648194082310216877583458370405156551040124564390943318453582866214652375219696084306592190439095644925802889824417229371044742928028046081362589835314009741084374709742910105842036779918377280223558246571676543358509112850866627462063349529312165202984307477811927303158961448830579747914466498518546901236084415765334132146485123249277661912219765663024953973012215048665355318237435021284945416422450407279476716179347236748051747038760974392421864072844432666251818576100266172616099693850888958145798163307148830858125279056731743390684978953425668582384433718190170649533803887416381944644093553482698935246779373524547024454836600505389278580130371413580167037076085168174171240993226361307423073298842314322206199264198156010487814174573184937444716327911410395790286093035722238186783997122140739195656023304067807432505408641227154162871602205789543710204431578931740738452657465181247963252591156148816018824009820464531655085117379806995045371226213734426085078325314635134057299544476160570998527636433358596768284792393369912105556408894804594690590526933564507170147374587503177597452262841057832767986005881793931137973437487832794780998049008672216996242200917112427074572750984681277148921068980867024475894162330830258202162560306474691884156820043163933833957990687037018337439270181806086584352596574809006023204040981649564909826529842835560989858964175837896270121388247048026946733638603733339772318576642111478068403164644072488605787179528080158630856161032288047702303134813962902865977615815467849565089425326546870413986653276747865513418341519263090125939073905734688758478248969635512244194650042985259905776644101198800947938280841145125626886572938070179257217196622207561396016164778853859354835735805762020023743634864948923471003008664653743996548695647648309423466395567158696188799547492532478021055521979836295259510811005938181996819624600362555208475551095396831951938479773892130819471486671447827610838199459233476199495950060105105148029001544620480480007306058713268339559783188124215293406065367328202407214898635680664463950042117062433887118810515632437032915375790163976548104560814455511804119177120308373004256718070449522301289801721032618506588090531010056672944482638971430440258090180791403822646447868007658733433245718374478684914633138027949300389367555162016644070429141085350095599795352412577196721246025989444866646575525524884119272251319679048334203187625931218814132775864464677410985174496735433821161224227882241541645574604702795164549098183226190658289474434044847414108535899965622865679896466117458030167782158077377669316669578798444686779135493611049273475850782159581093044648064412363864404865964205930871877721354065067890003417071534707366778536924577524273360538233501175397900255390340284357638873454265008160806022077549073529293522484486158963849746132062016771393266638890031104287835198594594591578016745449151332800982608620708423357467955243799747725479954195552711334647435383487683810456439587810289595507252519969271189950088997085971418942566051038493062248241194139602562653865466243872530618997038235684463478793260466719479769725521030989016993932771942244099564961782233129918499837712759666345374583552069311720534790266919763859049881326844282331093466837436454771721370960653922157164841490164905839038901458342954978732244077111132674917360267429804885671438928091051975374963467540079777734027120647868279316290160685297554093742564846835174060126515611222163699224231428131984369746653543294855025137237649217279474572462118806361406686931622366821781895482257451486966067525789624097318287690008687067240620446626626674323534848776698118105494893689839398386014711973700008043372885462717241391477560322140484637959474003606562784265310173781205235136011835096550046755531851637664238494096840134541003695321361121095842994816477699116427670984467907633923897066918085665785296250200972625803918376444007719007628319468605314314895261037422593140611527920963194254717200889402244186376563686715533963996985538862364058878125688510385985455230859639153701185330966389048358932324266300864794674176075106331542161613418898091470819039610152194876721897292438293562071278244421077648762055422443129914709536656854569457443764565814594953838405892099027959221959306392060629225822660940737853108092004293938264682193681962474530100117766988239985107307086431755654426988169812068580896474283651089992510574592693466113879043798779950080125304402811307465255299804845245141907444419591691536195142176093970198279930790584728435890355817669506560152290530254949461460775083943005228267287236700725508345089126381352148751562512562890789239830657421035367508895590794745471392788842288498012394422879892191697785677962738983564055297103091995245283120417369484744673202115033868015574359996760805757831334161274995756753517271205731047625695308496663282457575460896085584757394111347490258644676067001969568264165234120530194319301538191006006141345004227953147920470808338909328483074686751265964894890245577913967183928385985697841620962744520145192189182199241576218165674636523219755254002696343231464923933673329835404668309591806534340106042386945275856737290675555033747556614389880189938937921472610567855004233174102305228726080982403641576071295296898893013296675341340114031254741013244749044741682780521138855525195389746016999019232842611886643124203899713997063942559076827870603437949854595594041358915020803142402830960105116257988542522099757826891172229410843152474635718244565156782725911597824226419295938776570188381274238500026292641385395856915247437401785657826706393073727829229038628095036773783909178570935858991413014073660250357809149757531907623003409733672189225971028553241913361177038741387857843888069763392743425910043096527713017294921178004710011252111876098790697755584910783231027179441118047313037432766729231778227130122442897595280446311374104199973593716724482743738630233157838165806556939355751823338663722765465431331976401290976789077360238945207565377971570276842141334509879766439192194270118035124769295569718223496039632323440397369158008059617119391379352490234853275076682996241461982718391782582799017257738376824793379321344152264772027055124927343215937225824844515413367881368719207519568800478654145160644086389575811820520910166715293252251032615764597735152102909539255692250081314210885387210541758620392704221776703395703964954133414312229814207366455384531688083808132694828414474457402400659096375302003413716986540355040092302340502991258021269228644467566048282660780381076356332465365820613852142281029492111868822907989966742953418023521071382564852834356044551565300560174586198204510971997708946014431579056023174108416737466666101356678459367176911810701046418657040597978637935964033719554690190735790853463985126932839081887679762043543540844759482924957374184080314215923144719632834353067278893764459630142088438505834232357658968098098451632443839988795812110955643170386354830220888350413630530466569417322116829447892409451188401519448627375643508751641872788215846249320328372741670532597821757196342221975114491691774228598502036609637291618476631191612992318671747411032918502769657691982343639739363100604284437568041794875483190114063606369539782840558350548755408452237905450360115266402170036116046762701692117159339479192872421074226751479021808057812470203404570367691245641395957652608842589777513755122628096709155178156160549932817859396986035987350968655691898715831891120625287074547808578988884046236879040816398414284871584325899729220146460925737676120645044575400050947821856092330820822021141872633457193759448795261491373005503957416157888303697764725166131457629911509878447604688812790612396392788335571551865990579879966828143077618550944130211965564420512563127125405057517906601501256680637872449444529440522681357190111577065199649592003210559917216920389892592492611277438997717005237988827386892923735180790123616226503692167836804788209075633556274788609530729524271628188224747262977795839938255471353758839567186966409765910989536755916748778582836162484635441796762044728396010757304838882044466907187872426921198761952236852113765634924333182438320750268603554066459132053708457671430161683438912626220830356875734827468514524366794365294586976819265791691520926729609219612908436168293495326224138819211649680985428983625556984138872777692045270858903976033084964455612048121753873400234178368447846698549465517204762351399342885046825786982157147713679338202948894151283931900123736887022871570484845276631264057977123864534924450371524758465641248802993845761973026530303611936240430441177303907962860973355135890812752226750596412729209583276205627727592297520489820870236500957563148184279878911758879452974623396019453387872720381011322587055882153267972794443256594050808218419516729647769129800441536391202007913237481704981672830706665983211350644605922366456127572966338607079292853828300415565839634698493362924211702027875444875517248163424564312843117823781556065007973979565912309730949522300168565866571886634775478797459582199482716462100116396893060432091128117178029375699626191912740743877622151032542143992820228684228473492752735419050268622030468067542090882987658663441102684583707307256436759720569972891798001466481405897595343695092468613858031099731307879162926763198375154840673280998508324397838023490918312207865161747762269494333052799322778865806311852261044754137865941352306179116088419602318806990707710211707693817813820513991395664889940438980896044756799660790239370245991736617858385466131573251672246184393151105824461730553878014930861799556350761337946683768013740218093932345028332043094845107810397009552858591664328737616120162344560409576956246519135246974598344009354446521652894771106349320340928406805933093179539781593145929894740237374303244456139294970059835857232529017782000328500357454731492829330944962359461180103349672884756886184933784554426967306402242182478874213523497475798227911906687946551554177333235155950950051161213231848636777386679513998545298293844305271127888260273192637592056064751681847272991192020879891667701903333138331625564523905805951692980724251788393839361507172190442937994789915641358864705746744837780653316131569816358350386753316303435352132176648010278342218545317373942890590283657780760068293055907049116491954676640130652786251738651219823986044944460408096467485800208473765371885865899752813610668777759034156159324026469315928266108577581140345815879323849454889649744221178709310100845375265781068461867682729318669001273828446930199252353469035111762040739672005940668113978257009813810935963611316069425232858452284475555313208252967595227808053666913900449071810139971370716124832533899355493358983070352555808950883830276499232126430927309777540881185324184289963127740609574126729684972687551182568136628790857863039242398894665857548785708238044226649779833349111678847479746514895959298057236950409475673569086605666769334888152641080003346396159075872286234950639974808106726627651819515236678433281322777867057859955169513495540185222272540540802675023957567419077022934729091861422416609959921014047272298447921754154342105599392222932662389684440388694961409067973187756762958948057239015556380102960898779812888749166609707180505827379483840949149916451327637141078506734432415206793459532459461489669512937840837263536316971049285935364728110451610493397182822702874957968929931118882102641873742419959287359381438267929769172461088901632228544583485173959638537501366400751166421574029645891976747566455736135917706568617425418213985525853732206903159986003207466545930419960104530194618493767324405061813833712592126447336300839998533994209520930402770235043021494533760591425722285477587775666465898927343411342703649169927890141033976297569287610857280203486440127149442143951335708739286200388282460729767370370631176436426604251693265679114474496784153861684159219505220065564644036508923343717676992214427087453019003457649226091096484924911028379943509476839644603252915544183001495621407101127410111279403033303199240489679701118472541538694418131121332410532977991136755869788158521331299858341513711402273210866562908581522122530761670772427771637244250061841853218356884711871463285779940332393902341930511540247954694617548318751149090662702574255496417208347101737272720584116010360691616523099690391763151928614633788617979007350499418498820728474657630484562193166825602644565829735552854308168565030919300217546843262006609394226037963010883197950335285902226608911790845505649490125372927740775244714684379915431936957626681220624878188333775139485504012272595483333957349197725395178033360042066219001832978298692515862575909470201656696334422402083743361229887464437029918123354535162307661364406320782865278235794008723505622258870282148822324828561519617597348813803977899127403061932643084040046909301342202072304510567599451100997585960246208152894219494381211593847424686317702362787386573551857719585484309437294913557683239732052308198094707616854470168280261183198096970321686439801360102146556189378172817653939213907714559013227825709887743566661999018077285646947082382443330414318780336609282973811173354555120847675127284723119177962305735419515297984331745008533782074039486871843236352310804578312312945306627169953290229944550740708085937893445512873456691682795001879228137268254388976152789359707131816023733238749668549562010749354988010817476500851685123329235974361127311895723130645510420837681189104455088407163750850517757467675339598103607136075140510219465226480738721951757595087307482074992422496229807826888553286725582918479215371975820714910554021614230212655361973390828320814048118770687492054572168505702867697133131729002723542264668212915198269184830880046529401819086056701074136181565755884833133518368283539216453059854741009262666539119919022672320485268322833296921912222077765944258619512660147777621086258453415854491153916635756807349841875000841717528905172691418216057942744613832162768333301541104765446179352509302083850049045189668270710048681213075640733747704832630975940476713118413197405882945124345685786712417966836668252482527310926891074539017350741631573399136492080401682589849590271590703489131207125017231540878310644175498844080743738824234828867167901807043764506356109125690797637681820479224644660548342805818743340693899369976413024437535189408085278181204615780695032704764015478598297691070449066995954138854241376982514928465773482605171423438829030491768771088850697708299802345460184687307112913769523197510531501493708333259065911825998004258552894795201491310211237647968940158469531482428901674617390526117524445687145798545788204508653013388503978444596846539052761427695909582906314984264257733064545692483065974342906474200058936381730981722554121634348614199335762822114316008725229740635942087791497823075585937733388094234455027628679674958844408138606230594243749623269814273780450845506675315843464138458203463225091157537924202818092809283891835017854368957002179245709266999145989762155280819689265857668425560986709727914286187105842768450211082902583803345938691072554664682894444005565403888840024172472775186449911417655518308159513361276547927486169348267960028318650469645361259080609385867335730531942912987792490677516788194989175057320129405902569727386734885146906797701763944178386055692933229271941490885729915228230838289794583571001469160294383634997734961651531750832938817798806915774827170067785740308155186461128925455345250951077352683750739634402683314676343141017235110462758349219607289637071307980210419022841725970429637202662305149824027818655452123259632178523824117789188076071591146242532494564219235446939019367899470984274613119643569898202553559708329155074152935179877091768509325957072333651280422468446771327269786823392971793852038245196348833973489544787752000978940383590245540145974915569034936431673207331355495950015618470546060753962554297393109876642754670076087890447508439715269582136886699070788772238616737203031327332083576323267604597510884218534417208378833494725132712650170172223650425900959731970418597796021462759126405669405183344560687593622076820893798626546976046533371154598745984132215479055034146560720505559415365446171863385572387477388258948842266274007058454016741928555060356169776831341969860983435963111156190340736662980310077750261514462204845176692524692297750978897066761215282958542079127667182597509318031206392915188214937725015214754424695090003030742206507837513958808748775595776290942310021531528440751550029679384817107380507485672485194858579671299383427316466010172115320749009029096265552376300148170953571012366830440487473544542533105098174180946633310674640520896939060996462881377793994405256247894585620223958034881775624236313430163386421144672420213699214184640535460168241241687833908304929570773975428026648132360885891042629972508121427373796807854456161309324717133941325927432998608131942738909235900322816818222894868603008537648045988753102184058703976749706009028399059011871836327109416891713450741093005272095431667099759775887999266467920963063365151646751679004179620631301574214810967324138907379811632254569334017560241116419117557845554256732728320652546141284491056046344684099898419334953076308684375839380628934961498543392307427660388002266320181171139273649247733878702519388273598027616657994485552322566702834792801081199342780302686625073629946212435691011733207628826529746608149438884360362025937544840078057017261575643382938564266344172372168847896336581479621052555186549940083327502376172593763816022177632730034242150912760913806896117797426759859461446391890126363016982577933932603685381574817054670666507851298880704681082054623823426923169030533090109200668489604888520598783604237886437186745943697314803575957318468483777412085554734998062969932419608827760687035748724202683651653811231141135548824048245463103647027866956375353836370493985492119290375158895358332672534942879856403948074911784182872463184424583205783000193981220977292519974209536506602055587576274877266616652956607272146341580705422847174725787143608089605705718636218169509374773846716331140689302812376070066240243310816771002310957940770980384880150878776175225824308589323209278356934679189008406343391091945223864955449794855251792597668439612583259965092342527122733362769563374713023676274677222461609671365894044773352255384939066848800473089087933864470545879341709749196727489451984709066242078103346497560166691792903945220683037576586823426782211273416665265351843756782941635188666096424761012779802521008988186230991578583853683974399563641902065424469252638659657460759224961401663709690297465589656036207938916403582625897235214877203718748939269064164262251723304507955044676492505675183146482065854397822461067795085000115498756268223355241488888511654354312171812764019439463552101911257900156191398480414256329045404879850516642839535733869168602644424266788015149677824013019740934688699698601208395836972527427501349486531461694690588520070178413441538881589199197337897545872224152240575818104551879511168632085418101711807788893150989847652809437529340223425692668489062654436894066445330403570803693917590424586618270367224440232620943468602245235389524962648194597174806529639079509857863740216085779937376387853119250452501264211891721655848222188360411223287711338201282574686182605204823360028001658761855223218100817291872011490029482783995470805984766916719747420162427875016742170957173752102296273698437711974270532697292651467831114139942153918830423475020868219134092628822553436927099690890429015462296881494079262606421336690529105928491907099535523774635505798498191766635892532855044155292070489028881057960348875550328175560272882350906698180882959482163796843503756635407300556118246770606442558765262487495812165552538602746353057724286615765188677111111183138651138849865745296425857953201455594022230683870810058573931477330732341196195611181245863045088724846770757838210251755610345469737224789160242316080110437594544954370552397181159329079080160502925220017642923365676715083448438074542273244287051633468088417336487585558071093709798279097234904558478342958834971258108536036440426573412511395061990370468508730311554810132920189585165370641126593472425384856052718741050382584272850196478178333898034482078153808539918434437815542698625140604649671311433065680589697121515439827799888154051424348454358792724457461696546455032473769266004811952883117348209482868778130237840515553965388622872084276374476241884038535057295117987998920487490281013569851918404735859407865232395424105449468424837396523778120738255011568242749221597006826544348292167173266803775973826176441573437733868823934562441477642979272187201195468245391447433608093636273789173612055017331748936689793206953853863862551940895143519398626237124915296979158498987327908138973460917953761532362837159259741548685291156256853501556033597473949979643573239263612742396166909015213581423737768051439839375464447286312555999784687460813551636824040705484823759228990358405165569361151294276992394081523849485053760712604474324819839387838328084477747549966382657021151851520297468291251151632065673477650889840198828161121689062838146305016254293096666441532273398576437567138910198049956443391733320044349235005203218474639576949896814992547761157727162853594643095245057862940665064860933437884897595776204254775635001789911253048026244870444890424644956670248416531190284582783599397563157825834340363985627767124999797777626675765715805505078840857305645924412425629299158049957357131301456979787581224491008877133417629816870036425175079322784743044257983086186115203027484977913027147066721293980773062652614717116036655727058400362062684432584712441147675697721762177521328753691270523815553617260404591197267766185332754560616019787493735544293668335278352068600570389554686271252020406224455326487678103500356364171318538394113995482658225613492242122725995917420520034405963873103550939806542777918030266961712651365050799894734137156010353088183913785886248930805681976696808333186559446011074995742833221518980816318343642296783298221132907570109532856309833063400793782951157491462807451110151221832259855518192752326418194438553968584252314929231370533232891499127084760925978945035307072172560068242949181264675703845344346569600944023095319422369536393984432757404998803768123691172972788952508129952990670940395713816373678208669635011177282229192251114410190831311801529277061020122507101696084459221845509156560002069037843320644130287602673224889378118442963552011585129226470417835082972157505621572792346288516815705300546707702684243456446201573867447369668519292381918175055401403051562062737847776909730217955243936697954936523582098853382622043990531731401491286100719829834652404009158261076999803308585612211212536513287348023489710959952046745935761886657093498174524874340833327605270123851123911193729823654341249433621056706995719622755983683564006093533533377230578555132195563712387426058471237230216067059140356296822424198727736353972755724541686882264231563000991230662617793430233515625158217023228976413229416983105735701290248959649851728465011872232747490274984953531468554037034673430944231281329327292389978627834019837189531651404193250025681990012521047720323131157309387914977834992497816084075532200087005799581945921870621653063412409285981193336805819652420188169924218636924990506770850135082554528089140996922246748766480975234279099710746339297637791008146599770377055625522899535447769124786856887190313257392034425427353326722845759047572074994638804067744177851393750373029321978716145284957282394619813967326385176648354074605226740173240058633921077191389732273827441281071283914257687665259506244684757705164812664297487850464353387632226156745244215826868228120987684556031721437218583547768308507309816803790014433129482820393498633347768025223269932296489512005216022210394664238720592299824705411359514494814079275231932982059023901645795780560689281379627209094799417426545608544138218110419402947853509060613975680785987210992408493937508921724619725118877874492179234089587439236780515880876558858414229712811155824952391254824750482708911221973675326500203381232565935846294656000769727494632915063275799732613476493307144234827631248099045422328854180299017345952027892819209117366912352367113105134032563107715032515463819673261279985120400590781945643722042029253758076830213860912178180438190270181730540970623725484080864898276794013510605257971861366863431802623628537979718299551714920366824365296285270151662914333657639524771193920766288806622852898489456686370268535355509249543436766538781680373809501943343158245825026621833541948338650597100806043275505287620164813856333210573978557249290051433081067787894121738316403379816644715781973103242033023066186906696521668307908755355899621745952964290588593282221851345935332550899168474234488303011532610344397524862325816105367999561369682117526579056818515276558629453499360574935222786309527218028198507050939914414131156140136236128987332037422820556968237701271835477082447205007588970993063235637043304375759080945184312049818907097475301503212267581720284672650125172043121424345058186920079496152143945935050284468833606433548121808409357862778673422037065729924289174495063103805730340835669432429312941252521079002518152360931457740786575140675932209178907820315142076069376532785197003003356017064958561309749149290798805641224523229480078877616293357608233644618581024350182049112229035757082070122167205314932139968141287090107508688364273224403568734138033606413501506886610128224675082989498930300367285543839564824230377712358058364961904245737975908782668078606753973747788284670075384589881007064330842835498201027177078840972153062954599224515481347811836450290258203444943604119795483338927735659280063408100750343888611287584039666374786358807405023711318305681603116268543994804665405073481241781120512059562459739418837829492667495982777897264620614769433620148908723323093199901668284606025586752642880364499474192576519355478453472896597453252467140658535758759170127101289550827166519007681214983887679169172111340154525085270273362630380084340174507111971600147957839545612049872350144366507156130404582576471590265655118554156904626847282925203777015334476097555598214163498057687274450780346277940027761699941120119176427536862893835720734159647775864827847167702141314596190542332176127563931633800648927716047232619321923242502722131003710242396999323784691064610977179140050818106598150966463384586750897736537730809681213369205458151234434382495094206375317287329104532677124340288110410595988134876067369870002066726709349906644676461811507828800024608006499870005070519476605845572279251236089727992942982109519090431645307137143305908714888873544326170168878563362927024722663188144511692787325021565705061817326253488693571967543176240801946771607461356627432150985738678298257713848093450220651855268781240082309104064868721476952816133925589660845265580404846307979054584171964327518301316443751491447790755008742810648078182873689412674663854893424643205936170038973274347923205776279897212190224827699078672641971418570515385895525530803935393933342542027169702438420844855322719478438425049942997733185480823962664013931622467924344345448826512042598279808711114829575795469295224176418279667800158887130160336539510560760686656738323436615373268943432219997983220195037314609370899467085047386558847546362094217702901635453106479416763554270199449766004165496442896938624191325588914364864268818034377340853347859757310503648786312963446634569572758959557128461317963992788066188496901366473965203829514643436628128781450044465964619557804558523317716705796200960336378950327847654283776466502956189742171596600526476354681208470423804839540475064005965932284984691516756657490823616899358207339948972064672746348615129120477895158659689394033373408873183041818753214409881079219165873500632666480031678788883887113775242689900050994572209779587711086987515030838169720222248850424325405809421375180635407328853940850631006783449855818594575748908107262734497022828492187604457422461626005564069180353508921080251701900095914007192548666215072027806959703782634045528925909698100865147085758736037631379018861665446927053973516417141283982349465052820968315409756645826501589272295346926579846412697906748088777593598045702992590492098222905179170301823266802313256630368077916077135779577268733141200448790003976135168910045361397831478393155425247355707841111880318535117218548580637390129390007605741075850116938823175826033999089267264945927770548292972198761770449133313275391323329373788945469303468146540235109204715377025352062869795299273821143139278480325054743359742845508096165897761567038635847370955861926167065101894746572628637307794425560576184938285531843990417483896669112592048035235241244810041004179584518830738863181910207106790996884155641282094641324950062936149536479212492962502109477180457293781107450132539655160956627888953337498250556822056183980867399662299442392443209886719603893256703516694578729650411786656501995810628423470752494496384285248662488429056462207242321392736597267342326044740908855292351799605629116921740454150577636174810951781851385456490473660965646447107856723561529804133412830535283219807296000180062103956956163051822960047829890724890084440314896705909848210050844595727666483230546818442352239151252983895305569173086819807331742132164835389449363709724773453619143815536553420226665508900111382853403341744820731940653978225806783878322477724878681085816416545915103505539485736031410366278807318961661985863796885744069371391109171849762453265194082837509225534299642651988515092692699137047031654827387924300499331436021760944148552889555009962828477007871388956362552571631752608371872624222516513359675467633697119313340329907622176243913824736785273711045094771615942659751920690331609825345506741919630698754251487243952621535349022375175984179961154743055573433693415889660746747543398349967046447463515668963133993977173390800354634140553483482558462439062308795590218729450182131452166761193196875827006150696257583720809950202798487331255954279891406460612594104655634831499874278822083832273394058836460720465500271732546957501698789045654705369761330664914320884909334309706303879143436352216856208013631721561891499744470745736202169482212972020201901248651421778381157438480924769288162188780323978689141653653506581380711501293854892173786616233966323756443893187611641197561181848651207401116566110582613424543027456921513841309701763798243651655921323953577746672819167790643570302081212440631454734078464513998508472564795389121794232668623530480532709420427785615675428166555401945000440233796652066651075623982622801528371168396978393182079469126553225563180557980313062904920893657113465266722874781545679014587749491816039095163465805040298714796658234768792742260743437273234665748540484328379574828453903698540732536255683512356478621614147654558233885806114024534428495398142956139482565722521998356577434998587345264393605294951558238682283570388855206811843121472860982866460473603442978829145593733438503293742741965897450578360269016662951174259719093917211519501040491776248137158862206726346856782079751061293838019080429117493621253025593080073490467290184055026219077408965473942474169397132445765015941815003885716211662567556558747772881247083506382493620955548200190686477061496915541096989076377337137041436393953637574184497841416489028098699621305298003483174383755637507353282706386101603071714393266192703787799086717915333658770423032638199236344710157423856418385082925001776861264494780347277334305220591302856840607697261468119100539425356444111637415943027523667252299171711389480894850462425483896800737610199730634888253484060827652648835646423714724722412978992272626909952509758097463024632289473611717017814701930323713223245325947246842588483959535791619476568227879993795564549154800922522779609018306503655741647038944303160423875374118266987806170124499143506085376293883273980599839898018553185276875656689379043195434038009044289802797818391530126955268798057287236789249543514117285133125226434289820890604698688862484212557769355388523321541545901977552262818519758147856306179413036062695538380909478408564495941941705137621432762287371930520756609611382439839833785954239905810517574655024776238912965543630144024519826536362821242416951196804096468283826179084606651236189894401954194562130592163903897608593978262456909320223581892906271193325341278612166995476259793911103464337644246949821007768491665723816527208981424210798363151424558374050022018733642741874280203752741313680474304249716130402694565180265617475241688284685923723388598745211695380497641258642878306749440064209427345258672994033870509405550412437473513847161076923668340806443297636631455423038409392916251928489208506718390954504920533274600977912935462961140122565428927637116085757155231860021083223198879673546758676625057342295751611874607516921385762538507281331593749888387551665340147165356166282302189296402611444244163679085941538769233076472151763625180694640914338083573139890836713491206991204661110513335729256492609134372116583426643308564614618015669244100973252872757742512533073092432001350010924892512576844234880984209118686078039921635463362354955145529733951923213044735930391544448641700014522249907056203868126652285359278701102217792949861932857690154509249524353285421718816494453882230828525286215805137116190167090703879430626606910383143815320011820919279287644760778814391963405052944332423370491860931810348857918045140457706882051818698471701050964022304439383168130804453857315298007144620466944837814391608871797273089896821390600246353235412783353500703230400170664141932993280112235633768724714949222311731296611041856771475840770593649731583138745668401744274027829800043046868295600315637276861716120660328044161814217089036898738811690964664781595779599268743536401838473193644454331119581945310364312883844184279131646965410203125337896358954910548610816977746355550430150799142470828437068640834052317579958719255827621172119048349081116640896025447912443019474218981494114409214061919372897603661673150945772008752277120084697014995606931380286588335610548442121801596762338117859821004968287804905218002161776211569040823609829234593208437767526609963899216069182033679983995136998446150638363771117848934803158620118118296955688444311982869496395471103014319605283411631543087814080264449066270286593018130359993243010690372941852870956357720617456470651399890253488617441238458114422974964028538389299528519475824617975758975457316430715500104310325571846995301491411874433997099009934448591124857095155896618106620879223338170707276666276129240067950992060873646023633394849685467127555433811687551815928125940561069712265710619978697935369673311673475681928750714692779376564223421060297211763837583767524833953944268900010519144878000223508261223542245447848984019242522964878304866370342038887465889305084503859165878628772622422712825084743600405182027490762430560203226905481018497256918516621136097960156323272889221841999657963850640614582832954791540696052255056879120443814326282011807463773884667552620512807976289140565648158473491385721061913472465154168469466681544090874845034247346959744389609226769629663578864930304787926679847463194284344371197773278559959799113301078676362817717328964701232997776238564758121010473315370909420722572204999812159358930294919954601316214658294274925372556503008727214146769320202394411685797696513100714104592960185599612359996000890735134292731232247812218935650163470910875689440179964042719383051004879054870896442729698784031586325731835696908325181357264073003027910547459892231076351056128751314216328771012505043966494385653898914266026213515120698235805814297407659577776890499878130830641858449833877308632119699632042813194202571954459622844081881526471817462790199244849596453425966978016741611469531269182938728459721487446620662661647578198096424601257103635257230299452268797555182541045881611512896062509502070446702607224561511241173358627324313885289420242863080008133931048161343904338931454464101548138582914137866848578092295865107098991267565769175426563868308467989721098361646504299438920068561780089422266712488276475645399358280774596916796570749943664938555283132820821625232054860866010160793863411831567508632191646014425931320701202627154771320667133874615689716110332504271540434413619739360714011933259245311877464473785604714222702372201497671559714484722810432302774405704371679719520512112128898003014776115871353086913956930282059599482008317889578726143741029787341003321060081807437800372462875899014664659515105761528583471943903078462657331631455063728728708666078563251571128811605395179516802945284381308673660887936932484155722157524621813700373082993688433646899787767022209105932492967944443000101550091473247235326201602210718408879882616777048173046379241132738042544881398192879063917016965088991854117258870014425324583615912885233406510109193840032378932446194854738906427333563453454052800423712866696760401398274197200317290632481466857272718787077695158333481528802029185433563093349140025404148384250733729343912415250249838584887716611452210621813657894128364818499827515071897248471235988952735229147963791002670780935640156146010352842897930868141361928296236192353867722726458653223741600494214162890781050140411724100700991871974124303697773305564331136654413266073796749421910513962580058261452421273923856555753986149258834321245622881090097794295293149587626439274438133786333904345132373377891270519131761845565837505461532357193177677860097872337795859991296729439811042764315263582029691400730237672782046241369510472088010416839171520840893006565064556228950882868064593744565001550548204553842389854446613642394124524871952151556633497065454824540120862828044339336043231585956139681110805491085568631981500352786903422433863055156771445828570373946832036022067522469369985898272154616257572877172477627286196076567448759631469949277072766809017205623251968315489699254600496867970856831170200590555379579344785783580492478583845098519392795680421282701242120048863926760600130274489147746124188044910096208075718879871271858330290296152242736505731882580525478695248548591480078204120672383283489786020050528722779939910096097371306383048701560125816554936304687351314406683339265320873370352925148063837148100173288319831514680187883025502049529269656375288683838682922421439763595341164274848581704988940812533487837204401797190462705121736201786318013099769304449442091302637064699571176123538623026752966268501656051133116260101536565570239331143328206930083464672985855010696093139507033480784477967890105584503998502404496853736480204497130501952614848753106894711324686797323597114582967226563549323788781839476053487733383845984295567643164387233232485151350046222714890849428886260262910196290885456070251493640387483773910515157899511207512006437905291598769780340782903338873971742225578419302028111695306935509313301625695228804754126377639966779742962251623588970576991758281254883121514533636522757852139327339018875024293501552426917176048151554291577394793307128305388195473753359769952198901685346592281329406463186392725143503609243232744562103218878193928128301660112890617197988323472825949148096416477377065764359648084404698435101544152838535589297656437727124618735403672572698261935989534174977868430894785330907882665402662242843260313023284171227641164230109157316264874211769608549429385428070146404384829263975557841794902580553835726988621292948268281175833117765177883698098387046956074932562413519251557530769865732231321449372153352970133484148981606450761593868377121040851429150607214321936508308031391630236863625864815365729075698339069589736645718032123928295766119474185834328655056733056632248563889466451048199703581062611092491201422722360448191423462491217563170450298855642809452922409839341321438768235163872480355765315515916670194207562518850589037715166676881148883664392415864324111667565783130842743464765004989070409457175116900585572706461982068976971195830552681301898511724185084163471046123220052131347219458432083712564729124726124644419722417541179314361890573684582525573455482412446264492883836672135008847481446197024246345866383706513378361079100569242762457946671319599061401381525138058975076285880472168436316902457755510272729724095972182072192680874939006259281949524563420510200161216997377947514550210508647443597448440748109536887095424992092139055750545087574556934387223405632465878238089160212908593785840009438680367005330311277779817524045633066706041093151535761876042951265933866738359711514904938257468734732687050943246563738424324128967021723378529029484679339949913927790467929173242199491571196346727274776746011158204986877227398341157152514873955643949242616898662467439246379153250486268520548781061950142988960616923106416706132857097972353804745074909208706328545050030480013331550669667266001868837125494787028248841790048757392893557207264240787201431215189546577787614405762098969687042506322704438373427166914678961753936398906291103029795974341498276100557875762542365587206790397726771273803568141048096387018971533227581607090977189122111394419660364224475672528404911119389588918728592308063422008104332620305740691265605890110693960715742957083280174523472432517454244551334254373538979062569335252632541586283274136418759988155589781642429360354331519394813987789129332627078895390787546274967717064096977809304954009571300422945426955223877724407836140838065498810720842286266416311655430838138413566056703617097170661639062355576091396746826712603200870046123228275528131746005343082956287896852554650973378562162359896333516368147805637696725999917811505490621551761218047197232494604022744328471508707013166972457498853777209512349270787115404391722783554945477526911608794913765668519904305756287588609014423889743390639776078121860508103381260206767778965455627255079955342075181117564098874609996371302414061711253696682476248364318983744241037297136070493434328092299679102876867839367617331093614932372563738743906255580954239357431605511943075777080415080581052257729960303362277208841172789001879585640542149626079402353304800894535816023403422687996540771474511117690327350735145234495213061029726893233595102789589819148786420223552434693742921271145097436745692032119795110208312403726695792187102008333833806787916008053572040043017524205203385693297261318243040888021236869803482708772812275067186552616732860059982528493830150644341711355509435421982690241265955449962919844505949133881273795568289326066357044200245689908907570868796849065713017304486167685366933358302400146489447659414603391885613402393500088350463088158816254596621912683839504808194643959363739517089123053224370066910585391700255790324176238691353668210165637187964080416113289510926028091920233551512266367037966387804487117759703335935172843261315341187702963674436254868010360858885083833723646270453234721617796410185657722513025425358571371233837991898290176882293115061737026320682284364991268962816415187221924508333727704298098289370786317703645607162450547471284919239756013298312860818379704209682430693594519145449179346233966383342387377045992615813685504598286615677752472898402801344621438472293756444246213301700949651720179588718244397437892321729795232303253921245980140964492533836058212283925255125764157733974812352715433443143835188798141656952941757260218034115931165826266656070564868774890882597298281970507379417436776850123053302827302555925973195565346874554764668424696724486169344002040353165636930652756709337228893836115741085774928595311677954771926138377367019400424400988731584114383775258094629977993866423250798198441017934760226609282090275751126939688145189423237075206490146876327169539688382825371628683775126827518871773442401713635452613052140462871294792380733000239633420869459999167906201433500015176599752967690459105451766518440988721451112138547378447097373749369491219591203326525334851773757303009266546377744780648423160790991270656565780372257724678937991994801453917124729800700120853995374257149280588883456436283642424096165300045423499295135682759521374039792184238256549324286392937134096865029468070461839817897153286100476250031613071131347819056389842155118279974478629348688463117538806052285994216855765350591509060994411121014709378289184672285698179958437750117609893600593807945130409066567273294775618581290035638618347337737650442413179182065150292235418354919458013107547504633497187954242588633685059770213693187297223962108378556307667363061123844812083788810230272056227127336114817071027866131597841353323342299579688379308278920758646907217641799663165756497748602587544238450644812534528742737655089134414430202599468412504877024028370016077251186077096655595462917532025659649524395088127519771427599042524783711968270396020527402853975136126827653313893446070440250644438386773468927414352823573111852642213406056580443915575291806227728619697386682356644522008897026961321312444789105977706278588708599362705043925494362448070008561606326884375048543957452299979945579453367084568965643473085901272167166032312240106557409128818586170546335356283792728571254511921145626766694019938304078327768436416804091862524193185473626562751264217035006482061130779987651998864680769301357922812108210816708593653511963632189455173439216863631564868339741100523579276630680277499836789002359777903737404171672015327473293576763476244243748684691147380079806235007619528359528681343850167666778368186460186508776456007630465713412438752303071912315593363816571492805862881693793128884637610281570799563732854826120814325370933461966906904263311600059551876533554913099837105784848345917749109131058353549156014898160135462729466286467294588133926713011667156473810836077464145977586361334677991244369420299925910342160067134456801576748433845238348736743416635913601128254647269753360857887139921835138376760863561023924538385238459599475684631366154575035268035415698240581857701188491887862697650266074547653428687281000401225433552407725037577904582493366289277860828444168721768162573566904937734818051193617254208850578339154507255413396759524532862026279814960795256908407417860327391915639903263669706985690267237183302253078935196271303464868422654233475638068987521236294546685049403169909964048851545289053848877435021793110540343345485388822964328403835914645353894104564593673750631659118653909434863621299506945833527756510042812875430901542878869890130977788840058373492820022156140246460401124154120716150847843822618649336947609117102629272949263129212043916020950597092479433222114312172024735840114513756158944363845579900922947520361487650751052305805896723936009028503365596512931068464194943909589398262789719740635675238422863247996664058236907754185117426981859718415961024753197203281964689896084722189432253552607169974358465872910718226003770437792349655492937831547960439637200113651499921307481042206945494208890997191363782668080085069069157201284081456640081137098705798509084432468805025482924271447179366199158501021749221083537074439898783968526478960288278250656271442621245738825691573739083756096753899750464309158868508627020201080471536090785675481586904880433740716678254628375849047935792296968670396260470309879377708526967187416730422787961459919447743419604418921824171931556333899672211305841918507727176417114698812096074124696054385059006053674789638752188030641513292794344234843580850079743504702171234279327439013711150325682739058780592355915314214401794591310459185019959298326811232786265797691866690445816404504284690176306373365319917376109032489678322786982395667408324348733353900335216817960158194946733230406765600579581083264173992633340676981070196713483027754474341577124014660928591107608514720652996088166974606662882975602967072293661737584487876688967859675310342004898915858766695069839753296029215901741407831531746310418724391283365277160648782350719173288044441771080387803877817518112117051673949741250765262421811449366633375491464471197919554118889891794724696303945548011888919823790899554862834600165688203303823129792830048337332384359721349400423664606198902612519498207447796613405846054690132306256526164953492535754632049969479540161440399825983689625717200716706123742038723524384956391492305958026097134422757270894437264518957921915510019013247925525902666894458578110993001395692578464054849673429023824454310176137734236844571538059876497693268482583453074807509428572941716366206624224330886028378414684322300314388821160398490530805783634791050721385281505294565315257446478548426544169422946076414026553885878197243645242347808579387930607027000147097633335540513784825045554034669535154036531757973687603521856791455831934508576424251678112155853620123731955079587165882796401183760108569110093030974158397072948673690844772519604744267622804264059840871134712029859712140864795992127114345707415015921589344318931904470928110097148846792728321940964719597691661039675495578298302462704926169001586614228522718280637804870511067783606236350357235917010198862083572058067401872768772067783728452927337705771247754530608412050589001533656189804918472808501691124446996381651216510571792090201938454722672080384080463507015936691730338840173845564857327877568021250917922533643375447213609216745889374065800365087838069320975513275086679116522786380356310784404959392257537111167576672424482931033877379213493807933207023566497229060466958649688120476582868852305531441316846102267307112496895829495156222492051597141064017089879857613583689687891684740106404321671281007808391610685197307853922661615928272695201537295588148970661117855399278090209376111321369905991849352314142232076345412695312726166696303411426613959221547200912892866671578948097992486106228847265417045158170703658424667872241820457594712781492544468167460369986015760068972342016668123521623373126935272918726692067872319499584805407965206904548628456765441587160167419255606821056533187186536887156472986671862478894601110620266061829938253393161740209966213315644014766058728595751984031151256658872927429219792583192079420348065289593665018999597032006740505401404647822172893086945131735258565734294128894989425885714067452929047187237273830100505456938203329695486309560717457256711447792757101270671086431476104082893743515944148535650148812945920580561756561804795612413483364176124714578677005378712669974528853906802827332257421034165324631045042149969860548961557767154613004294479353966191865434657632020245229692729824805946899769670039461871304177236411761907003320641109526105233903042952060444649773832820574977941359404423676483139658522605662802856510568764604032434393739581355423318221630698957603336616955892412598980821430454009022950603548507302943565247576316414383372666159942470150727660078989835248627470098867620610408971722414527004733634429790101785403814522973175056941398021780124332325653635769382073383873242412763345213247179245865542243649235774444705560183041576985649578691412724068358152655761378724329193669759015557379668478090440069101641483184653377157844752144549803497777728410687407980818813254351661966446094143905790339045867555412467637525601471418301047745275017640829182954747791543903788462834312520966829979187370920759373777737578735777579699062272443231827028174835016669801736289424228417643182585630812577197035306101294188874275745501751244746398816035817122042472978602304935299252767994700109213306941090865484221915528630930934039146845880206908591630898285930637303909595159867797645090280775192418866892670963300815256621411827823032300318137848174722939289047446928066818380715039064179991536936389995224723102033312542550386374773456113359336129104127335308482770054537393047234989145144455724799667494473131070500623003275243672104657485465400616049703909492413048340814503716978318874486770742635895700188278219785569299278474520655129373022686040695238549074652303639085213858074197269705303929199635585225514367155210758524891806681653808239519901444449439805050092344572990796047183962113289007800597415463318674463560031785280409514717600275333151159591229820396554352817969240408480060412095830961748275849863447004887217607840558732461396211569415119596345697756587769463231861780301131171929189539795808604744790774524294061500643326720811599263807838620566152661361357145455574508766575353125182347072984564416925192235690198261925489494326246083624533535462028187415654992005690946824664619841408051901298734668382742853961370576137307062683417957148407995202585351148962387583713765632876008539838984962528230253836801810236095971701305063999377897428578819650006516139159846940879214713211764996980729196807728378064589585059817267838940383619947880872380570270828654613134349566206679075512020369585971905104360362445633737624325395329770343297524855060507310235128457238199644517285352154725338541536518424292438209070187671222874716509061087595675247607657716793873307247351794567996510726596253572708040630632804909950044849356128045577692683263664843848446183496225568946183371432540150301668387335737949009286341227769235871383230747091761707613004854038409606302577447079299420966129552227307887033069538721542420653736825475675379839477410942901637057871331004537252620045219122686378065144260889437826229050181807076895243316798071459430094533643076398768223510556848296867970590521251927020472143888642636546382421397098977886121760295525560416627768848075020508966031281211790715642688304303687986113786213480186857928867687058500594659898468862601770001127355671163791929423406340389212586443274017308864600426352592999778276026531348144051597030815111025094615659889568576701218288983324149774176197034686938331525042285757276535361733121351368235833639008078417036466361966899653232840160363120819683701600885730702539064790193474058259533924602621221267637049112391866754222669698217906858111281234452971798280328210472841668246233939241384714935626516775407274436825380947176939889839884780594025722021001743412522488625135168771744478609589346402860673538867372166409629646569844903131469826535178809082128168062042981405052659220775727164197871235924148999398973790441467641877720435760162657114111382013303711151018601600752400012153808325978248769690776274499072196390349747497910346067340057297349393533865717775689920479983925317953833423976464229034876040781453473656401970778026518658655235256253671056521434803377827129201893539511191013294640768799870989024200553116254735293630789971731004399051585366891392363667742863286518658370606626689954530917837138344150587732144234317153252880904319312200062356989439613965316688354166245197549692251882984496233203203081325240678227992964728315022489280812738937353150454859713816771102688326874923776796665670693637299802507622569207502955662374604759404996428381174690244485939509954190549799006098996322324936649772946053199391809498114387973513570525163776793814980783838593805299674011152313567036645354028667734179435689023680261326345377856264591348324371607511344333058167718988353864661211405152845108220046620745612082256137756567697636892064888987687327715186986623844086127099302049063399629622745847608153807743151089636148203267222664986929288506243158404851538220440612834084181517747116873193531760867056557957272995696259829350703897753357233770955192716630794262228569074839861382377243988149793431135248214424224364726291166814087835062261061449069486726192655629016282980682867471843413031239303529384894093972207033115331994747775431348151404811287913119389344566194097969496624805288854635408137403440284461604433924471894737632074073865757464188262900392556770381810434576079045032050058555147613781213441133467325890441450853915995471994536444137723609979295950556041535060195499964770899672804323565880616484937894649472029345644843640728107057839738362879925541536216144932874874823958092448711699058007371184114378888692424612281752753482706676995473324990562277904815030692561809270051196258758099852064682961858939004092451438953149346974194986949907766249303711198491744840136027322592522784430241804173483423774121392178243100948476089324938589827518294897695894048786046160662244151390430921628868351491850324174292029799096343755136512945387791836126498583853241504393506747318756742523942504139733027487553321162968125328385103825727078094851641053022284888760607990027302684807288802957886527803316031725198590223879099465912961463007052350716528190999726545306293229264456283489081123748613658678367141518587643126905687893803627615537488680577574815606482237979711923598190310486494236368369232006227444906116584986943729462157180196650294990419370889999172324644402630765807927208127176592174515443165052278359839001114629739316304896837068994252294634386854430678724249620302629190185891192737283521192317977822411105959642235613940048167705873545018321795291762192289486168527787167505108189173186555193636211456625773308470116512557359026387066007335348723876644341052396439750682208864930118654193947281443807560070414524068374397357991943778940712331449803337088647627974608915597085074638577675548635663126907887992507658159477484672370526051440157942324108147810970700764381241597615089213081034019774774364280556329041116823125742994724254982761952660372819297866632070808572207769876849227377466585059951218980060005737834304659366882062673057571770164647855552837966999345208182581660276033071921984886659678083807305714957504351920372714350201884925659126691795406938953954583525165461200780992549042641799527855092811375461799002787174362718308398804973779371526905679593708149697250908244747109345264951621434734853451645422356504595254746211853658599261630214017761043027280683450899222266730727931699791228035582432859825176218571587323116113055302174525993996882723705116372220803854770856392346350664454403833220965837700279516274585545864374640755175435014327046809663574421933781318298523063306297293446246556916566905888930003623510908673246708041791027728685891820093515311775299656959262600178356013382234684603791125034149135342938456961251382413259419820504438595452409499628500205551453722454728418207783528787659407461153890309527327850270436981421391979985723665522434634696874218894781453175834991325446149430300385040536665287362409408425714379001606268522952717835548464741362808967570701192637881664881923135719919173292155704303975766288522393387216315563037719179563862603919156088531989148788030050517719882249945350587496154248043287212630691043322623782860094059361356740627641206509972904931577618558314745608583616397057270319064565873961819282822040143652544828112999400249181346840628055059578519050500903416505434902133341812822335623855502617144116916609079740109491572719717861393851459179261722220758697500965468528010575710526757689961526401011352288640422628878867965390067014074577134785027706108194849472780248644612481377186936134196953148091650901267745703739511258501519704033740551112312167142268078701359340824879802413645786928622539151950048104312623074096123956304419510733090737684042767502669316060711738143207395521045392701135887418857888185488848449075335780270078290970154925453996829470575771219350241757993941850681541640638603418466865753933885593865287120195220730306253377546618068601773068592081961728831047896442203035078716760030736908966322795830934961440113631422244438541402216254974161651593445079955993005650179275907384535156682829853602818810017512639378540566109613981017927646564816733944989000120650147917535749149708587635026895280895354832261631660434967908007490121983088744256913330813511505316119677231289969175514853928152133623583146880012364404037065574153056496354502497751084253942327421040861594773631426733602972021053926873131594999643028342737537755026150594149825011376570793108462638599177467695634583334482001876000305027182531574054337622801539875556623300252423765353442383696965927887838215491770366248730695181072200051723259642252794800012488244230546964957107556984009174114875085784270764669914146662062726879630666699746897692843576379399044750679579637706657045452151774202708138212940587785158505403092026832718505930621689590199593071808262685854815744549113018311866410106559684294093346372238916960804127705323961984110707891635352604886063922478290487457184627244898645771404539849349383677683283768310134182934551159092724170647386958281951350050001618486256538169048982037882025965846010079219165594928880336580708396611585838234608440749127530779289817860274646071301053732506564842985918569602098658276471499438989994497991355870965376783917470658299297614619775625080087048034923683404324018006800883949328115172422613590476919245427922399498656191680415287019505953622518195265103968770993104328992896313497865497231274015981537068022295368154541358682439958381945075221292701628163792100063548345962099636313534371822140152146514863918035781836932490389561573097550968336906366030758462040995605857445114861508472969266422849245568641439862949248262566829389123003987919002749778574449064908687614401146008540436552777156088158417384973076330956456632740559212228263600732355974718087939390275706106969754768144187273454991886882325568877079754355406385280121188458633472025541854028188974144851581558460551943779284477318319029340079312557903106927570324799060475890690074262928888741359817867459960652726290225630172639855251023602983614211938712078720574008122166827468740367624581794770301631177774749343524002616698388530207344667879907825666357825438332091085123201577160486798058061883421481696496694260340461313781559044361598940432079874931590450590276749889496369970120419203499884673341245275876130394057153431337551544997816256163436303296220953236377653645855417535273350050949499948913582040137967463763249462652278522728632036026655095755360031625149773181232497885071249614071245588684401520465647767029685537690020117049803071616014187724370126864377523412084171760566721505435466986331446841054885365317820941715418472177310188930387609597581096752096834710531227887182555295608563402385231109856262738825129411781914913612042818801231762877171832702075039404262956092385542781004268152106213587597219024843604198027711010250798951809276928362036380958391041637600974675499453215244915562234447167408660094444424148725384992106913781082619623518800329367751411452760190827525294031972229281257789478195972729063292757302297681614753243947559926693273988315195258983151552298808950506626320000283332306791752539694389446821024689960015987984484283584159622482945442349874143541478006061265901565941341282937614625796677740841921570180593583993904172522818406715549766405349897146750220958775426162288412389898761481195117927745748994127859730946970846031150417917169876547724013713039464023340519242948613178610091681155505240580567939371203171732272797399466565633791140542512814299659726698708209561757388578153624710769260311532666936026369460674780920649449833601154766903452173543249027863032157839631819436989170667479959655649957696669421520140946944293270248902232502984873546866632734814985656965695596964964224931811365455990700727963172489191878185440401039853156442995223508560191674086687727166703895301355809455779038418539390067566952736100821629339119019814977581562581673414329774370052263256978561858547605620229613361412562513538284953411553120733685999636696160136623121281220527859887349656311015377453299180861054322975767764565790023494150129512243250564536843242983037616492656302749489351923205018181900492628782973609105887792690740022077474957675508443545532687971633173035464959792729353386519996311223922632365779240571058528784480064690625395580619282837751738121270756033419839192156277747294989074211651259798325589196258537356194110290848410436052574517252634579402758411396789717255665850672248806362574744968413195496280931148977959646825391212352849963623334245614872678115100462961090235528625375343086559321055149358576642413330814282773994882136270909334020531965433958983090987696039209053597061112552886703541134495745354562519179765491372137603690011750972557178836052060160904402266961374397096012587373458083689512873391174614017693795890077138422048288810680123360303858240677392385171853352792945752444310408507757888774034819744555864956654010561568871038035997573909017829770977604184928022793217152669725795084146373458291026391520989500660992070427441243644154966394718120742195439124255806173744918511714526101513102041701471069563767790804035472169822289363970594802470629604057889888237553762768884327966330289645228584229540644505408055632012248027246894175986744824717373267909935278904269503354584196127693694167213036554753812846341842673519789348591014242932463886172304755432871330101533391240685558277692299069796322028431898830939484137280858276903321337933960435449533695091165835587692582492367402535110556898585805972181959116568669227143317451800496949437274466456220457426750250964990762235920431551393605881309612329658990777622902648112767177244329510997771693357907898217903692201751580772367583987033665117417874885145765836811084498912833564222061047188563868842589538650298311846284131004591238040954027503395744660467485344467955385330609289043590970107457990364569929081237885785446765738645129239073208893454131949829061344062395565870884360144737425868978250351642581895364892528621941784776961074918716104241975080487862900866925893099663058730233467873171711454623732532748325257518685603531998052927373722202225782160804116417392121070533355572158934661019862048065907701948600152991583176026893663104882302247351357410987297118346513480084775346599634747176552256097333538455127493127656388297002900313299321227115214735561755887923864834928587782994865309628454472641650987842878353619705228692829778148168224956504384576539231534437254750995519733535552007223765504018162812244109411877787313341078543531396799006768352267804005662746176247721380177703925698403229973844924849873599653212146385520761570673481637810548465599809385942524586339690914235041170175065380402427604531153099161663787707188243845353699155332427647528405319720617531588327272148181638200528103739690845759833631752411050480737198896293045839959258247174292605784845185908488405714684255627794008315609470903647147955699173315023388055321853801256540194709701769910636717295560293627455690337281012846563056625926200821464920885794313952016187817950345286754964495323392674648431280985690364788355248093085957487742462784098405905622525602925506475201770569021826210990848961162595998878201449676640286904174028617857845311383308228632851991079327978468122664180741917562687533345892884132340232054990455811952614723617328995535832948501783728768955933496036898586809808316466870760090925039854043216096611734164318641200565836560986573732660669954065071732436424438947273442618433166297599469147904040337107369121791722107268136552058560719596306417702192067979324828946298843279993388965709108394316298470076589283334198007058914359975108347631442086520957800514336553989518269424780481597476730258448344807420717787104526301421401778169886866986254970851424352942652187123296010299785919271030496322356144211787385622151340450936795719765206875814563616349923443082566920434869997518507678450613180564550446133818129090090009896142398315894979584896027860489197624746015260244693715460078284181542883135580858556093064863178981520824425562176428388259695449726981144367967617197301726584414967427381858344582244111501513002151761874114683755161004855153394123325011314285119123392430167092205956655232272810783722255029019949560138384421395764180456272981848504702508097619966975513271404158541796265532939366401565801401976153517534268652405860475665502189469194538967870167625076541737737999487146331854834378770909835986862610654548029325466354575606009729872071269576237929448143230048629630960338592035040240609212583580608165811256545222815671379005591471451947390324431857697253882959859645522619525137559488399378363427059118628949185530671890357389406845569429129370048599177020249245492377420920674772809792483389162475454747918252985979138012379356707863715172611623811386953038461337544759163644759423221411266518196246317705051202296746607764912461993019146954544672762570496700307313062676791605679606190696071098881728750837875246663573904863666507421123101340320781644089609283287532214342394313725775386011670922128174912059898235873020946550171336741784698356331899807748822255125402067889196049797191793827923323898051119536530913734004687222284714166894250858879326837516538696689312996289805315071139044665824132833060756205588246405534364438702729084968562494384546657408998061332883505214844091576673462191372328066420710379441240074587449514814640409806259184575764471408877347706372550639832210509889641396784957134821867535414510762731109270231001195895334691106035756255742874767669683164972743885714056085902437206218605536575007782180552865760580007676238578520851852418354430907444493847937993763783389570504837269639880930353699710943527750035568575436401407576202461081652247572389780041483900777544588418529615381257345999781724422275247436441145467926746481433563839307472623127399545177387560555996452900524503642553281704505317280212500746558340924235513529565671636689128310090356499763080141312943420268979847653006192545623572228375067692933536145594193646061606912924397561985687170663832686804737492323979449137001581865669617029665702964270819722172554844188738042495835264070914378735303555213249398147713399994700166079730729705991810473621387544184515688132345957316900933398587617496088214482360358245117038004818442238918019306517034295104951942260175136702602959206422309778198408478099336479240405009529641458956650536157501714567117315086166115980512524271695269813943564605670296622095009608890767981308951903812378567656535173219493368896964163178937561024524359617517503525228878754468434130037365097731669404118671124785128809356529910881724161971502991566171512000006220860210914121751868643872661526332134164178685502538847726811857954470838400270399565116724432344380888128148089534713618049075869866110506978424516615891057527012870798056064309447456188639816895658278141855595028846978102616692331824535176169470032201484975558308090439154737144158454892042555921231282244191290420591087382692482401642138753416349513103725926545217052052878448993279658816276460436573684795056801249825318713467601979731376737087857115953847167946913185912775226837189860430909678207164836708277276245035350332468279778915815136711088211469547310068989948299267916273316826480811010838035836245458286261454567635943274786652658229001921883650451253755057458356414313169226973659052632874009673100376049544860031437452381144711504434203626302917665775781387323904151179321747012581354189495753206270356089960211583803583200993948509671815895252613648071919685212626341365352063361465025992787187348697778870735923696509749221737058396944199142484845190931667785574827289987487190758937592315882982071580621580200462938212572542505466750637646635581783347267253398801155478516046486940843208085938305450137468318265286723837910311530746636253106328229587191721869099930400608725526807138493082020587265025041240271074857038349154750940819743554145205194814337368874840042994576736343552537555540228633796273034599775020014178325840263305145850598148849616610904959604803015632161541225627448261667207610326681843283472427102819051547184017995646918921257147884961438579892971874117585574293222525538606953094044274892031501457417872551044364443564470742141792738176254364325278089170452662340841659371371960302181298102180579792867099328863885223285373723252691066971159404407207852357187498295217878535250717390016443966758996696113585683715456653303920920926628512282937889842964296605830316838103405553051356380779978914971842391239853746336079463142424095653862231820158677254778457371245242034048133763543728731151383619416241436288146130834184537960893341285569753007228763788837886293483446942590139258801968416257595167215585617479694937781465338216907782633216892775980538090703799134745669940811783589614259047618734453757808790480205698160361081264660113228858597729531183406334898252403028589926408776947760707858437798673438416585029340243108203880209897887775309522725160049219526938090026291847220012453520802171713111995222858098066755676601651708223679918668237875056538503999738919718738134452178873438047055592973266545616496397676353191609002698015302746561131912620724117832290869260030684766211237442423762596487359129294476969611466656310190720843875647135783706352821469654775208836123546239364963886179937813027015465388077939800239782328694979336092795588897989747110425353711635536730600235784316393939224917643534505707067574225906316366543785220736540558737123266397244923994333000604495137348593722661869218201013195231446477848488032991227572058212312359038843684737839446379949439359493386228900618329457163652921844808063790804385554670058449312321085569026543048058632658647019591253876218820536195704768239419773408515155202274658150358887879862198810893526229184530682609292066776269537237268532042715220230658110147129379470077713079620043076053374128059581500955013686769404679257186700991327135724295957648844644112632818599880058978825140583911368638656356926394266322825350924274515198279142577673412573006724354912122372537124479699247771775661485369860546164034194005957674768807044914598558951933810103182151753181351581491272489762492610830324442863990851560329293381202575349489296832918464853239249049245238787493619918969978952768763357602259264484482492758025377123056689777613075316272061723700101451068598574677359099067366841418846340378845625938355952744618231129884016942658692863678956070929675983067978645715353267351987912167690182992151236728029812740821877831310745275455457617550284958968479929673180048529693945674779675549111003207980941701205499377989424528405240685090635684800689238268550006171244513708091543738624544618648756954492410517790745204212540440642267940448331670652254935654992268877531096392640765100736662269462873869053793215405083630333237472823123115025892961421139496791395176935934871153749136446757626280696988290985293515612514481344411515435828687887780978061373158809588118985764558776732508895432901913340300520968925035419498651966882012689498098347875752771082747155398626717516346310671409263744465080860697670683177262948584070513281629862470017294490018014812819256930963274353779235833316796810956167588942766456157141764055966245404041541569493949267756792914194373968598733332982474854623182702594772216506571028556339805703058675442872902360198554867661565462103914269983789765930752339745232389729453112774272114868229334535591361958101308386874924873286271757131843318433511639255711541870480407403064649334588651084502141907681133505721407548511275892417458586156426195873211751475920682307223608903449610914590962115754285334828847374622924913383132176859713507453379309757311598214697975844211636296475270256857476805696151730062194625756241654148631606427284949392960619477656660530480252307820758908355176507386592475829092447061629415357947787915913416219042664146377170800873148303966094632016063100367756078436861431678035448718402130261957553440804691493069560965004563246258919732438285456671589334803717784578348243078388858986017771941581106010270941097267602368746145760159462232336547731698745558110601467862311005184027424207596227884835131620863865184253918159126343338982674889349615944061835078051658371101488520729808961802196898612458806520350213913116926129162709711315275343744415177570058658804551976319942480697229291040513553312853976021319621007594567218073910361272617293512498758550062813681503835264802863679621752634248931410116983518695409283494502396089081319081662008882768285567848152911209303002311557233228304557898139978535839245450946287279151643156178401312760548671179809640472446086730932251828390912232713735362799316324316742248459415754452460837609435510849009511727864457739650944879612186597262042999220774246435139313104997592306451535473853674015473621387496627571489837127019178845204843858950316120619600378807992291854261096654028579966018495912753465047682228123084427835616910425027928522037306666551635456682828390180436176174588141973690818157086710576434940832470977882920668122540674839578583290236787724069452165268082692774332401909687758239150206427907440734263660252836079943194086844503906469173288336511777709118890974618412379220603802541600270253610874299082577894677085024033016446981400169061925720439147237449981914476307798815667512944406873864657841857293613383085955979008847642538876543806019539587925164468430829330857519590826140273488895080804475849940196000687232081501861531963693254574514175579232443431424097366222247819624706678872648525996527444113294375132066517782631315808104959089244677935296151086079053437714429377167764717946655138162476018635941227959487070352089147022428918570457226677536659634717897321524250747595087814264952157795963356255100025580331630437690303242072602123333304813948592275265170926255173287235496345165999419325948796821769068090543078560966995790277521869920985228002835209031881987680519989261764884895734203484544737469531840713124220413545833016448450867669710199564058487949579933972723090218155057373192956510687186413785446688586099596545036703499938325454373208408418475580889375292792060033701771273499113120079764647756631111622090288549649792388328012258497255143626636842484327111826106767012297550143845053156671606506315482278179235633571825013554510000035171416043681976069774799055625216942391612832731283137056502873641528396352747579202740414742220094201356415197889883996234233216871768764940493331779762260717665866341132754228440667217624917384805252741303569090841414196196980393405929305725293827831312781241254207573584829739956611650935219942339386398170609789938726604364958012227228395073458687834969924393231059094743693880376757118196221642376345069987629185101828964181585544775682016022199506232046766773424062565049027435965102008620972541717132161621853525804525289398318859832369369591436704360383038585019926183167920003347172272685660122368773642970944202946344311735158724900717636867317503486234057043100927401477046475341809355186782417510923602256917203961415282208556474423026001562011983127585022944181585948252388872973149131056024935842096698123441240178969867078196338647080685102820430661553615354691868063531356508890830543452475329377454844319726206790533558435229038500312863084863553410882047774849955198397814712376555851405144621551852263869654725389949787122028827901569028717603467708793274151158723395239633053232983978378362757133027185550521317894718160180134776686538912521567991112730300221965391340286371109913403942780517328011259794424809955999826346651109461631615789540921831670851418801040709167362449932931739590685477040717318103722734985405384941999353949986072302734589692154723247875519733404035088137529608033317063983036342134500788652464758522315925107113951316021483449112140103862651549247752516710718395359452287230154875828845463906427888374922269148425624160831365970733267999225054767001123133505239139168957659888399395505524652018685332411543220573561266298637906650633415322355760706293529502137838846972438078766083114038683739280091859271065461307390092388864848166697514561228641624394828334128845543619736130696386084236238764239886393908826593625087729714519506727673737048569323015811722696909329369207355659941571190076164210793935002662425843209833151863232533462322497268489857356316808261942524562840412570191983168154344845287394785612243431210359581860677552142645482491624281198056891571342672183234837433134885056771884719301152387104366033021911778425121207408629924124771961855195521091036431869686127775662882612533803916621963302735719464684153352800195126051454628310718210335772528252144143817107741923275148037305445252683066817889162295367281332907083101808248453298879393165135659012644647371062538622775927424707639552697094697396563127801438208527018874250044517807756328811739442343018124703933055289673608032681274100190873826678158687721245815264359700434032885130430830381012327167742117742705680250328283435518058805315719304639848917410608038354381806783286004072000859735499357961136983068807507015249063381770678666380497462734253141435145897959761709341094632701504565197707997017729451242143138117690263786848772641779118658656854701343035431884344860452580286876102671257646772170003899113694544968337987811649376513283853445676721876818579087559047947476490073074038751826666653092389476820114080760748119539668177945957436039548450291634997857563460719879528929412196296748783985910030446141073958820038152028639139445669215700954422428367197792799025037538064587068478435077700112683927237612303945209115232459285919051586134760129875260837038996425147235463724313089284591177466712730207181850559744096933842448459535909994395879393541236142738403485564328179184599399871273932263867156750232446510054135600269365617066319336580762136587202320852615312493942986786106131741432136282524824506585367930306340518920251956381820164951561123710551996878434289547092665896059221471729124020294807454212725860659235881652743758382914318316569432886696378948573730299113054057756781051849961387145261507315445728378002154189297837343009748448853067799891785860764831012671253570553464070597786346357306020956610782815444373475336247541914779251842665122268359663639931188824420473930886933305110676199919284392876357724617567015381831863377377592101969722164794351238437016632575008198601013300627068937462896823636439810994395614524151741577250886091548734834154063968240376717986669592263749530529153472431663461116214948553460764681693956263633911523685798858014829969611511263607407386447952273062159327901214858682557934441177832339562612774928647067819180430090432378446434435608556333002591480512306243145267748487793138380170196982984753402094002269498199892352978409836322848299365343340974424215270246168563676764144299309689202596263623464820539866836650796518442361298258042688932538961542007459750432856246613731354779262261351062994994284293220486675251268299988205742639509601441384806203138450669870931946160634282651099239360241747543017435927295154457995679389234990888045921467959333789804737323494995662847465584217002774734681536965013987865336348821875427082393869341747246213299604902239226334373019870917929600856802760061895132816298746031367743968951515190566846032814737974147284560113691091590175568129901594321862618853894847358029190045205724290372558906308942692121101578385382782703673928558140611639790807540517879465801308997657380201725060598270312033912174523586548624601584629349999380711148357717648049540543698000965171418774923548653635668542538136839286248675347568657400328880970888876360334539424720001111379111728235114211539118330246956518486066506152395297354034996364501136537377232082641454087995758608895286362310387753624784923433836219367438620813309061482174894405534307419761594666180804199053019362714810324451543788194397912031929107696773858655070964767265181834906849689720455260228810860478987143076192356534291818867066330604371949741318167818104261469056353972533950128945795225792639856720385787316352205359578279735843202208131214162024300177649212805454951849630180997384261614636357129801232922176327405132637129859493491758357570240035562771353039434618238805277114944132238753587883613166673705973594451081916338134898084127119128583975638258506733732748224059943522731861649755701154271245461644916693996808596473977581434534757631916275786680404366376243606018965263130782769417818902320617876596490052756286888434685776520440640864062444734816592475015334858695656610044707423549757221293082904790865865629636194174002694181998079812767730239849233976336219278180632759107428862200859921786078589148078195971291451842132966777950542913348871075394480958037537472374706449580729954517558219320789077507968482375197285017851431501700413877806209549596104713192799103509529579523536085190724331089377050447732259266493091895050385800285885155636847588982318987259878370264082316933247586746413981033571036483290344438871888044942510912380864183437621057558190914727402347063219317059875544012768835471295556752232694508716902162244121329426972141419806746264026658255833873493585379372095258054288461281072084267874586634063143471991646333383959767727729233940714127685688498538898125607722424261846126269595771619248955582056083698841859426468324256808825302874706530831122010638099247557204772722875131972063055255935584133590285287038603584455965245813032375759204241731305864222966457682078884926718437776268494868074183937739930524546388952402060870888690896340059302857648513299687242782377994971351342651292998028192369870842608393470903216392477856878228359511222095969591172704392802669918723167813914464934133351851588328610966794644680481600260672172201505643912599622659822580085278652484660597147762409750834773384165084559951016772878696843867354427670432291042509853248142742046548865959460129523790885707830835638801329712081815719377577197006016125741210558837944105984616616882186874233791436829575453969409502500468035969995200917834972809290823219096998363836102732261982566245536747783358821668697067665010747787825045016930695781867278905022235945339737753626873964782841491137640563211740442277739576895901895559634362375014278729837091513733077787805401295110462708111918372773059496697838979221936697321370390248535869808926500043702626140707813215508935629992747042823377245572337810148085768675338683962833648329877810038809846365221358901188263638883671256905459698118358532818395445702717533280828179659216246204035825484670337304800039064264738953697345334785485304747466186532577676137860355837221729063841364981721879398687869580596429171390740081187210949344695578889091239933183441970229864250658989984359704204293453702182338517244685634357594705252439477047575937728489547291197829998316010072348677196589557567448741689349848100948020345702466922262487399634685998721367720839361299955647495135963927797920025213957175799810023805050121904737988038973764520016270413720474929563668883062239557967319073501853449726287847495788156660716059603373901496206356041018790088392427838215026786430638551963247609488701054069006887283939552500197595778221237580421153001609773003593888074643411172266386356320489195056537330554964718260881091327602789494679240073970553719018997036867980752551680341751733282079467030357973757641878997290500476106399686362958890095401155598929512778226322808249025870235480577118817063022821813993363064730318124269363217545442880709430151844582328472784323230634109839413628357370035565991481796064665148523250359310340341803386133209379271797298727368966334549794295309794177663788715443213584853821122016895907668549406349786189496572307854166660316213130807821553140650157804425555565681767608852171586924489358818934075424685285119444409388496839993976396087330837473822754399109748721860930733088737101604828377029872945904581634206513803163660216026530216186555274694243015785049846856873058087516934103139267702307112225135792974234191187781056283391165776334032580130203668230510997406472704181659050208233056545842198162967758751441682691745095313152397025577723283038377602980880115370639829105948019343765201940979817363133849826599820152528870772688099740323842045421206270158320204128173728489891106358415166523539227053229524183700002778106882228232962393109502915017731819267123204843298451775565856521068578702276467102907163150983714969502512014933871602799374205846663748478335099827566617330839984672559720050477858365452909005392195424984569907826245627989232627079977629386264216355539007117108173691940926836502658327872200855215945316190496378672986767632467964086554393370923763337109200158349242182552830737417016730528973228433272525418079810836080099577515398016371078867051529745349942075918477628773849602001023206189101052520056077730144275240312551933146652500443761340863969849087419436019121926035441332172884477159676843287454991433279993533276002711948189332088933480249193584301058303306256673232134552287362323856060326807923858198492701172670299007708513234133698703425142563518805813910192967370471117353454253761519434693905438746062454835767569465709527189748291209179947192283191196737773927952247744540088793897902048294264422401609127816230703540851663730900789346689154631684678394178311846179259378484350191543431395164650996541778469908880063304432608193684323029608232871567630238970638642568667170028208683163828685271741557924572543446692638530148150948425515610893943182193455600302834620872094388439735738659216312077597845390123321665748576025965891618248139566612776412609298138962240071405296187820772812851921719113920311811237421163187301867275859389390657605248481200402191578527725158875730047046731413312119731624479361581097814016495940989990627395620563894965753715879234957973004493819142727061120998058159897745069778327059221192216566394761999141786658185308964763828342419542191620972055624415625294404050080983849194464418430857679752216069074956458211543688580685438715852501027647027098665536922369691826262669737507941283183911032219809255458068435183276546094299205186505194683904483560580793940209199341933008674556452759203415657143542816992866109776043633102404542964488837070944475993722034642909268915716435620195660015390922389033481954374178213898233955475587129865253813783608472324227756010536711102203935575223339859900821902411590889130195635515684540617342443435689849262166704290540863730092235544123992939874992868010224912937699543144195584777755242278117542848332594372599574294226416191520895397249195611761587824879525357447554855399137827336769409172982664258110420934661956660150137433022902810650887897168074958434436033275978310725500935232389222285783051710513248444154750817451400610411759317019913922263074088203328461098199137790880043169854129780006866534172777580548685215151840592034970229063859168913238075081789622162689722433266330798302612904387774337316575763432723076149265033702040391968232595881816139382129915669862632153155275954837538377427843300097987651367320999879894571956681521496541053151094614882613670150963430905873186663577974131750577984370303892997550008219073388492451964318311426444264822725955766181353115850121110050804551912787841066209715212091581433584567734322823071590806482922127462388785086408189555486301614043974347009423800414730187048682118087958734044629374540211726298510192856793707492483586387777382891002013129929977709854539235476139201938870390762762968531088708889484346159044062257770371805948752876874176315386571161514288849087251957343032950064069901657407856793134548590739890090531928386956014547312627573814511422595952733873713558164243571040645049596214038842786732867465575967498274524250697403779123919463783081630357008248903879669692200276983092097939598566043779349176821720945446924459848307293882766576987877234644685896045751582427241009129026061183679872101222931967773709636754164728354921189455810007372328022490841552804359625624523534985320745667258268824321170109679802945564365240917736169327958125659452986976434762515471153633646820540567134290453045842659262223708161805999268973140617895131384124321837514812232000445171906750833473551932049801579817553159847598096952829480250994809652364571518490564636224137216722166250031587947127253284486635967444409207488279820528871546406775746566115579918289961638254555496461010466842366495362075502008587299059024025681964039695433697967867352823693393440420223487385771987047285851165249392823308263255704013727847295732843975028835422701337527447527955342582418781749744018058411566993346537532047325786060315121948045222485336511343446675096524741196797697868274133338078072869245613836031979890085642339924698617155744938374518744315985812463516588047878606792757454475692454223995588159091197136213190366457102438298619030392215952061855507557350232254124098255896148427151465206186494346088848030097919930335821455203305259337001133718533798743635162167793119899264444868996119068726257379165176166210265038944922390753255610501671118404616000541244309461359915799386892753423556733157521896303911161484055853238358516669928207780179837719221138919544412656505687857463174633534506235077753968558463705261098400435049774368879340056012163612782888935610780182842767928736816337490814894428533723202467852458474256906097788586615103034800093782876099814200295827240281330390359958561412787096474599172137137017046784753803527012317061167752331625539801938190470014155950331351025659333176505625851079754420984911291350865586526973533067805829722859082711575292671262589493981383663950814623763813314127847687005220191131913608056778528555320396361806574827756438235875274586223281969282651668248541864972257727798906913059533036647018501925386689115740666585912746517938473723121975028228413598511443106430282399346844489043608257315984966310771421023618185156965285434601492307476229794097738405911246129386640189135697753766250995076204515198875262804795990646013629113507998165848677980605815244915054766105709307305256386056123773002820798390414812366657402973079755291322181877634638206247123962125688719851027342335518444797239790662970686737549542851194573720781547431618360857877497404516962929736657517097258202554928692241061532603879827606471727573210041908621445175087482836780307190777416226524710740326083867697263609481520799871946225307582314723674309120405983184391269871244550156389670964472186739290558705620441025639662328553364741720943109091058825521541624166471546664729633441950074494153544654905237668110234005208128257431580987841760993424577672223479980481139126163816539079578789276393744181081303435511839501348798736589518108803632156923575236809690715708677810204340439527567989840207851711035887127499854993141158686305489159357488998517560039641447802518518710163542116751143818714190219307186195480724846004574637581779586319578590872050467481137924969072923859803650955953839786686546978407515611438990519099482027456318946054515711675653995868806148421097723077495286908261121645012006266423702063682497623407920935306366696794880230613861961911200374102866419400368703043907565490507819918271725235190247976419835792920104040797502111366017672544794560115166727339035903329273834630264623349078190631982538789776246527132889884960271877070488451433624961396648397566662757689930730975808982883531467573124776571885071570331647218169733297366346491847116558162152771737766887263937391817143792233671112640709801849714099701942400269561390878200770999038891378352628502371931866716909797342529205329804128229369960232945487797746201216318461138875821224997112822436790774234543848696841772445296315733483965003734824022977706190872099103394075321610053849528301168992845115123657433771628838242390298387985585276001711035081921536015347198152996184814387267138737414981721708097074967277526799787075978470595599281792699549625776230124990780026507775780727471206732508768707053177540635128286023693890385184076331444971626824187174348210009416331067318148509548497773555225542611836182383813256031537212761106475998545364610194900876024100595778378998258518057421148672269689385901130887236224458705628135291609663293411495439278649657706425178608402084575559531267910620463513459952994426613663014058657159183428006112755951455575915718415596169672953531997969336162232502746077002184077023782874935618851036265446001784391108918113061209850482077488923838294232962697386785180750753885086972555707139923007444789290108251296065368330142061858225805222446870580071494814278687106302656447248501451569468675983676391518330184842689405584472815046227696287608365127996072079157330703865787794664472534785812750719025417511955901868339662958133325067181415375644435109949557068806748106476346770539349456826914959680657747353355790687438509857598695849404037570577634727879626652532085466920599245137963609139045885716225871417133371781156029263000087939001380764331861390533804551892735260996060923787179438939220945805566251102492847196329644629874578351104141177015717215385477375932139533575323944456066990266087417302073974603738105473426274060115336417805284904049458127058296679189350495593466922255726999906685776154863719089148644993444196581468722508914800579639150095178848395539020544380865186255010788536778530626994516959885546226298895627063101337710636148487866607595711274011003474702204592158929152973742031703541128601295544301615248514971035163461570957244610524098183478868006928137921615458484361901787176141751022849185348380206195866557434858452289259844615025725872612505094000783360686504009882442561412046222704392002915629789627379984842535513573338977323691673715157234144269363150362584053672745165736569438943427116460380388116214693765877353975712652842083968079115253540423093496103015619469703056078672390995316709977269219154528272674189014687003781537032429464930639694267957299347077263211694455570490063391819707970183783755754561755282277925180664848197852309749722808195653591587992042060812839732111902153417040284177444165650479259916177853204480410869269094585118911193922133116652805398596947226582274922248542642975799201040530090797794532316005842505710876009080469713450363416751311683026750558543142645100759148663364613010415048557881045165804648071084790812291113407167195449468358692572442010639342315986322671045575121506468464095490920050046381310083241031126815450488697138772535713649057159587526198738365935528691143291837913128891388795303158385526982635020106700996824509621995394970476813037373814021367673409848365311196676536831000499102798414805188289440222466440785697659567338751763589510040576800362457645764670322070428244691706885463313818845828441383150440161473678122093340674348939220007361073422390951275577764134351351106096482344502020453225603212544025310998910388638787557446023788636157611881254677996142372244066623213647530103724145545891182468230735457852532193463492031320915430175990918958457844719758180882780369091681402423507467842179845903404757455800641137081000630391871449198935504585835531301597226845970645133132870620368721778056014292787188821542137833431763290813255816336868191446867378610517479937615197104550532735453322143786049203488035878486943517454080398056830780481590240302311373204734326371142034821043776143110578715865422069556398513986821033313390238907788226735136895168960111751828858607123145629766475763330068522842743234981748932716875901722811288936966390024420646678628584068841172982628338411191086551438581585203473998367390768890896872325427110348085231719932390478963551325754280765005966823354213047922955680855978396859321367454088113395266842313353030558378627871332342389732992874210231938912362034569485601472483806283198833125149957394744885456487132397561277202256344990186731016773792664643367945659106902081890656284869443515900203646312913525371523621242503174094762009831163517756635793856333677721884287851406168563238785328264620136532368217406415995402524068489240413722745449613692070138473217369334065556383628703756880889997765439504029291512488978266193916452789662062530555686728118680658513577768755291413267692200952227110751328508228536322259485047062875775346441995204345444321164308153544916459323435712022059692655616721421643464671100270114864558402597139060098472301077733493475699400097946595502471660277538168811940091168322347329577561259040074004460148438070511835480591645030252015104092521103932712833675732727801775899717761729157030721678244837765500708549680629868973634148817119955171695195936927648963049030343728505560211936030197884822892889529402864224677746702144836513813279483264498343749155538659309685827043594583996062408717856131549647137172606578026409458571208205889244596132736710489262661280968863930719799082349424869800152853655257363260703075368575534304484512652071623150009341914689401022035127481710047980773825495980333251170939550357084652202623681769571952595383855329855147336131562400099665271841031075589152376391422547504453307434923267545728191521715635975245759955821644220206472972788749833359681920219165421171755529867301444768662586719847443655808277432910973832717981963205661941322343109670557015915582188284559365163617766662711369569665382008330707082695651054065526931834910584739991568723763981827808095013265948615586393530367301534774695654755218514390358452183995671944773859294028907424231128584367293336367060721700118611002305358715051610799922139581286715601699450628511158986673530697869144145702452272110400477873503390281859677487245813055100647263722771871403972772577720902301673547290138605813400304298371403936681229088425031852116709768789057618510867437027515732120143807004862978765038702098522957620210519658674842847772552397266327351070087770614312131801292973323110000499306674809137381886827208689056845322971782741764640206355707404082546442033432551315166235381963413316546661963545970405863077905621412814622293857488561745518036202883807007358730733796703977610545158625988504223616455223330243839781270562673048088594579760020149229425185626808405106040187270574422996263571770626881388003277476465931358471402318017704016548504359316583782105718357307453737220842308820316404543542336038778823081495555401648532186712979373187350686885706752110184440556061112908970088461501759059296753140734722874512933154408160179943120375148081931209276978574078807578456043671685276464745892143856204291513588070065605372467379102822202201504681273373444463170286194820068312963635320716239897394276389249218365530835112784865124259818373952685708952369707325800358871930482508062319235398663660227196378532921795992403537469817801695410239676917292369840971898773035380224243464212487759795486545497361628011328870405716681492581800745046836985645154181212735082916011547973007154261770044635068498795015436218246740653464890201899886493960405350714305988793454280592241494255683609156345950491865297155274700652466791283996694373215203283343007104875249177726184895559572544879392392972787091218997303967935046190493974873569042660680589563244903346344457166101692148949684997804086911034174903007985104926032123225976912293828332695135842666181950687074186188828511010282184179082189569252058863099759546776261511086475543127471815504566421977266988220629354853563079282755026877577273826216787277576590970239713290846482304371371840904629549800938139687901659710560474149310307758731449086978111374451348344878539730360099072074174137910214797653273589703750004133174969251655596224923615602132739663272259451340970106130104260888239868439533200063283456311778240441470963696012800512384861880738684326628020042276914523237076438254122504558063698276159467357550538626675600767591460693324811659811663848158476858708630228541882346615816803475165240795331629819722256343922104224718492875969317230294040434318917742281713728843987263570975887920845530563440561662793006349875717525334843077299042738557459590785083612508629896784950770369568566818661549253127975994458355369307805081790120479324693229497038371672833330513637111779718930678842349546225806682939585710729979405312286393948414732664958255429916010636022014035465402659158095293035590099069776393642828352302606450917803597485297209722855595648739103918958745159999492932258863924424722590219359414030705974492706389639204088602169137785401854823563580790832542355853996166687660375895971681320968664367118569866365201439786112820161804333939532000218762474773860382311506582015302849355633847572628620029337835496058142730570352157664797961134620608281139463757288045484383497101079415821999758248612797503241409603787582391224947381441172939348309285572109194662006732778545945000999580761537818662195379003328481974186871084727962469754417743023384250515521631014653026957731230117962537635918715504465156222885522048113235820536897024959298234115119005491463053156257092132931717736517728487986183300208719039963819436687833239939304242708524753443038469938437205876291651165446086960515129213173186519569291673207306928747875677069269126135355596006902452271741744900406809130712597132574191548093310299862835751048484368901613140242316539285524617121875516913663453457700147043455770769112943246708389846617856936136639895728648738252332635827505475861163494437936824906325107666848142676805277597670151176198650428276124460017691488623047389589580276618949181680956713024225241253754050352845747333799984526964624440823624329958702733850706910771220656627770006169642199378693468961853559699172493037943350245966362175151061870087237048421370714544919950123188631627353439091473635525768461566873259461328883764998567534042877953367001902119739266093685364644597951047672728467221781255775771822699879930033760847471471128862474208507401689632299919507795497079954110483219050390559111246223046263212384424024388891040966438047270562597442995372374812461104811666235285809532611205208412180991368992862570022772823503642141221263384203873457149896174092737494129763698454121809298480029727757242846283305340468235709407548813733405701823403009121071823006650934546640256399820781712979547379986878345525462384767492150835616702526477227190774535555519606954661368181243749772731013951584203848368422828557088865601120638483418541713302768364671148662251225235949319479984750231238712804737683647457176597723179964117617910687836340773886690270267504467209781777005354067106274217802813629680562621785046180437278506573966627130193191986106704803991501924758367867531406412481338577499047878563408562202200830186825276302095918372451896683775459559882321141952790006177885020680971335157356874635277151316627671121835034819703600505759353096450121887691012951092302933648852164573746545163135067348825338821908681341172742113144750632083041120747094585662886457546651020999714200611038948939968883069777853164901780503061921362007032308321446317296589662166435149344005578740459193909736738725789079147017151205642093982659719575581940365655088834191329346746584834493761332404193101085971022510173322115199582501096685639453725371699050795879069553499838768793784968024925095606671205498207029678625973180082370886360867655781832416312017218590942010896674725140848293338536087228252336029525057903524292928307848694758053677573213131139945502480973587698134260210120275310229568553588555616160796455031749944443198437121082880696357171455124519073425161563800596297075748448977470285307866437588670785310980036866422947125522495450956287059209589144511570296303943413112942611735663597888018155994822359105635562487929971160026377863680746855896704022844009800537029679934953889141217110028393555679356694978297518736804237429595535313684805804217018935469764133544472470701522728324402023252304048184294783865741041305364161988356846518796621086755706001358949379593182950388414718810625102662356450231874171313933395354330271196616293378813380138935437184884624489120778637128392373310921996986460883672199895778799540037426124734677871754010807768540402445453581982022321404904766301239870374939502982579707347564453199943127537176145193571343403803575170479730370180818183158515886731476943685540607665130863516109516059141768092509477912677446239536389315370046336115170932578080083304756955146756044657856773448603529243059878440725515492743338628942131006781576008276855697268748158376622987679144774862190356669080869622569046326622696034238624452597833934554682963491256518288729361743744333263796465734609115083980715330668426379293143296157146861906922639337282407418232319681716507808664366237840609363135210122752424063170079888749046499968836701034729429863542598647272455510912086692889336190236670059272027987004990061893593010934176139331410670893319083607071340146558516858488152937562133090315970617936194885556615466527383057065207835217945119537404666360461029594822935400214824986934640225910893813736141005981525539499912139189328906166304890262876183055594521074612293550763472444355278496142238184633668529328895174523881000474055412309717181239459503112902451501450438110567682851683903340281113082513069080372727915737233818300739925487891863405416909983627700834930851847581083870217341170680305262787818064290282779819959431416423785993259626026650373344213922311719377104025455322590184902174823544934142789039363094563457126661939828308800251336249525243967346345858708474782827914243843174881591276029646012370965086795809557165311455671561178818261690899753926134167135538582864307664358176784268077487727700695903562445831097667633839974227182634837846975010401398149933705248107440303418718738595913824527736951799243088322046191234552000749632755646388625530277489541593191346299893673175726385521727293181247502068847538051147588464629685606859357873631488861137587045544974997656499474804497860511802044538832581169837989152979541689302141700464538443130652409876148407453178158846353058983167638224067248361808937110167054118742401044013324653161724779451989962611114182314348948495847981794743797917663332877439950088908526989319928293548291389282859244242453096084348794784555301720845664787834260798379736686167733323188058531759449397283461875662169308637040019118722247987513082239423598280831812967032553297075570958852682701246315448889334306983254619117852979906195453145703932486278841070992336975526676658135026075212833840520707443054885619637290931716007673508962391548407694160230955446788340047912796986283388309631435046524094775166047874945220518079070653433376177718751669243067667903126309487279025954055601951259885607137955678349859254473516423279490150350937091091041352111639696133366012938029782436294029452755463878429179886075243547844249769349840418197967134404822510207913496343980024948121854940319287840043035441863453674943053140266267603659217724150261469086561561172378482006574221643688616313722243146150149786300848057875918647696203284228385885077835873262801164475185978461707492716036218026821150282317232703546556100565667110096956193510545717773594394026999728608414793356809167695860021828316568338215246386626583864703909977208363150210527552612854976638110351567351123123436494728944441411376299645527312141268783173465619777799526291693981178445837325132067110117612509135098399952145508014304513945781761287065306124134804629154362929994028066392821025161068593749264253682914911205933669654692919455463691922795637158718829904947663151900993002630264400404978700709721972368895337860466167638313741883887214046381983674646685861893006883115369829006883869641939851639459010747851482959093434547311936739562894847050912633999724008985889283952959415867325160879399271515921397082577662699613379199948591716716434619550396798167496960524750906426621406930310227229153741142076205586927300276660548345020286173612549318792794735080945252929812901940828738723771820196836979916007136282401203048208812723987170708321780336256551215721350441706346711047353600157627728606513755954381834237968948404652904780194456966898463964195186795778301834029895444357232788640633915527028697532762620626642957348175327580604152021551356356765759354286418742302384113292017240900010138322640525005276858364236059977707023281548757647979829716360805573755512342142121204682563297203850871992132417242249462275104293858182349485190116795364104071007432924457950977220915793856470845188615317398882664729291661785764679592765341575217590432285637052013915526280656746161884599769957222564603253314169680418476861482272705712756681554615289844605194566153107005359500840449002911204974301484122725780007811625673125792633902248499704405364580354150690426441008611286150647115659065952627641411577393273407573815491637604220857822696086600621950394095958462918506221903592228946703801177842159853173891307449157624686840604335907049810905601155785587935044830634111531715262476806207813004499910361310964994843717053650496258585727066783929987830512681873631941788061697438830631249676249478714919464759437271166527066804670101671864347050518469358905250032332358762147484297060136079293079060497440885503642083483343041036925760774014295048397298075381021036927682079477626452366797050499833128587685169163622228381738800500529182399650550501801108681415796515321721905378502331184609543283575281460929869093110377925372097646999574486837713166820227879326498352452675197325815184559654487575347033403256924984446366445909672678023124481701362190674899447831793210533107714926925653757409119710755058090553734647610492059611589300051853185382524049267743775824497119049179181370427330763744879083014977030391554891578678827131812277854970589945078937539500304040301644892712295346518521290161779499749244892728103638087334607171716134271224545375300132313776638457654859239430271174024363973362136858716689627854189788457718945778078357916992071167608007522692674305214714566815842954833460260296027247665085850975996349988533287770745852722024017206233040090890726514107692815285335463001928508042199319357413684888335799101926210168430748097078923101745376227849493716763865589390091069178481065213820936839838302264619811531041055898502945316468197871677360495504916899120754201983785728590675081876971698283530406720276133533677191617402690343279480514227649410489339541349418081796063187278139370437125114814933805455126489400333567280555431996267214965079330473857966302973764680637716378090460077847625786473672932539343710915968190866479128316470145635068060418793989375610531618740615016693086569081077742850945046119240396678109875746577526544236264432955780671947798461578997004629845853893968018254624677953793884515855135616813889940245138951367107763603716419401884553624877130446210585770319581111627624025123090687515733407621247986862124398965389350034333492019462417159946998207964695845208898982134426638023353290417557812726416161493889254203646431166202628869302519021788520760872443059095691187283378536217759410999654046551990929993807106800001783480823338197348488060827290364550856065291990880205823046389880684372731393553563379430619256508137832065477603182859652939203660479009226352017685218082001495587867871374366113157934100566082203601413200129687765010397384820651721903858567454897493024361361341592745888425342286880074537049746892608432338644086008006070342121788346639512989260868525720061861120688510196230245983619352744558080061067149364409933562908744245767597920569667286463641343284874541390374766584206441423031142140330988436245271503945862494040888587688444071019069025473715970424537721395460267712881215645291182558347234157429158864888877348560212072122067146511523910968421439013719279497809716095276732598866322547196633100740766296462451429221553599951263625485097299725263508708468509250359420025719797122144048117815269984550016529001274321806902971772790163399468410198691938305285152405668876631432977689372921958906160663506002436318295877177690284701723673790286841522935305530868339610309708256668004433232095253202364005409153457077432891578560227282773884424509287567934800617256867817977036409711057429870925189467235930908430143788419275521407522887573995781480434359212259834875518450601131776751637210087342291809387103572445931783920086303827799492706209647794173409688758839693231734365924156336401141323405332852022042014968557829302574858571464197597212994993353422238157997187928691083162561891866598329210204671001586270552695980073702168855869578091924220876954518585618599096130399067236479011543616650098654113718288990937462001324151456155178802799270689056386560042292897298622473940685512518926163230560155901082234068601371832122033585086991835724655061473167986446214128830338571593760211703976082348038662167623826183393564405806955117333960935891870750856908013721130352669260895728935940790188662861835824909450598155897669569000621749750481411659083085291575914237822188100289628981128748526369175480753027719302180664064785781670373049974363772878022609213573392737794397572734733114822212804139890288983607087870596051695571450208370241707548737764622410918539202310145830997493983594779400568314128176204785916518189068507638458687970498158773579581005490535950652842983454038760106881476028899160076689429555743101535175850280915162851109491965911289094735959819076141918464126387073198097443467548967962211878880023037909737303675441505669328131231113257287946936057109001815784424706984929380192423748384375303300310719860366540600669845004098119564239980142774614549661429906213725608846177792345351302193396747873271843641531496773558620227348616223892157110057102516050175556684283452855182308992889204384444652636882087154192443059042097233800199395290111637510844186325853829424319717487125114466137975149149380038899483181788598126031914303364591500362498526318943107469897017657126603663869448334294690336121883208315421300877430059808992042650599951135181023666514441776037335728603498700615711758790440462067083652274826142908946620139573489934894146976066680353565908174050983935107709597592826141176594473311572412920678222890751585343137577336244761286019459978009689710549260662535621431257885815391939444431506144572994409866383448691280761602839486844933040037506809690808074464291812400070023580867427587748432577477213155843317761441037499093001676094097290315614144997367540849300440822947840678648331468726265360589044272799472428247437129208235234315132922400926019237275566740351211016740051834252308028574646022383529005303250126574896812482332213304999747122519432738713518835479780187262434234756984814934786863848613910644796987575835217800235616784022116941410440861755043334980288646178247983830468619939383717655070231610297411363773189804498855656175894656796021651355928547135979763460089462497396828523622510050172558298731924309976241878351007627732161566400445518800843656219724836333509575495426340558745516090155183020466346958240036086997177176754095937851440036274802421081233517043863251504470965154426306589489151027171353584318329800007451595625904265439172924823278561480965786155384414312270803087101242846398766844350960221816291311759601799595393691823819008696382207442829305771458473687868816558211726206222958215174626837627685799075304372853250455923861051224428136792217840762270999304465755869638191813454983374099256981762195406813869704939303525092061403224725967831271097156713630904842912699784387346479713847310050407629984653584713829076192548686058467052824379407605472665671366817954572206752042193055241804312711249793093925941319430958803313482229771393778240213592497137377555405859170730736938716284755428162137973096472566697731373538500524901030708835149273524479641918877282231798317653727440763015161892379794195586364798359073537785859324907358228421738906457932940848364232570539329984197942651587058481005202695141543034223715192196459657893161508807323167041767522681948397191704362435399890089665595148044547398159527549498204201286157211595154060028062712306397776177386514952310397174164256509337070719255912343967027394679314273581594940450362528745386570172783556542205582682876350638685925843810573058813540793687329611590171307969560687121970511149578801165325757383087710981452215140687375115475524905284295439886210580989078589766169188389319441037357288823973825205048343110486642196233577889939837353110814019487482931993471520399108185684620843407167050589642305372291176455320707906079848092882014876410557109744884763838558987181923789818298599627137883371811530285248150398095537196624782478741304684085121941478355467228062542148721053196238370047723152894073960474880677335567807846698488473746170059409330717058855108303739633952579889667709023372923494093092617818928027678064913010537326585374714444309759152485792835716682644692584500386024523520551493904623988204983415080292309224200498226399579751561898725396545725905816654690572206295828843652902406034452079622669301327676370670764431743297044280796381170635513167714094834488762943560496787885059266363876304511029064634974397233914397658582479985954523467835238991078572679071517961673878579792422616725251877544441518951341430311681367747706903976437282588092793460964851440273376005071162866690753530909535771085851842914734179952117436619594952452755446362980382682443789279485046852391337745438113980037806143623991929778042031523231706922595949213224489049080523919094334853547445092656499933058922043206753603447588753603466358841858900614856016575179659066159407792104572571453924239925922534734941923382288182569731387900824676408062927525097426253125521563623645943049185118743958290074261733524083417271815022261439267203923991189033956460692427703160619958256415211933926532487919435875044612274054344105719044572605306315004689595586042394088448477160750405129593477238404436683560985831772711968797613541225208442961771076684006240905860416582857265755160174528623579357375165230322583588793869964571687378347066467070127531993699161932381822601438464293668076009293544380592512663749836939607932660463315367813288091244464791765176402975806050636425541018089682956204167892996629694657410072507213204909035792934999205153052538599112286998426873451406305512080405768757513190264546758695923013058621981598850890012289886256059838485664055127716246139088398633147123751043671605858666501888596225591585797486451676289341287054017576248579015930338025071738935331511150041674608847377219685277796553033420517982956727509721425309403765588414709210206318968185569571205067060623198027672217909932536994499190934771078313082814394649312949884558158939564546941290533876027405442835589048209378104177103866988978248125331170904922179923036161922886149585207441084859432792276685955706169159298774682303325619291784109449628696172789275211596989607434614948713941956033352785880488464040047208254217506992867157859002432388718380571325878545509358321731255209577445209240603510650305996646907518329440527904150767921372305551586807330969844498724033628388911821645657125765372300292531266253267591180846788100508748078488702515689908626047634294429097634309176460740546501746614946630687289703799763934914966317263396637757311975337816098053564314656230532766723111588039175048831506361189251445731673675290503605797110500351862211092347079639422980744373305562900902064483084508354493094968851121223924694355950264973620830157436610353165211506970798823594992384510591728952295287258634279615172174931927684569156284005084768469142626865169785392128621065942053347535166921833810957110662108814710561905027696231983882506795058459326612602312926266142180237263504385227840673002774006839108661590817071131742701279984464432470462936847498612317875958785795138618570281062897819212811055527322853451448502806726186964601610565263321594768573408650731177748225283405951311412563193366412724933128366416627617700110516556283827559763274748031588885063036767145274121381233804662419847347346640946835971639156030308865171192596537317951899160851684584818200812445890520497266339886964549417594978962357666503770480988672388207057213523265328904919113708391583177841819938942439205967435676980124826876710264105015127299373865392564059862562100099604687819089246966433906114061077786003573347068598869770026159448376254333894717540106057319775467521670486502818493999443520045752544944283232609514860320518772221498663830445201583991328884850379470937890217721457545755983854647083076061037808306145748522052919218974236880353564222127170482322569788360428005201099380198134152984149589434414916490024067736378574432632376832940079645598604623365098536031204582544628896442712122944997303016165518840571850918328561531661872374109568934891832530027907983409335498427916709902461929746342835209081735250175163655749594972856112722972657240836411533070626439613920376016365782569930907718577032663667824324451912460943448228146306690280309671925465665042844841428748484252041967969665774251441003671842796801892599970846596435633625189786864215843100963569837776294691618939681017151870890543742174611643130730098858003792428341164083235520064216678951008884594105054913040926087701110718810469673258619678312509986163618377431117981545386895018735370900217648959237467326647031797341144914141161354435202666165958340203960518967629821014872316413198458858069104801594428963155123991120255836171886271881247483133494192342595490846252966388800426584121827457520660291142386804236710187437532244817685830690978099380185211743544261464299733670319081315449025245330640520314860383296047914313999313556413197779487642194616659458736771403537970080730926564185244566841911806961096999106070841502272521684651723090368244922830589301361993835306791737588705280381215360960464794347090252855514365922204994934514080909992601623416076806563049723329169133144145066020179378018713589017193343489109251958596603325601605606544639892921771214892395206714445091498175122196640905337254724438309388510595106728667693281721440725847861506838689557159210483854304454574273041523474553423571330372391984110088322998300569738067658791852590524188884088692084296999441252503607667313429019307187849100570453209731277150488068966746429558526584600147961655663619796991786963568524636320356318191394096379444152787857757222861519166916373513675307836047979135775183673592261610242796007886185905486308942454853783498618931159690302762187468247752217674911030193162781770244313795334623473072026471658138510854210167375081602124124500012314022403173431528214817434084531512724612829279220638066969790716136982398745758791865752785659762040945943297387679173088154188101927967732145762181226116913073383598125110290492233346028533337199746842108531216410271968410261748737725591037312085077512938973484799746131733518691609858344268883804807228067351075791304538509896895215955320701721517158743397557791666498575500769399650844942222694025413766297939994102539220711289040948158282699045371106136415931650804976792657382281504733535189654703094502422654443212912270161765726250880677805329160609494628260738701806015626309646346326411003886329116406611161807255935904296995483562319945559334378073918575960883507007784670252185441611287107579885019436842636723755336027931172824912872547578205505047868878790032795781418808386371334280996157997093963225603179729931860085843777374638899645636259304892487083129680410895463767902099362719393372793651370202411428435767756923219413750615185269362390555394027001782397850502431890012047485057236157241214452413787938461152645611464450562067618240456694695209905791167205871197808165918417150534776161108680199035582734332527201313657432121389319362018699774732059449278264680507516889870223887880828032104095896529408198969980294021963675613963465059026650912785395264166421060783313184505102473209368470709193862863571626172942990915407620330515565610249946747621187696722742068171775419620611984966595345511051247192193162983365814320402353345608120097051712969317634062130427473419439681758705251948403626163364703551239252958032673659328593829394176805119359732161687156491417137928414071325751953277003007067124714617839047276000407570041353782508087509947492147031043739404473850189804012580513571387333772742879922141261902523926962192647521461397722242248037510485066063126486221226732251476094653983579103076501103034041039572743079264973362582325728241269743152085872963220051887819032695345438764948587231324375559726608276341275421049759811629352530770649819057744027358905002105546857558240029984009699667313993769623826611817300033788286912204579034299073068065309092535388108930826217637097256340710119797512016755654360091295923098513316697801385919606866466006262513898118672808475942427850699941183676395361996645240465438616592115084211280760911795483148302863654438333968554254302833700384053479736170200855318172476900847549505728987054546688995986559467274019811998135579044318920854333194349608303578249615983536585496789535052685929323666720972924679664545747900288934423987318441136655157224206618398852696380109763375763717924722655967040484652638295715260530401820739257245422318280956798644691085388637182312284300781033087026612715970270875974556308136138637369923314089006954623042555570985584153823936843078087796877906584122627060220971795747186835974972977431425275500829468872302293375558065414146706385261278958376805314163412423515504818287987537305851486435495498258741009012358636527841115005616881295158500792546627784661653998180965879701535599373338278851915606071125324500930906980177194704866707426822497051458430463811035417259860529729346925853326413678570637167679504849730235285776113899610706084995964592264621540111386199203293359097205867450293113127096407392289374693006602932674993603253267032570560849502898313237534833680088726535391793289597586861681770549419197664546599182681687875432667678835881393899379554610888958461398554652843954039322884769720978647470679723716013639584315158141437508009155014777368654797568206892248938742741987683313853484218402989823463304018074359341243949884210317812185356894898640075744469066426982444058787616508933885537578098495546318123455896152554823952171570817103930335781840549242665847711226922357749316868027308149750682726760379185302415397757983648562015832930504718670674627652522889378616194731714946604455679949730841233669723457591578225592116494954445170772368253072276269920984026123798170214671872204341779703165040699051171521999029096955492546547081755029852665001776873591977573451512212566576393823106117326354954527674123587457058022024798187292954009839965071405659034158122783169578103234377475332715532881262778523310221855938023693902415075268794935364573790232270680730585793897760587958234798164161182147400949374286398378003435191391771348819933136668961326449913982892588701097488193775192750423258967166135519683196738389502591596196351541748228397021211924682938750087427913597297491938180090622377346575842931901169537978301927177562929536340907154180584731496700941650368938012075618710217010483640692790160303861248165341774086417493661213019010475357978362025126183517819136373905923136003075465996095595136758826044649284050917300458574638622172805282666751138166633428627901579572699862451009805930999937566959991146278392558797400413186197837969857632920631975881110778680809868744247316569340578124387555566441058103330037089917288381113815690795134297274749442100543188758720696286932520457552521431572253008361631146157401644402646864269162455314896437820567251093246404921035478324843089358228565465041081564755756952016794391609233715864597168189703583504562509013596746553893557738233957018172045605564282269080868138835213029250104893938009026965772400413248845257750009734377222960732374524949438332829128364030397531862588269224502781856633551618841223642453083201803327814381336942662397070843003765842607411494460200435293058722185406992275826375116621307469344766039460385471517781857543548027152620182050595465461986873734834144237242822539072514155618895138702252429580077581600299399691165002557826226505579724028555970951544216348651007591467482974326682151504415594069197075647684473708765722270119091655242476723870650440545367055674450474969307872851540777908802639822557905822602080993407354150633005263519443142704140885852683833153308170259967958259230297031348862774603519729247012834974393331111406934644598869639589758544349878795979479652564506875762955977306946324467670793422152593904967285711015238438801350025817268594047672163690294526615526714810875291337437113931063458484251274680822781088682970237997165304097545355984923648288648840967438949852982417327519059647910768397392574138863649470005656142694070512248323076804292572152261173465419699093600501086565383887158956837017786306345754187302063137282805000888542929019759934234565566475488425694589143843099439604627346812971501901473801091716792886300232918854899534261204695875662442062195697565556559931248496160136796050009168234681726982917304427202522415132038042404491388082746479659782085222252276812833486339434122163882444095753350906213902387800169800942595234241772452090241036134183292957282944162907478757761006997235055161593949131000045446068191810035973142140133626864827363232877356657866821792599797056492969385891710674164334990077001079385399543601355341790804259324646599079368853429418582333625483362877866176237956503373082064666523070506768562064526753586921965691716025909359157806482521671833100609463794586859443207679537352214860580437361386542133338750263577318537848100463064304302012362607677364347040475796510385140362539206263061907697956511665742797796361958134207478206175766214377353800267966316433227116948099227114768038889063773333918129569807326156511934727791584025092082789850886463481070546629322544807223855226208846994096419176673985737395830178578159488048274627576062039992819545493130411668657682008003058657150044522591501743152076083907070761770812885259041249446745179982714961152498321033534260298034889352487242542049715061550109539032920732639064414186790619297633364154377384605209468533039544841269865697296390545111980394395635372896701042460044880008323393799881464958413894353206174668001960126017147571263210967312626566681425816269728840454446535494363027277371309050397861909682855749279224396582259227398084421152816842266115722206311048390306518989681567378975018076831050420402232951434361395964855509870045052077103231115374521283412364642989795779345141853233879461900033739770861735225664048479464416997626275082922521479316901391309748919242340950135922083256870532514900749390001280664778982428046200531643017076911857457816830650135905397231405869590588753947834330334156013928904922280696057631484751333256243580028966654359274789564128402581002345093863513897848677074883262830031602849752062667493436248503305867443897874722656733044129200013687864257116899961662787946485188105313339710447525882333118757542117589675225082038178592703347261070440758621633602218508163149728248532395484730278170852209715462644271489508078454698462495940222471361035269952896710298825272103902660693281670479504923439835935272737441631735772758910901705806490700309641114029544783471192121664510886289279019749302733602125616471888922556736286312857195139555457325980946156624597624361429260106468892289639570344227710984554268290836596250792049499563566286842053792765865125502569710045098488290977806183519052528402040470858169817775965474075659862042262455666585675489449787736354004799145913661107419199298645753467550378112422806883681042568657786228197843804380027182937545141820988717116861476488256355304904273007887598755165434119441461511434571479806601933210411433007893260448425757896425035023750251018833664615902691992902837332400124339188574846751400103348300182878847776591080792556053224012466738249525205322806364575936887741318638003510582148243485470528718564936634838820269188998616896185591048002937959006374655688998275402061780693665527153756155868802994497796224905657178069187428179362462914101239280771168513963493226677645420754569467408918375682825606878202748559310560786224672448991911388383375483482917868012517680963640392753528488218527575744432618924653884128929661665848265569858777005313433272895639227348923064969341329469180705595216736072521116688004541174954901701737641969822586447660736277708217434341092839561097219295007097964230317297753386167235634993281717980370778741363747921440020391695259835767581255942562992250003000030636056234642995493150425119320451764600574562075784386134589134613925693509980075518625262579237314414442793798903659158762295157891672047425326282660314926948816170678229166528230846279078027834959375568098199477573452306761907191752011650174102082894211426084713842898861151075261872049383272952022006042838633669318713378029719478076943172301148248732124574917323578883621796878790181826897886025431872747787412522425267801913099924631501424733358720528821971309725985453190257568296123315989828614796498523425622343508354682699578310732407962661427335114366215994093231881434331666458963986642423226450009895188398992719716940406755140807436383459241623146513364464858430200440581727823945891017912398964749855533956576377275352719701252946109432060896118219736139539973562213630511166145537453735653194359868357709976457377384917426110872941160160202657235606562493511756875627798904773540033431746924571460185959157320091070489323733519473687271262869075801547720025689065129756576663252380116993154706112386277307274365514724051987412601595323397413777036329779449235936732269388713917344179143657333034121378477035026316895175180114128832858404396702102729984257773102962707827503175749007389369687566935816288685158140231657704646746382177828604292088507690402197923589667301550665680448757063108345589857522896867771194421619910158267916052276766169931296010837044751909422985648198524460625028234594196190770048259229942081786957461416231442674709287338672244634642963179539453608800173494284744040582219516792805569004428753579507198084413337699209652386060960497484483057792644268316536288122122368016838331389555033842419515957398886347628423608013105741505488173230685615480917156042039365021458224487401694450455033643574919115626003732642610810984166970330078431890645886004693377361434051748343563567001896828355395701062012375143282591024033187043676182702551614424382409736014709530443832433916914724128829461985821142044323585023340036729451536468194658511582550099376662126590233046222738300207439804501620135619424602127115524495903790775778846307113768895487327014766098043768327845276467042110405524791084085412465440796046626932934626935317365625069265252300814468689290439274115578495348113099030577267165954528534564813837080581056425512054696363148379171657833524831953558227413604310164096256111359830110151597516628602794613250058000758429210284061604327885268742173620895279136916818381569674523454430490611360465869986991680950958440086125483546694116226811598090234303732550968132135401588218445001741499649842767571140585419666905516963025104646111383273904681895754485596025443309801427514502754007889630503102242197032477342467830237994062987874755417834844346946178270443435770406351506906293389288590247156891414191580915853727559525805610648892493671129866604507594993336039168354606272311771625080663834036441920892321022106294642406222160599936105189453490706885979052391286442568609397162433571463178788099949383550567288821050855550859024735648370917139161395865861319686912645420272297507455590547429536534568175584312420407674085396539300079136923763696075109697238521402460008212349484400006842320945102885968562787363290155306009157176429751590253487607088207515878789249040987590992145541212945767243863705608485959579433617602685894763989043955199679450584079494941154544366741608539550241994242969792625085220768282322266907732882115543007574694826109007597992768125551468346383975707101037609298594113888595987944593745079049149571921009145021218592179618751914846208378316416119637246624818200913866024161136553136176482967832457051499353092288605574726649390402538321656080771517777235030986853466742439214762467960987648035147583808296163111368342063439483575384868032250326293507828488494300274482975959723172367469928693921532149226877527070461388570919150475378800455194332708311569002480446770860718633443601061323355116244184057767290248910135285888606476216915972194394067003698348231293949522776228329959638099803448024757106028722399742754971764330732284629507819005952699803559885159793940456043262849157768814676551039951099141231691250278744278718860864601039639943091895836636684297645129217360726365781366697785900238121743693370130107913420430508139779997901358029814929121181549336626803879012631184920740081226051448081263793201078418214586193911605039287477598032586859617490066120656609378236270250354523341713116998303185905859319856851544569468650321060348913163984723725273835357388699564599034831559477640768182166039925867644656830745897633405095436115427375275778616363417061829110533471950615469442645973493017889518353246535251771539894373144022240974892501975964640223773981489507011582778115582927039317585149829704901659744236410830847668068805405977699445501736549314102703108611220923218308701499434209300566093150832217780798958685272458052930003238418899286442224966535503110665934304527259326043917929640887357686020174133964091466936388637347040450199055529240986097546073951717246402169242894068627197164976552657290430769051593043114838615705415914890349020335711440271564033739396897354141810911411160616587084614563663369325632720529130122078591788252383783862375305249431906999855687646252440752355543376686849328035072994504816467659706433631906912510665013825598885444145528938607668493834854152614770712195536131789760097896603567563236247148181096231890796322753028742366464083126053240177900240794929144898963112833471311139149948058348351960313067918574513864517512423330690547011292801489214601031371510012699457748856511408682214646054611482585670547870267122353957421347524095324456862870725921781657439514026628177909804689974772384252238828657950883467014825949007657117894528501819049154706160908030826092523447069626201187187736121737335367048990030513766560239600442320596680528793788657355630301970840378755318261588970378936048414006471039285610663932047143535375973455091969285966040945246892878001165701784282987331481751181957076959609054848728106620666525556226906269852481898276017306236203027153193748295637966123772823121839756614452455606526549335766698029950084676594039627719781990775380140429339827144669206073463150712467872564746332377175843795162603296139336353350821325470801888150144198311442139744532514770868462902968587384850058825498261862135850205511222342786549144268706290326519358489824995292954043396950400955356412347365135436963664996743302328642855828640566167661655335176865735618335407257917171190895032489330260186114725661557073429782838893556092321014985680238605714862576153957081483811873402247169739399754422065489064804260321202079894043242420217913975584662482546233411030211117384136522338109073295840574192464492012526929845058962808018910583160854224219123171083360864092849940767240414708426233383868668568278586180653385661196527321814896645420952094734737707947705582712991592778560323914359040242465504450886774003629475935609298223044661145652192718834564664975445145003049719882478235789250241862152977732876209640991290215861046508074160142779172155647776820879071581909345088350269232573403257902859916931481725158286751165350180663258081630769458927695256582093988210348858364770166556931007451057244190921126692550619584897838312625380909168459683601828886106998373485651752534223360953777471583367024131319901574147132869072335647314432381776531731468154182059099113986937832821954750628082636634457336282359117284238190058458976618191858752324239638095389259263958359024283048434133085307710631137798361645084468905639407648231224530894133282478371970421866212593762259387244631494339461526542633707232825095713393889118672956233874944718231591065636965890629469140411374814720629783410212836125086269193452689366099781722831964834880462446488618798939039152404911431850135223288499330216443209334562446609937978304375422454825993055528307363753805689474904674231269671170029575980288920611402055798715326993400367190448806084807564458970860152334266348817984194155899673803712358190406694646234007159330570439202031084217514882811921255166666167301585175215858333706390043691174434027340462912856625425499588847313406553059811421533409604067532819871534437319519288252843311820592641341921070908759984213553808396220513477818134399883935954611028131093082503418498537370991899134993466799826367843236233879131386178564702416949932212517732924374850059068734770145930023574425435220901866237711173137589628493988895746897888039681463790088848384342222522066026676682801285009762424892659623335402128947696428935821002597914211106324727302959466319188693831226303307855772522653097237756313774092694080594501034151123072087655128460388222603379024762782071278062075523050798219836682815400331304466993554223477694131053029357030251040710732825629414317416164408422644410908796128171611446758773473230046713580627462998421378137096870748084137423656292878789295578804588444314864038509683804658023675239328969724829220821769555071679665813567921606155568572069403951252679408238417310084943867700692698432813280339599717151927045566791979347452182543974088315381133987120688278633969079912188492159974456561233490744771372965336100600963703866627256450618666707541154819669502917370759017885037527999921217470954679062063830906105754175943142674878302263121537469147714153744523816458412285874517780197707942715898535850156749304761365490179883288374661922935332814229644602696052185672428339742780340212109814579661338064231371882989639318725947194894896794739478946017478279167893617585716473818493763987300361762845526221596934922453754784999129342761812295515465823591899602573395477819443561094460748952414378343179791100569670179439493972758373894101342420433958508766019814953595959926454688758797086027934902516628578686346469063100474039789580669449022240726181492069904035651513586438554870009091795325533947539944534820588161340103232195708276381038654202038904843994056133824503954808017824326975031073061522320633324958267681630989824132151164184573258913682688653865120077127759960804111308092308966495356478767580325995931471167832068574047174265712539577719378781519333436605907208863638987565778190304071071555302977274143499517950919384872718435567599198658834365724446007307788310977594614071203106777570776925193721840666757983831477114596945296469616354205924202185113751225684998192868514879281270159318052388281523941610789197295082935381869858837362374804318665558557215116598697734351791465371927542913641742841850577842471290432655259526061550159822959067306399716218009973738772125599935597602894482467834109017244241968355086356867269998955809269147237145459531860921018995422535997723590608836937936759131392163620183789660019146450781511915654221335809240974933854897637183062987921491128188827192106187735370067795174880663295202048183549604763206626128483296241678700529334729295688449579302766830672752232647664652173188869738008431529576829838042627534702012894270828676378982910523470809030291798154360741652000797133670501689234556515862923506867770136591458268682870415355079878656236415773773439147379892581356558858125646970489047793310242147995384759117738874822203139609612736100228806128302118657172294249725421687091384173310971736999333941050122848664686813553595163486148831327848928192962029010948463303153110502175026841535833998196987633504953657124950248009625675710288826197725002367841342670741021695106914171724903260097451334904535223675097053752504466118965717866086269147955720957441102257499892291344446920999867017313719720765770535416840365291572338850821960533520208918998725453827082819154567366126950793846041802035526355650017189786990371180723980224416833350615430275806852734065518648443326452634847005824335966982684709893906759977454938311183703260406503303611047059124954428377183964062763468265943044213847823643796083924466157703658648248991490965343230051216344393111901517705889005644034493220775794146571150111545378271927813737127173254960959204859807485247477764014886555066733472459289769548772082353307250798565422216937193217327295049376846500803109160523055950155201537302651531379110752199147586489108518665933104469729527826269490539174546056503190821398967083448899388513644004686305881581217710462385568980144440532281954522492617120369423779771825901452670947048507971221364984686411110310699517210839689436399333103861176416969720529852255680789232812867420660182243930605617326803371236308316211709606040186611577623924791044812698285596285706002965776308439808146499677890620030385430240691975130020426792414536855808425668777934289345362247121605097639021804421098959445916623844477409480937003178616816847118133762125943206579337424099080053373906482696027470307238595139830017681025836540828755019093011505249937525291044552073887036320755357295174370280417092787911955071883433702447883152893577880446234475466176136678004498019869176762928428043596542106000045830585588295814830952978772699473820249130037702772721442750291195294752184100222527377880077884491754782010812693026303295272984842167408072933675942080219790136394674042193603247316464831525195963338684750313913786473097567728131411201921763829158085321760092072032049694993661679879335777895617190231358217620647329344559587744454695897993467009366290154782264809755805728189333851571559833233006436690572239078770011471907124619311983738581777408931608948889553688281123625883453764412132533291352181026562748450926255385734893471033528916727648821539266470148012398632647570698475295399641693119386601809712356730428334140842191360837287680330671356584447718616172579507391789261829537173562664352605210317020183540346026503664173188436397330565303234056142207680655647584706650093253522938640181579817417691055378622489029401861962792258267473850373460693390756539609304369643311547115743328602198896064948285995909963608791545484462861601725244115265829191230454223667779997105697901520121644821788858073774584322017657784962548814206890479079294640723256148449531420094942670537905868088214639008974853385561109085137766793880227449593714620703346404783355605268022886942006017349323865425403071848595054944714476203075956471563177058185120521815106257095612007053368888465620571756620073539647864015624793270426552351599019178563879060915250303875857684501103687975687002883889238812695979054532195425395644558613919153532416235832472216738299109523574854692679490076634143715488302597624455128132023620529988021042355124279777269341463171053576988398383990433225069942903474550313362871100276413078140956106053256424890396789049252272721841966380438588062961292137524831978616163599930735699205443934982644570054585379033044049972795142082309248509143119058336225783864409467907785195726202926009760030584087026297912940856496378895451747194643713503904663503483442892898888528530222302968357877985763837390329077426793957159700689566052417970046060818995772398916030618572398489787726363345172163203269880606550099846315401406976901212766498343925844036522743251563388225440515987106859298819452149360520495129797847600326756338406793999388102469464567381070904607799215860854563475357945487093656533508384722693241033602854210679076696525025981867157852329021750496234333955520873491558236525900187132797505625700607200693192261560857797316020561117665767436343323301967254858765112312879582861913235916558022704916478754086520010445491832770662521492491304723786381647171376173171800061532738352174073890463523816298179158493507491431511964203889689701603509863409513097090253470121193037383318547651757482889748305409401966166268924325805137655283160358111679832159723453765038435409274627187524644830334086841417036158820532668237492613267019341932314099573899425593550725280578993562602975735377996508576131362047253575584534147795551073006140916431504525345400068113173949989064662522695584584306254934084645953091092102413696883944859833286650429906663381068335613749411220003856287428192146054965771027200893530246730326339771196720445228511457291066440057603821121403580914802704682053003098648009571605940033873196197977589474797484254867275478150215557724352760852184455281011731002997381745694921373815744054903824698214682283461338513819767555036208694205380067270027329174041672525949797465572295082947279593362091179439485346858694550126853013161338890761593356507442092094884515522406836830491213125384612273959797863862828820229919075216920582604542132346079332966057249742024499830534586489209425544781696988066793846503658182981127219255161859151808057901374363396343455747912739937924692897289231921249362983408460179485122219926782926042749823753246888536729640257563844775917602119884377847980350753410708946466536877951189857410346534619395594691598434182714995327144950293396965389482201773353427271570370874877642813405119610908991091707587317028296270607329084528013135379571344186493329170701415979393727544848506071079542097425268455425774822966545240339172088481530064396494336092118505158930325492905857683853677189752264694295373497365055096329546362748339299693180522242818350204297077155636974398425372849659089353813897012649281099593613140743954253992847270582661220221446542838678591189228652609119282492047023246965368645123547614113209872819700389849822070018485032723995082537352452248833243803105355697567252398828425016402726397015947409767668168772139406325153720774153985930305651694656403335041832733769357579632915452478108724000266697366229643152110018150276938479706333293714078740926792819414055715523015214091888865059289502209886750828965978224076102664740149160145359319302916939372410868147669945599478616635449468597805297436202368134306460762412234249509926529856711357652861570970387768236723054905754515000916385541999093833807903165339081569497504238978324402388611235802890965101709164214730662542590584094892878218362421812013020302204692218937855829538304291153735359216111103654450794505721218360471256121766847006818597505116657227522676149787675477317837071976683197797181527669792838138280437097286199849544196461829712144611804780729591335512829401075548234851966397117508030930101015368153287025314698979001407704936776693774236068822842093012443189111148400614890147954589567523720073333478680427963832528653747287213704973779400277258112154421258409517427070427075507908765312814855304270702079614429274883383294388302741819342162676996534131867406955712637311163814125854148004056317959040666339024579484776676496400556364012695438604152886284096294852951553345469931144888593300469235613228453858408344331207929429937348636200542517390533991987871903111591021971174708185192550610514739672567776558549087827231904229974463722831734163299395157060362095014873843571692674552774211749536387057971853448755180871181642640484050850603657853278658744121611923650104362330306525295447006575918256154223078739768816514688628696674431519452370526727083073242854749932896546525380659640492642900142743784694506989511082457716309612314715033976072494243533129433665531760965712872448823126340648580498626950036808787918047920160099546798220138523266797945155400119699849597778852663202519953191518730274357400241808317181647129212521361319855496345671775478208013229789796342976172040320165613818542633272081851665341046198388984272201657344349107535764936105169122282187065619186007728764444931633530355378508725768407246951092073712462790681026711097625095838358657544521094768879896349841200946188425480881880455025850692895950077530541494952759914706862882615711836956206810083885467000113220708067258142485389567113167559781056965157105184155258285826135868067423059871842699109788256736048423571271098209234961558792458256284861627556134521799243956026464101050831250295274464931979959806140975742887914592475375090163143442249945161160590739584892663440472163733360079661401267493796676313283770981785031168216246029026482927101845513110147532126536424689421815347864948084988778002737653609487567086300546525825721578537605700818173750264915957372347281843194995471185574101842749612256992240075051353732740202437568610816555981834778810833932841113745296881400748007195123682909185321677345165325384282746369002825812813767743039522978339037916245921954719904484039217425701161516647747072858183967502086835173309926250268147881907342154272926359494530197735735086146588452844613607740708489585584831634914787487935798405311457034279947319970577490844742865899830987484842876036711545919283067303396174594571778220885641530085493252796302105152200328599028425990238684274424152480299048755381733782660671782021784847728587643744081279437566630400963403752115361268258484260040794981771808160430059781723677487213357325516229447527884734834440652174058821364794616974534345422126269815108370293103016310158008087654186809086873808386381878372109087215029904245613137091569493487401207531986474055131822332394846379034383949168864582492940261866440766873524820251634522832819353236978861078659161815116792107454025513613918912377796127359490097947805709344892351276025436487025766420377230764516510973402013210338047742265014879209156114750159321268605250447152546465346723195970919370988942139782096955808028749566954192716594611040416213171486317276142428344873656806372370709496171028972984418019073768935499582924319545820063355375176397378329139175899006686614601262452124332069122706942301729377347186296205273989424454947050600870431563975006492267241637987661095951428750913691212979535098362041268237385590364897729870519521484688786627458733431925589500672782730085551377850372612858185147211281242116757398997338922979171097953942017269709987879622791070229167253212633983564316757500450536125876609475634077764934170831124204600487788769028676047040509313298151319415817823022719931384959000150442586600685281552696011407138977927300922291953095089517203796495056009557151378288401757694870676064540980250932976778211525711973470618098593586368218460137186341005189984330437737542306723964677258188950817554555041436453571782402421375873486070657638797881756241763909843361997418670357978941732385562279653736010366135300708725949440154068810500744710905991192238428553135199223026766483158218432260612256311802458637824453218298086510724011089657907891018153759546717924677199958137915217831184133722319790550692434077637218055981189597942918838793487927313887315387963357138686883470465836397676021394180933933826037842959812018543455862233638807846834914149511673894788915978279216863325680353508245774189743346203764632522414350363653935964468066578310605291450809054912724468958552374418596982938629154996960206789385514188047313632203437215747803736996968844258457119793953261458520894763162395581923372874777578604132876394031585202411601543130100517438561700410026378056938592488255387141032186708657426823485542486106726214475647458511703745155884419657528830515731043201852337666479976074371076575290422245193070246029432837312606662111395570750982993532820959316930391817105389478997613512586007772780486320261246791491248145938512206817917524014728498603225800230176475249630203113217713732278911373671899429669823569947923896453610024228897419965453988773431565843835990727048642555624827693936735626777532663218205184691873795584935172061649918715718097272187111892422402980684957270924444158317029952646849595611648101613093914101915372791485059488738620602285186828671317553226007323760303212778002918020708145777726895497490673069557508966023095754681059396578153855017745440865385075136642654585386298904906045037401382973937987418251402841357094283867605099355105167872115131518806351411751881340989193011214801322839465005786203926104250849721852201800472952732220324738206762208630662773811058580038050994118885143880199935169306539025695368385077870832519205115184920496087867863993615225277908709408459150681055380441323747117507078567665404394494636517852924051224206850027487997602670258309587578075071844072559464493968840034333963900772025879002151580672534863909528373206829515272985355582315248425622756112451830482030850607335941579536819195652578329801904757044574319559399389717734096380790820694804882324593625470522022994635255232747962948023914839120876566941862374355144452096424852349599812170345488688901602289504985994842602977981451829224726614672866251515394018198115731172203044870646415845836033241515561305550420585817804128472955424538487335052096748158835564544929928406355592102243454015762775789576778986235969304137783687240140637791471289537192707667857468286367019940253998765590043097301671227713423126837711462974967754577686380989389435177554163592296085128209492737780709436170408053729743783965181163071357395825815715110289940497459494978078931007010482434242061935960774972816552703680456566330022075979515305747347472358963431241138164337154000942530338602507991004426811602160815024619404321541271445939442027120181550681986530258907167344267116721978042075799089907210735763763510261284485022915636372523983109374425628743949465077051765361394133506685720005374117507203479454669571811232891696529027101961760480323569343720647761680555357154234752086697840361497868989696991031162539289279572353380211104584629980513103091904342956110347251801247592726789690632745353340345245470648305552708591134849567002187344715599345116941795402989434732464038637687448896448649343733471380883493134575090755653353356834535711427448138685080916766470488008821819503794549988115316788262941327828555970124255735004440725651769804823851513079496907135749789908540063047758833657430113566096500631488520202664418010537129142635569931463737621021770192495695000062420169439561294267362235671540870886013448331271404945762307847319240827895164544702629092227566253111340821540844872163625863277820635700735121725931266350089605643443979187752200228410848419027893001591636180412748908275688119846594784158039196374614566007344712485254929561869229631837946105327145034245132033827511917583575740073514614135605368492850941956247996791219274139861441745367037092480715683506989827787144202835929433130331053079556610864887758612827862526987407208080360389952980674060355994654320412485640523195409442975446324237884930818188339143191460551816423812315469659637971053539293289873562074749010948547267075839383885477477224023895616916899639652174205371522562268924463638757237392382705580838297002689703663387589877333244060038303279085173607848765569560164250212656314258522156299813764730004221260597220035985465163541222697244082324587716704568037666117660179505689171014108717923089893663177800468712892352070490442245612261139005289345418372143452861837001042750075521402116793851001975628185685642553933715065670537873994124040625158973109615541825323376651434428081078881709864479781639595676609610346771196674680412310626345794358603829656168378439320049917590531667435309040027716620285872808210862790368683700814986166511094434761090959311596648876912151763423562904902498716751468224706452819010594056264051627968527961573633043946680959945313820743545138762672228560196704750821778292132917545411184028557625624222093881105643247741546425760739274220560078316728996954452650165969031543760707024903405707501748338483874036152859562990468153280578710222261053624343366068382889357842098572027299628331605917871391548982505800020761155967532157781984693133268950453885334035657106631942609774656706331977568258876166691357559225186671578009691369228788925917700500581336323207953901056102166564754503099672243911374266620621086766485148356156101300345064840295318415654080497751851148756474329039191901869689263242756100634217069365731476600749430771399034009698378663859939476113981964606495815960569971718653747393691415075367563446496572173875300513395684190935104456886454292759042406919707641028462474407009976536594521677855393351280323657058563579635661111102791530694716483182063316629129281129507777592242492810658154144581315610257287080669745174618250406203577048113865126277899889224920572648785756640068364875556118410500454177162081288307918373876098333045551707029302062950823359146002176769659677056671197390891902201866687700320831224340316598573382617808588478996472877399473389360533573953363917073438305108475160511937540827044517050650629973137346134338564539364495173469343993342784804848942878687901031738191803033889403427766686354537439973088234898826670038951986179858392190308603174338355689886214914356310359856949583974430088864286928213545976516068493866436566013288731742539182133103539169396467505227330118899410947208636986501280481029833104819397879508512956548738645503407373970567864036610011275929269513890407754051234366922149653503076052505702468898116082144379851063148709973428630749019840655638957085937599547406712016778511596104134735971188024296512705830103313902626947785934792631473079301166149073805845390411748595140230151384014857003058531870379027148069776339044666408969312786972422889233467583850601785212326301443849109806390035872404651311764868654224877417386185934749653203378226443987541837901310819013929607773962038937982912286721965614561611066966773483674787250233746207418053705594472935713771944782549252554976131260179433993125873566847871590223625574550657794706857147415007590324421407982527252433230444429614387058143054426355729889733316184829511379767717833148912857257422891218817946247970982766584981082628621205636038988489010089181574765836736559625571375086417863796495709388148868303391886649693923201969501688644527594165376530050141843525879350562211730519403725432367291487883279520525638793943850892880915184393299462145932215243249626458391595101361605698332769171835248558317394765350392558790242393203194400005446240960701745012693640502372317565578205149901659044657857327686625186355716659850991239812612311508807913100614990725098358847340494744426646676899456959399553009879761195064042492517569600623751655722031890157958776348897495686745813234341587082418473090463079778623538702594651093105901047399080869617275253557769933525752848883025855282768387340742900778767643065867454375379571199671600261110286237155841034390429275626374616071534519561531299562483044837096105981088262733436304516819545105767341653665184192018665305181344189515557976386570810555073832830808186498576917576250896474051543211535128862588913836717837993101166647837087656332829381702069639339453244317931022428162712810683753368484723115807284891782592274164338135210025998373936714206731093611662313234035186102616235324198289150738334854327338177264186240121818347572127535653294217377189938957868446958674969472592104480028391052215292058971977585348504694530971328851649866883535117310320369693442081348108598625698132084826065367444403053728941204974024603819483779425893464854595430025028940872846234634392445905437011811308217688020063118326654473524739963912508342237379565392186647955608270950913528751588813899930277961603887369886869428995724845921943998046600174754010135374697896171334745017283710476680912855289234726961629398590279351872483326136944843444142043407008430930032092464857502399794846833769116916800930784193522741745333864182201467954075044461191158995472574886993236649066507591410813786238372399623823046057091411510304425675173036418433199493499992792405126068665405054114285981634415415756446280650678391622118335295961639973488072699102700013484102213170435490097935478066774135466769395349801408414121063205340059317936473920873455715201931963940778691098130139266913321462528812667721798567075738481887863247563023615893657182372671419078598165339429718175580466149271082572300085141475919017335699731628631442145303971492772517513881930633610798668674736075646984477829846743927669468686991147494054347786039154580782192347554530224218309418990621467693030772184691402704569470542180710663524048533784689536155130355900047723973933627946363145270287725455069032630697077004020147682562737722609542010051156720032739891535484233030253174515995803890508491948081988559199313693997145063892947816820617001359722576016319808279257983018972832634055516858921145761209700410976416898004395211422168966043130519354477113984189581396885843234003825822830390891182010249784309796237092360238579342937058759608100388184261133877303104228336231803623925325622641102972053477656181895160783867626092652520754108839878690226331729352009878111417449925711749065498055967135274326184684630071060158566723909730279989721885745433826453347628207791604013509741195291580390177458059139239228244090327077766288175041834709049894362805235898051261340579133567942695629335296127464339242281428644936777462816000294778716342215766815529251727476281658169552461651116854069717820134398881861429179996699400879286808021956372161033174039745307273483521632722163198602075726087817673783428531778672939110734882148328604153508070025771745218204660785143480419858143042627184353432204194996030949075471360285173769408713547144577290593302972447338217619638994816573840008027982123723001816631870559276419412011859470529863217536229634333508322984617981611691869741542714783937688557804562183372775344479745928856808660914479750293760375533779327399257776576240791153927498426995680580309678887516853538808893613566084148692250845324239886313308350646664599276151349499893530902085491080107391675853251176003481377863440806358308314466944303172960424369720710828456869247552617186386605919147674206163447935878650118014128054213635904310033893187829979833247458989546075592226539778270299385106448783276329864627133896337140789130530520721196503010077770980755863293052505364302243984139482065371316390340299937500601888250966221623406511793087735530947384539496529966295436606186952887085852101633166758916478786798851452668151514293238742853020889262704331331487504829262836034510204359336839118790826559332461069063747400279612546530567856560848060458880000833097270682233375130970519509756454243176709279998773662679489744929297528082730484722122273558739274915959704954158382208826343468413018492353031876235640968017899904427775656267503839785443058202107538806609980265213866477189911604214660521643937939725617301135558559731576958320187901677083366012292889792232652516767883074701853666009944339594843276444417872197730172073684819210297228776418866699076656614589798098851068414656916343280293403604628927377213649835191637397801613939329728996242920328626816007651845427199634003025549349952693749931281411630246583707472147071883407879915628650537036597786872781522019408406801968100970962556682764772686354070103951396537675923535782648290997387435129066684764799062613105773787361880974349879870892519771342264091456244635697563028059457331221274111407379467454877695542240025156342308343204470208430727323562244713839873773133780526848178456156687024059404573888347861534319136756927346891269985800932536674594939382831403525784971581451062859150610603642087730520939097635976631783039510455175914765204397011597658198206442347625774120191487075168805971280219784037663008816371684182348704681137629820201856227015713354554048619874669320842752738603085228182589615556181244218102941004887580481387204083655687358669722685631229706150197554057620486205049055508416326006812144886221322566070942373141715884805010945785363317265698154656208765722381196951852268954145756457646292670399600626851611173393062677177612526594395711873878363157223202973442224219446031680008882523948798626976340848353681185264381930076444167346342342287551067246912089146072791338844490516917988772001824897231832081307408293349592807970310432392500175040322369621030423816148693620747462330222151690222899086228058731880079000641245025170378060064695220245469756127779567781690745608366257976658870502309831755467203952598911974065871965294792711994613622482404161109614990232771669396920860241143852834210896925705904716594284830532821308915613242012409573289631483056552659638752924688026472949715108738575673481605928648195403226486866619025766640242294680802321671441898347619463742701459364431279692514518097073101458895149330297723640837824688481743979488330120278907006648523122565084145282199239128862860814712585756960005562079221495903766240173198913419970763085549033747899340756027807143719131759320063605812360267365228255046632592431618343934955248716778783903563759444972644884241083697941785022033169005470521497566874183138445792009739280707727515429356521807863284885508452223234382613330959842880159832727576075529181093937645657148344644691767984700558599536103306409181373766367521633983138780393995651156441651577751063284549723755296570374741851896133050857261779884472684318149540455909638479709880974672563547227906602500180693538480829007035513948404254237330440168267956967449967797997374035170978340786005074165217681141291298154968099077115646370004325380082405578674627688621356920768033943791377299486384650705239465183311645830466558417003377993583061119429891193743950069444482727042507965026184626273196313711028050933717080987973444952009935847037755300043181598836791114045427247839205828403530626944309955374275278182911870213507887589974966286767442100188878830042603702810418192340336031071114113714581516494656331480231139483615121604938220220959946324515441883329196696738193771130749612830371205471514386029592287665372811104421519588425084582563337924648013269131645531396633921183064793265227874176595527696738501663825930728928364499865781182137025221328602571880461743867171352490848519585232943307811518146022736398030620427987938697690965027662724272521867339086576826322220255903945035331751899727167283509127380393719351536769977810530694912777529605705559402892030113987041548707780949513263163013983667941147973582677679854738817707928656180535204749486455339247659257929905035539782519018257969693050901920312054316591393276766377427040360485873626344726424416664601400846449077444664867148992107543647700639272768279559108204694542829527322759926914150207069228871682513990386423462777336451109556328310605016934815666136539383516165022512942119107807621630798480466502184232537201823429765514594213840181201784321704729846167601457369280786970690549434432104821032017054830513377956330683671478104806435626190642147752433471355337325482183137643994532404951469411320704020432424050718865413401745341228375554268893076322644560831794213775230429844179170712506392739971341992336403188204175196203483726701498339062806610793657785502165612847548038382022747236120995819006012780120548987010241632067584155341843817701955701796344479802915704485698823383588675882565130901423302857378033858877643448573290901265626216475791017372331492098346921762416472012316451514657929098212188982852967949517111859743141659181523249955069981284611272626432982966865967100040409870707429405725580750896913604898831462804018338491195151473805666948383636243931726685298754067376250714965268446258346947082341565227165236202540696214051095496983611142912021961821024481489868517368270592559509512229461957008240019773227181536499455135100047443568506281678035315648909298700632559351102110551807591149676596154173017800412125004875480088247689023307113143839412821332540955088449842260544596012523009540804249828682794549657674172618098466438681597539671576940859918709143264442295496825635746309126002305487600779392137949710668038850809491822865381955691501658751622881924916300626751448051145848695624299257255840707430570248788423753252684941791511645106234272555559121346650318118110565565444620666391854095064188829384698867637322081431893050103998099001317925786161328310809034001043838733656667627383036024253261513049442254719452219620505421511869185507914878764347033308669936464637822221478033973586878945688919606897002138679073773697219279086988488517953941015268805125010285392102727973411843872613567655248630265616118729325381337141227951434363620367255771343622891580249726455297513385643641465275903872125908370945928419396300173371674106911000847196070134725235533798247140128250154942891996087671045287890759092104182987699289120498925084346669356599228538018131641121487843277198245342790643080439979372235823067539729593673763673997957129945607634634941669357633025537820230955304500904896122055877655902953755748834039261396322669423136371303580723058068339378002616971050846073988668982239186205906956943818735060602976377263883857377622186470699179838724123689898594238351115158742943988364665364971032718732585672167115032958239259347005377554917837124113787971014811296376476548129593827747935699025991859231271785609603633980694852397053813512043484256781657183314873687107600818588466406231292920530006954379806306099672925369734262332709948115619855500263733982093173686162942818330860511077565304441526724193073580594914266993384577282648326183415500281185383782322124411134387751096383177650237129715182447214907092580091715418173809053421045847189438058137679989745992742279514102803225154950755501209035502627242967545721073059936399768450943249299782221885553917663278393938489225415231490331480856932624721584176857569593002196757688164135323820434926986531194663521683729461012041073727024264126084946103071818226438918950407451247553168480320023891390606994937343008130999738431248976419227927590640801053745472068184065557802314506172950358335309774699904908184974104933677590777174712682741555945391342046341867450026830951921283995053212670997550641047055628145089707705870580466165212493276287292454637759945195363410940070892302648833733704393247446100606148441377106993870972635745511670468466371879148829273143835448126365541031574259302758122864260495804131131441439137199134019152811214494639122270527536668468235881756769958774712729606925563110454110017900781343863978060462799927545181724829949847857098296191050451513957414470571489858146861133655925392449870113080340293531109972447351380461426467970047952889723204583638759108391629420335913226770803195524674705168144612158517881995175920752440230365213021870134417661616777661342793003450277714690942599861409061037557960959652095140747034185508096335209952133264920174260401921611069518588394622239317796798452293826017716397816202549052018834627708782450092049480680276271298636340628522860451748493013101721539872607389142720400912119907888461948488300039679729110840202844354920440265463739566163666538713576514078867191140324119340105075131226198772506247831688179966964678288169312087092714319991870074444552050228484885026893235768515675778037591271906308176004073956148994212009095777264176956273387504325450672674838334992620571725243949766114623514785810711548301645847740614694312737571121260145528500268122982617032310494103897349985168754422935233056525774731165800795627673234726200504660940795743245319284147013845980000909398331393598466836410776133318029040951690673010177222740624636082333272805326001190591042630856521695149333290582992378319461782351517219455950110278982923378880470608338351676957577918446077652592940917949257846988591279987695982472197569711571457676608433523871099814569567221554785930533762258386911523473372679474424646158121302514603729829728475560821507526617880543684871582329182986529306838703917143222708953248362937421819280787629520531029103431602460422807102417691222551868368187881136567167829762955826230923196391475175200301139579446748807267211768130231971271820236227069156866161530677295339916831770433212634887527597513454418307167191922152796125655722514448758416380094945972751537963480504681804520107853757699927570787383241406487034450488869127931593786282297775873895291046376341179784603083273017978807400933414372561235942346412774370299793857979486872762445476309569669378424875038925819352505813789875294133425754353630259439115729229406925739876801928305764985053661210428896463212226623771458117244346689420831486307601011199034071782638159445313019585426635279551921740470266786964369988807184189387757086297098390624950897979730708509957248658588288439972843368774356113260058810846472874336493172407351042177772170268363336817392933485064791284060639768135995742765669187842962557927700945163383294252096645662538899359779448463725414879934615641614212623975800657460350419029908881949839911406376201140529686242992487504799400580551376739976083994375883556857782697401638416926989216778135433297486965341058828036960913292296680297735940420397652864408941505459867180885417095457972214458234926231004084759625795921498528963166664500476074173816096594289867795931376719191015908201055977352295138496860340459685266059545815665324202188985070538562971781426922113847350404736791901731468449129393641441636372498388509674834217420050655460212652276217040317091572699138418173355923283172659224689301074820567450166263837024087814365167895330528260422924379945376370585506570866271308761041358145048492008764613102782842365039434306725689209023289252272006701923180205865297563041911627246640638695238119315386275295773304144810444555273023175667176628623361617949978283347351738112103395500956371763708308186683707353842028634156954728995268527921194288172188116734171715994697085418023431859037482540441542691010400261208154121288515453792650130522477272778745572829973745681318950365830397150734649624572396228623920669328859380813286539234740298049532821974004114474749721061200422452829970725614371593151324198770098489099862710048863408188395960411553750227295994099609948956144443279843163077711386143462606272041725666424897707965611029265683083163201735970786859754823788484193183807231968685077471657116946971853621666686517200017578980443388070086229095186279364767134587996646220516600037906984884736811613523062412700661607198580328590746024021639367367985495534169773831581525469405695481036829717169977603736121748288994536827173261815510870832579752375748330975017427273913569102994520652054301252512556980900491620903986817787593578145202882433700657593253845077596387352662581196504313556535315444223239959408903273835488370902121673012514041562032659007340336019620912182057057211409117944097746585011136934042844667834598325087080750177249865591887281362521806437358630008339876282951558912039752357055121942262238601029184548856729079840545380803327108537505478965261542294574241744186646882238097340536879744947267610813563458006032242310171167174076040815655042919934593015617864487766938642171476217180672942446374168016396249086998179714688077383522482976735728104471711291641264139596157437189009451792653335893092116176722500868909388442164661753723214342653867907109749225452467915587218147486399462751098846914181965883307104407022201013572902097343038210438220423885819370658416820890519164331357526640889236131851251219862348339291806279284909692787125697244524655397964018198820728524009011670760686523146566041838252630827107354215795526733583736084576576131512242491891049768887670617060661399210055886826610899142941889911384426548517850328291275819806316653599068874994034820026554010465356161051778917829651072661057151108757523860699782169796503330076385048199276642928353963898421425523359699772416596971434397241404885711280854724145245958810112963152974336831114925129782046689494276428821232847113971412175832839088355543454993273787841286050204536761484427848759367185813055270404697474360035568199171113225168699430762077392662259675573013280361815781087313026718794225940602147932293009418533394035587419681634644942844748731521455232371281287520598729300811826336684954869711036029686399646365573691532040934395961067906946838900679060238226380979868942173139364607962742533862415514222191642952218759444473655485762816634397147815581014891164549122440775472822243509955258260983564168438642448881334115863389357902482790390541517769060749871633059717183164896729929218106280279458559848187057198426095764426087622244147375008747276746859088177429713168796437460683864965191035839319277816772328509276764072060651319488058814200687584615995529990955501011691829650121552766971355094430299484801007646524437314269011846740234672152269624218022184766115587611924268809564610593144431981626039004482563294156724750016988566641161396902356279489268945906612657821495416223462357081881981921342028876371985143194010030948875948507127436772241176887981042792295924975862598383255430192764049593177338609047272980810601495258709528346691429328634076848636574176962824796309355581922767521038775594011827519694272662021307902701532538001637840867888500575770874780538500607935322161534306880432442877166773328272249590866946112954750924375736140357785638405430261727601360071162411661661039640727101501456963729371525082495469695450590170245166170369303268047833444268538239243968185310086632984668143719076159735130026524021087413591376120951536907950769480480126137678954141989672720641040380461877747317417952119579094900201172277848605249636647277692254135823104133906165484047933013534928303571973890405459120596816242218023309009573713381279137942686294023755348598734695823261023725370835150132510187606960021113746040049971394068376229389705662754409647257726066538676527388572898052246372012467423346809473359582953986636382612672615972348324409301423858706426942137031060463135401292476239074347328340607902536982823842101561827355144407551309245157723423620493055720664775056820376587791412366793676964038017237404043478265988477971477473857854868223123448505386813508701978216895069388968850167533527348747149875319977085253020027695256911387687576506476768438121684462687160688399189833431532468399877772545994702774408691376159550888620290607192074577674382804490205994369140065973236595872477040056474179405101448776377036168763878015658297466612960951843992995745270857583612565226510242597196298054580598412404596307249681118233296408617775783850060955456335550507019420681584324182126166704878688567815135151938575122960399374138808827490120875171350593160038752817933708309868202213279128182823516276801819794198343397141130359584620564849190182919465931175480584267619673536851910419769802190615191059095239217192264496007290794316448361058529460925635591726685427152536606642396699270774693841438666435682448472539167508570512396730342666494310437704774038994569095966686960938316781349781230876992745206535005979269099662023322737805185692421498007850402344879097539933939893611817339098068226040383372585276034617351111973173042638849566780875992996027957253062079020154514744163833450839719606908987509151339873349762980169733729338448840057570677743121652248424555270625056847840276048306658082551583350840903973366832578169108693437047726768130679232782461626432555947724501909706485047922007548083005866475408082044303883694485820369652489920548939463715300316932230174234796560710248048251481268795510085283934907096658781736246086009615161066329753424778631918233889690252967300396371175473200521810774620167404481274395377795828391128381208456404535751882137161316548202888515491206121459591305178966273130309099708356085999280081163446142052265515484425567779992594254403235915271009806362309474174550002006650583506270654960199971377986593820570773216149029218542517225059457592696291917068935096273598449411080416652770575469397068042621744126121069188556061816660066765923863563192653977148504809852803814012891365678916104055817165572479926224601539956784225532157212935479858685081406856466462697715287366784078104596086450696060004384125627143785001205619314940049510413010454322652513594388432057014814290161193220604024511927983319165994902375753232971845515347845991772435608072287084019081869206439919212087353881294139337342543179054891285985386886017194943147351152977622036526635949456924191013714324949047113964471198149323048592032785349353115658229044534440168799967794169351517906712947895079524254253696604051905015523276181545070505856248336908879369497645082134083512782122040036118777991568209917505262814880663774950713620379764786738444678727046818951033751687605616799324230965004082686720085024731513205351184197712128505206014337565177186884474963537979393430824951060317307884179576479898759642436258176257123151209421793646279095410782718450650898303186520853901178847048726795048774608261824464370923989603268533337374221189270192312292788695520128105853188021663128182353768517763762098518285462227934802395534387343095248352410496056416304149894251348523039385081405119937099256036561832204566512077810550992397565803838944880592149086479514408540470264039306928999260962008645562500458927367968498545210873054766625629405815374176605993990015316190913491815029864732038433886439011309572699456962143090911171687148919021229997742931165744457953263056913708090891765560768069979545637427122370579969770113966226027473191801482441680682341935521941686285714161818719700316388371360153611483420998968618466181839824382019084168388838528272668182946606677739184418609003025274765025075651956467639778346846089576936506643492944199654641225752956195603767348396771863608968809627569090699397263998137917152794894592126149978324345393697341535323121710869111965329047670039809205294294996886946125786842764053940083649453733870494321057015782176425323064529987789583388638232809865694304186678302421522697152476786644756440639398235508849687085599491430205975684317244674523176802253896336122437762899233796130667274209874872632656554678517296442446307712524663067165793601578969892518493373593196463953456410641392633148507508851943296698861423097264396202888818520150290684186589821054728975971091541158801447366792664758805537903931421039056447268230762772953509243784995810099277104187393841375623893563982387544533201685262914908691040909485425583326562260403826788435228418266364592448471464629739357407762606356653400076374504703642941833743760643681551510706988733812382464594907619405703329058864526566513432975952563883540280287793841980850379990743643345544154233348589165593350666940301330208527435280959090075393461867013176159076516528392488441259396935051803205139233838355664390869215042802951831666725167292380831609275770076767125150291481708589199243481864246448415536214656033399318603957089483725088091684844265172412165137704424063063456992039724310162113012544927824341230369005161931842044668817366842347017932667742809173670536274494188487039907151101026937948882054256331056211661437875020416001160081121167548829783335835090973987382722086541414109687684637969292023630792690876482373061114868909932007918019246616667602285223242174728294739487320179027905264904852231323861039146814986908346143591685067340885512625780369472663936655762418532065035682454544747131120873383498563900622277993970987605855251633800758597535302791186157935809944037840608008333149533837561647396715361735292949365614292703525370367539909829381762225522115556201137003169686976430198151240305613420295027146078051784909046553065263613819603834675815229729055731132653536589486836558466617865017540351764254952047456503306978623411117206914681961946326536070931048576458846749704010527936778755809304938034412890529310332863677635125792511820998063743564206597154113234254792532256622186969589360086805871112850246407575668112431117866307312775274795838169743129533610986142699423958919689209398255363018003102558659432072629364241210948932642361383980532802923825692864539366326422706018452640832109779731409554457139742228533033761450526572603579322891744962332970263164046668332407381333152438281189464881183822413856779709999263544775947316462158006181716024639551979560605619291911259006149153136702908027382429733517494966587258474592024200554707887651957131206789642560572360434093792777515477674990077910742837787522305588796389405642423538563183755440407282682866528634987162597974201711832523532556064878243889578605631022313227258834647371148648953459814545347415153501333658225653333771190464436319884824670762767874429701505271153961710573754184586008785944715573496528140419537130682268989340090064449772288728611883439109812360208286729593903517671638102863159649795356775633659976206354940351413574866167851327213327531236192575253651781681924863259071645366330915008898336214567755002726363618548928567786202504048363284901296299171865874934557985144526411524034457892004927014255264294790117856314897972867541134024997268074112401030763876501011042945760708745037477061712063362730493207971950119691163453318120950761478854450518988973570496841168709405849219164404069787280958999880744775692756278437963032545196986114033684276220863950841858714448381062983607309463449705116208590718286200134384941715990194469930431324049886488406162556251640561450983194679453917706834170781827987015025019739130794108820998893883008469939900471170746628340316651202496419058784897687992489868020029136887427085377893017712379333728752332201399315741823843518467903292173330455500297570839128457804315866650184535565557812231229399479974769108158668491906169713129250418424739302173837608815824768948881202724356920705267945591183667327818101921668439706114133130532146356396616867710607513375606688252632790242946083023943191580160202509624142163039501114775199992815855563578908118269718999419584224252483061750740858445368195261244003231449002279737504019435206784581298224520584317820228440882577009071231388461407823822744557678102009126640894993887730418445535854733276923703386268521910728033280857284427366051594009129433752062483827253837822258189674830576402033570215131234838667092977697690319763048870680235541201527098463488999888544682414146160713558078562430072385362686882716747899099199253660050902906978454817432824745626476139444629390337834856373916232530208815205527523404181583020554070341954633195827140686365287422740060477216324933263178014447526582546175035576555135347382261418480564350325604838545453119403072659017028762543663626684264040961380533745961706372311443750977341530080850071626026768465176454708089667619450243876733905403277716801073453673385820498254927845124904615867667983668891728821021172081977980424850711144817750194782169006405730265224481443620808562496366346258259723415961789343230787711180416744880407189947860067285463167559133815600265580621141270493222218317173898534149160264916901279126700344636692375421168161762215917061216023867123379472689772036128031800090695476696373906620150056955653665927713433956078999388603316956094075465586027157719094428407287790929152450947986526264942998362626635367677183071594334786340819539756600875159874753443705629479497103721524361072109581993168635525093582954943334651009301348513074280966215159513701282031644014606368845158826196505748781940692061912256411518981492945101379838087490597248565058832774549600706911696500516999897670127471291186072688145841679602743718906380835056000648817299671989294829016138502350204172495068896024216830653034007737553619536779173782549860616605786800390029655049665747159598884009322602544474456449342806687998415484141772689729391571290293609418946116076977723165107021318311591657551748138347794542969499512726910857081554490301910053885776669102458627354265701445872424040313340758785743825965584710613833958910003908805779554323834734623193770212765847243845855111155902804204114836946368521633786240432871021197285443390218761209056873144960582636552542008289945714526630598475937206269488284832962094990891768332834519709371630135985879093232534188192807477947292946344746924119007055344976751132256925059137728791605540524655479628349435130390713546994896136232739820247728796637056481532356360881577744796210546918844113067760724053033743956647061644164990525651798220596728959537465197629773370432192827143887097043929433632155642422251682984741098427014366283798610416254400681739752256101095630291061725745528084068793494920826552080023757276193804031113524532020950072928647530242148392217633537463061727479464340448106760911871129898019770001732918604029758999332396212512573161164906558288070567542613364699537403637567119095638212928630168005543096975560761365798696590333734554167213573434875691440087198851443238351787887969376734606533929337278726608203697988913960347916052525153746897489459516357175571500832605777871729601543656202630497114845149271278521924572726245481402899276443296393880735620080130381140994483384343424046590623153777788647587398662740673184727820745986893882411899140707993602806813342413799918752172885256739748943779301254205322497337600303698062321972949864259024331463771402975430579462692877335113591801739935229151498797728830518440572357716102934743916623725337758951424643404719187551987122050788710257932048493871234031727163344109691677454246495310894054778305543109766511226421141986147606411898088167382917453388800166523720476882857545717338675308145656807496048069515784216245899222587560905256362417559684142566251197946371345189058961456424991262726283135377816121771606456495829385276214851157338296388029853748443423162313322074127061801101840785122219620850047593256310607904391993602554662624379756482397435478832769303019566790149316464935036146808269624615255219131026441827375698929836954603072469186678384023498157537665987934302177676976778685469039429498072867430742164708726604724257908997170269539998121912616693437444798424894376546031447916596361648821559633975925656935569379848147828078215933602256785327495522789862324474251071913936435693539805110120620254067223495424850168628853636325502127344014473720015187818938050936138917559633638981786073318545963965093002219465274962975388397503368205490265776269686261426395443742881301562865831015979812715646618674654173380274640082720322974851817207476459581538384201242871476436742884618770943342933196147010825506993444127220963471758946225871815720683254151744586225247644498135945004278963947507266141797505155066902949891671237139153550474559304426053749441850553346659065364685195451826874446280798269730109528332620861581157092329408786500559267861085952400367560699515624071103324527956503851335334630742505726164734691931343146183067576997925007926155242676808265994018628265480977931125708682080835900400134619090914114269596305850651654820751677452193483887355412981178859103670964183177874927777298801193519023030087372975290318078213947181573728965303914314356785681470944676519059504449329818754896009599564020527832616397416633983023119460991247122270390341783072719010273111853787958833952298378948078657314396242836379923905227101348543346504940555378773423289120707392637552004558033780248700628885767088876150501449446498626333865131658498016285086572353188078401189372615128245557962437731616059961960675999982320978277897991064380699450420678730687968955960640792874144940206565079471291158769946742134067631248466920806296038114461016457626745893249755559091003185357728371058748286390414633894021182625244972983319965305296997062611965509125943655556638622014506190090755261655230428857521312169388048466187890721735813322255472101567718277553442078239839129200363055742722964082023710866696525187778824523308063460331550873890459722928028840188818825281845108668990737624305801264727321495923294120266333478094138091690312991939057173990692183140360230316716431838947646997654727900903400193843719732582589961921308127758539729521666434209091070794782190899873221115409986983195592223617813918411650212193761678725214495362785159727620971542224857808220851176508084205845600937892711632811154126973822975197583551948717626093271986868426343573238583799414308928965722294670880320271797766360127382679757189662081087451297196817983261531720698178644658629041593653135491107733895925537269170827179980143057089013577620628413156397607366251191985449680024117251936539099406745912580047064408535562280365898810866101861696901757468427804799535082453693005865157161446484926093310946626868339170303737117443555342619216748296805529054402024940136619048688591339038084733839920940944825491920983245449177449342696639129583455716377236398780288104846829822550412996296052182364790004237065648809209145469745571779419557155244786133342631000363972875788371694552996673041202151848850231866003186265215653194489182616156489226683870915107349160744721315029718903339174075990653240041141751963239767535716829904703259587873830849647564526879908793224643719347362977394295585681747965233200691614101440865451376931868100320383669027613504815444001120050817537984748730303630531353023558313176264441838096349577739183136298182632637595617256470908265633066402657869411725223317878805029539053720620698220366651839096270803215428833517828593709421895459855488020763174324887340296637960027117910684566276179522722846150190130919259879408038361215865520123997623907761848594605913774345348580860414215415873408411727575934579684755978459242787651878818943411445923631090535572654423209886109195678007163412620435302906296144399813973090987653880297524473577929579501660649934762277239109643804538662024906007784300345236039201968084096257032260994588671222808940971223494546960824048898700735249676899568973913856799575602595379548018140988388589813787101745830820423916442114845487666758534343513000781699107841146129545589446432254720065998961619782916190793434668532424737214189822656890880918680650115128420850035090324108962857868806798234514093139987430176452546205570482326719817554025232052991001914898934344797664228295818851577030381271023280442662264898658904157908570097760642625921811927728882259681134880060756194434075052208982390062662432464525254201225183458285993882633249074403188437185987121590046028378159615083389825053554867453873561884750236022186071268914050321494706861860481215236206613021513641982482734353906457546660980178222959023217864557539103437741404914747020327618824010533632430999527846799645431412777930145075432925620734207457719831933779628975697897428681732971982464952487714383938645641858865394021753333547675876696064232507818574661591800205298368201313588468644983221213683995874912621505507059632337342006353657512139882877157304678284460391413344821839544816957061086280227003720212668615504371447396827349694314635069729994566412614719137463665958911927342828285690961957922138035933543249630648517948863902414605475129895068498915523286782495678596693070329466069499446157049605861887312519442982989559882426869380964860447849676037734060450189553061782132804914765559353027385190909803483325677773793547248955643214370760279944369465841456503851192239673675726999490952046836067957675653009999829076376288336215517998957333137345615254783951484168276520439692124482732614509601574202574923991876892227400993650638685655324349928378719985688936988714838524100941372131229318629243827071195558889518772412976129377198221107124169682290155617544549772558201269151899296591741060474081821442505798762237630587350952688531664481402941776913840934342030002135457898106743859676410749136100562055168397029965855556548761715804125572809766344409252001588038705906719891474719966972511085447113102504403598334874599653177625346560275345993071190151328932449625279947054950448705939297873305609082585160947531253182832249303727819843933632989036746225400528682190326452054884298612613704267024037235693549962745663961488649856379303492064523322824428982871139451952446107672897574929450934189318722161295066507098521524674927561218332119070702758051767437789052870080425799808034410466552242367400854013349438871689997030036215677842427318209883564407589724553631134957023599088912153724959234905697847375848143004598769778658651929106601763756359185823278189108694262960962756039671555161934429703999106186989511722253426215959143861494807551534784513204812056781301686396038193755340173230302949153347501335905424189127691856428317455651742413119826372718980199882603007184790913293416849978957506950271090335141140101537900806640607724749115291944636440145788951190091741561291325078854748117233519323159105349451593828216052740693045561364593855451236230443972862042641145068428830075780722294179000227625215121618146963959088458571163927131608472114129816455747985909092892537956491334046020008299312198887649763592261840005820595429212788423083420144851353670180948944368935700860753645734680520428709988034204219207881532847828978324894698204683756485703506590239778342873593774941825115089269141909473817039400784839151325352272533075726948218328316462897857478938895743745602918077129120229121950414899390153123728910315157500698551981029898005217914637580273347699422542501377429199166671684639278896527368842523120495037068643057545783494620335748749140690680609124325879254032887249945827838873256339795782626168511878162559175750480490192854519188045443414039200761054518965084201929833478716916095730176692541853661572992679045460915037955734641927323373147403600439477835154574658827761378260184239959828566280830083837142253590497136798021388003887063830218578339792087189564522221235736673106480080734874374930324108575641702417653687912588930308610554716839944072594866924885118690556104547879943352969943003643224964889327100300511752457190640272389825110680008053367078215745125717424634446735516711458905531216885103688067319417191669946312975054803076818357589794314152022311111367230639973068829577198483009376759910050256132364831358094112280903932886801617408954145482825988630166047857222740136335736431038117958762901323760858133431116474474295951388982344188417384576942451547676224755885831631410449723248940012005651077714162409169391041240811017195841979269940180123261125664574262539140563184606229450360755502596204685396085995932842800328928471528487311839218317901429293188401428709455799383156818344732575624154930747493865704216028028424490685692032196989207971134674371751414663853942716695047837407517729492654406278829055466809773922067497244500487020516868091320941093752261642042950933056176947518330433858474918943454097759525832269528108399810583921784491880647452354899459465786731360921204487310092546595926107025993803612462586839364308478448909806416446237026832919443588560049994916804585475085110908480362388804354862900167453832647059306300793116674475143957655137431545414974789723688702987428019765252704695640286277200455936077616977538844685512200184309117091096121451629484741907625130115212673371450316083670465615084659522996399198691732948324824819158747436064317687144507009310669800643071437535551045928283787068061858877097631036521265785744732316023732845790596606333833356352192673595154974551798846449184518473183561670280555746477548526519162172040954575890813859035798761660265886018279202056054669077940571942239381427622709659136778737073563130657581307452123728334418527346028579906564935382244394166157420422245797556141586424696170522677571051083202965908082292506666409412988722934075004616052306161716418172300058621781232398092926137067607785900210156615372622932999831999366269281057010574711465067070037293420706661440582053291675109645993956564857968622184670966423359397702165890491216991862790290828381846552370396248964829409249830141910910611359770638104207011681791265014485052195654278108575010786298527153667750586128345122598418584056471373020198410110533625132880921342829184071362601507796766455783214016200122826678854905256995148586684657075195370423639975087007696335509965271043719949968963246576894605869919235906871455343430581012711868072930389838943444845312749291058542487631824146694523662977151519337559495553865351551003414332423341810674438322960876334185270864456207818138468361274335606812469843180737484545189050952117291273765160128203481975923722819183064980200043502150575996506835150796711340245485605995694812030238694309749575347852732057479925146580616192713911994954089628173215528984357542409220845550111527376366157518821253574789894927701480353489467617485078501705274897456975170059020468836435748968961052396409595347285549417810955533630083220417372217627269220902367722771159662909551152433460417591556715760554290518166559526865707674117288585369307203889446376092475003733776831934216054294614308320764719713417626033669888802985997476955543045402245305434976954863743951372967245111451744730697113130248316719525850777584529134367933332237360294481975202707763842717873310636705738519965574882835685876597068990325877954286712746751674602602302908523622605022316244183915587941718745276063166042249568255645176747579331290267306728237717212478190325147994678452473050043110184636079536659216027096521978670895648795400245040554045535565678923136451749146137852809663603936143840735823639675480743293619935092614408238330224683696404061737592498345365265473731338053659677330895246093666525020351758925830168429004382608234024725255339386901139316038583778668225839293788415179109302643370226012156940194579853857524059218363686269969033499304626106531004037691205519385162862796789295308772796386757690213521187134818697039438242126287598373612276470531542367425130891875092727422182933912805515757950222546566157903668800358191634106429116422690710791684276049309742599322890424632428212928393190122170844175125504609834553372161498543505040862601566213818713284322035941050219759366399259430555917511464898834338030277372274445868846722880819080009680810242732237156913470969946010840365159845394064814065746331752211474351765493143097686290540800445044796004400915316479609458239373274022937627196894088159501630584238865123361952936391312411644114902620599380952101142781670575709166717074387791580687046787262252331215902833230360687276657075209219632692811175412461204827679641932793935279755552450772778460355995680156968128907446739042394560301822763740350674515389490087042725453569874132629840408049598992778579141011627456016284541586490138843684812818122065525322755893749734724483097379592972361131140883586531813367313350465600407417953289178150579524163706543408410929171558664065620384102893108875796452532704099712086086291062319087356937047163406371357980252939183074879548432685020084979227899237275378088774420729723535368438301603586599076860122568211966036448023372888607363373280393358813724604221297182447917144358033469197053992683356012732431216100165697758218584601584143071936343758034296699673626726381660447539434841302697445709918927768593998904389625131190574623468179207841754672663260085591909643496511452824135489382190586108682152222415424947722203926124292854787709892964573900868409793768565892439282092818646990959353924471654590856055313396224026768541926549973037502616578188426725417434579219455614895928491539958425828714899374992236513010967763183762252624662957795512852077881485314143431664182428602398699412846051206690244272643103827992228527192179215787837427747802456347208402529432991108858830422525786464676511354412787408964521899907667594755017032207101145680720704625415215747753990838081441887547965149389564109839909508226410860736913175346622040883636266491333956918696677024472191815040563138669152182370132524529529915035501202635718701496897033050359245853296533816743834419306239369828592643335180858450357431162869322905808599006673162662893671854887780608952607637277931841942685376445439872984467303163495902430786398293066353427281488797317379675295136245039654466807120266371536470824448793739661905844376385161325273112238260570880668930380522016616806366723063431011082086001676672703748728675779512083632002277855410384794704875472386597528790600676552257679000468520641039676816570840234224530081786310858972618276280280292728958299448787526664866709455409230876137695392899212536333300845035492901903318634398651492872449078065440585903421932540719576054811899001526459636378435922157009361579517297104742773917827016727976663138307802878032016141690713055467974381772304771209727171484530722535701493328570814186352286318422161881860582275614977531368331388008038412067475619048847632163874324670757675964629837437435065515703093089385140911842434584204835001221083062377045409632007040027309722677012118674165623413913594239117859990897155105140657287307159187539174093942162178546060128960935632251993765769137226665047526145934676171015234230434673672716731579299221724618289464371518482122973911822063476175535663512971000043905558708315321944480840097818963188394326244650938569662297431749012238379717150271867873996310072221372047913314815102073462026206852343340379823431606404611347424889326156216670369172264825238619263386060565659617129741204899089115430338815534183114267938125426669730022536214298456888840277253063380564313784616938022295819207850692532101830109473992983030573448801863272699390168172963507292102372399999934280296440524076339508793612604745916595049626992523507134469868860205110016043008503252906518736845538219231677289398555560043153640685161824014444267391375996959966343646512816883305401946935962782240435481085426763756375925170698409952095703054708034274396734329597731511651729027527568256519903929691717832988602230436037594261105803223797553058795430039681272711912082219389822305059635383634295370201576974215504090094885140396712218264676246499063390529676061155533011973293411987606448105524664580483878637558580994291827854964788894392769053984502302050886389411855655359019139671776153247056535335157317013496962261316152033687075133532323592961928181674597502158894216684702508671974683116423733157015884367144077510747805926821352594329902656650931861368855418303374852651558207904715372076735143979921286271168716990366009046985037123264059470954301775665163297166973727381125395060280235695683724270814472402773598087368916648340498356081646007073744410018516024916857785287314664222822761028242285960412456271123094553407557640356860201844910500000713265090857782195570541578340739618061950344234894137965692758683078584270600565592432060652402939324109508522704251550910539792000340287057368633236356976759907460650949562652666992261710842192576159222075576275448137702401973387047061915952058575559859528051714582372169274621648228124520870124965103700629461507587210875969675843918412783715276615941881158201546811368536401194056701911874347053686034543534492367723882538912912582202725762735841260077239445582406615488637793468589894956163609814854844495739873532552272746101294476764035391358714445433994839632905575978076818984258794945824624564632295922748248367147887622068668181667781046762040184486468537396975016014756900569292555562408524577292921737625924068088809600229878456300178080952289054005489403568261100390016133366902530633277063342782059259842397112487306255438314935596471345453476253113362905370812167091178423723433538184563921299992114505266525077137267358849042557333320068706352218921566379732776659222156119898785241256913678717029323330997534396097784682793667708520068242487405389512105263005219250144072839268867659485995718054535433580357218326961307352692853539347323706186482249774572235448073269405805102317312035399899048759647181463358922161450890925898572017526968155526915231367504768272809931249846962246502218305605219175100328885096438539294572410497800876170047991332081644963674443047902826941857455025996328307040317691104941659528762490315245801965736496515131884893049947072146249539329615414069678588164530678327550995958233235455354053265187871350092928827103780150657956618806850000255282437367335893609263537082124260058927160834387084663727760853683205042701768540411702750665000896078015452022733456646071117210512032136067477610285209139648808220525155779871754505570299415728551541772360714678073844108061617540591452135053906411925022328791025475840167980866833548734770503567438861328752083702388943776854078813702778943453277531504827785503266119184980251936812388312257033103001264289102441420123440870235127954287663487476369984968746328964089511151010172432844728099637735495676694954535885165227968611220478956911273122108370932379387268351826124009232725145847862903064280128537177962248453786017104207066029204458735098648019829703916991936843207749356542463594511394790382949468021135539902423819356674245231952964161640487598108549359054892016940767466102159682937062183171914008683347693784420851287373302590499187277526689648269965921041109461128404819171413515879883764577798835577288860178573461554579277180910858187896562828524485980967143047400140307825657155727360825208887111366981090844236745151137809737491639655527438119765799787345220599976317862925960240701230913903912227081329518511312032114437659166225251295321926969210068062826936953768415056844420703163056109760845432702847517732073814493982897544609535414683043345792339777051996625759707489919773952401495104148585324219707289043083844218616255898476203330504685552427455126793188158830433672900540498779143416982665024429057508324524209167930841750666828262345058346457031782546737930656573895191117965862832668699094018996846885972005252985658685330073961447008001574191668771531104729433960935622168886868502302154643780165289228830058637132407841170021413639447079082062440749219488523214575602117975417002369818383850526435932910236438497460408289257115939412323157032812952280198596191538789643438651602724324563334979958379001326279905085323764589190723537471089636786878354626951736572353499317190535220888865443607577971779177541394774244957727286392464976442612962461776550190768438915397635893831002245542867405743495653142559741291403554833971383355789579584256635788452427292749372592756549960758762430757582821965789954265943951166296374798487006216292785869946190821289841772670582999014464272999646363311152297194092264516527726203381608892009233062441785536613786348897088045600270036344510574636139952660062806286692767596710409278534328399115167292714897338526830273670390094731084388826273665008314509475290178240888348355655719644181328921726283354933648336134090517371887471531841417685971557651500227707136805151059599419588322007218814785338640761635723392525531108488579708072309432081913607418037688398496288328202240755642431620421526717717219689590274860387206776024291837923442210623292267683346026721540117135663907786139959716302586213970705555472928204540366588007107251748399359286546411711559168785598680383191388078825522927370368813904196797290027080961185332072604274025319707552370635640599512989009849320376772758720075638096885166439663666117433607858845139708648384009931913240598363058614772425598654660914240889054808141452367421043824388183675615783105044834735274167660433322637508619092307061376791606046574229288597372992394826193842051900561951190035793891120259888061740736708101058976928142427816702531189709020372667884653106113492667997477520947136079231585691664927490062984732641816871546572493110110517557190309809657706569123724031390768749979988229354725053491296502887682282289584444945554857185021607921483882188546690624899753168037785788103231210212472910017760345640857059577785154909054130334175505062452717165184765297561451400557489285367104207489115316267250719002624735530858778617762136059266550594553265152898779244220005173364969378362727135655239844640850579263111968731925945613688636435187876807028864690630732961910185683561407240759616062912941087681958731274783360500849214613793671333727256074399325852793828190848821238448661760114697148003710604020983045666003000377582026533408661243885930039107703754094985979656826271194981775329146867721386298051916521967589360744767746013203241330903067239492733763185035902878033330183398099349451420477851603881755734981433384885624224654744262491546224483482050103632155844427765315919208113502386939336361834091988266777055129427162467799457117498829516542071533218985026743755720894807440921793147846370249862685979344535185036632085797968098124124777848660827021834143706056973765708030446129720483296964306369805969963358763711322308151228615648302111115210142868340724980433232261174445441531886684293977468622790749209690794106785631809222784550646921174887165636318655644409700350501944167011803472171627277110801274041773757860768110492046486058593630524685811835820288570616011013076572425902634429738282110122000587414972594809681091824491653762524677659845984858973636836661378608318510494296293513972999595617700611825270466551771212005434523606627994778390996954850354611984622246653693186994688336958792466916608719357227666176063464368505710943442268929270895824462800490971197769875381021581068949345858423609284991777968222802125662667393420107977768729807991140271002603619206443043954944102923044549207424821968214274321364416495901785961756907835106291287917941800382137972452339846436858041078922464054316380354291837091528926154538792479165307921648645243602170657164892712124695689005536657621336652876676000949153798970880459699485260219966498746982468155342429881316181217626608478535558839042080083676253299214566666211172461242493585589732793120758965497054776021204851981779555657649703011518620487729763814743294164252234942151650088724488374670314326500363281764576414479778716148492211455947594632867211135812393401297477217921314560061900760903700107221856975808550409009490971993646415110243784016404358701402479350928389179884065215691159790686338656465025911384090961680819165444998626991255452929261164833551538127816240560729790385229485988206148468314114340748010410391138099007355864420866135583818881522918148143442933754789021450483219177208813152808534572398100829657218158507004941943143145120787676099446710041934171016501707289680769504941902290020041047769050897224993121434883901757769025774746443408183934495383458479094470403306361481059294494688753703065572673487227024282792520162850764692857800482653099645256255792456689692167376832880351787628746625525398880500230823401861466599837098258692463219840223256216072547660436596605026302563230935289373710666004997880487039302694391651776550737261473388657271360797788889051384774267531860180859176307683265844517304900074959205183587391062220758628574458973865321112429985516733820380690963773728450997717812676747330055804936360855789595771895289379946412701836775630186760863951041228010727303019638348423914173116091517609523469444998870631077135605672191156502196471816435609547112209246347787560365421154155102023431397555271146036950531132827548785799319663488066557181767080076630224095621646614851584460348393076744179416863463517453904021968510409574644859413615081274978808048577987669532146360550388159659838975321785575232482173301174805103981737720751035232505284532866744964524108251172368604725838241966764889898789218324399964993973626942834359416221565480402372634716023271998987730619080828628200521146145614857664854763376145666311273762327761621002371539814591143129727211167722874446438198081715810323946450016434765323007493016519646960083189150299953936871151160181762214986028123269396693853450324326990940200023943143744185475210769623353618950159925600654416350207238538145026826769143750943523710550333480777422023628495121350206257670332246218950613016914370812441346970623750423198549181887180080212508671368953345935819102765526794612164024624134101799662575067410100761928262283152228030566464647566106011961910409855385034559122221796093740561947401253794722315857990009678033129020764006815288835410788628724953015048683400409275177604187344812859034690279219975029586561935140374018887058817193695529646542120874134522475834948426056064879133271021946272435825758762228381319534442784324380532814357934327503831342691162008670607066431792636643883614012469869650454685280848032067345996861043474201083639705874279557978666335835235488234473728951742387654061075911942019152744051797984642522424102224639083332203133223495968198761418599133799238805670038255430858025021506457524686229372805415090156166228403679310405681803871279476585366599469545962364382060039665008892743164682169056259610102325122539606803550163264224231136797215691529927940403608529885901402769021803578784094852686321604584720519524481102334726566949354327398081863494430295064172946126948851540186886910417453943393525390056658635928172020428551121391398530274939699883725968936638621496591726087043068871347110630243159060862911660374576495966761194873317552031641928840266728848735712773278540577319101648550856398431484241808678894653778755607058111379170456398291550374279719593790327973033976741448081454345641430826004934737215114278010604076973199025587369996172713923842341259578761280956673340446040525099957899594212903896872948720088531615920116647934170436946710757641767952887298296596252271483212019585822192371811338395337305582552264118338491292707440377877992319124780027097206391995710965223596200917446255562772237338667864596521654440179396201955831760094203763239554105586022522774178696623912665125849877254062534365157996712024533101529564699955150793585879466381570416576853369324247945748177559875317433198499614018736248346798682149255095381845247457815995220301156175800819136505510507754703143743727127603932686512826326664592560892154948555104940043648168189402963411887183273651644391081443304056647726593113411979202720280797550616435341372537118001164841413190833097796406045596509137891954730696020475222975374739062748909062063737064338968266034876034611837809497856804425089399367553667046641964904066972943347663278902143468555328227035690956306051118460018045614601488458211525159418225579089664901891230834409535454291494718183423355573673621430313985554697612636685931144669382273412013343964692179677115852875315824440743321043088013834503873202704722712085624292564573949228498637936359228779347537440799585516729770154730509369255826114627513436967399773294795227494964640347364027748693400458951109627433306405193022320930045215715562479649784402431458392612253344825331209125714720642544323996865910447427236736551362230016402534036263143604733219806267490453988101773514530945285941550281775185385371040980566530038241200980099625937152197684442951370182768341386406430729498304527879699479664710815056707831350122406715807041550894902027388253864069952897222912191118112733161747595515152027417014997367998739211507838143102039117879598456825840810008929053022731811002892912192015485628600663406514767810312991147992976484352921485012666287130164462082188183939570436443400786112840756818682299822791829718128008802401718807330761561487260496264831835951670466353228255985665496837609311394733021172504836928192558157673208657380168197310909208575568544130825280122098692017661350275859298693031445905111163862569550219739487509064223758161720583763912869215653014130164242416356444446380850471941501049928094835465016169341626359835367735113336689540434024851269276129639609801635347460327475329689657072789392238660444353303601244683501437150559975407209491987702945726270855570823174034762703528975121701502312567432664213557974508968509763616894561189029273883345338900838764120156035066393525363980583971340572041354209160172732334143829580311699460754310746442051477312845446144688187442416528432294161474623028959892887713452701452067112201371703387675379531338112356763948566902745868236351133260029023676643039261740067817716882730784918158459595613220486773261948199081857778540878333845502520868645673455645318287843585056463848125966546343512354070277857856644499046303666110315645942233865834016071630659970080725051805784584960231737579639901301032086642378221009952292025671452883686941632125945491551431600142081528426818829335712552199670655018024580088968262682980888135116356983927154979593783896972538737286798440450188424784952891701598286570971704086897459934892746400996242097209363761870873208783571502834185609372268710420901954702386864568194653393942256121669786149270583026655398955342582174756810972862234120297850209489740260057138446316275861116145012811528043778380606152653923801425992115698230597349376056181982259929414844645245496778477442926922636551195735623070801792117181562586179011770965416856741129707614073007652424315499120486751871383248892544820742958545439269074218606136702182286670360313607829573529482318735191863087880358032355083021738463722553459639614553106228983135907560565671589690260663750856513359027016803336562925065198802573945384079277653356203307006425275792455138672223322566937149355309836958499271986426144451088194219124435673432455883281956223464777954078822794042828216246621365207881837875096024086120869499047816270803142961300880150320651166487225072005676074055185800670810106746946118884093384540685892676351173454443316113758129195963461192248150643301179140565941133354013579685237293424789616680536441533364609451442571861548488275963703884858041764404106903222409356171787648423195189500006926574479141061416787143150716607372745161659478820052201418143998488338855394875430336759593171937404099292773183026386177157654999915381780294862083608014571655467027644552064105566518112827017759080539963296936009484165434595499861509939988456942994971155629638275826895633635852421131967774886275574365356333476146311707926167000322258993818903700108109011572872567920651132331829965383994076114187760102774015326283332559386873591982763366196880650104240471060925934034782295852406207842196856370483217717072689399938811920503458211172660871834348321652096195041078228077936215212194581580314777508235966625367951905082462428840880477182111324507431769183869135986935283578317535692230572797790102155637859386900070142220490696748340486521631008295697937850880720989750816482395164868940398822576495685380752071345126662331422741436674671848285620135267478664375728107549490013160700819931794909862808248326191547847867102253059868647133192471403773176044500306000510905138691613156496634936932560336474519302295327961196187269706164768995599242985794350528999586536160031829798248061119773189136181903559633992357490815961185154687668410529214801076174837861171545348081753559149653163674842564361174263460262608913222888919278085790008110416878144125852692935008319351154150676973561915799375113715371534481787632725646661666370185737046448490448933727854819820473067375634976183569869227285491432776879432417885807632118278722573072798978598585756000013714778092508480121757471743912317012203348012347320151298383844429537229390400046028888147428912027347055162942753301907739170908060649892782578013319136497309726040852140845653107826339942941575429149760258792293257147070494231695309689055924596199196193995985210910014577979312988485753236778225112574246760064533036120080517709110762256517939973441779627607571871308345773638818461572712804380150480860470883305862421016401055804498422017745878183352745614617534774254777486747245478660670959149856379409436491216307906704990353596770177675772354794998007326366745789250671897092732226183964293771232807743306689496230448703666573944468978432739613294717774292680144209984518363062828332168673416135227970540201130572421503144880335971589310085401489169136666726135983530156607704074730562837473046881561473745893875508598330149416046770990922129765432536860083187415669599924437516170202538226489167306421611421356574950779135876350171177052994581356782813493319295883972541945700891905757842551165006843650040888124698818420979779994047612818896203591829024517942912322475739483249994793283746401952037308911631514091733099011782304635658048242502785525773144026360995584435959940974369055814911418025457774995908501490414391789153752977373247608384897960596182324837045353456818683047281391807688893447820762362723631275515527267964123320349305924479000048582656349094131820206175726409909287110804997227875433433103788399647026685436965827525155000930758296853919922488994896076037058104739434488276844172170027215801409399139943678198408326848176024533071056749461269906303855248803872365047114933719245154528270367437654553567071260768927588706211207801807849642930668456333411235449384638581755187290734806602615878306873649494582188437594686802460876367317528583996554986717840445630093850136789074225919700737812919417058758888196703730049874188547050943863410371769680238659993378664481824923666972681700730533143016470226577933065195475835664792149953384600627455998825205350969099176093136052152846671427375226067348521379430887832079754621110854721649810424570358096432850237858864115510404278289000749423043083851533313508887481425621294735105495081022719801737304871724713625284699603562605181375766049597214570067708336550286104500018147065808591209470563769472433189503401529077380061229896261822037720637159590573545816681725899428892916649801163404835221401553361663533472917903640184008286773692189827076529807792574628822531458955017604425391249084384680393292425536970310088691703789840013668659233328410439004466363046626410862578953323592261880934180152176365253493506015390633404446471106928996797583882317447417541650268825189695120997288743142275943785740771741155859631115685905722797979091644742336994504816513134056637347742677877545522318654563271101427569008611723813329995046086603339286247116144889392989637602686750117940745484068164177870684141900390264476315931547617986018606557114599021239171929930982604806030370964740419641010667613000122951209980288955473155831677257872425570346560645944781944661662346005788236358282847894766253413789656112228388361958696494297489223296258939925725863239862922928143832677111877208127675208820619371904412487185332425065047109339295474581831287595966545128166075973490453130470707947255754824873514294958320061074248685771170391185100067136779107444812918439127532403031676052371668706951326102196587404149929706945296477957920662613825364211178071464455936500437301519351480206599254446523371902444668664483695190198880014098700349813297674064290392360714154247377229168611072705798655730943113348189966951261002059595495991231044814383419272305989855108311470076493111348512300163745677286642426921260941312769327487052712986455904930637825164835413818759066181332686887778965945481276993316536246308777252539416096977649310175050188495618686374797233065463246938615592806767732960485650966792692192642062283407158486741715773996402506440308909138225982990646180833623220036523784049712022928777036386681366174763478214818284361080928294874352604522363897903523338123788215769811967227275825599278847698602343354161662178505611129811451822106183481208749519177501551968846151788221905612150616637051710382674221748076441317555162685286470548974655603708055205448868177027181450220908733275026040603286336842360942325633929421152856375422371911216692246125314978302040331628674273875144342221184994033786170892215495531888724368855046307117090229022052763746838819394267596530118771187805875479096757083041902672922840782341371685615020082407809055420278541342698126612366870138516564586245604631974431145542060519842062615338294825183147445692688520023089683279920585147164700586529599433471193030656550156828092026746775974836196060591314710141198892339408358279041963454587899455021186138131196324910095238136954355335110308468928903617605655348463064378010847346276905253788812007611179024977885186323117418856053961194896336181741163369041505625140475565450751904731789167996804625826043833229531322114101144630552649981083625379132316548708006308508506067310990525134727869858203520270643282115365521229142985071774732189267073027945148042066194277227301607477773935728504314409108398848155225354430718991010059917984977475697923747088748121200817703145383135741628898427792650594011326399644538708133485275861911134342737221587770037858976005511506993982737445156996989506278701617033167858209374023826926636101309163942732047945667687857649649067226764193974420559280958879460513606179737522662927568178414766398734326985695832394519266409131379814925501562735707844786685026633984654331521477175045939154942035667365168615962750353365069891739504886905470677567074089202955057314399703220942142064374876677001592877523727373927886013698269799888397889752913186422767346219208899347863522602673399630556360834631983270519357231313495827713725740311531978089622421850241419912290802202029174443006112929457061421777580613199683895563597094948127556251924028481363829537035868764817371686543270880499310219085130496701915759654699707876209651202137187728954737563836847696173670926680255090079439292115263156497867367662182931168529450512539432491494461209664664766208859454900815558140012744491528577731963320023770728073131188259460432010790087349327061188250161461863349358415680092930219287932687885664121643432273129440746509028522866733903031926297494845708639020294902554203764521841609887187356953827775940756688778530209703401165589979723134865172042873515603632564340920552426390723092922040623983621168224221167863754597663184968975044612291023742242027377734456398482639645870100236006902661660054591146064773750938057779409230376344660220587710190377303020641062956158943868882652228605710273079398151985303848533974468784270197627696589044512265210671258173006185992957708190947065304489683595120650517885698710006887672561531306162677177796348289320509845646662507421956879567737146057400847784381197686475309627877429275057620224766672926094310233898044720869684297538339599885718946037467944486345304298580881217895639116204311778356656896485833383967214746805329424131643360909310053937551680326319671167739769788997523477621981594131738270013852890621695951952860539109136223470146054281757756219660662881398910859659007399607298515182077351514025118943955320039791052222205351779670114844175429965780990628184784123465670960498601723637387442698033874528995162556308762096150538526884333320945463489330200114372367835679341704802807776876058204726111625249191421801137412253010418144152804981760415634820778756622114861033903729494841001324651385211740031928940111777353756043755455362817994133832930913250184893327305538033936353269847434767331566180587620310059342887315996311224902286714063984053089308912724472828711137851495601280499134479164047641824072630619892031468584225905185145927236594491858218037704671712803816995315305311698903989257698205805971851046997437014803241480095165651274625238697523764776387688350578683066757004603147609267858993860945970256033916484469905604401789707111160942439505456353868283104789546707418609278416541820216778343409236016531086946500603602505521699352122012146099028989619541354224458712007653640846694009047792537737746419705802700691881180476987077283947784864848492312495078767336957134285613729306029422930663277974704402910385335921456847691719238700274247633910987833136118983050493186036354868021798569269181000448893031723355285945864398023897641974326987772331219970847028556656476078141451185223956437851516607307152326846746389605855821494453496283814439820824570824860633926310136091577298716998281196304745616780056960761379167497289821538196704638317870218712938265455123028884501287976131139984101278884994226503376051754936326870859696369642576062762750787276722713055232887340708772245894621386047883559928176286396866649128268987991152727647090653944293012670178664853194898684946341796924398986734470445148654128824097918494795570545452652837451601350584882542396201368331625384121503620583413911429261387260556396525070440150317344479288026042651807629490080249340293647220015158723573768488867836339723811977266357092459303444241102832244068011693713569897523470298043771029455764188934299919385290664719318965961234277309300145334851424233767969241753575652849439566606164127191749766905472598098316571785743056260481362330765171623240799637556125347772744983891583216207499069840764847469341117390715797825206469082487026532702026465558261090713396994029895443752147677224440369527480465595271503207901447039362910377549959114236085015190501267205721728055014841584670682080921332111593469150571316432603525423607355794251797677675203494696044373900416540161916451522338435418394921296127589149850256574834965148171292624769006017605693418098689891125384344049068383866312229910782111898015811940797230383687974013295184682782486198900270804139646829061135549157719346935140457484961427394817595867998189476806319932257460741032328240837985241594144555928080581998727830896687123871033537961357457067864764622080454888879466463184160542456207456444406508119434666324926903772894006336290996182460380369595795394677144588847622633107654448269834609151512163537565040678346407975904015250446663545477964214648026048091156568691649140252866995340346206678892122311256647196148544623687336810307648935110172194413990375010649109631288611095823808649571481801260213239793095057094797987118021205348896972096415490404222168448381099843013469151623678919199202255682906891625438863405874091882371403899420461733990342710966592132428346662437720383807523966416103640913698887247040396551316275761690709767093853102897082810494146322945631588124747700722577596222508447591390996327567320500766762762588199090823086361513853031181568947535021217987440539676144944115300464274865004132709402057724566083420334936427271995243896968703893353844917801568446666265601227123358935753500264398175951576478509717096636670078445655400882975092738399829687880788338231594860877167660231035807222762872910445937974282838054257843348542865896293690933206904013801721942094206745851651604985222336898217698077758116528545111772703509605385355896007792333139705212469265981351885736639231739080557338382495380962821860025739515184099300910906768755198873961537459617040451413507925661675194224634253271112798133335823718109493548026753779046911621296052431397665998424982318283324562824409958377824572955553778476123187239601502541012487869256115928346101636915808075658238388396929475765965504960968490756725306452920535847757486058876367964588959835134500369399784011101812823584655578319116589063878049937762569820365019341090380574948616853402546925133074827530924341151599336827420698553747151256303353965703745040110527503911991726058548304242433076925831894468539837144973633943786472482631116767069320234157268838990285003349794004743428969542643669945259092911468309998788185323400358635169738600029569128210807848965875622545843233940956113778149468465008799582555303839945786074626286545841405345449745896099967405548408486608948625944402927154025092904353583904714810358230532808423151908934002947951449869139328196926960963625359292948198378427346198876293587498331931059836310268978012583255271276575951559765092133429252816277601868743395877499483197117146454906975694857131929817914781697596954521854885725474966260799948918619143206266171483997963419873783665206151081488943562125122401014622798179485963128634786869878840268155130550992674264790984810281554386840924229503911288124096987721247021726394973132935812076930325210355426454514171822394082489297091266206637488058990508242903289498585803224141656440199690621857811705490761431223482986623623377197801598449525608076862783168375799347824939222003297305864338538664665665359171297790521354435956943880422463292552172292186325698152411958191446241092957578856853552561783058255236977097841016336337635430502256459391442245646029861161123885803825903958332667819502357572836771261530840852846974106337424186142734575399061556922152413871604086092778138422859225416358862113177386815437345710971160029298289905699651444824089015678291936856261761876486822100036794961071539210243569734408534753971490560572864321555647291749625968208189920328352125789755410232654888542762754564787014235834989580460497590240702667953350626385472705330517184750498128169988555872825283225398605731275488427126276236267581321463327462464796474902509921765875720284713075035136066712307880424293185930160557276843076320009265312545409124692338233653478044444084820322771850225880845878541841521560654492561266159217003768605424768842456361708349552167922438387586552330867610902910485422235641797211742096404760180347767066875364468505616450790560259731264042085595342990938234125140335591020115706434190442063963319110825407908625936988442529455049224869046254582323104805999757686912723094693828390006899820947108675637941638904141302941071776240673401657135320408636690171336550127766138508647219121714789484398210645720886057993468422843078431300047213264661704192284194560364117180423056524096685436500251744203595869055324507821076134549847665487705966009505271373493462399439061463898517860107328191339202435215603858473826626104307050666481117505442903193530817532914248621901439407633285270534244110591006564300100928213028241603107487321681245963314874560190881908234575535250633458428274603686453079848910656728668149410018557358626748675439808904084720008601983217015221150907178774958698025224009621573781516748823052526379035754825628790376490643996523667512159688065781018773844695314737956034900785216894733469826132479995511948807728155804527468996363675852591363874244414783834380598959978436279369885982441740439100448867181446944659015018108841192885085406552580426849184795536279796502553043505075772357500389162410201463301863951640573382542807063877816416389798653505921680697580656036369849723486957244514394959211007293688739683618432026390242052846183019769510138919779186382480051517495964960934199587150216894320486411952879846949071002476554807287878210081536974672897009613605435107662988294870257141038197311891452411575685291002551424247235318265677934666557908284970595791756545206163454963032631082291531518297003853785875432786739669585999885614769903928400456991430045341104844104738427782990456374387133177367705817953367292551547879306469722610009930441977310716717664688639776982934088867970266745602768578512473243784551151618845589464500738155639000742841345672956428452845724913242976868302433776763837867188308330827614557334901387340814128827571497202443442723543119537887494065344551064252659874305938051012033852358192929464346628948365417023131339071780202819519541052272317180259119662161760532563895106941608107160226376646576367982330400601694209596058854550508848142602227814357631699048642306604459330743262716008084782017968489782969423949297923161246279783271859573203540670417393239982485920291792956234386438723735028973593010193185389554707093275986010276364465104699899904576385613049745505082639341580469645077814037463358008434731527037968148758519489029205192888004004356867428322435003056048266998060044374957216881671572292562514825195634570968812877796001047483346714463193810537147573736521881173182822223532505490830692449194165196875663102016851576850856784891850477225316512333165060120549201258575821542884874834574305909523891222835105669802121160018479602593300900708676777866926942816416683804967958246992402775802633162718669277306934787088662827840370899514800089971668195477582006014095270889306048655157477581953725193474101308960855044502663026400080273413006072840660990520403239841615105079826759379731741711024218881967420925675838371793631597684918220546020565806368398656406177083655305681937735594303847965812597543900987016667296734008987976188597141197722672627434436196574961576476237107843580566110882962088883686244777816231440907017652462324699516068118370080587867674616136341098408335109642354947539469008927115057567438382325865176854876716259869183767401622283482872811138637750917700934801187801464215662314512128268905226423545136439249726222342102188151150092555643050976554631091882397866473077574918937515202274244072227025159462852514923216707190094115372386249251572822892467587493110184374148579408787274126284540422841503406951465503198610455569052112260321728445281508393330670491332379449022732355534957485434932611203946154972493232612142421015813770498903114702520424772847068797636087824878859938908893673164536743320953555837895737724246968410925336889207523508644079023084242879741070820895108255812246481456495969592156597775577757218104077250287327551284414510593916729204558842461352497842720234134721232700645689284767305459893531606126567744277688231323612737229709188020099466601473541854091134671924845933327597367336266433405584853913958506077796949288874554548423162220296622909255241396083804300134228751472285835109859703471754739540319098411191970705980047598954673858527067664820913548769574917885572108660178929477567667006335827230089424477603955035375043914614688658733245000924294368869202409083748340835779435914384032940811803667548246025978297125430395608987054258053431088769258120168579147890237113339929776841004506035876694493304539913430814945421781822149711762865528691386435051091853162198685939638804298626959955199205390405072808376836120237707705969328323393958124836700599222528623953522076510824023591863187484813686258079908236011139187873829680917273355101634111666750164382156524561785224090614724440765747510603376043575312044719502799660332065294771963849264990764358905768433204915893032429847733150104716865801939239967261795628394381712608710357152400847885447573386583008676518909039355816318230911104504009832715042075579108539093009426816953982108587789184497229501913445252765533603944125944163631002066900396599306968398073248747679433419488421648196841543686692699396608136484668921624410955057552603723203994454820772313245246294558931305292565796232685752602295363756933653931070573368232836426016556964506129858593187068176741250531324612391962009660197765901937490005894232319896682799206222551784616411800184097901737378068750940786510059669725586252243327411919795192002744857304208115729521957784754677112855439244244621342676973038313303214152421408252182657305388644845646459445455033930000885960846252206082594661423804512074297986543380685174737213222447592234722419542812491879489981206508847810762738683781180842999184868465562836318175219358945231349689065840571055444132367904246023105699104760603101024365632501487422268372808576265384507292956589579020865232946220024122142159899191862557313086821531965750048548009656930580918880094612277430084521542512875647622302427859057219824231107942232656888060562419551918751373664885788137588274603634537224849287343208658785597822674005209079501108855824419525185599787542844698342616782891536229870057527823611936190027764558500440373422930017129871824370924387153917564080837232116040258789102625692495432225567361823128219740056463232430948867724996167789526257554793779833469860595604924562704220501298822114844243612750464772397174074614491591431099671804969734141288936548142026006270456792088556044671061837111225520682423741751478269827244953061296108252682744066322696017126737290622988738655676269278459773265706020051916600739616810638170454363217280172619062679899748519444385187631231337681331967196443640479361049150025244500508341753950488794161444219552018700284220971041606268160551394085139188268622705335917722311947529455750396584201742200219755002697303852557140961339091601315550551941612946858540323859113615328017420887740195677235613661824827651977084679315878163172147019922929643612442254354552333689929746223233951804022625086556418601515196772127363241418755986034456315480978226786041820472135662440215433286665283437370945433842311373964261132719834493399256066402372757605010950091157070271647250065346987378846298462483346263081521713895289975556621415149536499352743777184546710970482890375717821337765106410160337221910071989381756356619815304822111405436639425605143836556671383101556218333896866489388880434770999930968744659061310646322703948039113675619875955593116467608041081646836312323672455520136692298857836176961324991106176857757262210990779303565079251263489106697064767731388944033100875805670210002219732132524173852367309454825228223190623978908443926116549472706174813152872331411487228031589688697874001243487707112147920966587646344807116557294198826514796587802891486849862185795634966412358599608100014509306667602574001213745496145118830467257427285253401256389275346169945069773988130713782894096430051460476134248286496475884146889908807044222102078154823457353411964806147217866381729181376232657712246215272435749047133585508508069011996455113634043566622495173886599318875282037570612681274019853533250330796858069944310239104591815468341238635869459794444610602740355690717452875655166128239536914107922342921500387322550041705677743950350032074066412496090585305729484322071378286547129487204472147584562244997175913022402302719750164924601383837822112790956123946570753822277714311259621694245241690996725694861754879189751336102182781909669590278436672566340042214176189360840482795612012536354332012281694929220705302075100656068023552566206428322827876819769901230781680457747517043743895427120539144687908674187146845779794391041337853848067216015655898534499024146901903596981028595811536033065266018861330281883199573193403343228265037478121364654712082561615872889323513323129060434572089178733674149833518779487549842227791056078602243367856757303635762361232696198576239279831955814816030505003440225975962153791065617007248908446354984504766765139880267350837991221610056651554732121668098893513994348349304782118682699184381078600662926249317772562847595720946504929135179523669228514508255076590439233818291897079750083679647510721276587894018635647050960168902310543566134021544935359081262326743297660007757505497793705013969865072800477960722995925640392528211442526641017421147260411881014847555033042373655928329507878317265096278945616136309335519560704719844071711200048006771608709747064316413866756899621076339255647684576007301769129018124467001262134534632925557963201662277696504665671048624018081719920204384708687154246572953400594902567288423076574054600306970770270709035625556206617633116439444885521802118100230458397913237412059513188619894090650253741469016165793373184784377974355664815260452303915316987680355887791742770612027180452370640694722068357030655970842110025607923323292569953652055859135326674002096046472987607593380184876912553508605732987478041876751943431751266547984401142789890688739146758804974364778667509128711101296104886821293435395231602654946865164537916206843165752320493756880238600258284153311126887465018523165987623105573496144207199717333842709485022459340904855801632902457942407975688121789269144428023181902371031607201043531929002445779613676989386202551461449192124339634229452414368200576394336352569620974782187507479141432268053845999290611062524216551715413545940565653968138142190495441971211999708704587699211045659322045925651302147167536930023919509123376486877390281548194838942464248429368829551518190020653970587927945158857584461636292845169822926254035827221144486698074403432678980487932281295930426388192839224583086847258186375976472750050325532050170358402466744178809559369304167008175991302409707238772748266880455222337288498873902044125734018522959750993996709256673104919413681860995690090761044152185419162320202452840925316151101087032156586457011964365812634441293663162862745890315908560751966100318081227198226265238123926652526283995598815593694039727665517317308300624957024043870765659642022848827423324599669955205035106456037153649797705111573581835707093937664592727018741440890577809975011728506891695856029430282459191908872059667497235560425837210496180869026794413915061108966206237385467633308091325128768810474388815791471115330398622946033836252524829395526579577030555239638834158371163263815388224013838213891676938131465133058113472050878573013344754039706589932633225772310169567921727323714602825998117250643112183063268217950470806542253621266866607189358981428283795730746752799101382630939407787272244001101900112575810470845215563089600168300364289496525981853322951386998195595951910870871251069723291999888861487813208132197034545995299412681430182898864486631593226680631083049964499601896207896162282847821224820789338379741131852652849980008779214889857574872768237778600203697891694659698408331987166280268143271059966909067879397101996400194102000036639004979766725234585623273546103345571445898041069477590963467632795196499917172407841228489789757085153368158915835977118618947252131815786859674926060735660515904675620071156955677831095641374868012399196059599938617066051607854942770244178086156368209741337995683732894163100201835046045757095855923182109992603912459525671777618839575017221073145763828189645788780763554603798148267224186919235990668173336203510655862570496954007948703625880493674631831170729115497731541921673238665121832414228798831559229110731163185360209053682755301476447891178943095277222437627432272969513291899593323920317738927394096065452632335570531618612394442794279908015025384171048271584107364037703873097192250870559143481761873223207938898657136014362945105445450442657094489410027234730834160530865358547061519562461280048147963800346916125632376044150283439979759316300772760086448533902097159681107399289153217378429201336277071773263098006859364411988023975362068704259797391364075204053111431237279513352702685076189269533903133393033686969965810559615580128129025652989733331909987620395467070674890475325605186303295408005863266243352770936464915840923703749613517322265479719026998946801270152378673764800371450054610067771416735384026160528460104171772624639286418618074175876121684107482168758694944937852986073754452450719482182911361776869411909709269154557280910702545853736709535163692212829195154218656796698527464448409779393132294817281502292970090471058241388197265028634116044277856028142043862483685507160946805573292994717917439427929957261542307109406153118321780061503239876023767217789337075499843729543761513833452856803638003406696881405095330266911439960183719048155506221395409987953291695458656279862960999223655635176380995022912184957009665310246023377205641358944756437588483983200639616867973909803029144528288283342573835838785924175397951814554151265500877786676017617162119518846144392078139030439445995338449116742030392193488338964743377763424555713493117862428158450100864344271319893294780316214242301680663603385108107486624567402490236192900612625452810978208166344433642483180970418749718681452076595287055624294363473272784647418186758699866809158597918816673791273321122785648683435169368555275419040370797421316047182881934837185854470528784102351036769095006626766445737924503393172362168077589784306476017583096236754008394746160106614958120577699013731659919266287910696295454007325936094866162018063209367829503769600824169705708716177590826971541140227525018094286895654771702215636666188835411643907842795371951980858936687078875401153513860097758901947539648338438562803835565824757174012321021120093738049669663835031956965482559968389998745832168950981164357573540531462566098463501169608063052836343814662832431387119744999720060266660672090511257915595355825402151088448156311780835534426405755389309685417727547463739255824791431266075927028583729490765100600341106552523843472234950606358149466698132617540620109856142793455910510558472761997130104653140883242415196486597720360460296707285367432531602357219051194699218839890010858068739346263785978146413096281079097718544279721886256868531922135118664524885680864720008414133345717907706356261393628420709669144046733617963853998178223375677526154981814014393929863932901542458968698652754141033564366229744819546544287731065897519824473021121795371420698258055249830570805990952983747217675029103472951696784822047388745299433414287221717258815589561193923228366702591958706034135263166859152529253879587083835187360282791847886231059817118385210501501087688737258645553871932072354089014978045000493676936221140952820985550476703444714775273874704202718621551118742203662933028790262424146193470699184951127096222475407087959748145987802334645076296047435084009630440004216754111070759228849089485811050294354065745622985759025335629678247387583641696607927196689712072996135061517907700698272154454672704385212875260388538022035577933222251876946435051912731851057843132045123811675704069376555930466029025416453159757451662516428853689630169783037283427019051122936267592023154767181842125545935827572420895054741252596920759053756109922358220101773230831358219749081750546473978684645083717029308101433772691560312175583418137708247358240996369716102297367145455707047427839181064590086367875444511216091942215610198223576782660896816130719596811520690322129779704949891790752498710118917359909884256232913800967791054301280978510024755412409674670198988701650588826420588586955084522324955551127052104783868910068197442360107181263301952205216927131854265683691608992321780419425017978033062427713011057908359260785339049518968016669078256591154140471068855014253830087203361771802981457849092523896979970015553967911665754790221779790740046257459910319763654206555161326820238496954659532880390191330962713641179728787857608734764710378346737603107679216921876014121305203017646601615866676714696738904855847698286536732794309631857072434875783547958137960389938725284810595546638639615069924579260281370513461489967487038513067304555167911104310360631555340210364900790765952098242166659591476242268313078549262907441898388443536161416630174723692942733540739224958482579851936916602958397160359805571763697274776630180721063998435996886940217634179063885332369480049433333127439232001197704437459794408826096926273638029824595999408680427182682361429057136320130189218014084011869656683946207359201117118170130879328031005312732028477453019668257816870687970695295901618125703383356619275855171587959263821468067480233675621098235229919327541004533866497906628473178639655157303724534811107107628735290968941156024124072521284187554800806745766147928352574506158089371299736457840384216355854490994832449146801593044185093214294736155289999443343208196625067897599218121560816897279305931690232297600333272614010709764267492621146342094730051358551038586030994404559774417993903736059901528406410763059423185066951637236685868840208038938825055618640596927436986806729916240973118468318783379201873313949327895607238301132579592199584461966351136653900228589472474091238089510183401124043515287764615809932110676973582163701081127665792508810475845733956603696951514903269480760195664559816902532842670868150040862772631426183123039526229318586239528098579198424597833370336399657641681000077860948924785455088323396115320553468917485676667348305779938233330893213783256119939705482645973874569994387313057754399342240614393054176552083829632010276797789827432239405576335184573150949097068708322996014562932625058152882070956467436686365120678812453374108355921622070467909174835022693479045125675995007228120223895149959647039106590775488983405038811529806985239538467838367615134300634328293030410428448585175907443326887727617481939418939023062990903718542665049546080125204960842024212713165684414774452577156292985667743244020927335207082617914347705473623604687744792440156466011726428959408756740897160896994293893809845675874554966349311402263532956354403651195516504444616306723643002156598261539352534343026749068065938362691931341347602462149470982693642083644971872681530840908495140165379687614333924130681641025675584969843217893200386235429707386700182835320298421840432604404417171086246828640741599746300905455578428032545986365268473200229152124268362111282622023143997351284942132123618065859086058762233315704881032807100107599132567076689231222136747080852660379230901841013755247374584311849587686724074966216410240451693354622552234340511600466812719133497546282122780269835454089567285956925937467634589375589874951356791838589351413123197136282619232650181804961480263553610417818136568966596417215109340778155368297236352155401332722658620323963348564974998870561592001855947983720073896371015249197744881697981069884031094330352221061917649174659456718346560038968304284894938048732604600437573820738010893538255599238791869201952301091319433604861063893175794341460349142616430607504162149347558726855733955953871336363576193835217120885527564533993750973718421650683729838094353308926218337699335287537861466473369082114432122932526999394539303567377534436364729067974944543072983843698597106228024352709936231263214057227634377073651026915084959510395151791114774603873651906128937394294146886238679845906343900733488901737070297405954466652246248098024561759261838050069274458318273575429824500288725501177554401133331612634972116575343410338374807004600700039713380313798101387131028220722599758359734646758206539319482742857228062852391651477653292172613684348387849712301379324045822012384762413632311790989257008832707657238099905103801587098282110050346254541842727362469290637466356584471745757380684881660097185641182752031540135292433942843950166828704194071619136619185211830365016525304385813126975633637281726212826605563902460758394272096543773062189176679246237738465258020227736566872597267041692228071726935026542164080565757451507844825790776638531398987573640088974894510105780292620704723209613494966055092639582290080901183471929193681918582945377836337591081652532937468806466051615564229552384624329131864929324244457296856045323386451960033779747272835797464526838868385975110936886600658439139141555844778569860930332122406652087964803722876208653372428579894681953964555994945877908467194104294028143481260394832101185303550794667918295653911706966015038699832426409172398988798335308182071554004229371639305432267663721391263044004529905516060135283738657350427286762250446678485645411317058247138111721738619060191107904578071203495982518381482619365587925155116671656862823230977781321410884196895283978701838588822474937963387332546229114285511705233260381913934544438693691600653624631876551156836400228812656062580418520573143890278052341861137927777575662191468711805953755279051109947157794324528895082316046767809103485999910123817949529013547839744318859558735995684687871479723124540678258099390526871152542251440873636261361006252352453696217433250334378836827562158033349387602846960131646297268365427802146597957534277463676356435315696040382241888319496889518033943155199940064056131536830925531282976783989638828736212581579870521115435809593840899502861584935577595595865849421773277666629462118124507223494567330650903253388079891559626317262145030304312721977802959386342408794867754280425252754522275800791391649502777778378479746718943446814190536409330469156188636541016095009591265375429551434377474997055742591791755986186678403791256635685675393803724297815717099821955140841855815997158342671223651676093542765662292639344247515699893205458308979058384918669680753863405588018811311246851718357865987397319624942421572574504653569558854756259272126276039081728516411312936592285051077819429313047916342660078032796043164529802568932415153480338308038470118295189441450084164064701590767457696036853302842752392185098566370510973862646611079979400769207670039128069409698256016158396265967683712621577565900022203797571687623196934140811777670670833358025610130667017746532173585660707763626900061391010929918282578726193739524302809583830944275735009670807438435437684177399673583845274388816593683876584384339175093329217951894459194596579626544386848655107144410129639130541154709571578602307013545458157718265400852478954500655763211943132724163930972986628904412975122247165099008674486276965068453363664779921755169060765373727665576925818640960590737273135387695873132452732907827204609281838186546571889441378023842644685047104160163576893320429292473557004142686712856609325958003373610498872441083420053148955796689512497743181116534054117983827531554657336456645958435372615131637461998552766487547436110109465391992037538589952601131134937316828725527955697577918558347135656471714555894420581930418224599331276707494159894046623566175069638768558482804603014929663968496010266225940285258648891029425123822676739722314194491008988589217752593881900582325142672852478546417380419565686155010606321156574173467854379204756745005812272909755147479748825349933991490258415655498203436127930264395847800455760346455792277708397021818657737518072940705802262608206980309244807149906755311014404385376320305524903668638171187819147623763865654420004685113025358194311668849884969849379953987843222088756005890396324779648445778144040852197451327746778102783104765657764676839713447276920976948865496922703569950472071488299439040900107245059155458584292244659855848183479807526910308518898494143729540560149531392464993533386518917328309521837092754202211403858262710775221543058457865491853049154546623126754356911726344200408834541542009491029762347590365888142432373048559077588003847969632914204848947830776693827507184769912964241976904621871896826907363886754306854304243784698735384712074653244054820110693166871113158356865270171254095685178883147361500422001348674340887399282803691500889572227330322388995384987705943355548044205318897308749218912384702319759306156300614820882804544747791385067076395560797940598829484665498405210050298598744000905099316257316273514861696830117514490316100476028083959675391921445208929249555849210626996027515008578851074111981622387819761934701608084376041191393180622885455548282854568386100247682878324843082446591320432523550432538777359333487060207837385513341044545253960597018307934688572678191559231938367169909800192921375314773300380141091158263836886554450348630927317143731336104290328371292620504904101774271462622599714478234893501120471030851718986126938454570670813055674940643228079127937645739406601650623131144025936959966884077447068005514002094740513642311843861404944294173320707358240479912874371177043222490673213103979867373386699201996919402446609399733774243852592437012683893985240829199314664217167684392789161354680453671149357873888551707326682988024260722506040804639227012620235032418977632829564029238361624995669198931329189156516575475541351535750279488362748365309889518546951865783697711024340181627671020244336400975429401625094773693650980992073145595778777291225125631508516853293882423025246079235280439629120279930549799421758596440232988775028094838362030311728411896762445049095480065538687461330404394251618331283577692814579902904180077163000453383581540503043325136671589664247868619987308448056932318730815070572171894971598301394426722415937863313488663771278668084583100372025534189766238278776655475409958343423403855692306777622059734467452485913772606849031209969013282642028701614530654054239004110587196893646968830404594235367285850566208290539231325686705005560579905369953854591230370186557564623595092961615162196715724503196540377803300112660618019634810474969805208696775220755603857401197903759813308721762238542297779791162954902636239597618450513890931338138623629935500677285227918677367695728185993311098828093266440100058526384006622093843981546800679658128024501582621423467474793888649501609783314934920645344874125231600052016749463363324547723689040986555762484003415336928562799373362952065391433965578132852984032223732085892013377215718057117888634773449168543168035364222133696439146446181923244193375759016281972790541295129659292995624121910759202312160507961893000852993119201489591111442781262794336501499114157530062280663000261184005744013287479436025817597165504609863139480344328200750211594320399302429004262325417602407882349149941223563010899345843803896180586201540762227845870820313051584493709700404115503204923774902762355270532402832856413906323786367417769879545104275414253992038269775427840626730896203289436028176590134662841766630894038902713183192567585584723238502645642402432576388018390330663531222434081939432073834827115310218293891980015735697371047457333259567190045006226600805213117389794550273340815354157206119681668403457540782913438625609712611150068196031200520675799408968089592271856855433503651634211351478822938517984037823936478861382380078524271020105009839604708921415236207361246312446287070870068318726546177663184154914390710508312595390373480254289076845075722694403568155656763757971395132223144655257841553571992728040865056096288918255851204114115033302424487364191164140641415093509085292432897678552101593111680432877667516587352009546527606110719781250694812877483069427674313015199351006240046375485379776934511153469510259611547943690725552162349385047883468864079979694982604375933428528986715367137786134713158149088750347236359010865021198554829357921633435978335301398837777681586884818495472935394871948298285285544309325024444295584586219248437665584056935536253923568032346571391885351080614130380779290253552007315531850222081069519896397513361168734872682919564657598572518483000646470213393261486258600381487601624686885192081471933838612779374938200963812442903075819476284170218896775978251984554889943653076137382657651540581798447677736825536831925210013766438831954293074203109629426060750258694722102819106560365901623110628418748980063545808484017524397157579327313746605107875750537350162076864492355210884289978860048689977531575857581397476736888562633835793127071187305157498176776628713766203931971883857377376898701243689019590735004400720270770593301221416522555395368624658103917742254502511486183381984863434761491436624853728722040057314649512659480811891176605004991196059851134773882598729467672801982288936529892580465676349923648189062174304444844898807484876865004017690182958560117781682034831445596258514727240349102204644534045790204186381111353581957685194513272479478118692377701100878018724277894620343773416920708997325263050220940355671976312566138576295930331515005191994823044640325811075330375197809544374575457870840580695980999892183857453616421610606498240147054751120697679501006219454806764065037267250526411602626083507474240837574234048871516991107455803910593087159404315573242619860501728609084575428696621482305999561403549612732862099892347390527080047151433158580449310378496727755327572879067714028849890553020778830653035067993026399094372894752422777666884319622342746195877406124386610244995089258705288842990174212029718187894468388640234971300016929185995416248806240877051875488398671168794852394786019814576307851730274778222781940842881576260962709965034874459822959438491411941618380959999342565302194251583580730734665950981521363352142797833375219219959159507216215605349952835545113866759942744609916943912409306332033803488811859999300266954748886949172929600078755359449178581812472170087891530729690483812543079360751324650520691968189806256523745642330627162192142854972776072957558986177600881321884198647197232279365750135168878396141776570620796296673250755960995402684900817561845764041634945295362608617841184218124284603200272861208259722750444004554719126670013581035895672451964960926300352391900371691162198885224475922809983239073851389676914854779714831504217893705735871154842438948770813569934680251929349567379946929153161526898334391010136630553425876446652161413141384238149330298648489862377824305666294716140334003932078624548738818858284100035320587448607444075808243930355065007004698255351029729396219682343255618746890374607257925721312515507374489477047758744274272665152441581526978245045399842377509401897198999639530996478257793010174708204087353931799726272595286862115420614565306973059876562805757191528859543177837438999643639919235902332599791486470517759933798909929224028464844085466172254624182121207059799578679926267128551815281636369741391425121932651474924967876182444677014401118750297116560488591219326524939547345323573455610927203703679558055534241277982809017952543002930678680723246256634179577685875653316024907693101607260620503014182838218048130938261069162656188797515379653736573248505835282609410479956404288801133944546812876276299510468627611432142765370243096974265228791362329317465937884134976488479054400771675550918222721309650542627897046440305717601011330343773391364833228967348177513995843472927440031081105681814828505445633084708818671361206902356844698681421872043352767326111008033508223619597164694963969035712403530914014295545292819050486239218194003080784009863759975123673913122392333258238784922100370109248762692590743492607563104110780514879211766261865108714924548329374502233710665118286575085838479928487638551302895281031625054359108338886764728375264676553693110239018260081042167752469229768874510545755560624306551623321626451474657333321176268123500466638771588216890411524103566225639783788904986400453316216529838479984841791144964067040573140050392816581209208050004013916775509931161581497605458886007867357624440431721443668753284930764156679847848043462425895787706691413005292643932161859126226342744463005356805718226461734688051882324044214449674042977410037090692279291786552749559242180038253388073361991155011573549897148540103617842232611526318274751130724008409959903530963657158938885009586459018040555365441432997663682023068940686520581698862726116157689429401427868853289885250473921699685013877830622308945524132779687252044108080759614675669347161718980815658845197494166851980610494916938714002254922457404942451807049155903592682581617245684948991971163722243983159962650992165280989460141216568825028691853064260811425913096830600521761525140363134478137376267462472496768068436972215391800780217322480115667258480544751319138540267611106752955003788340218970465192538906186851174988646624562915594611282970314607642117809950664363361174966196365484970631743611373325231713606652184854617154542935330456136323521404569264678306966056117022833822112659224316489142012440641699912239444572574328406362466479134820666965946811036864023719482163926143644441936486377925279272819548797458379892739027969149418397839691872879253711290525832940995480603711280456924553850564825521886586624663155213137269006072268013066160331311010129848488134347647862299064951014258237070152992456568232235481603976108011177710933358308312396824290938202880991041267259836528506355396946030857442500516946454117292066537744450433833175277034592779802125710290455505547228038869464072116409231978750172792520117370092655457841313483961572225516445110615816991411058942872587037830672716614331332084146255631752462341011533794016435873512766272049664702751999368440037185222491493422932718860657954134444265482930305881829660227412586542617634525636603949208329327161658849899670812382719471968541417550468900391005354034121605747138216909933551176106202909271113578424653876948340303347750009312999797908943462104102540606477172507975720126822256574809325086153708281505950440713572876718980314395044273783772732905598956374726841206883251089052173993441862445018533636907332041297043727746527266911973264171174691000240566594913826433241885717278892913704850099616516214329784294756382929281737908069972701996849899051033835240637220782367029790198518744646342447218174017839031901508322050927802225007879848287500709949336181079516283024659697669903897622809319645337424841335366540836455166685460154100811742547404694369429248487004112068217867304381239577918935511267393710986553043420571419356494226518498890408573390124906403113130972985104510847859559156521646481280757406028534842426859749708376290667163291104011356437762882046577314736967991471850188531892063817204095289890401452592185566786282422374581568295310688463747020560888147490040085879399287282366637402417214888668344908648728120732696456906050733138291812198192413491719163230194951335209118246401842145044421288059546863558634731941130703476472750343424331096416944267186221980268045002865016299775597400716178298816158351140540103361408927654547665121371157154731638306098635184992591807708613028138354542497602609350550101400809719030390659611250885054438363708095921286772330996047916484222558331471297700939794665299504022596336162049634893818342756068652337945331513009687808226392534089856252316810080025647868217519085485811285579684394091510909738166082397224565400089118014259313282227722077277468678135714725274253397503988705733694867590716165523993275258677304959621335349070640798999098765327027581707253580519621076765051242838372418740313985550197266741864452344576525960807706852920611346589635512662068806235294281036144367409414255420097584704321611340787857832954627831520677380417491531097444589342348104499507406578663081008964394302518243424139241991501338633455249927897320468792409606329667983617397652603377354605592715923343561171291020699800840210366488922996844268180299538770206727057719773038815938998158133324594360796088328875158509987770911520203132905769462814585224432916663122757756341983659063354731184249352732098164545074393711970762133998703728308878341381271714021611717413114202244982459016763109068227928326318623987720545607174531506553921170669544012527312733941314374117412248221155835228660579955082084544736240534928537508248367264618323432156769268441049178825360049003780758756114970891788450785302754869232130784270272315817918327181795645309395830187521822422391309553661114193142933274619774964865811505504772996521545299642575987856303365348870986793267530964086506525739372977210013318890266571152746838584852063876400638748956940714967829574469147590153490769588057063970414791464744473466954694526397113244774734900008605705332762029019624355374110842492641306413387619675705696982843551631433125137084683364611940302402374587247571083139385488188781567399191572608771537957691390704887139096797992140027855457523005782820393332301378329337172570234022764287106101271471782871599296398956159491703800441862795188499361955094196025142192928557882428843027772534308770785374490049952319282639586539761941387293134938429996664848605025308176220049575386360986985788117159446476822310351007379149405374824293868096608900963855681179950202497133220954712156939295887629006208763456598607754807720269635249803043750577707214562907771570610694976430580768494112104338827555394962930190345978849055841676467361590951920426482494028123231964046368161007934234302000957109106626019121237880512202551158105649302729635281927806969560451020515559123505543824002382461592957408624098133322946717640362383074278448270867644304975608519948211957503741868275022538184391787219503353838498537256628520187319232759752644429507779870477568647949932748741238854093829079026975931656265123155592626865699913200519857071792885345277029695497857099593097012056377297569836192256957399974074323819751906856606370640193360239769942454482806687428005695744808614237270055309456125789921522974848140809144527890668511041266321479217447442500241517874266914324329798798764602288871263693047437637247028154349375357065367329430684828217584189301318901929176097093020376446082957734816403195603093739033545862298472654738223398906865390676160391412077706309583567324614242101425271821299028593833590170472963470233376014985464013139951548427782947875265264230931588625510906019354967998094764364628161833749542583178910910157258865776867740475342004638850129587406212508316948027073972184380569596698558805624710601087140817618405356878307926314961697013761144342332683125624502813026230464485737811165985569584356591903452783037516234110312571989878253338544311603691894127435312862989102582907530090609906280904018094656039379692449806181749510099967500585198933330214105947581929795902780053429443872987769175263619849032392382310700098954073006687952579234979806114962231533988203182005202695424392699448020486181802629215987918869330445737013741476596709486178641312009334229562455197274288012880899119158345869624139603974398930247683623793372738546218817719843537659665351127148868470359256478549692028963844294654535269388110406724193084052765411901752905325783705421430480325207581865552912208629461909297025500542416340398863653076999746698983784562483932338461455575535277933483145872733779026051976256174232628033635670162062621877309322842988681055896120597451081335377098742829145155622981451060849983937217852490004032828328778408160810179087284717592140801410368325706217007797634704111584261363942582515539897897156497580138517639104794003471017704027577126349938706766120903941926087181571717281024755182509970928175583198389183012895611720087658597054571111127901961113915902572821337783520657215497799395603117436390267200692062471150280241628119125585823801929147783799237997583166236270750859799974473856392776457698392116644467564329428852282843707585849713416042299420536950156457589178884385156346854339149671931241150528843845829971272386110483175408970587676268235247065560760645438298425231792511388522776352036234260308493881744149709792181134107010037631950571852269878190546637699996582151598771097902596920402388554985596435030729456509724422398348637674146949938252363065949699528196333273022941771064482158973525655139330563754143110711753942864971955794434388313715890947081343653045961704146889060226243962715444814657065408034294439266326501389205539725816384363312612104787870478309952807687445125314278698468882945556337712014401415921399591286656466066040700925705785809705750455250815718397583366420586619296718613297074213421979524046591552311654473841147402635439990787888639129792194572025831566465491263855480335506635140834310142222837180015718433512413591300093029301029723717267586061616874824041438187355759722542567195376911800926935287289635037348641465082050543807161891950922641766215036826797790101088434424254941890269764287358533166891591923098401803441216772004780335640902829567186619986256623348665016302122770774193295663549178383714983130347814479221875265840579557511946288827149930478136848384882675540041534416591172188197953568104706060334131891076879068043554174778155106546869020376363604917950352188283758706613213820270958602677332712774249873522508125037358355801056837518964967912951381991242982194949501202929208555664285353087030847915446061196248321472787977759760595213472683972530792303885783223976369290502686227904721639290667075783219076048044875790565762990834430412551219751385527170279890896384116203553611830748741436545239229729295253625639392883703970686673184624285097280169300474276231670516390447983015996620674618802081937344171671980449697457283958306322254825739737129086241635753562863136145657515627218877325894303415201574567457904717792086993266788307605266362299508337125481957476926828570924612332498242673032498543654227940747565861997602993987314615535192725318804975639593596006233130132699108071057682469106116989594407660256447105712300920915316222816448725336496040248491811509115819996012503869657325232052736551254746166272868487809980822562574566803809824675144741832304478141878937108571140933866267804586899714179418479810439562053117316460412756502353018858781074894352290443423383307079021074207903381814314933098104426335697657028507223171314496928697270611622578447130052528873577491380487364325269057665076330158359553996061234896849609143999062072711455302058673253481190836731884166805615522463209003670474396077504150070190660713556752726285407349052046866310244367865625318406712221629181420884371053811211296376638728441706590187746511839237180704119802026073563786289417218588519674957946452251357630363126437559772155782790093596478436702910436680114435060742030399511829988372266933102674116804669036957413223314337851637958516351170694764104154637514883707497215593960240983737095339041103662543645519525034313563134309270254359535632745788521720735305048329993891010721516517680828070753819450864423161911422401525206734369825778721937846901265703960686081349472071209575665728098038476711815579427227634700508616656187667736347523714771380638466687939526877161796167847684775446171710500612457127869370826502275722885086614402741107375536138475603784439796029101891716474245359193626109314457650686837992625029136577549823526968648106261189216822153266056118878508213435580731739112162658986429326925888327897767697812062888066819726151286587500506596973825373789241203900869744605949283826688306921463659863324948784552432201970658505679329361304342462578024911091336032474336038280419524616641724284179456335620096916574475931534443157215854429019516153899472582177984260576522792297084806968658773348463131464864131899869877991656943398256159202262494761449247623206561200040840702705712385229468115401138206325865650385901739115101857096231574280151889271841428866531659116603624568635634282641694728341581657820607534872796069018876963457796242064809900539450151541911080691504822962402077380646022279159911013711262472855368987741731868596680110111654204064402394029944102502051615473450598866309475146389352524086015563552117081350282761784122876802273451546676972336438328426845820447472504610756243550387328457980014293422506421911911208083271468855498303642830206036068635871226345664854757228560164597206125760044431006932575795678227455395285548702049243426451751274661753659959471587490269241991473687635707368048655171595245629032383611047895890976671244118872970938014913381167642311773384584643462401911119084991406419297502150363851753263042800254223411859085358339195107621123147641115750287421233190917126443415089998843688919585182324922668361835398084078160801512597928151385396600853786843201870731596222087813041332960017987970667350598530248474047169680771623954888526455777354073939599579327453372617673580913789570784224597585324640831057050247309564851355641997108409387127065538749172361920272930202219391717360753965795288457283655761958341652251599181085941332850784323480689603045761780159774527303049133505252530244870188017585037546130905100355195939790687310890002363542539265686985842460642506266814299193323292978196705443937960029056865492476622274151760905062892900439155414972929196051344133641488535711854542260534204640240073299950681273496193110203619590619779274411940692425360326026008541257155199000755701649239747696326446434926395488351109374186121791964679854660076391004103969796980211965308017348516806563702325993592986436984934557893993165389732721861906513494470049305663248562756049344675552765902027059829825187686636963575958187558082401238494657204590673223948969606223842326672839679378706049108900087786281209754044633102859124338225697559161239397600909597315431197476359030578769244892052301797061042273431554960222834424687196359425450984170333462127081788378074227143539784283769799511004482213167198089462838129675659315399644392056665643437241099497248237656079849925372231401604660354135836272528614360548453127054428213238464374195212268328583924034027864554435456071983689168400034566541989524169280591909378837778807919625565701631689200452945402297925693564089872909006128487848706250227241316611386817983844577815381692474023725570334032852398762339681105538201456022876805220069285121391255654043082325502787781733846365660482283255843202700801690833211932132023642938537232746238680667790582788485480578169027087510200608119688387664729536409586276262368139608165545209420645259048421934367991408803288498794025254792831468751905738909947338810728384160423733995617059266778022318819776256125834605868769799570133570789610543781675182118061069998967701315369901943864522945052419149363274544522423475202046483754547714789254446983220529112485826272927258616194329086754119146875226071822674959749387120466289550051931816257346161171833869116449806940343271369408761295478820132362501093612200212007931430376632195229868334959203674915964800517396839958029013044115877044699362278642835268877968465459282830875970093569326677243389553103541790651195566064524952812712356861039026726894990429746197683299273608355107597406442387995071700545402329038845795727819737767640611478955551487448708102140368304562700691115686156863120288848515619905979421051703926652340044143025901838734744356039838930447443700965937832323068483140267714540403682697407081905815795244457252258230353492864689182689903007108407778129375486735843136631262546313742242320724048389468785796425384414010922663105471928864862770207867728640176038116888022623981445545279259523903895083657878770969843877860974810192565208003792879293362584758005106812399287553221951910865145195794540130684745361426113996618705603573961107777924947005697796099319134685314130049249699079833712968051452096579019732658533687487449434256963739807556948130109026854598423611798850825467555873768772598421692942545642126850334400362280805158917108983376514855791443189647861955655268787772167220812084242205045603848867482431385281951418510372903789949617841638020381936974646340023665048584483548686848463608527452166480702278203841496812301600980403474612393686692090043000110454120458545884489603654555301123764509030178293952780150612591572401937664279504431462605461428032194317815539925225627117280043560840831995759602810756230224768438861615800536803842032722819562916616126274792000601417306410839689462439248183986464954084962064732791963940351625296195864323036576990892845646584126049685695018444688700800871225172226040008202808942983892724438148869933469534595371138162542811769013845982230346676644154377186417977546206416030833758446811769918553901173843205404271758391759131572035930198402299135463101255250238228744189193622058201823545084050768751954488985559929809577337186014138933609658595637914819864135129973404443802041094234935484365120958890328030632983100973491078415880752131108603067672880502156048213066872994520509291796488110359475758859063502605194771989621766321290924150182099025882005335509436553135989839718797171598534095535495614563263324231113371050720794396309136822355638845659698660663722475782318532305017537887913292427343598784037426394256712673565040478355883082727626870364955335784469480878797765308940275108139211120187920114323305171099781599637109949460170426646848361807762566612637991206019078213734337006018542647599472007018283242025882874924773201449511370253522119013147137162049674809289295102105440484730852451938500592403362471706181185169486001024047750914504273666528478808782743365967722379443691991172392144633485731967079364585672572562113635692924358468198189942229172232934284922158237065464533490181607368623352693485107058330862722390309121671569041024259214914650913126665142411369083132551683334194320446443389145623972951453839341692202151844188813787543983741599059321940466626226884769311538633403868944358215227735999268804360562008496414716514516842730539865459236566314959435385202151151654411561723820012170991701677668672721875671959893758323840887775044135731050695169578437301679052468568383810753860770919314183405309135466334100216509520992251469320875403049795842387505796655388353949239008034178242434519569022464214559931484590118438249570141262056383440037004650251373446010941697155041798644090701612800437060491323681380279330155393586130353070917373187611306182794117028507487359322032052741832016121773684995187111243072250095427127779144755169064541732979212583223167448188219188367932893331431814391152714745006668470996676546927869327287458956797636375048261368807870807377746833760424528784494035987427896978732376509237123026370732310754483713591885060919263337863360921815540911812377984624582109534176743863707636729180832988003047024436476171093251250703472613678598251987125608208196752017229034482336961635388828835539757628664107306117682196942109040242599354569610114482969690661384213342072646182648393680261401698385381909292221365495704184613409938911715837944450518078102082471208295944724257691057618831467869718882990027234704878075644686262224148887796620988262175053721795633132503943115949862582457124333244306847741051156020110836490947220434631207646131423942797595116962459346881482747876118031295493708977970286342105299330370100003132386388852880835794355341244516585222450492821834934789059321379788320497723449372617271621480878086713855763969215327471092347025229774325060599886067582522852459180240051535127887413288421499736480819659333513590804872421281218616968819077540399044613603719076420764492454534664073555873954955512577908224372829147529908810275125081934621301991732875473286831337911802278658296617666866856850600976162342648839882130525717492237778369207586588186576539313930897393609453653041616935733029841077172994433105027361718159635131694845847648751443441570146628578193282565828503384884623321754919680620385824473237654682487153209030109013356578817409761215865318529201490505673451246607965803826874683349391494457949065884004472858996431395315400468631231862372991719321481299759243408384261317926096631120310108353220045022670733841562760017619531067722995294199031020599330328469360409607261944571699834393467430801013216024713965468514825397750823552972654651719349198909206878593286824856368455464157098315761784695651921895076189417044913034623987472056630734278674993030109375493268203975064426362958923486013935124140824185719580328136145020491508487379595180535861643875890096288626039750971108491385119904702155639106545216633105663893723911887525157070480179666639597188047379329419944518509626307367804648914231397655202951080092731329967527665444332940010004486864516707312338466556720169887352759476226557376848620267277391781560030880224586479635696588413689368773646813477591495429845450707637870649451753651670448578012023508112166113268051249689759145719390244357970010562765185727562774062382744114766623719187025390393897343733276588288695536948375469053295176654875867267712605305616544643923181897490003892730041263168761280060928216320959115662359751502724907101732092129722296770256403175344607172444048004575269646057410889941516659822287068521522022411892040563859488135363603433858142310273884726799075339967842116258301607291508624132211821475263873314608626081720339126984820742161008087285143042717229132974481230609052873174836391564389188164715935946282090867621519174874868723717154061432389782180249406426470676734114890843461934238662296192621675907587858154081848758443991312110668802018884820269548563656926462301236090239943073056514722092473533847371773640046529649184112023929298348209548931810291748108866355707081655609814053010897801826942438715879822988302960681326300038588543827250937226266287414004412088241905773770009137361311421119252535648499608972053512015573560817158990352176984146286456677467787501953157526027668189718830400344957495622755865728828877604361449404717356592397077066830838137440089116894392012992706429486867560005090976058048552023224271122855033372150012650484101462570993933753943117662946870246266493209451051562058308678974303126181654081984663910960846934175286114058971233470264676105005137604987749115176688468482528848186612971440081425852904503215715822430509974802066850369787823475006306178805615172111386237748427385102617248177096042170902759273022939446230283210036399743071631314790910308858391452089019449029717496305651300406273291594503964830869549951369035524060689848675238908784290200173962692381559914158680035784943099573624418063148449040824777352292915929374162588082979002803549227236561464802532118989507364325602332377067452374686173917291528947980861041499486871594938503508683505788121353556870045813329877466780374223524198411828226721429804140279990684364691534052567442510446347885323137577591262022631353531016280834918107957564786528597290762142034563969195309421729046629094507822611993634064796050119625302595639825965630914511499237059990287569642444931126564725909521433068350163262271657460728206508343375351132652348995092548373464979584054959840583707223301138930065212512958729991568749507823199165427926756697473319567628571739615833701629609032298900770282076106609568198639731730965122859043723772281295463853592936263125067850690784662789528411531181176234854266094981049960631358614601100181490982820137088278840124350729747925678921796318072723602518354306390367166494281968478577348106700475860037862162988050828329811086438263157059880753850425144319681552664949930587474756264687410631657841317347179198126463514591213115778390661170031827519241771460881328486157319557706078228804212522551145885836858009187853650383841855203574871889369245910310276360689037470915297349340822563854483905628454367675588364690000364435846698464259393935832294587801807099970271115897510560260351360319502702431561264386305749741776664887354389499672921216409910176252316330972645522076683209949421579939966277269522841532543801950407696051578833279507840745238328470456958688842669202412826885215704912993041683428619193077942532096541203245466582617284507492384586319252058437685494544995590305320141632877343149892280650362444967262989392414977719564407239971291893881993600763193620991935298608500404247784269576306206254266842659830829212284303823688689946413434442791570933378483682157125867717060598243777816719324936848449284967123521267720005119478128997173958960500469072892138706588410665566599430701918730462108587579953497486833436743841429856879769779176223982297523680771843765935175860435618197676853647965571907977965173228086062372764810219384598751671874986524910989205642093875830275656321581749778934914087524413951019972434096482921020131791434396325705841911974377541202651785994403022360547442478362618570630186904888139349706453030351980045799610520603369952537034579040554394934286700573884280340105999197178351636913585498789545845625217864408711914739880511619070784349390587801999081896816719410234557144240061671474026049384284994300624185944579909884900979249492693467234664059245769865130278786305987586357419748873992715546370162848707080562688542231673788536894454020496886863723292240023147920723897078038136275907029438930515818502502513110810323857475008649759341360434080213024202785569999866939930843973632174496925827730202450749541658790651042061304501471075185990321682519049179959260681584535643564936286922942071249187246429569373906792775012502732880739215907358475667069072790696169819731719530213613053614470580609807191872069089794978807524497776748319725697433177162427570048274344842338822605809174052602563021921150993017248545119382425210795609384899744139296229518422751516771495702473736882455602403266638948222541713552991666156148647271634120417796735135412754627035875721773261029724834491715523907347844144508780629938291120384256185199734704234099803941406892347411064240480340105462174331273387295564260844759642452082485186024585336579715848281264783739585109371876250902133448588065365967834331689805580045823137103002545080875856087593512365842918178143606845174844778946474442811591955463446512119743974667929196240373344631984051358599937848672528197607907987041852117890744501040113131881131230080301058946249879430830187110993097436526773349500034134670714432560268654927098774915807792556040942484893891108506037813936572053639296586676564870561355663714551008709021931101110007983986917485008064956695126190592447848630584300661803247559041229034703708401998462403475089593811595891461053115012893114793953941428457596426971536298864414367542507305564535029547616098366146404300722004349363623052299103625953940479544123772638003923988698752424836624434705434808744387065894194874743238983667415746424566218726507607703285486803424540703778252314010419920911071817947370378298430953686583621135819734500122534231051738859105453992400846132057183722432585032135042228786241276671791236979186410658899300967730737028670829662665986346534188123285214166836145800186129349297603188741678681506984205300727341814807728270414284656964519444202584893761778341148708685872411098431137737588804513620622634978944637598952358925854995839099164225419124860512817424541036115248607973923112647140140333205448568692623482878829828761892063545048395705339092419156723936990051468775848619124080842361680773462742897902676405534972129803464562359433179567895359276792356459120788437225324115669949780027270022455338522342566479085792879988460004162873835258298423826878367648006006768461632398186852889562411658675291958132225117157285862102732355611594026655729477429341119382764388999779176493361036745719734265575594397299157275998486337101742319161288205878963146726848244254159737073165356091713714964739886491628508763433436273054650287215790340522067019516622261251152943513899831303267288694408129238723080001797406962601315697813516221489890759818708110629789241568689271816029697938095725041565601418507351823132221064439002321801390319163153390908664938297989159005920218154436197002049502712602906098857621255564801615464717040904992660199866680316429427459446882766299367363774686815681446082154563067313797236934099022224763316338973441580239857069487720950645668274078765349009524915402887221684019784688513723020507514252724253302768683173496357029816709508886369863369014582194544941209680483903200831307646221081128018017329484076586372251569451739870484273974603213593099147070705833760917104011325022647990939107268966846955009421040960125606181803453839646025179481091524899215800021294528150593573330558268457270550366436134420034923707648876307889397882054360002143580758189835896423106559152388694675912638167173372376886252211046522790205847717952194452579264603365957703323615202231214920587499094183143944077185604268110082493990854376551161264413676050757542259606284232819519799549439651327378417012112801284655165581832266369935337238286979193661598727392588094323575985672481408938568910483098787690318687982982817897850963971355253467174738104061644041847640642695385249348368669443037237691075839730521972163981383142929886378671830414869207066495022771642875718581157286951583776648885810276193641035560151439412854556776304733961816374791687986233809106682161906796330532372526970339505478599041849330487572617877741848810311611976225629935820023215023485507552523384878371549566747995834023770366066765921068314243307203533904685733831694060985910753642809560596948244913740384320257649112084873650363910087372596768374584082818727252239985525075358495159064649772563373550000938975415372516380486370621957470332175540186493334647328256091999231152765570067119983468888787983535473296656600816525374252422822185463532582666701702484168553054390105509165026174208158172041576846047091838615043132299606406857213180588651182844622358442010043452800065468762521124350479354206706568407620794042433265167426269158646059710456539518376265371086005769389386447271446718369896430617803677908135339203405898319412344800270426331804547756377453138811518060253288816653416840656075238738710432676983494727511901786830070065719271331560098422755058426116440966370476593078999022068540367142871431662203480500314860727019599615634736012745240553954889537997535649969466599741725737189026396885430140182863738346757633079167447787984474158933957916032124814834919022213943486915317312825304892897276293730578474517299642514684680398592087917467258596152404769487600972273113404104892028912680779695967949554259934049376217295623390622170951022168871653741500055810418029266055176169665307395409136259091752382349505584608304513179549787316937556448753074370016742406379645259906879830404503599525296637106065928939310410722437965735101841874816277805926475817764680052665978435630837268903329566196327295889726065362834731547415283394286750842985713598642760424050553673746619865519965083514619313349811588583715113319164631744760440263666147915408594939496212215018406992212822520865994721713540896691904590765500575201036016715605275837730595224776538331785686109432469082060219138786719125806258738460438454118226710226074765828999358860275640422722799725842304525549645470147485590993519563980426472316557918129734202662486613712755339936189215895910248547325609107615061160988561577495653454286565662136060947760992740772023934291009897308192591978438396080279672238486853114211417024414237535525579611070407738361108633606034244261333620316313954854502737080028450563808006254296679121564150500335323057784411451816406100597443125655529633918923152650914060086390357174274880578457827997295840688743558508612064658811266314308450231410347577865841805822748336698525396648861567483488741946151593478142993750016891050162269895625040341861491164686700690769946000762435196541837419462473058928380422061923613351541980698405249350102811029100598397836692754047201477843184986501980382944297534167954929632031629151256321921411165330290816043078272190704369130062920010681906127078658173887118185596108812334501042896196477041153344658901487147376842441954479105245990294600993735657596747685597659669129270968652488670226805596447914281827986745832542795748238968528554383399051933631218897141267895170761742923426554269846785956368468687138353754194239937917202688784008767623728019918118280702022207369453733374493217691181604198069638194163253105207374195243751522037442618105890492417522044353977907389612000091421230642628113962182289789522479263812996742738202297689875499834037430724429107654112934992269996404226158417864470251981501687986674167980678187613084991019002463746208261377802671816534368888630930717823426044553396595937141742976436676276008887436305534875116186385255449358500530865913901435352047984087329645504313828277984027008799013395628170838430174030847497080728849606691762593084396724723537269028634966767849429583068743311267652086549491567174473930615932034279515604964104158549466483955685765085285439312066825899168965249657833415881379714302956113137525585846727153511922475081662292072028435071882092598169774504739567966395557469314886992024946465880021780114220563305453063599581879181055076946688994235466454210625111353238415711526285625767053154646861897188034998706189705421723914624994014321945107123171865571615076212223045675836980259679313163385385677570862207792441973214650572832273052719550700716736679490017662605349375095492678585772512833310729465501677239340005973835876422377493490915371647949568404738336988271476872499423083416346449932764451936609454504906758073816735984282035909904154244820366786009792755381911483149021153981262594063136614990578383341144708410441497722468349065400128356070425571361912815223271955354611762024545598078901779523597788737352824684688010424907552600075242447430049797039473008992364607345860252188906484854246192116937840500093832975323203800793661039273030434580345409965702816265750138606088079174921771205451419651749531954099637970945095194833340836278562476805570602541553278149708007867856864901579804188559533098287846649626960393262149973135330454377093494687628834684221295993314292026267520996151876522128338905544060479176977262640814867133305917158753470719095953967114986628245963231933719855334645768663060932927260858390331148820315164882069777022175072182226006347869249822189457656898379341446105074691988057563584873374756772927357059921083933196221935375660035119356564624163744073769501447172603885795753763349382573024287717578770568384815114965798400898328168264194187180854885136835074878357284343546385627854988986604494474646550008049092038719251461877329507897554404872427455607630688731661669697610989923470313041521976348547968264737627776370367823916214252877079160322003348137215282408220802258865261984957088667395930708129094216926614478671194283268447614516245639421396575188660614577616016456062936206990261021057032488577839163065071070514405447963913672580296012926519437753031914979822890598266801117706067190083567783356136452080728762009452632937654974931749323325391059705193952598563319007634247452860541522605594501812384247171076491234662565870683510225006716006101752013452913425854120738650999210187901376510652633330306809439372391177540191955203912920576922719306182794701993766728275992453611189075005535941687639934561822125934602361694158358518409363260136438067384316578642518074896600636168452170175945178037204944386605393519160878824084508370324224147703694167624077160077485010988705542330885982918944307630104221109841421122353352158609408224352496591789078117059197551274606362281635025739004021343048441656667279800667385561568106828648520101989453026940260039072806359722942881001237656462088353094514741626415014243455289068101111018472613514888913948197509521856145611665504242762111057241736500102576100896459196807415313880027760781601825274176707704424539278955883910171224000454212168984021280382860526303620523900888096412977416980027185472829648254957071214957070003047642866540392014630380788229867378816478490694208109000646591113818909352676550875311282464523745222562969597648293102074226559519574021951765081141904158254679119620841406808786877037824940744770456153194217676895581234080339650151715471249481738474521426370911069283190512807206719099964869188924127189888845648985096182897511619945909402740473062483935608170099336484458013249782282329815593425310507912166298948391645422427086310244567241824519260218702957095646154406784749710952844869010680335131917510661058182757450750343810219543324100489865228521262623243924712391963328355179908363751423221868539630780529595304083861015513709427817897792088994743069743839990759768691800657736974503823996959668446519680684954207091330210732661579491822795222060872759522798225014303467212758791322581045446121472825511712142330566339605978662162238684509104853860434349803701482931218563258385712753921875715050086056507442333505432792374636205613013970715749876189852312052672093364672027054256466457802156177230786841258328341947823412071864341711341230255892178177173462004072503128189107986487009029721469828886676988666764252304899379042396930190049771521288364291125809409293558730458145880767770570961882454752685090756939946855232710730178612689719504757875547561815698964364455099693941754681503905567905504568137977401250058705804781797460719495559003699338737344408700357200693401249034653985428256168480407870321939003707556745938618333316336531386473843588378750457966605967242637824395036075824380083410567757679275504502746119528152086156098254237873539327040930809687728981433858972109106381694896034989908074162226765257024536179757117950919101398526763909221423805007600821344016191989959674489997061876628779505877640540797357086827800069550414090162196032690886940120083702562448557200426207108208966110815294447844152767900906684281713241554292276239000133334924380790441688962764361621273664032938799680506274541990535812943159150470800395759162119066349748181510079301058612294540091514815498370271649268456187494689634677433932643923218082262761127114015133649838630490183893179511777245904322959942148110298467226897991878937627780303814323542042093229908339281307716190801493352887143420325788057180412280892698686186551289903323780712542087519408160763884996330968027748294563049112414777457240040557222115769403949865675583591739594382985692922992275081407637594272273693138845947715077908048048395673325611224128426447142170133146764961048490845851674965906473668346961558389845858199261979589754136573150829486565646427812180144133899835789380628767546212255450643248145264340440759593478270132996478315726153638043569635402265435368553770619099403032671957488115962091643355011709540204324960378857372179956484626848125216735398335290766418568394734430531214244547664875581195680172600652546210370348563434259180761631731748132999862630093214175891242626028862494660779140846537875094511231937305208163737049905673051266429117696796503760951601168899202258301854297668434813190706686679436543901689321223558183156070503540809457303960567394313844752324199225868233689133626721788918886326227133394881645450388609709166078905468224989506654587280729221290539953379166347066646720774316523262513599904909843846660532088556821031149321393397726776779326313485609600598514723338386732547264137392818606160272021467639379595484805865259069673664872567894393847142237767286518133332256352509220175956456865292389865860082330678155261942513833705224646310341686903058578238479725115722665525509866024625062716264220726466989315464671468289252384103500276283752359023830834529849948677270667350368349968981557044582711766280633809190774492437082993532155389977646188159787323465599290680013028351061674797694212064392376825249969763246665103526171805793844371944756265940766324747525551792507044209834355836113629317082935090542732763077575828504247395068822241308772990851350370595624995057946778042174230965329414842990365798181030758662178027703103900999255604148476530155230228501904863791261338009777189397161204376996795780556425007505696162034289029041347970044237329947306265613966206298113155999917785459071940523015578957711048536779436034606379943956563439028097647212260907357628029347004797180175804843819006354768653831820303565316449045243013888719185485389397318629109790259711871082080717953079721243154275150948155595360753909128787371144959331949806969171619350129731305952506436085911208524154136613603669576579660631168073381322424076413030055043048020351424336880101757593526681364074861482977193771943723546174348811771224054802101156567352613874215841985853065177406244030308354101730459109251270460005150258569451468756617218667396833215908820743241831230484128717916714423438189378565106775182314641386676470632890702815590217822720241201270821344423934854111056904033384495881147158682198347051034743350206762001399343555137246304934999639802875729267140984732707564222498387475247367369818848918055303898428829499526722371497418158069713190496934049730394214176602911055444988274382463999893901324889177022626394756205576277002760502811887642715497591994053419809226594140106863287232406736172175611219231575244900969520226660558983410900433787340409979468475098725657713223508177981373199579963589149866319616609340169778689758191672344280467149013933338231665668250523602389300085492643775778938282302980938134509360056532238852479838158878726082962352795808136508509997325228596498454106738252251754115567510491699630499123242687041530950360570085289891248610312161347767247177416430591118726532249475700527250762872755004013174115677739376419796575059864690204878585133767232966342358146359805137267236932553034884417255450418219724890628036538585743084456761308251321886890970436743293560527834961976199573009179912262306317601922737244688063370120034691325232163141170954545635147298584741365430101481779801394962679028743740109421385942203550906129265512514718613420511865056358528427134353966152151082277051386745559399812136957522164681107983799961198906643503011163126074142256681037919957897884273421201854982679534449718803765729937287884362294035620492932449635513833138232066341097712882526619089154573735352209279479235213091231592175338626453279028790388630063268483331899479030770042147379915392197098180110769349549277165563489311177828146770838711354747796029876354608068320258179433709007711558976759185408447346026365176782066984261015200676695304559592063260872270086442864065098475118576790555726392778791290320212698470753269249143715267291171567775749177174732936682718295208946311864833727461165371329032831995562743073513417668309607650164235197072956795685307172925333155539274297607715938749830765739999189631634928039786261998242341177562492095382057627319742890781962539280197168397760193576097788512672100829658922429006294195425165566012521861092080664778792403935279509612061580532679434223477224269735765222209445576844613010379134390906443797429505835509014372149749335630942064879299577167162641446230534723754410273609149992379990854457000185832848647951125605259524953242360566195099120829724737409848279133062179230671354095464671996902099661377894012798057962998399403637896870978596871573793996857343878733640289698373842794313686384928030748231431409036582143337322060689708192706610613791105212668663538353474658304228436273129523812308023928097048435765490577430791745520769978124861800830362225766027590010565241937254007550440211541845566444954702616700600571458452130930410107905523738118490461168843011763492335147616141504316661377832089309537387238718901286772077805121458007857666557253174284828369817408902065983952750995303885602931872048584722904544221649761789489548567803089711515248917300813324904013714085514283432265133929862623824405012506346086527068614104620073972986645758922131689522383446028941036124444654242948665650801143134153332417220318566082837422927985433807769296060512927413664315910377562098094286013193460589679093294964757259855779446751310899778644148588060706660537575153874795484574635922931055220813073246331085287947650994165003914147453397696107813259534275830589566299885958110437545749226933564716867373637309611716550900083337274668846846808877053502394327487408103886205703695124833942591835330565575486674458458514006036393253545292623325848025876879805201902107913442569098138107922685236890720766246870563964555158737862771336694992734501788131697940184670153779924691081354533391140843324056755691967089773971970085799342178628649111724180350685387610143496649523114898658630981525180122341414158132280966759567986788716335316412685266136136058686124692822064307408127339687540958997853570989614133144084675270016759967366235275596178710431919433044146944364302325334712726089101823262651234547559616483266374893711983744749718231757219248257207821326213049932300374865428376964053043220300747866715425263937933958520657955857763194769295272070904646614265606249786751279226553611272664757393170572906115647473667891188849709042946754893249238819323686321527553159766004852510727186833762266720164368088913496962412229853560130366260864815211658902262684426241757480280815763001967377913453004454643160039381063555870152668745394008458965278071265155561703817536053374998395069279615432018130733154193228756253369689861063303936348800706031901281747139581167466538156341792607782460146284810572889171493982815131821426411994785486417965657680732920107511638725570045321816884073929446253202886639095907632498004228693016619933329655906237982655025539932464115473314954977022631860948906402584558909921931616823664408913714894808726611958801128676116972303818534297278237947365446758350134788145384442181691746289709622653299877997416395964007120622329229199684126934680067644849890069331628521899446748756076054169783227758130720484516965762910194174561731968649710753093015695909973119554777315033327669735334372822057656331438133347121500939655272576300518586922734482747163979283056331714796005638682655668902541521317561438986279766411266726369751733039432776061680943478660288980718813847291186567880142937498052037234446991559008931934579304010731161514796251766228154597707919489510573080173359166935130397056420464659267380832732309923417678204779885085768680921812728585575123681216471780105061209001517188557892926463288023531433016784909032390163598936557201438585149988756000466716692463959310364016675831518830415039196917718385003818714059973932343708711820682946420618139993897620624240268905246531107180613809245193407854329990491763755965507973668747115276613647911786618841089640784388361956849594876486369805049002782510632438240040591275067254360987158626839961859239876452001702486145583955145136108445098510992278735755667745565297421085752012663960337205086870866361755326656959140394958588005713562182193706998496657287502713322013622777636571795816043477410611673672726667311659230644216368643567797045266436779802331026437488345138815198826476107304861789891646104614136506099258613521292221719251244189675086666530269412249139648560745117447158207882616623513491781628180936559844583759112532170823910341441721938367149190509664290215719800551380411764541914069539478877801850486050081345173504285953763767558045103192130189554533470392625140247280796298816982796144939224959845564261125229391999180687561197384557064306344727360858049973992229251275439628988821121954926685290926222583661391307259913232763689386495155260251276194688454877736568347200899072548341083046289216576105008620337047991184337842712977841755004716698168290762223554342398707332709770900000187581886650555530619678718432402442671606019359139085419184447835524302651975654833590895746415602474182208787364748744668370289551642573227977737716699450488726093922958941568756991795529801261339408240533954830274332978142570203592572253922336784376486285712636964741875707223094242810593087383952244335021716403550273844852371406249656722228847934728562848226546904671718740596905193951913266103317094867250886913404923800778239684717682902544139150115960353920480928343247186788500398005145332759376769330366114898497871478049083881334962451329059230479757798243929070933905613289795006699855714888003992048420458642754258081419880869881361254168767076556220583404291067095199543651056879232788075398078205239317458218823184072456910741297399544546745830146587670588648675529900360697009811070567292676261757659833014995537229350490116707532336790579653866622711988657222491301824868957780502463576251012532852923421550748113036221835142499360272896899091576173435850833200550213026699876760660262062735194933339745140406314885718380797284111824184692284771129087490988660692997065927066673827020389438331979347817429371591883578657455102693646295058536897604072480550136038934035993165956107161765225061081155783291742025162912035187361379061567399923959661111403173391606626953041688798612263226253128612596799619338479750880166451186189881889767833728458038894591302780170694350617030097306880518781780319433105947489042983747313932714092787096645134208664128411541567979000456560412846830677011351519512795493687254560222133558274372284761853570190727720657755675621551386642836250063014748220951207991489846922325838931227493710858259892011817551967636371110914699856811444878935908322026113661220466122349741456026818138265836382137853590900184591232208921207332716244603638975450813378151893472426729765295866073350794183288003451572580326184993598936374325291257904223083561879900412855194985038956563617770813465942406993389778023677888306876108690514830394700036957863794573820482256132673837425211824900133757707874320883106980124522226493897854833690749439252466991413920803383856334102380256067909359947345775970961093342884886251753777792856536129735430287540307208271308082660920698005585774555693383214450561233405279655649941476467742481684612655383964536236711570244122455111534410309244232628271564596109999637936324682931420135221122487999585014440443975136237941685464575566326116827609263433100228137512100763156732594210051992009820623915664995482389967728539393299534475626277932958736447377167215574984597247372401966508848708822367540669799720571588824012939838971509584117413313958865351280828548253690713642631870651965116295200344312902845852465700779169439226329602469987693464128712948402042159808052251118711439726275630130985627436006042955267367610486260558993241155350829006173777019363772976948068921531989937029024198881541443144855182603058018000950867103306621009875775991811921042795008479046728214589011063424821328980693281204090692390119610880141903231460412632320348552491869509173868543242751574623169282269133007885374257924230572677357682546351819079329967640787625317358732919758089568360971738939254122297577834030646998050321125398299226866965983850946026473119526984199978082913714907723303280514725958903073846554602887490850084992018351754646928298931048138437247837174980980226496219558242877846290606340500432676844807652602889581766498867570155267225308309224981378178079388315721121868087274599916331254813544790456929379052324221880251525748104903906884520912749998789393860099214007198848072493939743947641593286764353814825810400340917998311767853331653690949951173619931531737438750452406665722561109698506415745289410271398083660128657380413497061046585083100080964223415260950752717779283597882316056817840879263526218576899763801674027716360817889791927844588298118799883342658484947502965317317322335355486553317375905725449349873211858113521391463288324429460061916715398444930487190592269169616912983096457205474149531289978012132144082599561662292515798706656737821062591824932225153887605147762409710462344968868310016302382218266349968382108748988034444569942587796216224232596595811226544498637037221620847836050511758137838538295520647955909324989217599860011741183506565482701311814102845774993179376399769990922425647218529900179084433314942241029410250210601185980453418190003361349623087033421397950567491705884343327034893206646498039557101341726451717632721969759820681577386704648550855953054571775865986954353592884093216848153435512450996506526017086331394228558705896711679210711535002985110017252295750674132399017672086658105576949911284297324302880691766204075642412389648243188943872736782048657805903537029662354807366772973938565049038581082327748982896839859150911872430157264615946088652827741142172899888253179332887983361599247292921906044962647354688581775758848204892450247422537772229743479944430663994987799694458957782447265281769674961194567032369249199952384210989240904180020326830019711468280890703464460571790909526391772364054553231759899243051561423318614461275716922384912998850988560525275599318369326053685329525728356577420437208729725785508506213082755439306511201670665338603319049351143105097577201486657963626003612003326069941714118731726148861255559175993495767724154404313506882651476563750779294953556521647816357472372338279089214666731260389261066923627312880828850758744635198136143737121954057305455898149375041808327090043763904902684373173103151427383860891244308164172379257293914783851882249019672233152086111125347978761594897910979933763085139137483038112660754586488376502710002062703605721043413082451767298314508579275920105577517792965684004728728409787651142145154462772854820079286131040641697340392118399556455141211583363200492970532827009394109861898429224900810394843045750553091186799866411114508409600133573426786979937965355093307363551116866218386387898784817806390908887403862294174916593352970968867537153515816163719648690221872533519092150674343082475956899304628715490283881640602519904205741831895516065746414542893499642089723552218666647420528585533395336856180254497997974923457606278697231879715990300851932429914548637129508896505487069944360607572794684835503820621245369898623139267200182743343546755701943123775936800512232629046263898610494524075200876638100599310645333644913514255792091878764252595599221892150285091276290948806097450890595203823117610683496371055206992238361711467020268287714184922550942365096542701126162698258521728890758659928188887422629944422617154075234515540035957209409628752142074466320195323859726521866862502844967796625008224950294767935852750601911913860429610184939807254787785236434619716254525487386459526365995315686536034399026529740899584391576484592346831564389306768032797342819971243152945172716203334534631523133888536069763057102197407998980094558418188363825837511118893455903024841019881745394166235047309484130781917678947734643652578393740229230758470008599298922491089413129746175597623058383651414246629859610432186246025312296119562647415338813180812678232354338674966252938815336583911369069672101495753901958376571238182904424663141607413350401651393586954367419644082917977653183663327051293142871840321494643842116622825986761696557162182555920328549892170212840697781370709358222225807157943216480753768602131408699709308384027500576236299342427765459909435701188909297111812788344697976542745366955343794848929756034354213930626288136744226452853924743639512434078301069728495725054796173704747404448819924333680567571828434446295389664245803219142063361065754061416654736074109586754859588145949870133171209425163763544846894009331737433924883819721822819368109936606048253336516947693743651480677341048711996960575259847496122622184141843877414017506012561834409587811845097201466006654205946670921597758454368216983037314904436914151093346900554021779020088670504595943947933285540755845838742532376984476953113560120039438471294424109173532051712321776355588809081407731242015116946702675555371574162927722368308735230246650360323260524396873173640168983531331891658578783309981265282374738229062673113200483359051150620683429071913324772597078431834652321575755596079558385112677971067494134371951355484404081376011394256600528258209407450860840540258938996244989895245854020037001195501811394076257281106163680883085335212113921881714417555348715275036902784781494802114103832627921560201027487048341810725347960446303673748773855914987360087160504422928213252895636642674420875586859977368803806337372567157523753962323907301920117705375291772684643743294599534456699905583402811422834233486825494022151964024797931105047249755799086224173954762924255893913336459118745261764567283485125187910276901300723595605174233091077127046244155150883525072474146596040056385122480109446374211090353098475874030002787423217317275619644196530600112698445946340884945056106795991731497892540354495234320956039197220889790219065720601817264268666924788204766186975305752404097778313131410695917991291030852259074848608944132955480165133951907723684470458138408655602989045911803441262620015765090301736716839089687137806170907928806379188632596818154615938906217324796383129188997278528624749424659559099890777492714741865384497717135143777825550082934892710463596838637742817156488693844123388915837669656423274547305266000887785093621805217245951324231865187663750835438853233983031428521880234308927894605824368399222948644925761861498182603444889049929583424959647139012654851085283175581260385741772169566141885912762687573315832155359258854195178409065233229608669822010191195051225760591060568803398273011070323223052970587921227393307387832794340616843589877313641833242828270479246774447186266348908253336568982112641565443747999543331343511055762002545952890624015989962706680195628084489363207270045925134391235508591924921302385410121515615332221834847266724620838688735905962140995862365264008230417048807367000726015385991315601829606375257374933143149628887184302460056473576094515665322473483995245295836648557338983259197093978965192789176884624885257902012784807784922164331952032652466086061443056357550115074281525093065624030129691235074174962223017805065873758589084973641933868586715599846267219479833099928146553000923950283930807199101614753388589438866901070516222245924447283427609747454900557911406421765355672311752976048695922377528861568551119109076905013770912633910479363605520354158894971949605345393363810123373661714756377781297946045398911398953008504361059941189775833596546117756477434382740603280490357065923910694577981686554982000437057339502518382172773281163290782690942159496481314202011762167611575063751743383431682851798726247915886994712759572923606778206662431209022528131920980850816914536368204868590164907924496084743543470269794981058673123811823784142953313559790060276046291512737073508924591736229539143556345308527129034272167338486967085700173967841092663403239610450557805455631665563260302627463999022540957667061011699582348643592852095517125769871259385538982408838309060616495484400050338749079726030203785322094141247853409715750425478825956139806713078864691272045520008348661210676467205407696632285876825631788763345251945239236734468908906760101526463477478277234302692925365335405583956173420379775278688500438169557053018829991797556096503845827003123801368650351841274621955870410880588402993099503782015027005122355941394594780990281725005904891516334211059403280607588890726648222360202039103786911486041542612950767828276106461080085631003059041869424288170805740934011913498474322873239139370936452414685425004016260250535018837856906669634499603528882040660187123639466274656446110535259237754866407680175480184064665824992823777843337842548205492040375284264253529769701009605318877445857689586435744831525310059363321513291481694613599036190561167088629562243880334781810873751232741526569208737701697255989857376555768183962420242560358810873778071695123854787150926919964629664506830193093903100677042685369627071671206190269866424522434527618731726153445873638603407676980127322871606088837891168086666359361373300386321262444882623766595786631665016445568791865539797357388691166949444950460347077221585026409771796225097993075132020981655644457596172293637417145492289911709237913559121153927068613386179024571250710921913451278456055856779604561951598057973699210524987050748626585183916294874797022257085924657183818975079244109965329052025125797662375234549452437854225271724334398611775242714474507543662361121388170200569306267535168463779307862034155332319260347393634768653539761559745634071287234282214953328936761368775399390270527780122145381478703553087686819796088650967683511015814818590179215564834302577773910845994662969600173422149657396576500901524970046445882694394567181953626283661883979164508584885195576763705880318294604539648211247382396228853251300985726976416582386335848583168698156593944770823121102185235233205785410986849232549321076677409934583679349160163371580883306964351104164312094629543843769896842627753221904348730255709853850231235188359480029475225002635836806453130139297335871515880067689277721597657094439622738769050454686460116553347256099520912211961838574382185091106803459589360053871713903051636289278058356585261501044375455422645186708358825560590784915155051273213666483304634003162292207194629387097323008870317710618444610930569207631315140454578735399464772168406665134867358672643253749132894288708021675045036937162839940779812353497726859985149028952409396970291810201494814222606347941119658711204425952639589381217081787866480485975355521205191326671249959533293598919121180135312611003665410244056397149986298718429068601768332956696407775923875511644536746905576318643311760884695113025673009936935431666186888350142302141036451516391214189510021475770164286883841040041146825088522041756107811272643337388582757442024275746507566091558846967400817676405034771790234518097742104561958784350567421121926328154791682373071092568642449956605108141945282183969154293292168400722961649038075256744878447528017401050590797307621501555262501356866843763646238783324833340517945354224472110339852190300286977273158179962967406938324155170717492326456244750858216058555171277411060007255196890593498975354342380249956101799462098468757566612606022073758000887851460019783826882822390467402540420800919124868330114055726355822580003262983933538035277729428621196213574331192600193886574286647726026183505716652006576855036407118086533960347739672783908545415187953925147873598501305272679507041086907475874867522338756704388185932549021788256088900022387766087011077511447678116874322030964138028557291507939900734094582490944875935947182786533262701981950305198152827686069863415667651775279149905150185166492242195246390786992462360241877529766714923794887132769041640001776073969172871312515560181886613998077362685055764740179036131064050420624705010221838440262066375347718594185573471269026571270161426520364938974404401615929445823170364826459291472129529158511670505547966908829367727546649881113502153426860043364845441331067609630213257326115927342883314318391685166700013991152231729840273471346561754272080059191608644574918442554312406196266577450822474125603040925125635984639208722658908722830416120411682564715424382918983784036691367195608516342157721163426261049494823174554623155238839341321988558353925526318738449121695122584777570207836697678860013637308982663075313120839418049656677866468711934417989989643203030454001993549692572842466239923420350269793022080724242299142363724955398933542652639394832342147226647423492444146215999043002117316923315582099605471106649671502536532132451927021958226649183291787908556067245159286509957088094691785011894676698161574813746171682299925817293292378644720422380821748306889445525377972653525847892413235170084709900443196403150461182479631428120145991295224999076151245177837755528343811428748878330653999288411610632894989821353603110632322432693486236920139262186497050857633313894130792980349096928172304206941350358239609015481289958027030992438154146668671577526578108891278543916647932474064055198737146556891267263694545555823652033878601419625556025602530953377069241676392690774213982806470995924460627793530223562230165122511793586352809960244504958641772200019224884921625166666672517362173576517296729952689203953558891745112484223484039113374996885344035901290649484044750972722384163065159322196787982400931494870966794836479456702994758089635941534918679431209114933117476648758117023425491127145313806861527504385166478821084193000359598366404350037030674237055396992646649622452308370869955547313024810015647815390665960467399684993342357862055593401436342010488634494950510742693195846961106016128564776283498447928750451590160281797470588313011456054616916136993812539738056319933189179893623594544024750231713434066449836292131914572149227075842426931991415229756035600352136882988982628770268554526513938655029944846746722994202693879950913457877207247326427902007193028106402654342411737967547849024201125625433324061668697429526298062233698829587399845216398545112876966079520479350381414698038368055340002925637620512952545871655349797611271493238573465991143121768562069297172065199479069016507556646073886368508741247079023715844633497217684689239747686259869334907739318992513890782390851164106642285560475886832554850172492358430503748573054596946281331702503700087211723264573864576639825007591932854547665852199184136494380874207773777327036587069144563371094880759634768046694419622169786580279416743552961377865638441864842007263805747352986071152554438041956470028311327798242075727136603805264751954760148563196318346113965429984022669687081441996865167027184308975000515985880287048738395148724489242298049431514072270808973284015588514124560949334074461159258135049039587041351599966182374767897195818741548658963368354699895875452806960120299607231948016880438203594786269734660469923956287063874534115683166838922506893139262892986279534703367932015585404306427846139032435993468404874626087881184245271441916615163278841380224740251985390332298008853674962115388896355680492921542423603301117471180989000277675652473092392447809144491394671328315304167601845167365585659055635004588464856475661997477183318505132900490546758123599188626121191103797889296688638159992713921018919301456515393095488298555620565281973471758836412426753656159914446669737757430656727426310591838571519547345547732537931020489418958706947550029542217875912841859501360249357709394475582010870994296866912891779186079002267228997849361380663155419811721158792255919392381359852198569014039996327908357551531352049045960675060757639350627145625064833369900209437109667529260392852364284426855524601013855530935099713372250081589425632348305190466687687509894871627067430074140844454842501109259773986530628750605970354908929449570337036136392422135552114504457178887461351019766387855633431716855075781668100955450674313568074265071079049633995251321815448846514851934949408160047851148379818196620501122759506782601200405147334491704661441372651312285314324098459264399871104634667230630054703695723409728623269207115572356481184517974870956965431411733184952478204836015355657810352856622237737128209744945646126784338817586299323547056981790710094550063382533114469371365309079908731942723106808619426108591460778142591130643831558213542040030668492230456333822888535894278526200634132527394904235287796474718308728842129955074562590716661400589286759224248067999209521420620741117742822956528886453814651888580580392189140755717379259259315698452828923137876335724111247613831775264282540644131948493512946328249405121465159157372401810772600486220670163180152155589923154599832867075155082282167404955158310322361115157489207472731178931834438021975538643255964392959470401484792418436691413554641419897796972774889593345502845013120526522751351036632924860592261673276110530661844996416368587468924866308469205812848912491123879568426928724792591202624686985180055169971491363212620107702104457989878997356186928734102188375521256688579032820137572785914973247616462593687576874051168097086724465992004797567498125696670796473584027372949123455454262959916585673792182566238827931494283698205501270468123991483636351736835665621672647143184633414252305725072559555303438250056709764650142864132093545781565268125549454926521750399450277314102439531445258747820275791166769282678804982122557955109912729727001537385183102740668046959519698222173620258679616656247014469228735390417918608380652248766625916319781050126923294293975653968098772755543674691181913085246644443332917423050173775324664695351780556448695589032356683761780689963966451314968955606957047050065740777772233675591552823413775354165074027521541409718100832812598216796111326016882282132093787357352464678940063647562025513470739645188490746339001766169293278415981098187055931073572054576651682986155266903681593939199730305997875046282310404366715428732704224792291410230192740678331778819264870274817470214256174970324225801758925740631511441615867363347157975812046461782311865227311526579716045575894666707082946535309878402065170312713946534621211766344309721133717389337200787230292021499678273583587283213773143267565824654524019050927974348166524266383071317611293649082880950243203860539928140135031126091778055405261025664556371676213077103504062059117666735032428258263070136695007437991868537060954706839095703692095701546718027023034477326917595712777465722147047378400165981512065728008542062261969400900065326597983478292940514492907217352823451216384084847549440266075202126255164316096311829868348938535961884221070527868052624144631426100554211049877708138733578593813202743217675794638812789385429906705828613546604854028182539300092236876971533091054123468376081245881572790374662242502196216280037182865943889730653654673589033690779014157396421958681273896679492687603153901512139907295652670982751430668837898063509936543902208253888065439415516141529110520097445420255456504361967775005792842228937938652122704127817432837225020005915421632221830649307771476922459818911984874661257110271569480914431941657792691109773002147943594703775666694231925475272210137019962622947734721628905585535375264936939045124549091601751862518541807937392853052621918586546711944710183887639641789363080215309279183966547072682365866701262955583802509322321440901839256246025545356200438886478513222439897408094089061184573168785007919592945821265769795093778888224291412450216596806929662452120214097498074940957660106702334719370536520684933346549235777383198948773767828648390885867478040495348424243212396939066355451902176438669974639640044733865030010421715258794680905289641341736980495234921100503109695963601252946253249991026016342251251276322285851173241345011677659587321341736262731025371416153532398322297404386027161897958962835287366964585506214091194322865510316045667051295340700115640111283683246538932853515114544401754348667540821217802290881500045142713705893078105641785262727857214680833401496911305977298797387451967707885898574892820115890703160203273993677407817087955047652280572997309238323604558631058612872193310569595395598249612454101778517813706672962629673586053154191387434047279693250009021864752334257189984188630517019155423405347138731312982799692896583336751737253944059197125127900133720768817250625450216022421288042566216412656225346302496161355574580224637914677926621091631935933702527857393570903932348731009181732364046543131871743124242301264981676178342988663812350482904858578814199343278797075642268220580770205664541222813983728219487023760181581883345664572752420537593922998784297958573361905453641533275116599587176404905185897888189225247358979884589269332320961709143651350013044257762427898902251177379694429978028863685751216373460156527040637248837666643221816549702361243197624699728462170243016006658315188572239961670051306166562485148286869015339534909466021013507908860488227150422858290983886620032986566606631113418275005148720038552213829143024859290802325153401938030953652398461308922840152623188397871470212062827119099075034399026507135506859512981668342191130082985637816097754660011438691298698458426814782547302329172939247127472160396030572707261731359251587116874476119974282306936171131564429921201288363787450222130239116271613538798188397195851167942488315130885209453080953450106209513124480068253551581591054523030974584209247950201938309527366057900591833579627773456041493371806150444151839878147335926139120302830452108084740499940358183066643557078281044509427310921522109778705956710702790665327718108785831614287836641694718001676493123398309595866422802907131123346939411410632073006004385393528061348711305843250946105924380230137784176960418446677128513984553269316770182658141291319690674649346281619057798419911054789657912126605342319035561283041705550825475926063304819165233477429542698323890644477626441520010488882366041483569142856772151204667829745413626268159402066130170357295227231456586248810862840135623171578021637798299748823565127349697001741748991489418779756401600234433778007807317733777769826835188156405213938717076786491406988552165764226678388535844926203362603098005548022123950149353068596435698692026753804801974600773306814370238235651558645093496480143611891775641814105124409569436564915324493706318145872731441905685048579890674653993393649345090021887311037064772712025987453331281027901005211018481975092753309394981313859497409254390927281464236454823018426977146762050404515197453852210865751295451909085886422320815617645707284176098051367613053194165917278040046955947941869132526644355660754880010818240507964489215269839298115159440563939097578810122175176554151412453576237351398443456783063385984344421853681179171278171048077113747766811447920287537764944478243057640848055647496156897531892331657073690289240542448810815729206411956003849121467182463905234148336958007283610180231366406993095366597443714565386544061769094119459505186726003505440079815493879835289402412575796689174270503344849220689150845526660290524669559950455722006659340987656532716922669148826906681435141525864696129894107440124253766620253518249906513501705736502877116242368937770995615721087389977916097902394438494323090380875066319654424400056348486045561795206066324511835356479975337838114993525211285037113529047996207724593137877271382532950162804105022524191422896496071286348038416743664889617839600194175807705488176194658590239039433003079087489017580844878725343786179566678261424014687209867339387956302333315197946393183653917653235712699593818607096513733496584895185422220269429654288960449270270380731171898213449444017647053660559619453412159410286477474535626662863239514264452141435636650159103024995178947231468784240239371978676672198960509899755778403448502858776593696211170258542637369311241553180929688136286489707851219638087434223103147419104019738517726411387204238772481060396065581620239648889783900983514297406600478503883149561086696207725736736770041462359477327510759216057499518902594018754468106814618594391286754969216845274950160482731811872382439770447399810132735324199221318160105106576845850635776174704694038071556695660745211146866378537420155202801297737379083530105400582477547591990205685428241950907030787703476691598804043625158431380514981407538662259992035259192592412678362590241246120989307533012039768283889279530899015333363491443700274165399793602020066211553551267513886326082627745766158974391264769763134306702744950548689973516594296460441466694563868468773083877018682592098019521989240918477704068136502341001722829174239813724740920717006585936373647838689632551285396201504957299235300507957391427401680848953799443588367952990511469380403804841111753576129219829943458240765377680195106482239261479881177202826269963966604193881889477477020848294333063425483060628214763118541709472863870144111579142492313695516171453550890439498475806909588756954052432672689815221215871444144931921134194398941141236710333333424996976341400292166416681926142493067411819388848930613680916536528644459074859979072611024363118201007480953042076614892661325362710381316521651647126589726006606882046457303507704957704397449221654335389065409557551812980491439227065252854629782048195219622154529638015338597075729109550916312180568422251946734864336614192254658693716181720303289955059982351794873293770997539498389608160419587064094106815857404131989998850857692526742989790337008785958760745416372137869820491534109202761377126321451229466988529033839310516511757974786658126422344241663263343359275088868645281429360681172401968579615395037492028132257839452680397446766641188386484737068593089768690591313633448774367532657694675054246325857344716479075268192767891933779704145464101325789416016226752176253277105235904441587211247756211390237349797808350998615740411798365556690909049050453631909679146877493009796610649721100068037987742231831243558591005721841978938683342091077583443413648561435196187782333267858034390834063395331844036886859959491907999191955440767100334927560533721550650675237606819309811761796215079918353882567280325702018005844811178408118951382223991194178997735388707791416498682313735332429400344906991855756129647606640585849125680013044195527476255630029091396108514888232935071007155788688868694964449005215369299937656651124585386823055919918080046187509178946700079477612548437206246502201497504402020349770879543744890078214862957715730349879007006669607182510678774164496273496479260022737251061224294666145336423172621833454251306330269503026765718180344758414346782535225944049888534702785629672404635009465560404285914443204730724453239955311389155773284136448371894196726756301313286022907148771571010599951099407143827811224138549365503337484393148320862632627582165412578654416120074442163223095437535889255436492552771247889600809718556544607489760793805289182984755721591333379157653045013087630607222802709948842013884951696662998451018744140867144006446208910361019698188043814095611777124411285142614953259600813896447599498728037305149889177300929721856340437720940346195861058638563804054014379263781848984125819603374366188570412857555220338274205427929343607180169598474971494291085584231818519798179165968520952056869272073172666980887140721966974155344721138421632897561033020533727401610058472545158823199932010263522892620154265870934528600510520594990214302087215703655419324193427109767443268272922716076226252281603400445974734617676559786776706051384477182594923522936759762449507603384942142464379168606067927024062450062031770728493398216144019785793482912931723124611296419015031669713331203680574348195704517364005983333366302379637875354134504474885433476448007043775050640330233171300997839643520885312188811203053818235855190333909540184409915446421772217728149474867013532060364537267913086605562395199421764381910123743226050826966185918958297043644495577747496717031909688541808495993456147755097194532231154714585338919306210024461728906343241933344445131507586586272253791844865523834602277241543290694737984645771936536360150298818810368002085197223880473164342460456570085654730597863222173315003196008986364868890563814959044795660562012052963713840629204121203215836989525461081698239615587461404082851677132483107592206447225169379710692045430008930810259527579244559478076399257276987987305787518257398696032870511939621599065657714508297238910715921854281494229148008151714811404788725025258238486118973054879179041364731215356201054930435153982851504397610840252250268506558046673091838864739072514554257301912952153403542464438274385111755760157890128830287817856435754806983874758488428842986388538725062843068503240562351232217942884866685550613754138449045542660695195657900154982965920389929440785780785083533826887274323432994250527482592377929817743304459272147685387707207034813536584008894925799092003088732532160680931594099551741309173595907490143894922213851431022716546860039060316947645917015127348688335585471873140913955176828113971887312567293702483189045090436377810040323137330134524216083059051618389721704334076925161462681693818658093731499591641162940991289427364551640168131326728571372515866487423977393539375759600352430031212572267804670875076855051784285955525797511215008543653662406138324796680729354381935789241285091831667855665097488715233009999580318558563115990294531071239866063756844857109919099097229661682364714347667480156729254052083257752925753222698675274404834654229969970937515238564533145191523279084859415830999869684238093487768266214465350673688585961569166206729149369912246108330016554113975259708091513425347985064456434416273885116940024278532893898835456262139754901682128272010100854793503552349778281999304008454860082112345432945480911699592748187426858329130782749191162542974635811144924836863747407440096157098492946107411889059763135857631389377176893781367549369679198823453037233166260008612019805235178477614526186208576954869485726069789260039238238624232026202115312604019486718435198094681468999595148582745312825447334267429072544906726046947834525124620955178707750275668355376234976457422672189849877310270558847668375527274899212161178646991182222687835928914610241886880664902725685120878293362936008871275748463974249395567011926047524184359137892571711680819757095356668768638689385251144061678444747095421895560514450141178872926766190348206525108785511523592541111194453402258095659110925218860737251828162432978286103680265038616293646521762845944175085090708640228672900711491357131168615581130174375001113157721670672044274190636900446146832017035492107761910735853532217439165164557819305931503463695865562965745832030250617838838516961577009646044883033989394361617495883270516565991547553263503868472656964016118927783953614676542565615976791497320036236280923949758384135440983493041854919759481651999630145764872083164755157318265659879318584168413366672170691991528534539727854225810597644605263381934475100527213405478270630982404704490315491395251129222020129069638043739235033228898873517466209885701685786667857229920950916980654833204859536702238966462319220352182698746128836040701629299527274122092382774419192979781169820036282522682312858131752329248010752657029361253160997326421014120258056319495862573568780957027954335816578626081878884128448391328563963929681911268729292988146857630563691981945954230806980773324872609353088942375069686341466365509063630222969415574248721799086222618110810073200203902094562542357228815528838359969178034991395505883856278108941231501183857120960346381023264513828416197221787694234630996262629234906440584646683333722627124188601728675170361870176039014672209198127380811911465703621760615885997963767068123864863387199159730485776306901453316618850246856958662366549961383955014870095255573502971059636117096293500992402150971530281117175640246009531814322998670440990695480465379650133090136661825297909734551950231985111578733008473571264600145292505315196116329911334448629428780079661682784483660744081942623812476747607556113706772511915840956023475941574610332275671335777334194479683983395055514117012249065161726811883440440858637893688287776735529499557855820412830887338863176914123610177459162664487373562703567093563860880306710294853954327650085609680376183180397500870068629137880465327537122494888097232816035588353929086521473948063833854664657211536377173120872195283754275562965961528855398830272112433966834111100397717709088897993015099599004201236561818062261887383682771001818244813057365286408682722084790617072329547847327384327929989003279329289799497721386003383938549800097968027300657215790475524673006380234770669228573351302215402919322937819667926741028247636055414657672588034664390119850555788267794592554769323021655296344091608931079228547486762072958930809570467044141031368860889117072485159398815230077256431297021339775804675958238508011131687659591175340960307267512778577833352955158114646831781770326982791147467396720667308966506362660839268127903499968872824258347960956826144304376926901933776226631911367053812611447475694751265441285608893678649926554974758539134257287949978349585018973191748496370529896268156558052422497291309485763529515351574646970539480831158474747348013734691086302538059273308133854851976447891978144055816337881992074345179104740661800172566766178064150411378054829861399445143195171034390020583003572769191252492663272635421457493312446097293023162051508752533325633203163379132874589951257471879969329118847074098391089930532858222697678601062403941717734012675217888628499192890927831315998519964796444818565570370351730825541219563348305697389907929137142677873883440749384765836729610342651554347744294706586649568630180437035347079584037551177847940953609766165947514503184239421911925242560114688064761393474657528993553648407154828342549978714373906281951870118080518451428285445051132298104680133880819407790714117737986229611453148174048360750069337731490027270833041138330764209653778098291688937800364423919878168296983544326550485684480462626672146066575067927084891865677697784344058354237232997919684353988037448091581511786010347043951465537142439962060973045419991285134362728775582070216835381605136296645289924785445527856673241679281005720280507476619032150884022700734478454906120072291982529275624042044095566646232679613089410259813632863828922849692294069172584942902903631848531504077778200460759216041574228361786307370862836280685842397464024248030655109204995005059876653122971167493285133577814416413812566987259102671066070069175890102435039988754973898377264681511572750959989077046712138228313834265048815669036764781472145731024520215842033693158231810509059713847150924343473383016404355040430331120622893212341955605307138922324445114804838293553526941224625571689133521081676418023325804180054016614302903240806491560371646426042821142823969012662304907718201164909990554656604399936792045849613905874740323231715087246542768510181407151716350206427746631880029409950220136534974282892638563991706150498619218441402187706101963460065710016324942158683611076200319035619742143680651109624462475509560479481797670989373385642921143409075727142103529263901428624622692455236004164951233055537747978034546050049323384632314562970933189999745688718147523805628495423030974095438541201957636738370062545878232590560455301032468933640448802194635576821621460065189668571498743142008038550791426546504858383119322968902039660508565073488864881096238925199370269150898984767039941565202591825626713061454079120620310063944340179928060812686747850178074766685646550528385849303315206589616856213113841944400364934300986620204390858550142450550588746037298826935827049163403758192207074047870263626978690675640794806712918970310780365638616048663079130186696935222708559170244748851395020931739217638518064160803463227144196325735337914762252967999322460548661107013328107174783515481823168485854988081993812820876182283565800783969516017315830350137195428612955464461329230731266946923239646340318641158143555357785621610205266479896909853157387288077803199698751959985059439150732091680432654388922804127255052200948176015042258826358250958223808216134230233388540302880131387223530267543584891548927697523914774324519850740142608205428446676120011615845538328504575489670522295185181462382589029500278489934123369547902047804057391895825872399174970158668735861335099989043739891065125299536227251167677021237725168528645144296259782583903773366501040459826514097030470012747096223232392834321139828149097424205251809712703872174072935083879875612904091703361292280225515297453768598018108696398605199133807456128042644813494433657425407452546484919677924064972799436223940788904845282811445471560253659182120853477236187751808611631375720616341755640667304469331235426209447292360178022743056696119354846415000957985231956756945072713689003435547094739402817054949017667765043128651314088369685373224382233771385346643849883851563532356051358949104213443510700528055444468884328142668678831869599180052333671941590179800411931293519537918139306545971712206796287474958232417527253030746696784362991529445067758620725795882643430016105124999116588752649400937670779171723549613802838978894718379922734082216230992942247834390704523343208303359358260302660378322084044295983899898220132598666137352639745710002307689361004178246976997337776773366480184650491551985998131423065457571680943451099650727599468665724146057837221134754390251495014863303150047862897984043919257882875349942654492525304653441510053342947690890640196427762893945810540326412552435042206361909768859389904033824995692025946675421193090567578206112321140966314881880432775882596467075398823357457616941733422158150403285487686715279611154373443058230337651019686050847595947332866235046827444554763484511819926059268678819189093053372122849644360227433124359778446597816946387019876641619901489208769897686764972714504037787574994472069249089237557192308186574697914035974827910549197865873889253434735644634409438344795524472538359802562588538644229111506978793871102641119792123170308407859371346067491907308200401943499135543532792525938495867812188929689645412234604797315786842162386366773055347990455299339992822459033117768191404317297031503847597083770737245393599861492551027826708849761685429373978300885399716052572146615705797953880658635666178143233841800296864988483504095167585149580798721069519817421924389809222612315281545699286956775011915673089684611130570441440193148004486516274078347030352938365072216376087173832711931208543376025848407567680942592669183767099877727472244148461265411323794533410508106524570621816868076995006035102694883562894345595736254952921894926130293552100984359960312202048506094588776216698052386932492670263402226963793808207912800554213133753819846896485866404890997207430607833677978647120468549044592450032321964409131817909866845971809991369999441574722309079728109592183059873619542829502127785829475966597590687558925282275270287823720045310796342890933124242469937203917426924457194326669531864494721424521502809778692140484924195216096104893828412995766051453185127241242211384999271005904189919224267280780957500262349237197465643821320968591124152357386050461675574082659671031896667631439716757664118436464567882478225382188880721728341184032338530367915930048632053864836622515830208415363774747575736800325221502648343400603243296631943675170558969103566227350341271740977016425685915868673515639303462293304377565549364877949688915465468653300556997444218296818352613973965478834897118701968708484554335454122004241306867779280998723633159623633578982684304198754939081771708390073135757034688484338457624171888613323052448036088777171034427748686625587970864462637090264614793918373058139436834179958721385178417318515575295585284197350224275590336641137318156325658899820638785184946560165657524806046560487202847261030244809633853286450949072425392607040731435895842789376120724193092090138693251978668132751317132703985924081636532986969823938365862232915116774333410648837749805688581867156394767282383803263059595828418279070945711358657813514060356113780918291173580615808812846410975341468520198747997475461809757002064596340858680155394965051865783325283771040224625082643508540048533579290358301906914876319008690328632175487945828021861758368888158654610290013938664070863390236344766927667536813717482365975167470174959233667900942608403270388721814041613094177237769639503764622038368658331477715945988782441693511834984571673936363908457731856150930849448596315198071759798424177690773033981409772966690324435236428142795566577552387605618741796099069893072065278627903427779762684695907672582416974049450812228835995596206490476783084152996525256110912281399111639351278715043252907931450780021320277637429354907946986202497388345176884889845204307476593427349560644808414441454508221852081687316244426931030684904203595722541533781145658041900797815647342939175355386607941341058352039050876712038332127139010561815448318036620099624832242050906480588870294987925884249466013421432976246916708561732057813022548800238651455247216584502564416055544247475891624992827582733852861074797859018026763500724068668494776294875508983581217055215196936924564835687508071029483955485801540237389430327208035368029082815352315217565522024408053513220299454177024590023972635885298879383966038602021610377049416030312877629261933282863704477499749072099851343804488616357115169584077457032130356673377500740391993701487886800296668557480194317223040985430434165507508077961204451493333598981621202072479555463489988282144880711703368198044371702186434211646048842005227643817317005724760961684110415306812650712253367392067799644287785829720720407370589901167686914657390504383050107766547490528064026924476690302041835350015004097968522375163547629421637445576309838033837841060363465334141539735194237079440056536851086389514040150755502635523988965842630693743702754251378734128090988655998816219162471650827026295991857493284701960883237495712509631476267873222384727905792134882371508283296495565654003343496458328785571950169030483603626175902670489622667044688743152671737565244571809900894619622305719232403650936777849629554797091988383035351876563577580673794946219321170541984104114801023230370365910199741084032415726221081792853405271692284178323359076388253883413935678357646643453671384698404261490130041133104183646031430490621182499384157534738932421901894889073223765951448748557333174118831635373118708814791163628893034350048154448185014592418927662746147929334715702944134720087930544229327168067862968970163709005065153507481645751373508391887141795019322429347969384387410788399219711662604092447857814048662557197386610512499614231706327633572274240360890531398435430398711711026865310556782319867715419965914268760356214469315608401671254424195136577051977505589672700127914165246077645718899471878627574100245275687046399513435426057537346790865071079847220012487787763656652886458478351893451701973310605533552420735242216350764280210178439242227431283812338908757196860794504284370853518655984086828138978003981347743453227701722188151161129984370908305099487914488208177376138238545918537187074396984656432864426761632140080367804110660444165815163101164308729264442592345720839763800006631648443388128495424956049088428443298950770764460570282433953859146866020105964075430240202692783995763332306776771592163730295590027244424799177443164088009428745697394875204403205444781552906214115149316926339600320580521319617176631289224454416708616737972884311177397542551390152115889865539148062001674928376404355959165871711907409608180212392297467255080211807956067816881967251474152143072321499437583222399081404419039483971704560275754988898983975378052238888252473897326227408997322580717066579730868131700837131802693370768868076978299917910251247673597990417421290170001495707632788300058780511064711861793876976390663586273671122881031755298918672853358301481192019975105114078835018180970107876095276066307694959872052373640216341890917207132683646507992966366947295927606426280431056528783896698921791163850494924747639294169787109525525162942354941607089636277744230819965360032259694895582492428517752400316808370706864418001910620612608450977624951881211693904357212290887139238476444767104218074821090593701117787704229791079270209267051614631417139112301235438489254600750766460007775439965791306794685008500673611688147116772347824039536591089829704564082522261779600065181859633458074781988553744863276826158369140291733306362725035535544263264761612641703776529544005626096474120818366843425707310755340140716726590160516524328370703302616921357361637741527613097880022677435724811485108160139292949171765247374666806871995965453038407076534238150579201549591604319740655326990349432910150765481792529616013322011426146775212432350084853271934853367098685071690908659287585360709033532819004121174298775948630359053273862265774781890051489033725766178210976997785372669528633714612288633081912645525098650842689365147187114261768298193743948756780266402106184432144963446621591037132932529004794858074837250972253984526274468755685028021437666654880497445785352437184367001317481083120902156813103400471096152878441012495156616153764075656657379211639765553129955930959312767943333211634600782261929399984402714503246072102398489900112352905267867023027995984042660320180363438345839733132191194152289340623919969199754108545457579593022924683883977388813136735344896123054949721515638728706992878050780263059900276972810350555539089068013672331799112632569186525317540904065212594498618037481909590388903269104492146712867844325625249208223094978832236531607350437339264373888212722312788924744177751095828961138606124628388498690407001185058507725909380949184998048138443904992579718136820973375359389827827947047672773704481770156355112916097682478613424164980848041150843823203441087515934469111968306466720602550887821288210054348973277135917651652271175413566246257931758512731467926211249438433540479093818707989553469201241502092748270766181142828912116232214923665761969637352957952796898671652515805894324293533790352812924145108172725981375059347211376175996521872093095782036562616568811066669871821058131136119558960905848973544805662078932011857732621113233971516753316597894809616384832770271542636174249095715578099636714022568347816839476491006506003607396563348131411235649499660099510787474207451623330789429391375480723023074353999955168893291362635494237889244425467160218308747037598582865220170235975195998764509459263959214432390097426770091701106569718870769251001989350162069802567482904498464996716874528814151850760018920496167624046722034452644567662429304092125963217683423233309065086425293086751189665071438706657032290472781709756827547046087535312417263227601883387898502160404085550608368119759208077310379531440087453556586280794090587466761550471063886337207672074524499441063618719585429163293450707507181928167512881308365905584980625131716588504587899230312400714241027122033275695183180323838530304240462434057331062513265647741392928282354463398401767091226829898123949176864160302585881823570485403049977284154963799034759110832294092123281378138704678579317878276985823086806522226787437969243514460687195451815075736724441071368659668262252425301820957260713409137999700331333814769527548466724537979393044811239195770834535086906506350060728793274465717274625604597961579985389646759759927208252728053590034739274248698002880583028131121396133387311174892006452607229230020145237411959292132601858695966654154322777481223053355270198745323785186385952949596547214587093464859590987088554435980619018278041075232037516759881749349812005268836548906933419493642686027171035344995125001229248215548341908268844794316095907134095515352217100044205862514543162491616338489041021092124225643858698053224991885133583746518771366724501042118940266216614102092871199391117001831883784061032977734870594553069331736282408104818320588065928162336143968694811806358121107020577309955629390385577801650365582077836306252456724430271496261646694762255684252858672880874580689690508136446905953071956353716023258445024558232233806518534419191503443175402823621211481343984996715797511554558466783971524229240118785272195344440525382089968584419716819571591676486263854075975480561566292527597293573453740897106554086622301229707194578447306460221960059133960418484601866137906680980057672018591204139073648307626969839237096626661413712149044537528750386070953930330950579108984436035692239729293393916675894476745454713023978581711488313506196618879233002844526632312237239457509451058283866520392060924556835761414854295763685109598484576640829048919936242752449810734826918706197474836922981645313171991339738975148117429980841867629827278438483678461147406236008168424408462341539933046536225478458219255960013035150152714553440855344102963640151498753881526074724461727675128377165831167250606579196205951020960136159575073507788941510375746499268463177955623575373876147407873844225983315002189934111300074426046160918118032142477322744666933167884288882266434007431955776010569127611483948819470902651583940436542767040781241071018994177835319973949467012005121509422817240774792915701041107230203535460273350632577707344773568049690814201115438903707436772794823170511529823693665707492870067148604636677597810702275746815727804045462308102494042875442150376738324570052798481750030960657228216577310594942066679788109472158689393983593841422356315336382669181339209787256142321587996728268212748176535990472524238987343937601462356673245013423844672679074372094000201789389994970895976221320549849855974960466664837020645097894800455468267229587723032709504899100612033624569488297430488530176952212030504456579169549731909023450040817931301932839043507650253435084977454144554196994161895988274434580224872729947670064746898539199448595841969648694412609002806454607099249921223583710761103751357789362665204633384570507793463439728793249793228975744199997214928837681124116113206148371206579401887037028500550960546933873116167619217106742254705285257432092511041763097202043430362729142941547534583973528493770252443135364300927135909792316397157116660249540543441640435128637741006816316965724810908760369351333166895656920698883104293037367318836229600512501660821301216165925886864155230656725082136162960594818768185332924354612246205403868282574558439618653031185317118086358986905671704242777440490592214869241150238110165793221096546879367102358139433691859730990796079856362132062718638516853616871770914235436100826632883779484316206999312898957948389892575056003088125500205404785948132034251710684601967310204987096682649058518391514766837704205423499667522777160039896549289018577347809921668137469290359521995956885669827154477961829611610953867725932000679986296797561108839389584919238279966664261773446921672767201002000159568027226285781686188977483909735229298241970648912689516449197715953298877613820303291351005995457740891515001317274429973345093722388995509428101755236900672014727489514373032879188506384419077986372359306114957772190356156737130874044211575139907134079907769360898144813491721717520821609553173456178075163450121797927883358927221379475733196464834158330140830086815248733392482833451682866598136879806346153501061595118559028954882584512573743388464214603341786503257168171186447930154274582610583264267665605988690801936430986804195284178018101570450724264820225447647519361650073591857498274006967153642392733354382682164598485847592236943746843981577590502310347442593654755405043037362020367274471035552800387559219038329869974156701620470702879112197759931528420721682426425972925549603060297125216540364009429027178853403537386258867550245677694506122215860105258423612642061069013327417519035974506470957506377320606556298777678066957844343682033278033836045165632936548671973855478429328027464986383257284796714744351439950304195090307858566452015993888040768661134582905991873748525733901729931288460167146778406156890715980201035760156589493682781121586877436931217296867909855519527280017302749141969081873891778551765417547389511707564707191926054039169689712140711045944003952309054015565336288177201866028585834143553214169098604665076940692761708262428202508190981177223694161032248686130282933668653712734061272868134082872488221680966825737722000866486092217825028635475750011376552714043883578990808360360833750447455605116479480857498475498004843889287973872164093482749166947211888979963913875097675626883978343152778355708770484964613990920039756771990977061009023477373062966929067716134061238415975482562970504188973773511259047910480838211065222090055604906106568549090317272801886063440922253121987005008427045644632620877545373104415551298213094590953002874089212124881935606314493295708898670067254924585689684326450827086438199814778676064253612601851679696610096864474549136000650431521291744537398695241157180536394506401020833572829646129290778289898258802023511667819911922245253220561922838100630665703015276950888800849383207641415359891539727020185053402113770015487262559594105518846483707656788229683613975556444806662785606600745994787794617586562588552742827050119833486138903819407152419286433638364040189395209336908761523089801821783205656431369036584252625983705268647482522741363554382114175493140692993401417915174838102216557142605629266970737769045528065220680740738977506257538120303761184962044675981178286288838118662995480137826899517505126069495409326273562242358795513238431214235860735454966905996027849829913553700173930463129738448727870753556588639735739366908821475923928192021617208597030250932239130628382516658785426414198242233046942114815468078930049453152686105093292904791854497831113288067280472103595674270337595110662384282272469843300310290666093405549115910496741193055603797124730426886777619086677752708611478974324863128561022232544438266605313867924445488896292022383141180538024428317460498392177728001143915763890850640743471173954761680643802335936742929324279512050927950916090399001285280799879469289780599249180768692348378129892931179754035893713487348344566870225069911341806455917163794794783336443185587860133446584970133843206573157126826264284237198403474770462956039171715601804387553391990811219397438386984573386080746292477951345971646365270351027043540123438365274560274457980468454948150548237373707006910267475971030456332298614015036869695091536243328727746546490050939182824575793607038092578170626521813708490949999398724883974916323448385617590885165227092313805564451586356330208728633812034225034858596846837127357543057143973825155251695120125573086518045814341021700717465874109769780164954334120615603789359716204436864387668244259516851397466316605511653579537022209241722819148908841396595229298874993516646960442789822627305561171445837194788776622965401955916068019481395832188740981677925273038638807144587064201013403267771835387998093792555157466084643473113418024903510512842110101175370850516955887481103680106250198337307167899701154369985553932764943693731020032455292978266940841558487953875103643862909572249837342052226257877990144484285865603198364583393373184552623603314402335400775866454524554021064902667464546808853109496061585472566807772337903551760859876116792486752524546407220923415598218654122680507415010742093000645102610143615454802061099575656821400010658037771579283928462883406153351456224047934358851721053705954194715644788807294483617742827147450455349740814370153008226834084242976767636992103928539768996824980677128827222675104811632364126194624609935018886657609242943279118132187509490200901451214741083458078444650119104893399216324229754217704752718349610808971766939351343905933023591526308261957900143957577791117027651620723253349741456354333761800712923204410913875564765849346903403851939734372979860358437624937156156671963870853353050473449054808065993590885802235153118432373568265311494297759078159430707900594465682579792437331930262463007059648519399920970420522321050655846030136088855217808261057466695173565674441182034404648441184323485576798118312326920568810217145149811246881533887282858430307905145825087113433916033302255858692905752725111251226083522676465316987562318114520869822282816507461544012307474701669875638889648783781506928043828551436560689772796205799905085260726403251469909949438085441130812256781987800274495155040199990204558998705058192380991675185009439416591087118463448245495278907662089534848406492475845506881744782917418845092594001779003321524800282961728731533222753155538621459632176966813052527760474285232477910884680896580467480251968605752913210739827602678608495116554552982619793818390994733875747411333655389386140023873960530056577638325525645291147721853638730133150083380688921644406273649298593043901296759971916457868107893736989845765240630182328512294676109823066202130230508196249280260969249177409267258246473863712174556925598247768700256016386766947235463326592289851647594082330284430560417542135023454315855231395720932498652169220601543353108223570074628500736767289297938866166541725521581192121164582009410974115252629976600473246156698140860350477432203438328785687038617890033435658860532908601034176051191994003711978105758410810146902449403245735293851207770571899831064478737949611537533504761466780901620694276061537570625042582612992163730859418666417672826270998648546947145684050030903322439840100707195158819954797179404829744497016491581409618610462851840026932729111169654208091746879312090424146799232875202953808507725514004986724880665648742712647437219007641792242581340996427528696974116750654574005405240304451536163223103196329930343455604953245451940882182761057835527539997060573290127899800470245705755481014514165039798019652513104483038952340055779351481553326816746561184717246367357051343536456217743232789629963090125316405420631085672789246384598324572926872428116431582485856907653429451591123104908063899633621113361862025626217282835214226585953847438066196962375920822283585467959527010494369135707960496137569337813265541154524103663879099638513014728425346071469982747356894635485835821964098982248789197159420899584969206405915404991656095949336822855953341329389324771944408136731022566721320639767292924731571407413865162081823555623201009759350869983827959408449845772826267635963999314874108751453652898812228972668175520207981977875918443963021760616060678618426508953452185096442991013024200381209519935408004203418592354232618131964887174771675836657574087740666450348439870345612378888186640051629392541068113805206523406291732268327879231605820762406434094081566239038173604176649733657199845405265242839855059986659266499395816187123569504057021811408210342691545108584595937580018025067150161309043442780934227800711654944103100684228415968267887442683660851171013962473868919766051598610143623355180321499690806170229867632876558051878589743459497213121101036010425244924739318562992784576555553022628956258055871530608567111328297027741209130442359986304593473253101768887403862679655097766561967690526575546911110244792937390123821386681058184416466369454015144851241435053243517674567943049170659623350111298727993405183390869341284022010390130835725722516228573234375659774401313810502090114019574016177834934231463818291725857991948033506776055555925842590543939778967883318408557217138690431311083567633293953886679363297003264975083939170695698418774738034999911295501731766121765774200193227930791729846267677163462705093046396299586195005140605968486766752508785647288745949453250848154072313082714765232030497592183297089110581109660897805707689548684322995886271081703430987264249832673574045900165523917203209186704761902758405250763644882037686919625300443946450719626431532630964801277616010256652408537199936087292088980453712694241014325582431712865096555664456374732519261612850498311760082869161491470349223992638655097114852307252419422879975209818076264858415453084833455899814686630917044073459883173237762369788386057985703007778996859639294979825485460513389186362033841281905428618140942405327521031860074012908675950113595437310504630169711514914388782885790139598182240215175553344066108350343983193601165491631152777095548137292651114859035244636939466301413565900006687343093758196167067817700664657332903416449355881093648743237546580151368750139885213534512154773523231739374306576823704867369237893958410226514004097036444902570037349210859239269723610149644436561355613849517105386262719905650789178276883027180607239888985088820603778029767057429119849617685078888933021453750477618084213973396615536992736002448899165820450523807071816124419156554471218055050898049360424501683539081573195905902669972974292664070715663059477160708405382130287280207437559725683809498707443612902700464684662158218897729686233505582961339538789963059230061305723463353327373131239381665014906384049355351883272360502474346893340225148666641724693757104266514872875556759631405797232767376014325904466657306083553918965191314396221412394830541936217439824411533850849835862507856810210119785261960301109900204081830688138946003216612977864344016900531978507218587194979341493197565758561731635825305406985393676188722484922797785361795987431187879238642256327760564082992467443265934175019765183732598057754666172132379285804555414394062323714587762329647162805723496733898351695895108234576010692472419748751641350130210552822771221002186085313470312183181539380717497278308917752818022792828811180292578889475215156311806849866834060182171727162655827848207908529088712947670137986508029244356044578133240253745142506428218084008486360376154926332465388878267870011852454282789194427821967749407208446234222962355506608945217783196276160505200868414017564475567041291715206705186501743181402516074549113473174335846206991826960641162099681275956591537727531489882499723322705031399553554283180844197794191282702879351185905843840517951747646549119419560498820756723151102094632115286612039942774819857357430475192111715833282128917671063850567512691612745995121499185044513560797740755345172166876998625242033426825115665309170323217274389093868189710034872830769724753629454933834665964703042333033051654650880044386208712741498336362892420672840649498325471737211708702081000355730143499283972145348683401854752432380879758895385438860376102742124020994892123736238757821597659742553235215345077833368324265013136230030234996809482368995699880489518019713548847500099085083748914193072936826822558784726746754126148104600788721639630286653489750196134909212704809692120454316000679158617146040169417706972882338394593686359144926143621703374100023391504763429850677412064580461983110931943516332813856538567092991018154139597843822463945593181197094933758710937780395784366939518287469493878049825456700034187523392041275630082761493938586809168862887933271972056499788132498137579216023001287652616600729206476632445557365215915376658364457578253136938866806041191029266273189415446998081376682315543379075493942053917920459189714443422504503826155153021858671804135605372831841920638397890795639735288681674567320999727753499442207124905346897969006270137769785053668843050609010738147477925360745265112973035144540090123224660414139098734582235163792899120608195780699650377513402448703728456428561211064257378657403427448333956413335972277403325921702025967221563223895271426873156453138737107664032968237281243179235324796799826532309057484638633621875853824879593397117397038451768011436530310838499721883899815951757634408708976229662834612693181668368888715621919193246513067045532652661010058027760040803312380071120363284245402610477592686394545867606782309506802953106045799066884961217518588825236797663197459006368757348163552030360287933812505023272114099825209441103679987144724392784294037511161561675515901547525180472580638088958122816890189481184829789612445712901480577749472286633357692442141969391481907712402980484984547201090861736663423814943951126815740784812834350369936352591260631816467954187878122812493187065825217592051747456670648728547148227363772229115679583429309788935354611157810342194927008923448805820779020298615005459426856218879787071499214226341751700824409186619943315323961877060564838241281722461573178415480102297312519299805278940916991157273396680057423149031739498901163758034432113175651479086162264785306263663148239152224538723362192678284670016228665795279803284218750521424406715839916267051995341685076019768576927786040041989186290985151089397635064884037590133105337983203013198939872777794150882439873317526543429114818952904994886983372409323412859374630151431100343266609890970490749894225879117868182801363624580407069976244408820309575506523389094152358995649641329902671205477131163797687469248294240797961501301400721080413126065054585154023221285141825957143417336079960780744643559539441386593922854526428983940826153186122157722734074809248844834873158004779390433288978157801711353524020091340107699073350705591329594497556762458325153589664183144514017301629949886287236580841314845207996958944620018685034059200291063513407620679694863624470049031161656742624585002640938212462407575592476977081288824590647689441872122214688993448934259715040477849291589030899191874567388840407777791620866526878335922259465782222031849091042319674428834474228505874633532567988362346210191737566820827624860531056326766141254652296718286655814675415781828314964538702698904859874760014291744729056188338516892231779824527350498406134838388724791141938682528668967369607065315657182057892337005827852107443524303637403769431620336250987100936110714498960399582991162524330514631192314596913229248711701798433951976176889993079045592275102419444698426135205057559978123082147442412300818172774248939238673527028171941030084117101697030460996850951978581229831247909836103992212953966031331589364717007435515524088400429690169998032215984259810724979620707346140611622692406260257056123860269209274053831225329103678363532803659575378016420670597070416144969011382486471804148377934167556437369655835369387526312009102500565714017909120354409334717142045339976643012898050711571601042132618033960645906513146431671800504766283915498016550933506254523589542750694795714389283581509691511794838569030374437316803441813038495012609118940285018597470726129571380276331852911198573222699450180971457246320536024681077716414042945203260214604123256809946806423965403205264925913549966497425994191780887048666043440331281880803134856683815301028435788351175161114942358676859486389518586681376226293188741873560510930314207379829145259197791256365742138959318655735634321923236937352134749507951879574244330587835475807949896004719022287354782751040908761549129417710238400547416132693911235370875954547542771832831422599935076352557085760626845194692637854648937675833751798984249644571853718903551344522869816400201078635504503631031497857809376488882392063090146117825133396699392992295268497077531584460638689655427547851596024572293331717792206776938906101074933781199003365433660994900334165369143064863287001080766153733103603486189463683468619122592752824268001034642340061282450655967896757756164585901099955306848538394349634211543230281304790527747253391753682397873701557008014179529889950934634745882601888367325990752221080865474334330353935570954311642469255265085125263864944822000965293106157895941062402537160033791822281238636694079442619293542207731978432634751225955915806379335150405558940321275095353229288782642020254231551460118088428914537807628766292605831373923649610649134292300285181746382481210006414947593699873919174792396115781961410229022182290891536232137137054526263339477303649982511751349560560466023338767412017712574610493386165297334017976836532524419048575617867917694544532835528399816368590913634391598855365062709669357724855305663171934192327824480396358817391280573098636147006499462075357129194215004606761592903940585396901189455571445972795041302335369463541535597976812433441722326408512156000044597057868920340682756745691046132206845822099890357953308490578571262785577548622884841502696127060578518291131686955049182924294300973496238245283824840451145877182152124979794844542587087457448802114744937969306748909138046592538526699751628579669214175716960879916135932893426246366666093574597145334370596232708502631152709441872713675811267805103715447547405796548595888843333381733864259579719094968720360041914386227360208865999617045876336218050537462638056738555147823114459366307056166571239650379811070104515880095122091831203035939578570044690285492776900284904168868070858710462515645377942905669285072820127910899063209852366114226026403246585296776405897134792821724199834576691777546616768365004738351122709937227267091852293192392542401497943538004086581818054837697586779263455009009385966560071279064473481772086436536140002706744601226217421225819977765449613634984566084438348256159314140064109594092396944208338477745890969318900096971907634890738518149236414892951652557619975852087218859127113862747483046358271215033906052783007856168108853545104715372721842438214574275615201544988237463688432471756657036952910762028488275536403384792189986877832310902927266505964419266075644320798092587862541121587658480483605395682855204967542217817970736591495125897464424870881172728021699972835845791156005428511651179297664302806912491730637470301636687435386577318546508584494826447296181576855493217937144749727723561749172439411794896653829241776091890824073140312909583936511399462855368225392562833881718396729583801538794025776237310471613578519178632588058155539700541688608509757607071439960814100631148585100151738972699804454953751069327987925046947435193713069935105233828639011981862289113087432716059272096805688569018963952144095683615195549488733772166462967362921342554551418834074203533102463179752313466495622945241715933300938534713753946069549356960053932353579197515315483669071230862100134753882822913150576908993108079362569895006631284444574532473750586945984552360792496666870216394731566374685548452602835260441531953381505623976136385513747517749860263933344433713610936315228366666555007446305701417321569864474749499000673304202755439399924889056734873290005873609356840236877219494017493038970825250828662151352207692145564655953784296213927514384321045453197026319417300132819672830477810209357410741291761116216171211672957364085560740467990632751688483423637886267953324743507487562979701950218482135076604250297414012615999175804044981154996160279040376678046903488138140273953031967202930482858596184631248339503495527797189515180499802209354579823795587074927337972312795381298156414385805949127943199543157806320726443417341673586641796729764088034647879005088916226857406758762492606940441161080275138583627292226842674214349153177472378946820075988965977146265584764306293029380117805586138382064103179258766054044831220850294331172330914152142974775187208551875712923556122638128125096134198142510873848480841747294757581103900517951884632451575327083399353675012947473907608208096886597180068968063027579244798102454395001139653735500528658879272300703548918824304663298276068702821074786232566362192299144938494568454988634637414032121960116470342720653246876390197376644624157968609804441227720948281306265529799717585595679017234410557394561654791353620007682255431430431363200085761205766758323597542101714664809695039405432010648860275803241445421903067364886950364971532832765003063803648746644945278858779753095717928969769867551153228592966017194536903773305865271721559398605629591821688206585800363935429496279946197044228250717638356569597660468652415700778111664218797537657984138097166218843979439422510623900550447916667153516089167081101804658597817258006235458283174465602434149285440799810603547833799388071721019000118621188778003874157917902842616664790540818909147590850052148394140393798532326937483949016900828151802403904737201770082477149811087937576891139202182840463905919937328903157215625280770666738345092787342017062999474521461038037498041104177960734144899708414523666214230100228537562353999706831557208140215853467830501973719427087529052221053721216838378053351384980904773657784983731911388150467162089149333376253332792579108812860145106366512456162993519811574991434677184032869187711826057505128910116458140975225489917308209929674940451322567035430775060016960173613192220608113515430712607697046499612726820557701868241954937238252441559508885344836091130435412477774581441394491044900275551256990875793552437315100117743441640615776995104162710680470276873898136337879757495771217289418324938622129735670373839400846521470732173560257175413426038267831096444411322976551399863946975359301324777922437939894935939277435115738297359526618195543225312064607469965894117853117289441002196057034862004841403989950246339321865711062111642923726298029987988932919239546691408493318936660307248286752107712556469730449767583027463550100213378163190483181607293527579455342947336836356539558230134364947500850353777705770440435582921757934514316426195055481663894719889066624665134662144344382821462344149455413151440464057474830112405157178566640774689297918702834050998733479245304969534032804175226551790140099838142364792777893778400901448306118937639066963630523036431547681275032106554637755379017385371791510098825363782689473622563177851328608863234598960734345347598252108437411577321712769678913959476359378815015826826957227390804470932927083669029747327818226034414496395090659795980740371865853303280539204858544186361036040293187790807845586704409015609472867656086917189169088061815407019207397702045770333801710569910635277836848422309960114344752541951920322085974241880853932984606991949212721597778731642857682238045453597035727948957306196729744310593441714469392426118806073266336535457561055085854272884123324046193086617013374404006496167545740885556892944935064001055728002841284991106550355918516798253966808794578140502735808613362489232812698306973907767034819197716318973345409043467162885503928517065396294873962308841528480383580679613192854600043585982417135197613294259976910900370071749774271530133068523301029325632153054961649553064467578135839677300433031302579951101405250437027247583763072610952410030092498896313413755897703492475217878164652212902791786279570662113119294476649861661029321033232510421176062016746635800844699912750547880154403307554644881548628164706056799094418651922530570373107614899627481511538466363846987716294736087766027380153721249716108660815088599747030597752113340505735841870729046927626392869260152378684958017007123152252540986839941715115095861508074094244511750498719445547136931410394106244164343104527226529578675338037382394789103222605362433294546928650246510621531669291420483580537155505513130607418414378130610964941524863960150822366707421755629171004649943990568326225034841956864724605597195831351485571044382796221247618379823982732761091096499168560002787513838414382944140027510122721717344002270810903241655587187090973854347846768238857156683003853329999602408428375568885842255602511371167065363018868523710724590604107574184980155237460152153442713476813267486739776707243256335956551870395374993053888378604743265558003174865945132081472964764650322535819884960712792223911966710112118355358014339868478999752173312381916484728972455311392321266821750448261052914165444115985183807254908196295898780757171426949470188127171238733963430588787831459201885300578031553533821422826202007585636933458777865964422911080660506674992909428312960100114359212148024775220726948165153660855890127568948918885053478065311717639482353071597802479387227803017391620858181811815524001837983764791988380623580037429522246253857444420250189773546102839459976143025349345319328081170361624013227182402220446225163318488082988773722019984348203536698589471750219523830039791485134864518372407068180431874803161307730793740034981584410445841089348493122185444994489852787184572442186613857729808509348109624000288071129076643261940209389036032807992143586953028229067449076588622875882161834305613155376299147230769944913292980551422777635421200413687422662040409086662831744770956071488080047018243869667401000507584743697134975368742859767532466709463650893772808471841988163410473041166365890728407682341887090176501783212163146575326168602883698155230583338597898297110889794300516955092585901587693619658681873937837559654563886264596173233911328718255544539866304530684055484777775883037838089878408489037126710071449390425310325334653676472493495044398372211676840361349847645775414038136675486799595405822650979956662258128953371452559837645114517724417508787469520130510918003397595857752706987520878604978537480265717981257751863831766244567708046776989699886886366766908609728122828379036383060772720105826922052180448146943485754914276272376882665504671455289306817637588021165981216501660265773338437731611012303916594460908475117546257198372514950576531376252867662480080049206715887875318150374709028586581225524909039074947124501170603295213693145778772429703466833028099288094498149324219724173678632788686740308277305012042623704820683950950802380042538756325368686942576479261042970780652731137290023195371908082572023084339567218977514596112252515161812925005074991424322976629941593057456896325914444484338692935838578725177640943405793116509998251920527511663506432352539794997164885181109126149188107455619308237466805630828829200144184800214144463105199688180661803895095512511398742289046307048285877569865835625425416814523139785835452996121126679169600365509477264655747208643840164330222805231593173592001845690787584400420772511696777637274475807964324969181227770971300811803822540280454284846741616324030385982903216462964816722964223027094594416030382961965910849216894030559370163735014735515953121999483956236838471201830920758898333848629097611642169753989179093646713065368972664393584536955901841775702453768445823353640321551108093722923560660338297250271853798164984299231981220999136960904017910502913884436267752983687683921845127170375882156123841553415438942658510839405534617774957868578246498908204827255499420643118070734478358154201422965834103049361160758847375783393856426398141844551461334367711033687019887043976119842473395117001266032937619694828709144797388124469857718858664610871200662597116581402520566893676365510836157830112560985473073688374115724023523288636289690709088720629298523020888908258204279617509054241309517398759181553267618111479314205624319158682919623268667623602158661627375686009154951584642266018991497729002566687954037557548138253603008973105665048641219114324689560056107767787769675387443531774325191439385486065815719333139309529697036396309850448254599259949000816193399439181972785843976755955850747675752278081737702287506252737863058192730890676058108677479637677302552833522878355395353167139036781866602616835238111613742407949801545373234052715407482293652963738634824126274658811116356775047364752336418261857458938086988755616062113363284075480900140933281518530485455764259353434031038172270462620143679103621914389353607740724749532280833088542114491894529689516746687226342598102756360510739146477398023516789476394904050224641706840804244428201799797100213520547766306242387203163994916825818003109518147318949187579156990059793151408947379630228100061594343508219938631067103488959633025365959613982991208797201608068574183367521683563925776858193739131653637216272114895126222344632516473292367310265871026457919015624306901862420602741672221346673053134821522836964955155314482749599460770340525086982580042114890909033598660559578414564046078193683166248177963027441446166276395990563132840940654936669113832323743593709371659929884316537365487164062877203148881503899428325507266965078009757657912079100568127992866163205982264739647864832373308651211129672786181610249606520542351441879388052742508193259237337905277775348403711949162540909735095335904344602365126292971050526872692048960116808278319221030859023387498546872867545292535688972421123206160296191726951374029197894457046117569867569387166486060301242968411979352196893153261007609856092163537981420390021431078401674906554504143966571958396341896455878855323081138525971842186778383028146118835471078916512586959824867409400448633028780279194223554957548334081520790388947422683131462789726077674185730846619851417659628363477460249561112834796560493591308255729803719213974553875653288850586065533406168076152657606837287450617169870480650889174010091372876745959998640619087390519302090392953419095911510744486732615364226840356910057240507335232383648547697270106440952293648998003394240762906171112302361270089551659437856866919699958675323187032708736037500810480230165055320461408824684613815549766085711987143116561370479433931813425353623760645099634851093276193640475150237558589091734580459111299322105002846207465629152829121859020301181699532463023660317255028036822143321696237033174887568889603584179250674042050793004343954683455786869821909189087502440725733685897808815780351234256020639299239099006116998827877561898207762738010613264186543122732034211009047686264716213736802915384014370836116932859545165986323294132707403172295152858968939333400450350621352371245819194962964114794413756429946962181912425488855624367665609772385908608553368288946082830533328349179009360295782970925685168663616026637366584765918491570784144433337202779993774880611034519966139685324434394653017603414188374442743246417018156968811316284977688284740830970369192727142704041993643490366252475219849952945094885631782913683699883119035253493247070747571650499301269863159758433875899313602792108360310598226724674041867886697988811837960839937134846152636239371085565881528638845031300011985475481883382278860158358699014208904193957436972143463679448302806117521924886781771488163086101065325931485198549241813567394568315418167000616722016996404714628405891692026638153051289368962035126979150192305919605930529188350534323808315025458964134926684499029199479153780468008597344811115723118555296164340188651266787893128786782511591460272597920872602468785850868866418550083687310623243560297174599485077751179596439474022048990478438485940318555578048401239819448126689114831688197355402752107078548378101642237435898577635819506597165560109572700680339534314052386080704626302865462473498543293429889721499696239480346394951408081161851144210085118798047995982917434723764266533255799082857744208550277790308454746354783999488922296115247403037252858320190264911616239946169514232001627859940276356585789031768972335997158085113671806497805055086324856101652936666469625910927816679929433181073527958539939148874105261906157821188994410729696353048773768987027250572972740609406203445531271786243077057742750517093497509182658206645489967017960945619626449696516432969625162826120089544079680659234960763395153814376066138883107496088025724231165141168553051441838563322526257340655542286190555942924687582987525255434662918646658550681831106705679923946592105613253286979797642168776093914221734309342250311902204996999574542990982841299112230408930597199682963489098379342265920138913320906639450984354645810925816972718494161221129663541274998567130648901729091893372434670101877950381032812007569625641285781208409017742066407956257017749476582378718822084006900106682375229582690305083236195742158189051159291434489275724053656208198017681682991235618929620702544924019765068892746309480202284680678846889832168870722154524412748153953010357924768879277642363868214001194533505539123833470914021842767419334534441657371483560968717785121074523983739103788422939345433856677873288421444371862731052404059955227238412818936869321978075367162091416235108933100284965524471643271712448883487736096756902166276456663473883320138063836975203288955132065875419539080900533062268970453231739410245072839388987159153879080050587473499403757002788990477720435135062253156208213890193690730322277307666177274325761998706811844264588005179743061212164455447757172552893190626199681216517008818643872324504197720823190957097583889468754032112990623868084291520221002894002454847263308693838577608948718795718156029614661467334438927331620644787270204885658815857146291977033970648814389914037547777239068107071126603635275586600947947054427387683478061470047230320830505067806463693458966995976495546577282513131134030980117194470129193434807048294516051007019043766674770131473868335526796940595555658662071088320138288369281650682272901573718732993690392600482997341169513102331828188613472188354988394633298214432378463354410057397533759885191945274514444878324734842230926513262541429191145684889443419581881365629249802966135776074754306624929228957267112752041718127211046225547646128187086111505830347389641465588767556737443199245069988737023931806022583827412090547010226525411171691585250651456958970712235402104437594058014436584325294420700212051106973941570472136467379403892845587810366174160644061263432725191590361538848694062009585433529365282374937184995598225068283226840126284774102606992340874579687873125589254839672665719550698446430231777546304026068570646947658954132226201139097202744715327258692872227528947384388399337350841820724480064396843108903797482861765974618920656897913495057984309064361705668137800492518162610519283027712842403495044920895941309460967878695079952044479593316330331687210499134660789452890753080703276002024215283748416292493165758135403456727624796699113424681824619352582020915243083658688510944228726130980022271033004426075898358044058698728084808195789971801255699029561232773864931608846571514401785405679603183100257922418121654759557022740583163754163606397435863516251458038839710804501922757338697673800981541732621765490421097288957088116384220600054229076469151085851797157280814427706568463379534122566281947711518516374412114548072515295458676027139012124089211825222293229521672144827990885832554875156980929746070206189329499300315207906128919844587628345611040820257936783448752255309532108594659875929186547902232034652974000006479335931157623507863268391605581370055345700429199367464150057886995513981940324626869778181655141143138470128867303261135431566246865116865681532195545645740419219867515228302708989355159303053606394569868050679132150722443271068885925978497436976459473593227567997680939176224229255700675715851323949450595302789380125550591053472502187538191237273408262797434394666795540522322013766573906036565803959284822014889602046224379047617955420179716492173216213734035164548067119859795588154054985231302648215410021459305390100948082889849724479767215122446818002715541600728858805200591168281098148885881043029960373497570512859726207247789372012029915297828606544098652646999549494516431336259025624323197592603744313202715089725373459428177542060506813685462710234157146998036506303378101655943218469929198774907639655024880592435336145967847196470167148281432274518881884844176406012392629409968129646904887566588046882951958631812900278250540056934772765055986787231459935825541164947177781516402592508448470587177994975183227224213996779456032465635764165220093837659509891300641427509484997441688754082162088394033641910352580599138599209543680733900507733422965971136129168694988759538685456727109062343337577334641276750777442142281771095198193666200530124186677974027083625448504423513732018574052738237453080214317990824408654542566934671784512452381081651744356968319821341693889942305721700236545797488158219529345151443963918074832171255836562503064026567881981737672752584214889759961988987264272477982303109431189661741236943753769358027421452451555174220674621280593920722618372676635171728300215543260407050368471145380159154782485640729697955008112390646982893510319257889321397406889223379970536620133235182615806323547488055355682087262378776954031788791907089499874072318063132658756623187505118926654126156130886132713139668499146021043766678082595967213229955484157886659092229940588275675356873477929527300215842599636824705265467409328808321554143607694948377630244780040227892777915833416804261262442020356815474859436273400358377536729967824370111542968385461963781482943427415163969776387102484269311898765468957893071237241421590305367023295836947655967858841925324582963147575291540714785403971477749393067509426687174855753298361259478152486901977117170239892826805185410393107107055197881423729651902948685191708459959257736863033336921272475340322418323553386203837480104710150268559551562923340429924799853060079795880636008054173809621693020716703939467932818276767153890655328424842897564490005839470794773339247121556612783252933275129458285681927209610108346428779575386185819314246159501792536846402171367348054479283226573743673063077195760757943825260652227615604859250721108903642115483205485233288505662424129534479873450323094044337490821754198055718260620868505081837905792665571800735647848570158538872001718339815643526093440391741524635855009890412903993743118963083948327568665724784225124813801972597388833336143762751854533791524179537829790917273868512431574744980591943779772188487719807059434443537538621012100583400270247033712272228021248227065712594837466744415002319385114920503297301804058033498133850035632873875179080173586037406363148550111562299427362588579751544031589439507249516942053758617914301438782093706578793041282547243557972103949840695455375465377435407838516216245508683859406464674473660348785816065558559821137587991006955590796959550582617808290729072002755632452733099947897755047922759125628592603803732121624732585221768657204355067667763947264845743736994882487652865251180588060471877996069525583221896776950772297953491475737168440356719799438725045948678738942246888577385291799260093664105816126819468821697573976401858148473837605910803979536518370778481592566567774429002377352717210882039083766015183796608048112923043077251867645477899141534549414244341136800135151850085133669559006172812198015747812952055757294477952462501179447790001513442401895528716241737181206441966358493347347905610129507699758815691933954832720913939417010476671461743096908970408882175967360978538597627611746341832393396248292751980126140202803697034899861819925052612314356995551751385745600214589836678913280934966973266262754607586789240947741942462385873791708407507807351460993159104632185447709089122243823420668720314825468062164615940751654520347948129227611114949536780183229143140112252207281504286489806498883294591970706358533985672571916725537530746307726403768774932399433949656239626073251972280449047955178705291899834973782890538855193387534840486996512817734910545014254223458980134204230829864552127474206857695166739990643903441316084042531852475498837132811175520251962409646106667312902994319252786868736089988682653249487153817696504547433197177623002068866811478036656778073021564662469877307234399495580392805172709737823112608912172602990255626059743744265596810781104685009734177280282087217427925361949570148039948977489008686513757956636867290620231448237782236728271048832105831724108424695606081172664833739972637925040180771898005393757651453045362791960713876686548883196204139996233561311923698570217442957039871004467976040291665418121667094721371956234601480317856902504694026304560076458323901577430767007435678276329528376119445541355442163427622910562719595333638328357976726164473610721093597661229946750848457397202307804012430327054559487415798115860869024163369486256186285374785670486050391496679087788566108643342911316080234162758826967944882721512971807396132875110797639436465621714145117348051598724038864942721112305411918443034470572869444346039961375573467750810268545590309528990509128439324023245675482862829351398025911715408570500928190916565227659508551451716562222420898847475166935596189978852937882720518213973067389229661639045971806629627742903274187434438994749780106530220195334736536616134112931198821051268992788854305389027134615142501172545759898312426929381080202174988960554412692231372529428095315945737086279869830243029946467648650143937647179063082787140282583259374681901823080469199519019537764394277061609988312172119724101199427995563209398793940340749500711371484067896613190127256252356285471604897374387016909288822820543894709834868657781025398529797200166692454039408089166769783750456088311228141381969730691572520118441591302166378518793885405588883593256131382488256820895033135026484228696783294785315360622823945657748946939311188540999696639466456808200888593258914206420019954607814205275490021508006838357929825254928052564886055485178095524238486732348130997713611517472401201596039299518180999146016080030508298677712750723902444416289287601094971214909890450243065370695389210518526578149087416750632676172970454789151517948112261453814177668053570663044217337027809802359219634525714938969323898158415884749527184526350344234121561741303488893882068572280023690724071421310197556247621539645733350480026606797185810151205092386457807681590266545108944214028753685044045399285515063453118553063265027419820339589469284742824949723448651543554402400888953936370500063018183184457888580279366385558985044614758262508824842651465313051920526342916375137563940905780233540379657733948436901655842476483698061580171864617236690068628103980821750288560679887172225464486625542337264425069641515984033050154595414218339649272403191316129305912519840383448692663715299204365021589729888658063841345818350850362365759238854106689645957602991072762796440812430610962194836432400268940401203097771161368454170807533339189946168813033526095493593812926162798892433954883907174221835459452361319503137542319550695410777700678897896671738031559069540855728922052838918218663541320708640808385502124643729721265399379277007066236380555435975694279390720980882654299335339481112967468629604528797455824635928072638046957333044092241200186055123807677353745091782150282814461613218863387756220101100731528077409521963167656649781384433744744854945442263082452066364043777302220704632695422538923577177571873917399460839390060426169711410514383307642839056476883721966403814698704042640469239141318880954164901970610959043322568282458251235653577330990918262411025269960737145380676043933389394903179912723971299004098100509498193958715464750926993886094500577759352174501876352744423718068803624199381578637725437044412207048609035739327422157541889406633443457705648605286420826510146440141883446237869909251802302283622814044704079113758128027145038754888487133363665273415667058674619933534152948940553402243190918897195599673161212276856516628294740473159359825740920004810499793365746679103698748114904348669261674889502395232858408551558912266393280016436751244510558927922495750637687428920938274001230991030423063519403507495642205885351556947234004247446572361288123055516647054733640223661538643799637273615548521993739772117789553733942344583964700060504180009131994350962850322932854652260435818118767931092808506318905808522695431814749320157975825612514277781682083160585660937425796244403519294095757579953065366085329620597835176492911057860611357447871478605392921233565156408687609455969714651174757865494407947350913344332619411941330155515356952944481871678901350843048480907041674975318145531784248812120256482155107932861069815611490657219134962551470809420875201566097968247519409842994710465574925740455898252918014573584157494984496940372098226971516945153207439958014933677948120394196200850196535044151079951322780774356761009285523478292857242227982231559825004363837037267367588468594468384220149188445817156469259695979417629959422536492031476879221022747081451342297824497530986377076963142037021476330991288664788082948710113865686488617821847369760723342144068980599046410081837368042202972828316177978052397713993142504267944664189669198492907021841300921415874790498828867838203370074361915487590995556102229946520598232336647249337197832965219528960924950778521629586229060138792855205953117236713793413636080291798491393123926276548679635296227194696546953007890007997078691479885601089675271424369589741813989212572766139396214613890586284348278475569660409487930117696132693090841893575528172640231505737140064246260863534035130778152911371944486854114723146856649942182030754402537107979205908768768352463426234559286815338312481646312598262731870124229656529429530332729172975662266577209944651328735029751548524771899158989596608484035212527797002485787170184026930527965178906052499819485061114683950376011285964817040497690693852608753067206981130185515090067318354814738959271010359164250928474730050754981893026762153913303344003354401819212249628795000002707751543337229137174335488031564168720461708799001882817524651480937607486747924362608122880943716253081149303356067960117159523178569453570945537956878684400054826061417750242265821209604961845288053927252039667971961761896758950852722801882107836362705205940666337470201733618757377785594342954213078676389728447394380363602870782516196251764073673634227391447512383562935838126229363719682417805812025039308209252769223174654449758326984169165477861533588286747764559639957530125354971211030847217799973328327809077438354875550004453739349490600967540823976899927082471386757597786274339095221941665443982190786009539701189230499404407523282688596652368133287361822775041928443128878466859828721966052840995049388005870616720405830757587225989932916772844283371898346059100988743192832385740476325218571177763845978670995770575326013162083183279993437103322403525915224362259942415531587273095261108108987164063390142336944779307315306994489572763441627327154054610070656985975524670937169745254271332785872522772096041510549052601479546629890240388176564896542831363050818712048152130196740833543326290178815638022010144694820988542044960718419804738373389574126745440988048169368978583602725437306287107387856892541267607146194086453997281804361382673547398898286627080860777335481039414509367601405508004835710149003224314801118610722335575028542728875294540702959394535875602635042746860787110090282663716161277265443371600363110753242263543778617551708441015781421835679167370820263903023755463524335963805269502642321760357077743590371674579420047449121338072381970252303409983515525484458915114455440835360006945050108317520645085236710753191481862913335659277175936308400973822494705592891145575762904658129590096095247776930752286371020547986981491868393567343797944705127410527816802794385473912362339630210986557181342445856859070294352772910895918671250526947823276522986390399726054587417531628088064718053901925838996245992805895960251900955689696164710135968950352541261744122564177695315158954764834384033696351182605390687429307829273873506034692838538077049889955596570404774304609958247563952726078952380336380426317295774640430238870095376459228450259559808860438688549788179213659493833828137056757041922643765092809398123182054230951503930954730253196493605904670784277281309274410843095494413869259862713941152994608911666302797972100169846270160292804312737593422627939034401503666667963419617546877085101935153659210003861864307854474240262522584344962890448031202844945786212091372626766596744401744192969955348533872986529723956266858171454832288821170956719407676291002351618548504804964211083186459661437777039039535002761201725956701637689614295185806889602565427487041235593728638248639612918029844348091007735274214810438293406773642775796276464643785484087345405864672613811214475406662082388685785348082348197963808835679924481016932198375358151511618057542072037735495435047972824039589911121129070072383907958752071221396026268508355589930821475553031822907635671423385244892792579369213725169223872671004493356758837483149686950609906660281611944448266008144244956142133243438659537448268699828471045150780940860104814279204682987633733021583409584560560887726421616537402152689059471418877786133815524557312387519582579200449891679377831371110243005161798649696485943415917508044835867422404364084750624228987455545141707371152128775896359685430250318026827282694656084110055382631874453835001775450072627129873532528111948108823520989588568528032542220348178823369639728913321296814548619920291408860458929008374947690182053815227478530915328794017976595082169314126935745951955278686149989976386365616884061744604084646322682992024099053884844304924240140770171576469135864340278046603810117088519682239840863141002840883990063631142721000939662324395498292738574933638323606567875277385377154217430426751653599557637462675745312868536653362133989427883565833300597474016214744048254224794804957464464895215610317321124872395549609959160543318960226332751490364878531924940058938295863989276228496467440623354302552519205716410477085437892449530567319600913483588916230481690115356865387249565165001870010628214915769177400071560829086607103899966984115273074243029159299948113997698846038513610531595191976529287668446053389954822185570643490954545510533990129371009381665219278672008495511767587284986701991539904602022693823767685585783604929956294323795896693508735812399624028910375890754679254892803846928902155632431898093821289233960271836294137150532514384340289582848480069261067372212051482253544667646450979057153253127915141500851493789737059977498290718955770671744853847152639589631699325315306926395213376614646801317538224516802031061301677046524849401137293720750111255682112434481006359537345266467938173368916390881076611931681878466087216344569304994339949262907214610845107119333404459993194127802789586712215584702023976318738411487219907450831451819688249100885415653252538404133608808489238975779214676997074471275236915414156294822871207811106534696299114466809170909516657236103528469811653661789723584284676715971926950833106287305712450807788045143126958087527474434240218951819553993233420297869192590721620951301963718557153824355969801123707359010691596531759005895190526014675403613184336954059294789907929021662635056232626721534637425812182190736231978395989419182787379275323412157217042829240128844160557404572437473788279243822600293223485867166413385659369536346092168901346743162662644695753203125463117306784673871952932909583777705388104403097740641802083189188125780345196428379505047207219559512520744863581447415384440380161726651857935908716936635027393836255451156659512837752289364971801356497352385864733165986827015754592598336269789025554831845363379321772598665530335580292868406157372066829559250766420937004843780105155184082722146475794931172995998623168624140979157648638802505697490852178726245717310434269816590956004580458713750432827777260811283187753425922534891707584353973588617510227894553995175061435322819162627261058669035557910592988349125707224004719272899089843619784596555953852697123390221590411092580412791836170552872065163430227839102231615200440035918914514576150430159521154874182423824857217978406675503444436935960087859837765355183128339426667970010624049941575477322999867753586979278619297181429149903370053771675589309918140907620136437099320383434955506872183886104659770517124594116238189693845453710487541923099251362049113507698899115182482085139242698025967241605700815966660547205505623447388068299384526878437443927547954847889675713770058852472271072090125099991739693943106681873371554740690710857225059919899912450006217188511965699056854727511160996445094045168829837099509176084847987486301823594520478823317779420468325986911160459098489636377038407175956422630660200276543543416782229479380082225997529140705064098963424759245027178288863506017723013898988496087179499126860535079984939093458557740411420223025005909426036277128151537618470846418848534349807141827490630245932453739298908973633269909568554766630925583742543986093170813936193412013022153040412750047341415835625381376282643261770619643017119735392247104138951265718619102569822361580928300583349628057091918445170572096623333108285057551713927892765855627043639273602539650362206490388434267880040362269629760052804822232107484351964773569075830959034512280213967712165683594091246475019488714021610711241053834179392222286883208488158367197641071316652344609462450143185360940568274449764245152963247448782031193093148535345060801890607426896658021308716426823920140722939700247380163520792767894671618485956127234071423212665929083598558072283154338540430599221852758116397369941764229089643039041084592815720672398332558431143904473449568948568561927933714146653702794286472727234487182802930585306423295838637384888703940796060612932730321426477128579319434954803251989685057036967853344573529141132493035782045630736726052280581865622261596393472388141467119828516615567039226449874447491126761152135436509950107804304125619298110296715995151893855933560969552878307677980847668736938175977420450827998709632445382542779831952408998805990255930067290516956080734374453259733931831308419608305673646518482459609895819220416523182140195558714156884449962901448504617894544006205320817565485429707899132568093638002581555299796235988889495292194012798395446950353949102144352588171247793735006161349721089222416202321716864323359056039475323853323372635984948423006756953096538391784704005385255488420064331945729484327955319718055155892382010741563264555144216449054080379561424499827302802359794270351561003041769141319834769678109076531680022400694330413980879915384299689389082842734422693495531628045429616240377492873773741053847895494105911009011410586056986657831372593921204722783795150577242340087358850660454033147098486580919244826167115278079614924315280185752985314330173040516997471626861566814074862878658674764719925071450150970598651841310261663021947148426179476372965809267137382942946473912009053310146912613506145863445720731409802316713136119028686143268424284343791023992922512268642806546334545897169811388433515661043652533414474600693196948693061743716109810643394497007340956119081979361684408984734893631606103084667513069699145617258398745320048788614121500912197249142336292681203753430527986489191827715183669966838048266791365482349899986468942883210646507406666794492327563933037965161422703753520817900988986542867414933484741231260053653934197931921855900431599301602251861502648984790511546151173069895347136439744705277473551069719983174648698360187770458487826519055136748345895031781461742422652319491991579752841402936316188655762215635509102659806778283929335971810426861828054338137958671327601024686865716288237925139797872268654102528866163581717381419208392276390625792658856289921232815480740050528461115137737358956294750922410177038039996775407834978726726486390986024266324496264805951307970802962122085448262997787946661126418657110065350202793886212801385977277964920307645809109837074439177940614957054712429346034666289206747772286056281616437128629724098325212664226444402499512885375957944964671806759922526756055014274031266973438168126571961604854795009243393921287105404357815594433614165710533695170251913075578470076079730789803003412360102453558604423931705483751781025732510001483734878997696742380308875658616203691599139301412589879852092497655503235177961151384916631110533663327011789044453954855578636379857079242167015685341948132352583804768510771627075395866049532510512947816588220570689397298265188302307302071455673586998356887984406212229943487308395120305874180421266491105410403439458380210657801928813002519299846899304560707720341062307589212378069139313346904601442675797486383238521328016925210212958188831956222607040509288024154181009003958734309684226350765685842528054871673693749478103879203632539028163456403716962346584861659107762293659204423351076806811470952802913193012939092609319505076285781574531790236173471556640178830600426449551342941309727971557522202563224171691325860384409439726251375047850702357763327414783900024912361174044949245692130472816647700770044165765879514598124271756526275053221813290995459446218044044861383487705999996110445046476754632036852108485184740440916918961892925305430210616365602222843437524186175008201324146311777908935834351700677525617405542282054163695138558144423508010874333078448967912527178730622122348267722941429107231799154560083395445722423894378400690240112178805737114701190102923447982610485736557777918093420046305344472004290711420505781394205239952461554701094482668315317632542668955682389208772235281566676448076829399954980512380620744410242410268390914360387560581718936604725178874002710407391144447262803070173775195090110700080549844793469083804484308786277746534110655780482376255514214837017348010434797471229996051793683478973354162696901629139245780995252002584565748365406661485202502794324378457941987486604691902696768572804286811429313266387485878463430294593919091127557955395446002360538851195168921335486078914881648720670984763297751115649560039135987818802108281975280037498335535256461273939205813296966446564317659612076159458095269133259337067668926088975002809385810308062060984796649174055365657084687201809513874161687789333450333094013427348997492087728688930244900563767029517702287840988111315929463663015048337964891317670638169483862626844522178313515420856762011959872460854697486979158284786394457651233926064278279754791911906636147122198653380404426284698938537722686354391849487088852146276416435360058101696530910979042383281160103426194320373592338490159528122500051937088222573320941671633466921018055338193520259765763870403576095314329070026145916875622571043891814745661380751746885722165298305366608159566250438210797753097278562495474196563305767384399884174862814231615780563681506258393136395663794813727145455571306569386946311716458418677881247511532159835209223640604562429394722925078857957906646794718804007280577068783112619359242135598004086925249377272121486785344968795117775139387618283384025620162103065777956622296938520962448400656445775922341777003638685117863699632664855880118856206904684998883454951013262237650536025418770992450246587912823744851517639475788649778625200565663125528281395493124719161671768272012202308160196556160833039215300388272731785138537759277528702566084331703490552956909142868000898742185023582488991553373424592590413881802169678432272383189339436273480061841651672701703787070213690505358646074578171369095939967450178691422373151306627504182314891779912597248205951160000604453906758840415225061863841120571844401533280404148901226714409597914951173064486902925302489264186647716385362022768210962310262540801960585291616419098714124728519495171060134353982405044215480597464029060542716114383645399441728419043536120348448611780698831409389452061779674252981910850365734178591222897900985867478634829327358548734882009467531350172647151016187722772805115665119586942283362550505974144539666633272798144392227163493999820284906056624443968094965842136355352422947431631058249284973104383855020392971927361560353023281416498599779861712799898885345155202656830805699911543830486704444563251774309992515691562130827925742914944068463669023622812911426642306538672932394778031842537259043027381971542734761943887867722094759714491993330788085385588812057628643902703528147057054790956612648106004687800308923915563549396623311348492242856159533875942424158927019219697390347570945328155429350227572607738598632599274726634819569481743602920757905177235375634819606407820217306887559030595997876440085312351948293154093746452615345458672348806523257952729941131557950045330646421333543733552836918538706494169235281292211674553645320049326579497893870940690117780819515949782693815737572052819694805021354573143978096364871584254123287697011783814732360715669563453205345658366112011079962337711290781731011436759630975071348583576393528357816406129462326779684998630725554033627810517354619986608091152216214417794761890183162507755718744419157569274637061665758203970987450779992450319005730036760767785528947669286783954860476775697761016072883756451508196019841622788667863337492400083857641336085010811907913686209366087664265667624150142799082137036516893789476353054695573960354127848831637466969752810185959326830418895494646854481592780280485487476902310139621015302621734579370587622320532861840548081858985052056268181609090418123880274124324918028887329333798408446435700235925386136322070930652884818604706718358461419316882584113866967042490096815496919276063544191076425628958996528271316868896061206797056309320539847838783118276840418640664200374816951711064263525823816024334548071639974691797294761251732836932524587034396083714232129717775727565019733190042919093581423977627858357338177234736142366467670472158046982366129324786617360694051872587649842249586610686843404812533415510333850600862524529769213562576343641598406477187707823774187887331648395152121119484765089198353112511512622262953300236741077929317720555495361547703663153667176929225155466376975282779763020035059996135848328811324831472987148707934019325669997215081760541022737084472595462618967314128914835216908021608081322458007136379348070717601033160033807204145503841743544851745869987970739083326999181638812275579053325186364115762986093776700181077665700078187945200527849690746123765695695717876360359617540989132743123670463917117777870254696253108832019571311097241440960739865907811937230583144747302023335051271439070086785533947550743958152936573887743608313883459375736143636380331057112815609153070663584148172181681813118526904891836592438423287834548719411430944161986582293096330527141184414789428921365680258176157991959784869457926575313295716352715285132337492759741251258669964919605760912028797044026449936835029372253014522878308539580939381468840616737099549230150924781703910753882626327633606593908372184177168892959284872587607108757453061367473238319980331767261295055277527828564188816531097065939054895233646259321961847064646889691046431426524731460179587518411380252058546221164452396846557324499078924566805599647732516852404975532013846690336094686322974029379048586973634056292001927769578276525799293388789219768665369282931757991067402035920515261416122340888884490668635258181967454136730468499679368774380359390351185241373524150040051709870088689961018594449498837350937079298360454447880061679055169900531384498789760162275353968522866451127267274054098564754025170532457264913647712408528531815052962831620075528499241893443343483000987165348166977561891763657750658082046718740913163921249961489925195785964131914278474536438435062306408836845874359953691076785689571451228958353168714580170190703832359927692497375478950104727652677335010267352343572346646291053321363885138375470075666008468393263562338425500439052361376891619817665813313752504884858748855493832174358392713096291237226977895423612359219245889306406376392549159477455996811187858924962921838085648131329626045151416689103495469704321328028070584952501283906337540364373632616455360046482134884233043997219559549556135806450420758585014022745898424376075506616418624836712791628757559214978163989231437475526033546336094909960700243599896990673762849273695541864916394559853333265710918051342103279523485157900420527030100816058641976255375159985305397446509666721632400669817154198047643183779413888448401617381615640965342415833958814533499831358769008491327269515911696265378232648867410524855675189845835077686493892911602608908314506357673315304409143125890294599343942972236367455118266879699020534747704594809431136525071832888315981283646118642194174424521472106666425647346784456403362185106113135377646666514533062419489722364663599296819731093690905107110220857604046965253552706813772361813930994407807594638352545911316792195117394899170914522371642314048682427833414502562942520318626485752711268640287390081105511359597779187890688675681539527016258155255374705774636955836724990311124668415418852603313106772376978685696087922784449345481959509386968239146397937064334114771566481466347114479115049092524464221769965770585107773158358236250919523171007535499031241833790061417558395322001408156696572757443300631043229963857660526272780287931479384469269682359261384720295042056072487564666499446964454000599207193809424594945966927847515232869763203344045275749942346142148841310110917015835289574598543957808988398518318589727469921673163889060258049421028286278348469577066072856461508855889552643623798647105660397068206149208046733525142204290816778986098980145850369250914574046496513147580855344677455652975639732744503719211104487442333042090785890250909123787114405574213897005581826531230534546383192683185898615811000473819198097178141848818103810800429064010292454902762255591096756336369501316975814843351385253897780655250632422713257487751311644433953733914344089727072413894822356655187445762296443133870398581065122354049734479111961365140931793836074363672195319520046320687022024104228781729496089275193475994840290796796199712861741288180231418805605887571435152898216103190043737438196642983953560330655793442155187245020028221160291141632617086368154161280196904744984306613753334035212165801356217314538732042974994730543237468256496845156411416347057559348783576238728329413451656881604435776111134482013766193282196851072917248130340132463477967196479966437388698269199479769700147969432762881724508327419638928652404022205872522411685130928027576678994528409068364844198825154947851931633659923575898986220331199323099405907578395974182470040122326256302510706941905403673274329733579559545076306070301764500022023031440114175954578348870068280343968025752065872874071054141195589654870720654647953229716303535828925366022372746820570006329128293135944337047939612758568863308688578668851336648158017465017109608260448048047231198937850236139049452405134201585439009194360830328702467294821818989087577973752245688549879609895334311141534545461202453688316483809353438231152393704130347509766754432876096478207738090291951754053916990579247228790257613014437715862700323368225172841827079865328197039912417374979770523400833355408260528916686973971003970786491264762176077656693779950647041301228310566190130470284654237698479101165350433836784018013463011313894744445662656385574224577274931491440765048240202223952091150523070167994558678851727783129921134696297387410525697306145663878590043929079048864908186150569574935252252699805377446266687289132301482961728022787467875962998993229679268399487822587339264713626284155239221576693495399381022582227972973371492281169791990302200398736250605475841276818395956604091813912308412946235031278920684852942045887739942542405831097045476800230454177795108737718478548684115549562193630162704296430494900834145058801136057200774972670945144308352314474722583897676066541958391360670525701108522529206015226883102177830652182230493338961210725087361313879808998895547614967834729045903343545436069332531477683823072089963046226695424034723037780036624636258555794442529209856477543886041459543537315159393637262882907532294961024629148712411911643078768982552813858079962036367977229008129551369067630358385269102858620130368907483332064253103320298836784207959324433888243353378364246807994998841810625337135157872656206830107623040291296742424244058532215463938176463464955814905816010924125156249640695480868986275651606953468645468743252907069664030446186940071732637283205648021339731539358079448721590097284650728844802176128556916038850686036350648655260642215870200555480257010066446652634191401952461119939574638462519309198953250131818038344196051326206351037686451061047076899263268345260255963414744727408356973217341710351524293039413508762562623770799528683815813014044789145417842983931665291988827951948330633173308132055630184381663995941987896578167916609098323118039516638215545461318204600871080531108825409207787192266430917778192437457511579544420624459881376020373069449662249406540711330169244227617744087933751380876559194094595618073920309511188240366627656036634372200343240609692410575270138486167061272814544283259679644574389419026746684433677673214123742623611754392946633069200123153532828644239662304906402806254649347804836326754818022275654955248129471487929928845720656749440913750824670427430400842900093391970027468117842382261505278135241062119557048737912611253864330178923748673231520159147861321210629723110277081608334189845069144776662677758341757829912923596203365011706141113662116975019031968228567081048373606902008951580910466230662722487051088692132699013939632666148356286227753351635230096600448468672110587744054006544208014175649565644970925586461949406339108083640020409313924535236334268773845891880132961363801464779653749305608635002932534167256729970156755008030274574161760094788313480099293961730759299764442373956811940159486292719167466876472606153929521912782038393209187198329657498926889770754790835161306615059717041949507641092256144644510018785069021963651066214712480836788071954977683733103810932864204294360027011882467638716577410601947804959551091595808864890572481760466078793768707864442965555153367275837979953751100241892939509529396391906862023266899095818589876842146353463378329502491996672521051137674580768409026161295514354469387782193307416617193027940667488777200380133170131219462641305592686041214162478707043674835682475303064993820530324135013755048644494603216418984725556068864919645500818457544439715702005667826047803943849625786286591689608967566722437063297886237228272206054995667883680153573639788890040196080584908866689228590156318399765754818699872740800625699625470865209948238535016401596271653109214919724536004156722489378869542453505154603019490326515599117411482087531314881987156577278563491875291368780484108104374141717900967960094268957268820618399750694388635922803039193315441384882921568460159748671098498727113780331018112457803180763797593801372417729859727312077346306778565758109187381774673597237963715904810773099366348917239541113150737512442989064757017604935156522232835868690488765987932549704039525486444404204344849831140265147353572842201323611928228247382239422587396798847851451054710818173761489817207563539203439316473546206317375970791269266136351903334553590175473316629299425135745561788498688435676323777699768164328638289200039387349009597327855634059692232960912999256330137566913716324874144802017665819790351576943599575808932795391243714913271719339861498398258933447466283137037345727552833603493272061319216299364215800076040322976967449173342162204442793070044677344617146743949089197679946234126036983666958453643298256957348261442228813449859002454956862826031670405977405593703643546540434735125481936860531101857507792338916931603591523671897312690630434538178019553027784493205455323774751831269148893503773830919818893568977056081660866524151388233514093921515300189369995460254474823956530323571312411456020225653859481488230587707514156754427869145337818287141566122236467031219337500583716323321510262207602847725064669981366039769643017915185240298614320377737154605680453696049363875053327747262774173256447398637351407706183696900843163341473381460320645270881101897828669571814874430733391896810547984143927730378978402625832265930677368753960115518031543841313692546075540982412408253400704104711497729933742625550502593048001525491957042118394707672684443965065235583865430484545294489245179360283939151406502105273146133796350220283716059486295047930283896472122529537374539093065992440269345242304352131889404713286842093450238100893837527859557927218450374736787238631814668356607721395193983916182071880306167806617331068177690778179340444311875977785749072827331773646469409588980097360597455375051084431665379292688370112486207410472664064280065736628639853319527920955681129590825212587103698706046052648543935982997642267958714989634902480965763352756159477201800111735020300195243586729605343450927639457589417313853138565251333568183998929044215954094704079998468765973678369866713819955659044141324213150555112639567860583308834025832347806859185836196926827033185913209054805236625170012186154397712005776663726348805187485579046057703510600555714488934598232351633524889841581860231309645186922511268981802283325523353288807276958439745433933054586164746747896089518978989674200025505385326874615874418347621278651776499269111237476330876392615382881370055344723556484531753320319610320219414731973573260076684597687565521702002729917619823762726173271849050489028282134479898769935803370161552628435726816959168356763653704286828479620913428244320650319343879761190185998548212395429804626438329194161506525828748583981537513043566230389422202235764499929990955234937134351907888945504165464176778956292423166529350446403398728483452908706832064294613221734246509827427276544525140171601108146290019773270017030113930297234600392687828033967496083923996383062958374286007422050754057354388724560450820113914212634882690134065351402719299697750136589616072057293172635971354663211357210390113407524156153012035862086629622227192621773737383857562512205005620608072002628755433519787947547960533374849792866406463860882183764408326788001526031550939480372436381578446847726111834145877830374398605546438609298903837900503774829800755408055591332352332166807511527935686820419958140150268269372184106477312050477076841963427893950107023065698211628544144655251682616641142858131759081223885097248402197875234454094644366130586600420696888420511259451449028115981610244757731901728690339673729002014711194300120092848039537410253937870907170488280632381898105065220536482884766256440922545760590175155558703943323511550630791698670532226215354666209393551282590075050082102948070180939574463578286678786740081149753512083374935803339699399833489837107761122749511236265488989099128520429360273887199241718466108539071816584842109029879527319978996266428694458367962418015463068417266618924018741813890033869560974367810106146931624255298875182048059706737009598530343277312958334461162662759770152116013724183299287029175267587277888838841389480493789087415665993922513886502621678320476790361241658037932904129620462956446363543571808550503789101966241202336209117514840293664000337892774100787831607510656090805873477329610007079849594336483065877158188255945823223348466676861075111237114840954265561618914547716159339464543792404126745042089144958884001685578720081691685966163559958252631823157408037795627345448644982033576276243213986445668309271065202674358146474492397662733385742026560555947197669694997682761474710091955846687775291127393734875774057348724171960076100481820232221598040412326329369550064188495799059855937313424039829434863763548701228865432966430293542480855669477472290758231052127915658425400827408959807926503285199284797108950597014225141755311113501981016832091939963020596465222703033973064782661383673712029194702336140973637458628151182707924885550423837546234237454355646976943854210427744923077596328221863174801771932799307653464669933156114381703206881814334367221772143277553638439956132135881466696209050826067975603618904965147134284695163618732698454137443918727453419423431905049566361743977777513508251130641960690110423019674479262066691606122351546448711901382563710633536588417851717136089282594373003933639766684293312200966463104447330356074471512103434512976992925764732184844015479929073139654023307703433194004503877807408161311546785974432509929339639968955509031724604805320650751040021685199005573191089690093479587511064630745501436829534898998496598885671405274317096675431419276052853236223414983121548744161515745799182840054717837476511790059226165687572195822205743895663924108190753917240446444741939390696089020051591637497522094679148821120637873345339799318833796802240237977894641545639939459893291415475274561356853065294308175417442436470603630828240007448698253875124706465403811731126676438867601942695687423163223699547899611589516680499421886329170765556313613702476239416753810654493189862763001587749454930767979330856058491462414968849296101922781764791901491791811290321756761793076814857231119470407160652683420933868749232096603404743099915895823016741036023293060834099383272413134692074959012947792245730698491800410094298174167849188185174406483244702591071766093673361703175873046389251500384594067811041748903550365175981028535666556515203422123679984449983523222807841413378082153011747544556000282241642497448778702348141129193856086181403095978163021363831053068598940115716597459665464887846407913691060874371369194866632994107063564084751437631162387316504329955379454733600687916366768456306352025218704453994513046313999042392744926112388642144095089141996378564579754045160993656468075428123644359843707096988710418716518946179224369640528420659146540869556391861773934204320216223327714480180711094726117922762289819299151892489256093751999502316415685785543147378219050000073189411151051149512831333097139452485432796586051767727180943905839271626180906984751866865619789474265132332112197933265678825230990195228364586137864362593137753290661687887851953587633797101159803196580749435930463029543247850132082315005276487330270354656765110379156063602674765918299820358135410571169804050053945454674075240751755905899167495343645771817158576966570250750004904350597580814421060038386854754469974369389278709326982506287790707900865520620632231761689025033899920350832381600892727600885692195922013791482856093302767138691372794549612169530637748832010822521560098400414770172048683507315920759437771122898036260551117958778767412320461295993231365556333241088937650538805462339021452460761088941444969559496006644411504151570344163663051360741660326536413499722396947332905338415145714403692873497982258807875200338701669995324855283678061101145862049118671726237124367765232354120491998848084929398622687811489449278193434822948609756620622015878062540651509861022081425826502972908710072763295927538933823159760224129294548071175631257456332178516164666186401124658505024244585666519171617826411380656671137582872094594445614066970491355137798241507206384039964993437038551177394381343981549699835440644823896805083445174338220819738252860764390994654690146021504617577715787622307152754683701726281893977079022500652920301220461580053776452592661667558347260438201316748684153256119017072824017753918619430529358249621035757781701751078860726383581572495645535140972491526300611998554361408146466022648495830539532780276138948829892102217382253504589403936840309214267914085933138507058399158274517094443252954287720848952917969612894003247149053550681766111994150478651420033975966703100765087593135344046158200469353845668416065277193607260552789713564090204075345961517045338636059503109228623425497603278764668891749104145546775619703638840321874531808578066578269086094157949275994533860788832048088749857781987460403700260322614188764466211763848623012237206884466367326181122141153862951881934594772338636347635364376128249812735811039189612409316509569370793728049011047794641742753118660039346013064992537222697080893555581819600050043195651020396582857272048835463323843114963460667474895442490062675164743358723492901714321576740765682033771051197614436006766937145239024860317111454197753621060148633949820630591117137098063588535875289772519130912450865809099642729139406032443334549223385202636844948067708166025592396220810584025342374183711005508314823893673070033873094229575338726353443578836891538638721028919617930392664285504882651402394018214363789070428973725941523938824914548207423368650115903046675346367116669672111427763724842555197613594168828273902137183214442019430644309570162863735092458992491001608999067751864852018969922741838633979042666772316355834569255059542329827478645661302629018581483288086269787095364772558175745075671805926080248301482596813818663237414099316005513532667381326397182323325914741140956479469611212334564020283324863539371007369334002656324042846792572762128873810328752636208842108781196848104815439257388745182837954764215650813819697466552021189872425506403955610174931851025624155580887987500215963096773736532139177295538952080124510870503804861865224167281330014244945762175102908221276931681814160808833153859692076554337904784144000356827390992401857743586027272154406084103009912586563106388253084494430312034402116037425192878478071128548805207640290511491929242429071259138496178662329567092103029837508908483936318701326832884819861853418028512839156341653047838761341925369512146743854072749313799683931244004669999601271371588815038076746591118025636020924153565601249817969189031939634818929627574205957190797830043099221586613211098277180224922026489157264926589812674569472826570634769855091881328374352126340591239322790684053011754975768693476471310024994300958638289918807968755405520194816457830498579515132374650587697385025166744949036218756402947196252206853303836538003176203485137550642930287328630286449008033081509083551958168454444850797274332710055456404977035115145803785437031433058456122749122892234432893830346981997231928113187319960574469953984418686871422170043589645012116502432427623826186731488949631961634950116243475318488381273711170939615710421125632663217421752897988646541385129188336763876965515980554811237665236583274191771625328915395696552827632989771825899885197908101425548850268353728382485483578623978643179369225493234117233574666779361243142503111891857001201765124397281191569308642910107028105719292301104444168269416740854276398501832783719226259427418112426901221399481646234855983555623537290308734530262550107554120252814630428592235341922510405855659655612447307779903742740222920623498680651625745531185956681710426580422463750264708262872221907562692478537242335691312409417604945248845411028080035536119362786144450301249960884689926121522967038474510520812234986540416172342410651981347590032898211926732890389321017786532319892113810310142548681253127288322511077848710147135329364839766568423336698540882828068203371437559038519435183193495762415649542394946979143055798961011013068930381755276368474972880467874603306953097001896975139237450721615654683990659802960003692604523452200246718594189617325180276638863305976891405797634710684188756651736586094064135315545767244702680150484969175434071337442330188831130341204779651751304328163575447435027081237057716642212897292989852255376353548017654966428396955414667951029145746262879627791383676918216573123502975954929589516436638967645140718079933700918174773471572317157328109784252569493019457912514374578116283233692401281328795786579553001829972112107773237162610039875442424659680555700231397221924025512830615005081544615834972259531302909314728857546292385077851107957091384750789544012096179877651346285025936850952271253090770272999293028713232380052412197300965554558751322522896431780441397553264915157709425729630417428299790749936460303022830387010967130970143963083909618221457857224919014520903547068273607362330682412024658056591174466341773383678227192944109045757437526525527937004864557975808562167295818059588620257378420258682045887457199128655054390329260666572303425543789737253900153387957079927780282180120679657905424483791261344349967675231265974610303584348521872477338748162502677810773707613608835964028931879290004565803072293341177472886053813131668521081067653041585954024097127398053058250452891181348426837122926309606766770165676938177203917322443829875003764494650870945413674119682963510711412257916808496048796132374279664986950943967368162894358534370756291920363331188757377903318082313806566959782468885567180961027768509084101365055624562520640987932552534739519449150563019627484719906711578348525625151749336380639664531637649079773407652659241354930339768270194537058359730321731237214704614353634885328473565566080542256358198799788391456035010068560539790269738594746627581032030942940455771303924483209232892932677813407207410865060671511655247227783086468001910761145515688514859075885174215083935931927088584747478671239948072142886089169834246294247156215381469262450242605122481636380075567775691539303994473287788002399679320683659157518705886298108929281313435061081661446198243847392823914222041094833673377960257354760021055063051809483443522842077002548463985607853812513481421484596169621580771508545553586513297764608730312754144985460427127015509418518584347790081336720551235071338704070395090151008737510303518725211895696313524559085462952569041921092504658424338272467317000708871834020558702992724516667100736296776516387858698006964696726481040386159303909130950363258103423686155774801050532881542621174212900676672986552987858983858471820142224485473428376166830234137289233176557979219018500878681120017844903311804320869853334587330198011295089881030236019986339063066889693859274101920346629328589289417339374885763268313327484443762995783295371773266623113871697715677800486289926982607142327784553079192553568783344054556097395641407968201879707663403402487402686473769764507915324043898644021787065672817140559784642271232037703775108711291960030659042828450553829475693824393456774311241824634544485514152973309866256700417126899518336066942252463534666366883537527721204059289754317785830140983998270961445106070746811069864082177592158140394433940628263743094661730322801134110153012572337051212910129856306708959442243502712753246909384856929528094551472800406762181241207870817551837295789842253305511621070285715714667170971289357133338189353957529693753412903092076413260556545046355540482866471663946158255780740385697518773871402372737189254015063433514773663951529530365596219333442971470901878963388817315291624903407146293075205397978019828261363545658313698658938890737909154214237507854891693074702919556516509251410183293928119979321765797463140290393007188325008689966589555437724615062777201293253339598326135788901306369736015572285022307096654455397449668118934133785087092990348149666529881905630925184469922304184737063166700499731639158918365157305112109388686647916778199230449731563753602441417941498510735582513993021347772097481894928910398133309224406354169689653249520825151166058124509874780245858562317922836526361795277857660422684182823842582221308746649838200485297322046027395394917584325312188904297018564709015585700191912452708264553710266335390207170023797006526328912710203978239032170573789348466911074327009233496599041005576065789377475053496424351686339744905046919752356332682859809542399396333199214156405212575051917465527447839240530084070842367664329834941548814662501587165143614115176888240399680626812233042537958053028657275819348963227865378244839492626935046773274435648596219145913294975079704745468643155883263401214700619325887320795856614728694120294160339224329804673818965370841613533702611085774995404101337367159613781277069341743806621942822719453767825538671082959640798389467271515682176163050848186501011183569578842116565935151853062482583002621187426734015107365719593864616330795694369003153680580030118975780488013298499744831755814598368320221649976226650972411904149629632250479164679069872077334060988595789916276753409163730338199318039395336222437819686640061122885131945561462212368548701321342969027628007932305108767637338694538743725880438756645786479017141840669277893034433925794640620242057563163940958661144874170358656604169748039354732042442363730398455581519023523163873088792679904254782243591041209071377194372685198847607995762242477258552273858464931954890122778732665524220123071816415834636863945742245037345101033568771669315245320327972544260257302394866616858345652432202600246895341973011316403925957085754350514221994496837185327335727100606128991756582205470358819229533259401320109681368307135463467028112823328070051682162878139035783958958831836728790058881078336073421592486649003482799472122321706720208088187935226108389739011394268128832482829390959875204435038327917329453681251869915983026056062735717548275898815156376804311515353455263744445623218808515407332854845678111540230411241291816331868698380880185444883894764453583180475258396990595403268919321138846077141400260432922668272714646646943811461806420086353108889940026707944930967266352214192562519853133030717053003954210633901771978118307098016299193320482685969231418357846625460754517008953603513132098369562892362465290392109869800301509693995322643333088147471734689196379739970056098112428324599643410339299039297198865568274804269506041985126264704403826322613437618466316030440119777058092988392143414490163407323708036176356663968830563320621023246357938686250995764362059173236358614426864898801751797889777817178163476069156231133724395189609263197052691856030348524700505216045996913071175437466799481509143594610922244307489573250510403913938140157696869177526269715306176724510296230790656514303203361381031153234322015213935221172203055944993272746607945297365171552815293782577081471401318978975318603805516334099119503141035655833463438856680504434028641421858356416751481485968854734757173101635504099557757552590306158443655384915360310978546608823290455724303810526425081301724591634564346556502179461097438820185961284095767530692390885460983594708708875227010959547631329367608330100556198395387400237277469542979149061654286754216972079789537329372493408714046771785634260149452472337301311885913839872882352728041410792643953925493939809534298521075332288093497077986262637104758391375873052842849329892344996905655194093335900424987644760853801808737525365026747703620662934953069265843342500116632877003334502366007728655433636928385470086430492975468270495208102349015702171445878601721323855109381610692857171756879130957594755927898410881080340492468914991381935231837016946701573172629329016538974228427481026978020386934840816093610804311611235129016324007398552190494620528964548969873156729628714727330588996232955520746540529553842454700693225376615543879174336351966307811539984486247118736817829522837902737288370980175089762015252063731697797982538822408896587192301900191531601482486527030718706093716265384548351362061684346673789316086997002384805361798809056672023008012432118199400220698473045517182758531040578521706248134298590267272814309503482733794211896861142513379520814315563987958997853751033577962952743100136262075477899368558189536539467867112580320686493364256368573483288132710613429752023626162356956531361838834498729619688479633656395584725426094309144259983509467814787234887177225548522799999617448264105678463474949802107645554448687504368546954962206936823106819786509356121235878851875315364558731876706142253977419432452941842084139460275588677412367226071194054910387047110635984447078686311667315322487922743161942348076365007874794318240333337542326565211907295371028117325588662157759853689527348205049237139235980968283908454058405721829670338639022765659079799631390658964227810844174614355743786429923942677470077001100574859553260856030012575062412744433162755507442477907794293449314243395665947917634787164530930911588274439698238374286467587542026741334763185261662711036264883427188789090718107725192914147601872649432610956347152630690608054636255270220135651083217853778977091620970421141019600621831850592136746966150031669136383019416188595969868417570893942989508921824439668850391867520446820169165887644145123292208351349029497626228580929743844147466552259388264352439057167867875616625098171206843606796904609552235712661478570331603688946948682026511922550129363964660439056461085325894535679529524708787434259919420638780619909442632106001069559410530420395062366636065016266372944081394450450548299362483057604797178228832213983396261860903090504327681239143080223423021716089337678475403920077667214029471284797921395541116107273985836866991109594302389946545607975003283300724451961602129597919454218223073637531560863603444258931295934089552600120098139584556109803583928920896141186102334449321084510475044039205416217143496536107084561550251793140279758626849679580263519001343477561457273728785722869027684927819882740268750662063265859141287121824155392970569163912609828620914303818012836660746274757358392420866747607234295732373422013524823097809586999043669273052542776647929973073433651441902152050285322126235669877366117108731548175420133474210786008873149367979633467342302140275183907643609064590724687048054721609637140238272949323882912964400336611175158005933924827211066168961559152388622921297400331514939687938868265822004151730472364845718863930744850733986863373057319312424280785191254748918769569645890973666496871157412059162538774822592660427899077727018856222857364022006587654205772064327407535039953395390399180193112934839077553814394570034022049153636507542578236186962262335838412634679648100325212670165375656787729019519841919706863456766061229588715559742460693893226120937024481681299456868392181791662704235466958797859185098265896188330213709592299889501639723999134670259628864770486599676105990434008151344056399081936843735375458071128370452277387345002415736507923422764167300259042511912078126302039722799096539822448130009604486930098503449886401490405986139623718376625674523339795564276939078198632039646517962402597408855080937664667488678406515148360269739689563866566570489477398879497677974105932950501045798710291846260163994565308796636665013344845036098581833431301550371991615996520868674505409776838441927646706685728651797071094261765878885603411870568500599410692841170828860447458961987296674128605156085276904553534083114799402306772894824884562845801413983447957696351070488928824183453178467033953834298839479006270964579645832474150513935259551146004747253804065912940387728871227497808683232069034135658046336631842308904806756497159736718483275554496306193124239816392307266231188643997309313926309150800995288393069943830667884823860764394962027081783850030590972740359031723016248109922358735467551527458143534089355859984887507791490662071055320348642393058650957286025816141089736532750622314328349450199258707499882154715784524234340807118094490962557734525486409761175389025655371552486288233937319243929829853530704275848461003047392291451743275924929631923907544265475471215305340279891959371526542305339178610582513260743569604229313795942045075646264615713691395243418475124925210565104764333111379963371682481296055585629655153344770762857220955497666806194938277050107058216719275463056590337055559091363363173531560772571603136454555538975244700787088594215101398760727778765698764023595373214355323573159845087863666722206398404528720816551358658397942495004534737922427729994964365801297582232942969094289298177717324401135188915681653799575775996199637676593483290038044342573516799114568265399236036861569484803003643666207662436548939306884685817357005367359726054043155118262529592185008056855955432166693643160074424217790186403322946593370333719224280358178630452210911981345186542710046370617091014160937496093112042849524981590805713225171243760311759395755103679867709336786506007806801343172877575814913891377098315576638798121146338695666276499703897462952501928290269171236546840780980384951769505783535327827983389148959213700268263214660589409575585712089745230585678517677536235887105936381921082848710837060032618732818220096128585457165749571586246337727088256303703852580781705037857616447686559573356903083373604624613456693021699615163954021641738697066093003864308144417363914012459985871608709287651401201908653194747901223033161499318442249417067826794888069145986763197430348335694592029109653294767970248511510453064450635759128413685302876576192147913810452366063366310838798694008440362323394120428891301465153140746826837495840494484735079208067439236969940745398102034159227765770378473297082274242006893008750070124087122709736086672582973049679215411732316656965405435047685516616464632275178200495458642568562713069894997578359947396573650474526395096849113636780070604319213495569877166065921190855256020711752268329402481692827247580253511342711356863857483994991269079589151713075521494356583434926598173224896022407658140871096328834771726872618799486656181233641601043310894072014180168716839321196070704583871486344682606665118292513488817141532552912126679021586754707464057537258787750271949010615239646719906122075344813333452644852573873263135303283904759188961889903867410994532668032125915711977969070438877947761935770053114828162282963547047041446363060714189150406114508043019182968118908583305272370887098145052013026244379488579217916436436017424356906737213786688443118914982007544183433994282951512671879050139632309159589905121224077806724870851853345357777487527276565531195798241860632136675287102580592486884817767936145988548602946202796366091965833309222193156958695509502333427158378137319759867655852372303907901775548698656047794378509616233719275352857812646834606399930336424895540815589608258777827718941001387251933298386190263841721255579012098820627000946882259145760349862617806874058266033464935579998942617630395023729573177305012262817264530031122692892323126980178538926810874498346773040806053337459490090355939603109305269088071789329187468372389444163944263774274952884498798254341439449952804026034930723638699876221270824362204297500683700733313889429424384906704476749664751857868935023113300536704573538809577159375807132951653334164153145930573629492229445834502869949866014855384398082022845670550449714439389099677013189311250317757224497221992655712581884163862046316501404678329072954413515532031000075690659391648938161097205226330565446662203901995639266941510581724172840730817237723898186630222764536535675891076623109282075187066365693724199161390453338335970899841538585133342801628644555696513617160063122595429964270087871744129299954421794521865218830848150053921986886289498957778019340266130727151666220726748873439729953692096526913158009499092871039513594252525370939801315218250416050565246459422807834046238975729950223575388940292219039946444864021194944814803424039653343359028401834950914820360457809635405505976426330409054788158380590725993332758269501840484849055842069583735423005104698857067903685723811076775107563471164124738371558644368944249142087972821180642471816975252966380059753587426551744884048276115202214404184596594106268318430380349305313609517423339777000915022154084295217905636251275312712928758532980558820287801392229603876129773244001678333297002931750101695173870626739031630725824980669984030100360042426097696531517467678955492008195557736131748412837225723819607053097148256339762677050148272129480482367280761448690789545441731326944069106656050390062284112863387194948955632931229468099059014873100036110029933675841987735604110076630695396924252192099974526142598413158662006756477100905808132571955900036518082069802021844310826164947860106140317384225198650951489215857781771365319548683334117948773821633195486390502530780700478386030318035456880592791298477424962433858856136841489626689805092831505170102089499753814905406212658893403778316702473460696308033504014388964297013377236051244386647352601767334374025316242653141924258985151404231725283175599947413574229940062664814608244570894210962675697949766343426562680049363233583599892581584628658081528838493578248266824409017856885887749421861387955072209114732092772446494566380340188027877732092168172707947796298157419520718481554404240537552206117970410032789857292648378494500137459198846601454415209547858947465943659607048904908468584631348554880295171320852097623916654877650036494356485441772827490033537499144294571882256116093691929256501547303309887703660617100788806162087138526978493401692159371993753220751169652195143285017399358759944904430148058830590681359320096688104383117258896546116791343688233179833194910977580597377851419491993348510871850291358531866558828387345614934371473134107061568430216161610902832414233515299444795346675775863433731560783394890786717512538740422044477140213595672955323553701514646022234173313539642331714343033491328819960887563449965201112422245562203389685446702319568517841391610268754570052776133377053374420036283295359766530039546004493512363010181832164010009640556671501026446621418654727092965798183951410538644676890161616616098011515103303238831378233082636931718360107671119369648952719383105017168625023816456468438104039656093834785823923972325877566443624771962488038341582619146723143050955768962706760715893017837304692440902299649862094327217883963756383389696170607108634594223377470298719166989612077836541903250115549723292572688530769615149481458838314900960300395017823061546313746952749160896598948953641848396469047600846183320433056708954432527321999683620123495257848179689455814730721808182655425982716615519900813839251661072528256838265606174487004210980231427580255935599342702671110905701505232044871050094781566952233725773009832831628655857807656193685303336312352421509687047053547883639202817503397866726802938806572872799714424628395003327272698586805375561515771395592015487800216894719512018136974260096531080978832635209011624641826542602066712540348344032248728500962732491627857004857710594315619615320398433191791475493277244695002353359756277478882494529259612585171854869716813295710774909494230067818329217998247812788220103972221625051342371596967811708916549725108445659412942097715920825027060732060092851925880120746727122709988646899111384652102697144574246250440111389767749043845893445144300845055471345863430777366250943324086464774895585160772401640037235389570167185576427095455799415861749204071359202467956203970532380855544313914694441821696589924325485735256285752318542711780769870907804158146797899543442672730194176432700236410170861558745516350990047008001442925779657907261649797130574980877523766418611795604477995851601477869190900640616958704536827331486097055177802256116375130001713609826723716163402087475761881182268559056050941857027185702903035533357992197180606041817197466925080749073271013712839325020538424714320994535433059327211408887849182274657447008304581773762475812958803516088493315700070438218289516252302574159317384720812130930103452909907223514249711571282257043414871572544251213367260767267968723451742722978950613359046464616810417916605682942284130164317201088481261412288747432678694642360253491467523636213001348486052004010036809113977070738011548568756921279264158347038206875169938427413230798496483813224673196583894440201289342026411097858777206285494523905131764448929079116009638451494055259312674352409934558435706317435928282885419938053693837263906987355977265035227196366433795367118345448992888201363034974393353798940229717750388406264563182399914321355340041126567745536305894119179725514736203138836044836787657313379808530904163257970346471733087646027536498394925628504790916644286405275424211131980754569193036634228806984667342886542698149608327437125962700941463246640545915211997511038849038091783944472802140901292272208367915696763177427782439559559974986666459801107582589491713731112175249213736380424918398620765119987929494442549370267105910757547621585098368036043073488164457694137642822192392564711631847771121556568942435766001233084786023304266220947907990701872061874436073339536626383207457934839841925863859358519184561128929226295954339556357605760398664847481506972848050653203005018528221953148659014794697136030357051181022115982708956755087029546575856104439157616383920653901772998406100185335878831155703044508342461029728192750170500814306944573588260663694351385305352994710670635240740457743958234248171833642472322494491470593409394176682756442005245220483283688136990537896172471011532741179857643847863212740565969662521516637364848352082760706564003269039153371051916295830345744077910340150098637415888379028025919484035943289502781838666550308293210309799897495589957966052822760023384204572930462772811040641066016240322164165158454502767166986639277059873240600948650745441935477600959821179679210641825387023063534245678891820964913709630727448302591190394167830340439776568628704883286867708824637667746187535358770671785986261127093613039956687199035544520360100831846268935590812325412609439741008345369779121642787918895983477163881493334318635180672222048489261708795120603200145696239301253653250882192307286639017946963241103763761243767352881908545671458248496977226046528369398210498173776296337699394275434709348222181884375940789859991574325839887180150704679385920098333276908454795584339643506043008687961709914769555392721951639203235217486344599334788281155576234529472781297248164897749848552889963631769575665492566363901808635482076649015760479563399793568924264573643975135420031831171600412278244884453033573711904602139764090633644424256452546256706202426412133306152607674451221975685294072315236239955784192196363472140672837034072889698455479579174431913819460545050096059411323904884236944867616969889843228672877735560511086768914457385622772209648919549384316795752291962644019364208546217056388975465183372317005724871422596272503610445593493915022319015744306536258847443152467017169495726294030708765724284107642856635178966742560909013922105210257394051116308897650379304026991288397280160118565466083424240271080673871416863757262047876809264608081415071161233401683318070850420304513941251745404584992487990449839021356592920319949235714700160678969369741419711883542770108591825920854870978725839878667159520473112748649528063758556628183867188770302123722230472302755535488619385999729969236052216428636900420052719205660953673992565700133873425752625090883234852131133176539589017178341352848654365762614201673374225441930264641033441127715315805469184535593012005029584903755198850270857463687076236369451287129639546961044347196191030730576997272357862437527540645299679238279576343798365336221378224288586671913848631239837633622664569477273287091357409325978973165871012356983475625454597175613939313798921729923776629625632033914323321967731744843075511563707737450883309680315886678727953715070024679513986515878570927043824497704017416744357964148957420967173184391860257741217187293279245128564428319854347796306777806007990858116252355554680586792478670221354968295900932732226772990293185659805629805572363525814949865427545619560828951703537948837160493780010564911771650788183578316879267555069629431108581835245580946364101814435069081072700079902296429061149972377000978809088318723878087779031259734154552765389491413320676108547389086014795947229366178720053115284453445240729869751124756522690271181650219574144784829427693492446010146789989369166779187925649026691566761152711021570223666188193941654726936996087827845679093593488217274419000210038634586358153580537459685690703921796549814902036472674629115394281444380754842755734185864156261663506210380439197576991393251209496424690499934491849309638256116820173352684161492291631466124776316790828424278260014220779442392103083979256296167201013548867062437121569825666913399652388146946713908028337754862560304509585716967950283825903654708178960453155884809095439826511620224499755310301487853192364161526513663926017456138802757665353732160347958654083155700614913414898704954914305476138719291963678611865928959277215331413641651733959676978037950329299530221355405479319877274788042149420674102658193849489953679411792274673085588184924790342903921534640882261457221444816524498778919204011464308476624455393578264463841857167410240258399843404070147783488576614080862351747927785127597148672289027596188669755287148790201006722727550163444811114562048101996415219727032659521633996871370636298048543544606227485464691584560797840010829615531728147987091569334722397959522898855812465329611928960235268242049124779523292890930747106881677189050703304365303510318107101319152563927924499712382500093667327526467680319437992741777975677423025406628954423363724944666172979056201027986955367931634233484561639062878331399928588005816338908079575429635798745806558622066634720680211761760375662227378515501079239528158604585551883744183866710711565515364849614034537793847588372155752016448882778602040885906693585964495513832683482484935199817309580424244670131885291369493534977241058088380175710232215398972810779637097583557398297365029260332632427729935977074412558967774055951450876585143480281011203295443927323336428171461324737399438272288186266627781578747338649345006958401938302832767707052160166388356479434440904231547362787030992565745049474886859176938027197600919040158504502296464464393591673117932746206611150361736371164128309579734715025474448572285164926792918333516274916445284829898323417359739941147517711203265054175520292950207693300332751544062319978712575128409954228342553384267021672282196404316799994266037803025077418797499350475559276461488376459480396529188644737486009750039991657634673951180767253459035104734284998190641520457028021005620848976854770918448938608528949702651473484224223682657601260980451725001599474581208919008258973589767008476014610779533925669213975760774750034893447511615536058153864237663572121058983725128614617788221815373268946615615459431810572199952613290688796560329554431512210758234732181907297968847334395094950023300046806137074785684289379414678156318980935324948801796432977459891844735038038736382401448564139936262684204046367311822565932630041218937591677907022419439357071034141702848065420030495040401956968954090938305139382861623144894140171578762244601509577351179011648084135778283144834745662117682544863509701851133847209653328964635735653517022832506612557352405922177855846329828283444239364497943463663206863608625167301952494624110091996732797711571135997912602458377624631215224789689685529092353083752336516405978035478907546858763685694270536497062467813119331597139042577324298966054597817625283073613996577275594852285719731185592988652225669502898338755700227821115176516585995551395213672578531959409324087074761298427477655874234854128086384638030643491386099669650509741085175453805567561130288141331707940337667057741320523104557130222706457089045642513509604599439279510727122916701750807079785690084371827087632872338104942646719697171792994147675261535151089518851633561061522234323501590541044257985887959268228444862483795956675966681395433593762459946159601950594429572375913070861993391058388853853949521003100442909275964567862863603059475762757739406909272335139561498309911930246692226738198151722329155058014445293995663680012481722673310968977315910434766137507609841954388091517940911883963920949743728885439919629835035147032957665229619074836909138955404732366706150671037789698693839727331576360567768696989413782507197396081591354724736408994076049429731641731182014430114047687328953539060899922073568655988430516609148284059352409953078548266976016276271639959436971721756423001742207182391261119115804661288315161499818180687561634630654047534638031141328444233414343004045239704835992488511970588051770912923650163366119138252134957362006843359906305193375775257744766816656557015527343213647577051505540122151132344452638512344262719934236025702642465636729362057237301694691807406145723329567264578850522055504831746317025102798321090817923792297304886136691908705639390684021156251634492905630218439378701769753752502697642329161641236525076155983684623127321714465569702046568661528441023662329948150719380041401117204639127109378004903258578288502400628443297260009482646127414827589349422444201676044673790012131119985738978437370584681685511608155980935187560021799973413445955892282206764698980848524638680585785934564650403244669411289143409606298123514108451139270689191862628059667599308322486485961172404268370138971283315076613409895827897165539729920290554598686043638196091688386373658871452660594286586215815751101715411576023684084523969960224826146837190549114128395142429942020213590585979330199352788398436039453632699469703876760978911101407204243955516944363064456786005803918792877354204948768687560612159895702322461830707088874594154492007126756301210768725838238100908055508853320628699235692270095490312343044929617803515395075261440405253139610450129393763434933111968293385424160171141698909518147564023699536863355171041798682389984909611633691777400615922282466074450959381003106469821456914527715258025623680779790730811879472589490380607553077200210522988964560644322762828867869381975980868752382447212731088368719437215659336673258575405803762809315115334079673782399192525934490307293479924821113473718450417308633538717046860155830595275148506897794427863719369728702824621509769931310965543421896951840195601442359207822109565648528002586606882404351322626834899404932680371002354383968219376270510319593717660510324062186559295299202329841704329200472939128119056239758283690492130571976297330415096637794190985469853309878091477298499067659813023714616791786770866537383085965450629182410785255899211625237619155873166215081384718067416462435412303128141187467069731826433840808699365301669473281833958151230769296692760203149076321463785117173236552262341591066051950201471690705263645779824489450729133301591363927561161588675478874325811136272245797251691187095005810399364547289590707361239792296637190371012195313914007138614697433239374899516737365721839079735062423640466383847307388869360169602837917720423664217428608130867767086640225965561902934868833003057147710650547977230769343734081764173550578641157721841404040519687921567140633143023353186448989843711149009245580984391411886330448698929365032681215311576163415682077931705961408530745449305614884196513354318126940430470653209879583710277606889940679572996177229750904098786080844081846500524270686793087264023341944746334490161368578227941656037676406066534681357992837367765389741295092106923101720127631576784316245560342015625441005312540222619716727414004189914650512530280227626758721638085587406109012399503475502413051259855003427708942694987604924640006390371464306165246989719590110176906708107943711726034338000261497446827750508851987802708795934158253751659686732752498061241899587523483498897316019591233294506878283800477277220033857321172808350467747228159015678644106573924565798478029808441388959211770749698891663136301114095505582475518187570289022185778777694707780805457138353812722243903268891307834884065628644142384663880766538974189489761462252156965174187569967250662658335691645432555138973973702887459884824501061590557196512978519631730566864733158701394431605355866438733232433699314961790357266329071521834776075990223366869760612894588314860845919797150346488102199957529242315369096978816608959414573263155209080723049885757680230349837083345346680529793534604656481155063858512926789083157062763470293957135992875479905531905338099378158209111377908295606370599084478327592797368352718403249369770583849577863022200267151815134996839140614912779650479099444302168801644099389579479027061884860486176540726972487523876924710373370317223396284586471792848247168514729961854869073224626268011607880536501928816110278291086864461987204611492563766667514627083745320225567419941463822503962465148551923984304282113950852236107757083766826982589427008151198382594864292672057597857316656232041452492445641139983479703666978593096678711005594234160122915789655969004360168987214534405073688280027827828590111371023446830572602288607485047726925526133804950759681402092176321346924685413209686114248696827899509743765976723796684184697240447298998074666927181600262741376175732448392441511231476651775538158627589646520988020696141176302514249320573103206864530596929081025715475331766152848269978428843480214978598832824671127001894702966595001793149160002849091057837277697128590832661393140438310112285393632934936289067370492229261063039405680574933725623515447731583171386568761846963965442674001336765817460225054403622535555674115274446164898159924540346187517771907783740401841689724342176128099862663307174582455355305125591594540754333289739205588557408554140152917115790684677538264052770263985521872395068574017998696744438995074213704870782661012806429035099862596271683505434709791234630219718077166095307063711644437569970964773691693760656026918626601034359598379138283807009988469594947836905971912884090803229620377243344073449499705403756836634257673487138703213715707666507931922681000772524753959952172793790557052058184563470658411711048559848386250545756378612225171800033579037549206040271669050734430354254140235235015762384569236016714720889674781589140780743955721006576743782785407028015008603064240383533206512491869156611498665309836456000171766023358621608250501497311437785998473799657686287218686220138836207696144129205446699051644686637133908578669052903216069877954716785217947971974343655835722713054883955617637206275902647558662254217863062181424576374937564395977996348182348836510729466251712576173032799500359995316868921230817039090659109950336276697418580549118422900418902444450224416996966990674767338163955506880648771681643579151895456256820314518100132604734022886655461657105063361178415485165910473897115133381230861942601695297065895502881780341547165728750679099063344973078160476568969486624089079669416612190792503892826425493627232973362151500830338275686513202811783690636710852431592524685134534345912684471920326497046302941043833737067431438182716952010545520321007886681517529292307378994173202600312087648317075695588368428917652033954775676765568311408653181741276942042343534182704283476118293033988324078683765789287408676311718948923977860773857509027406921796822948485020229623937156308935473083998068068758982898491442958103850111093194908622156392640899713030976675493533309976052702697040426809388916209958867111124399271655444301097579380070206837662513549480784760905305546136538980577198546909336394727117429180357119392836456756953962561621882467535365318452512461421293404367693766314494366164808475396603211851440899189960950055544964266129100513064306979110656582498205161675088077684215095853337003815103038937087992333382261672580062022988640276771457535443929341157981291430959940736801244073259367953868418757196868882861750879036651114612831939384698740875790406607239585685816444862326520106531071166674690360780061753951581320178760291355712843676351976432794328109590835818384699209668983944680465492784059936308523240072276362454866394825602659519464849825665085580254301838722472646244153534531792676308368318884542298372164555509656461398337181909053927271175825634452829940455783015568134844028854401413962854929793226657808398710054318802086933844065497744647692574285740220641735463292175798074133057115635545593762010014736539637241833352990461379412040641456878575317457618369822845085238839733127405903339507853129743192126141973176772815125417261708474538147092676067384404780985064650416437401281836466556581600204068349812703169697449005833998333807457157513706115094628476871737422556849639919466290937899096163360942719808896079109745662113073591223566794061186944064653419976732885517758595098164867307865824131819889085815872614407335421506655473088303179705354870923731086121037758641706257390223360462453268346781400458707043036558082489925864469219626050268336217221240555424592941841819691093920451911619342029842963965823518746728676634494016110919254330106610104931622918694729598432147747010392638655031918474553002664438240408387815863171206858488761383720241439112831036676341318349909379650830553173687427067464933813036747276505936915189650290982020067231828526110807848146725569716080718810225454254722978210534166450500532901271102254643556327920718960579601481833433330497522870280969997995896764765905755710045349684435411007702510670457919001599134954747094343509086229124128657004603577087399144724927498570092843004938990740369400214021559942150623075209438466094606008669179971602869733639945821588465204017108407926230337771465539498330529079923368637579593172952247533975385137273229797147175273258800618719067805473199889633646243036613158953988122974684741933705429418822049658312806961846817315118535620381413064566227498954822736917472332079665152460178801747902562392066917112400195163267162961796347739622307375876542202190513902708046353721172169721930248363660516613057266092240215227654097775406431828331810409994871846838368989026565925027088005633761077133477110868453593267463646299426483456032662294934696782691923264676832791835440625884240721633456374364218458131607912334599571630703634658292962501275999901954412301750608253656635497814944943683485729429734459930023913648740542113032357561752705635503005718658377407922519607556200488143404466992714858712598185820070042608566449113959338831006135233766205089211604782433616753910154621741202156228701077220067214552951069058678214351088278445873586012903543749745304911292675874144532650115733990525481634897374356716564217068441617005355725741610865502489037820768731305578975247648591377933069728680612912863067019835456702108035387484986699040549048769029728151898566075601595979701924079466891794404763227775648402933982875551025919081606590036409837010413862904181971005733151598121344955375008441943828930874874687098429865754725928640328251080346982271355522751328724888983299427252395074376824084783821209809240319578454203158377308966297284885287918139253388205857295329323273811375574431666926390606349404776798035757910357209302012450202478750160255523351365853589815509938140726863892101428855602703068538744158340080065623752161615781945981384456691336486026275663834635799073270424572488259324347628982521658733231985564180840479497529783464823351674087555530925870285691854246415594717725124306448241003292880076031238844054392097584854740529264480841797299868730146430156255462935220205965283817289003058956597653734375466800114220538388733598496820857525285949562109510797228573390031755925174769820252075937998174232341223222852332453479649885314104433062572422570775968873784840316348656108792429980121012919956594522960322118680746881217375017499225737685086510078320733662883683925765458015708743849188166768191356551638572352295710172593796486657637486736712863554412317129256571368940817298308152733348497799597110223907601756200288578334914677013211103428445920950928647730702606100652031312193623786388350476357670103034739814447819409635672229903959910335485987012822752145756276019231022944751296258425806623462298421331602242643072137025217447404419099620869335223848255336537874179917905264766229600141741914071026171632464063127452864911816918001984570884387333901366591662216540440538831705236249785319604215897659967487940198370510646107738760491268867535352935420214657174939682259892963192421541290046805237409850585241861637446268205051705139156251266834356732761957512603304935546773004696356206986659252457602184982183207090535256701278720142908639159654730538636694177795119764564797794067539444871971690294563991311073301765007324116667364949143817263711994243010538029074889678267257769185521699532637252577374684205275664803991357584754441956582472505143355082595383230988150077439298939227919508791772457815274187201317533705395895933821463255513149241443443204516774926592590023344472121712971248233107248904539472640929367604005532115038076427523401345407894024410939573039503239718089179776050050169356525812801755529486991944233736264865715162812908241146113707478185058248301804591763460185212287104213012240024246361425095369897354180585306461850346870741938971837118796434618943870193409609470568557737838708179865629940200247471404258500086209975617484603884351122536738366493442106671110663106619713923474651369835160493661807133386825006376553801500847795792439107641239593723059423287825943668490434072680605845538411136041268463028537687976433036619880610636481666824481252358271668632926092371797231513269615650448826348669936368646040404624283459998542685119991853644778840604000745747681746738686486982789356576480506847226767951536202314650704779406190007325392596194854957631299753810777133063889001433902578438772643394858972169659936669418808345671728817980957234124601557513562883327505240465478862953259277494917583722046824604811311149437250245662150586444778195042996713868767208657408577711364971793206985851804708034905025181754817004510380288498423443447215780794920480157794836385352499502665048159419890983637925564559660906798889770966023595647918551080893678539302608240476281641342093864375400846733250218626665729674671005116685256826265042587920222809725050360185304118657382508888759423415640246276040289341245991989787978229029155753820404211431650671304843834847280206377291021939605997029585686451493748370838748172488061075322760363116813376636697780379335194762323321629081311723535625895093262312445386675550600101441795003139142958137656892467795457610977206749405198633182686031796280652735073415671489912303905881095150514832889313594533979536867603547856184977324789355076553762016369087654080046126831322820413973135240477058851988798787681327328959437074583988475760762711752493735346247280470983217334581520960505305740568898417282687977911940444842123926218913529848895119636308162049814577768423120429402900226709821127169299673562160788099047298890597238421283651060568505428585029586391974706670990171573405657624223581999860279571738241052583060350107059321248617752994567370842868228548046499026599436599747540435698698087180725693734465345391435884351140580235557685059296063087773862951861352021325549173704430797214055214121303819493002367628556763603535703239364070367413379770882428631054625157419491975361750811680043514672127834277260516170489171415673699271169452220928986829510096872470137350302144080264239438526574139020147988866588051246849138305670663536703045406024557425933566517754907148156432974807125886091759323291351038197118393654143204160087697374704239487448899120829557986973099548072597340912928800598318524537706141550401175665567822632631612773931220193652589963812117400261908444340852617698528105230765666746351641364780047767480898248856421573554431669620199899353012194832070937330948095845992175948879716253573168282741959325158348774324939766192081093456622405821112979748697635976176137255651787898945706619557967249858594494994925090409930561653729857115940311200625672962077333194380628820591121473318969037689858229499527335301040441865590454878818695994631819267060604981529328172565391336591653429471077646872906691104945829951789455017833353260113330459908008862274827139386009919833215520279429901372704114908411940748288105334997774391048268495573941758549784780865289996244847229944391818799399046163407965178790582347202507214638493352055934128432879895813692047379776347623704771191030327661833972623612447068357472963773206102617459310034319201053971804670433167995817274377047009375658764039707204764345658376332612801402407660853373768210427712133399113674599172023080926296518461947681007774460895572748298305783973754239899367344891714434443778250937772482916864270159173282962713247536701342570331649288087704072494641890302431153952648924474615019811628092459340192170159956063947344408692151829787210496523930655350553929298703981016288141851561018274229248590913019912643351722091886218959653098753855964153179636178608640135330808194423050087013136442450235241375625253657975345799771906540423135009742231262901706243605527652058439995540991180302377558890979150087452168890735257485429873739972744045717632699947350494103575154212552691055431803901611913887016412359665025460873678863741597381458480688398078925417405068748866996595764412798164826840007432203277757960581788885307536450309034442933647925949726308302701189306650653823775157382091871432305065418331819703660443753748797654013505006861397717928852466215439027989683778449778986875451990977929097753678802522113077024229371817645721859441184790609638495952542463604148928876694890465348527503713433068878424821205437381115843985238777618466929735739102636188832086359590355930312599324191935154399066155622905882144351389624263884397793585339180028282259137117162323825127216478794628409564770532108619752823972204853255540054551250163381756562137713603894825235832802898298229268557407587459585565792481244183033402544939164967184731642001919999002473905982342229820707715425236752684298929562172481651996774990394147904849564968409806755610542705219459402016538295318599270473841725333091995604057445657123056349372749245616230827925298165539321423910702394920452734464219863618111715037978883729085923717017223695763551145752624220445773374032068659598144350412846592247944008967412582884174584503603729796234693001816132394510683377907335316218328520688296447529198205488537050546733734354630156069012976743160244065213045732096823201931031570322960067178609750932549060915232077809386606947913023380185836575141409271895768321385676978648342395261404809961656026308852865377509096645226948505965856272789558016071042671918892202543581604081229661900453620903132708150027842452572494940020231387612170774491220329940241714125617362648336113629969064743534421265335707685729358121162599811917798230802804715726391340985010932258631172031098012774194355591407113252161106589761412089640582042769836212661450770036769262316697987720175992685017314345174483811881521652871341823062753257173001597433199590377268929430269935534013984004896463578623591384861560148192991495099380411380078606439798438888277909453993463358891813290758961794603239806635361940346406082835134857087694119196279276161992210792903505263096774363698327184640561172354228129086080039692766891227433216405726268040926741298310989408461107641454002063996669068071030834613253586478557912897647905436511213817981539998072880247774099441157430753431072964077306152061366857083926578470369740970583336301821088602472301374219906748359186819693579126775775725696482031850267503696393891395715535900131368109708023241510406244841012786743101905452789431464084887663852699909386155652432209967548307104082817958247704510634229439710707177587688029803770014664666624852462764581372099120382858721492205608303879464654864210332000566177073796487428524593596816302321656722611391420174570001054715557426756941640522398815817543956692732506250516729210242095171876752897576112803253183667175150167088530348825525849659558808102509593502848301432009662498733841065191999353021273326239226879099862668248349454871228622870350965704936156826207749734870348892536192779407153742290109675664323794836827804118922773799622046207257805033084974565205925722065764511789425448222351416521278028257620307045193820956262889806811645596977453648736141311427881814715602577148893422617458192953463989021991052945702004928895779748610179423890898027059552205755155117910090490931921420685246132891756657439789414782821596750221593243089869188883560707256146265028604259263959644063990278910756192760161915292709855557066800502911132351214878605523980149137456970302398493030249426055039758407892592529717909747572502402035605104628990308170064837302391545476493914494965389971579851153735129897393313193375454336810160448605450855991766265981743323103417169510443494082656611768540681231181519160395336597640354945479174339843444092318616972473644640322892065877660104645911781773707117576305525885705449333504481784081793573555329569820728595671699429370327673473312303061713458781342633192887802069429289807742754641254061393018296826619397636143678694952483437689891199579879956174344991039860685960270425963928405426723677010193687369765509313170746337595469778687340872296110982046765280919035985798688154278590998084371124352489439877053538729304419803996521315775158328519468708415352886634016171293638966396582200567383959899435134040671346169947690823769757039902059857491257065410173873294084382668063496969160387252944615889264612462778920424457726053730080385840709139769483602883827662273421789640123634786090326321505424377645005358567289803220921371354365853006359127506611822721606740653619847803722590790373277177912146384559611919697260214701855751676145749121183362722744580952089455858385853602276608249044914585870474568868846766576427195237914083166107440882275519376160230484158991163023181425323665651250853394722918841846560963160842526453275097637692496887044709214920993428191626007647271877382247352305970004421010861599883264647328828019718975988859899831061643306393379154484796163961004758461750847823161131678880215875846476324137472047777973158292461484418189515441581033601230810470754944439623312433619319622079086620073770236068666403678359275999400986873364623967295823788916370760595076754709004334967518668797503389652305178935180591236825235115115135683664210044020377496881254211894101225929481896809364826196058319277501876436336429705655666739902558857232934013854317046977069609603379005819184287544530806962479968163501416769406781912262070181409829191076145174779596092208345340140405095161914575428289316271019908919995899905614776122746964138207840697465782413939974701903402120157002237204382314787069048538915206809806337657485518247278573419016508198957939344854603768806394291849571821022514079542258544693286302107203629932794794819887141500100670819602567697969229925696503961752765854489483577190553475249103333666223223740051620901183084263059055985216975506585086033201013462518022138880792275802798724389955990438463869926309451023213603399865771456738697267479092829264798373818425011888400196393404638745333671181919862012817086495642510281010617309304269254857522425797783709226199376706436644918344997164450499296932768724988612198022046432200627976230263580026613925958062637941011728571116424948315096535754055573676763901822009356746216476360035254673510206067372444923937780698329548294975592273914641555196762922538876557816752983208196554342317496164469140010291114753098421548747872245665242620240169313479772440304856967028815631584002794461962514001501832397333813391222388179732862172724676743042517495094101840409996334094126993443958965126454568061400507372815391470740133807950362349852617986941438556406872667722068673069036901774799542687132776108860571068190878055394937911892680285789874400155321520269175173018508385961361497495745415578324648239987068358167416763013913384037700815911564897822666315567118663083588017338260913811854378701461596444561446921060111467046401703158853390100190205071797718867501449177101605777538075562207475015836122961566096073384334334427167949942724179329678892197912520762050466353838091938349595515275349601963934532348045549507932797945786905931845095312951272190630121510935013991412896911352524648332224748791159822692737005447890934025868265271572550605168565032715790047584158214278521384003268884905812220747689833812393952673735311888161847128538465842313867585353556900507719585938181437105499730270904708061659609778511323237427123121401432977701948872796513679199516943768154932000838749502751487006119375456765072179768093520537211283105313809436758003731617048511384161799035958906018478174140815262903044657055946224912538755922006469350081355067625553783644700410995432200892085218351019657804640049870837048897877223138461403747294394638489310812068520344959388345254578715179682880999895848712469597988103660217391591991693385313363151793032305881062947577119061338943556922934207834901385133563956265674535575084350658370695620128553590532084464925101349411295210768262897737422207747892783084911483330448295119289448952632472480592567081286770460069745259345624846939121733111899209166044807059889569910045441896638696262663892292744257528122701387479845219178528101896894253114114643166163743210735042586340942824348560900231466318816755988104637437880905262184424688953870940535313045198734657379769851747508189085520957590059002536022661727852898575497391617600800378694816836281965471771475745483585130900681246865541183306265207705775436495001966729704162961306541905723484817446201321110965392663451230539113818930700336070187644786065483617991344083120895101815276584961194837827983190476883793191063914111802113022825868199708893226837988581854052728504777141787604703547501249992925519966853756551865181841252492335980622437512817443408752632353531010954034972067032692200421090949426848676017491246172253123506009760535002346978557286645758696375508572784869870902189135830938341312213211029774205324270618950272500294158737456788790668804783810033192138463141253184308166746449618134840608169434496686151641171347538420692090819556571786231332012883900782157200650239924149664342246149219681040774811863898604453923419280986031944892818234855536276205132868336855076735156742100973352663181685822562290541034896491358119237768546564776362265493038773942977333720732231124960475846186496558063150964417131131181621374291996972553615936082413900761022444940015232869291838655941727652467058861748446790181581288118416062816470188402748262763817864952136480692517163100346236119561788732344679086041479792483270298829357848109305791850289597156881184360940646742861458827446402807134458477340855476796174781584273059273334986629425237974937888437814058519920368021265272870925041283126850089138273624694106496875590555538692724034965040226208734317632924235344810036486852747050933350154862276999949099094141429750511259954405724146557009000155732675332773439466978184842883258247276666927050785237905845216455771236613173627344961525939637337815214711232281905422778544289206597252266966399417412840938807670274123573686388849120250411833514073431229537058164911623082453295704192725082214449829722946352256178303360556894224079608198171469477132130669192075881581345553645914047796169641927871741891761824630807992637774581238567392747529104645832253032343254007148826934221725986126684116873562858178186163073783700217043885064322588811305567700342893102954264466223231834850389918730935027341381455011058679337437095575045359219399997311273638108645990266245923723611485869812495068162880611127163498134853289214960344083921740196439757049795316547022529136204973238211379005642144869631890134396100393009846614810108204656750803026987360462799921339048181716888520437609263981484262384118679987403227313026989707445996146835596453129396007226707491995034616268145405175477970141453531501501194008474935501557341517673534112681905428415289084698960902735490345996456991607547146918569951194145607297591926550949263051221706300265260838562408463843566386748352326981727310901404771672095677655571908048944958771446570457553023056209327959135556760554917120338848794973168626976661080634716387345501273600338977752772685937654364215922964812137100232493286016934603031904832891704304743621057584387360100621273569941418093066734366761960684834841824374003939709412985183431321446685586649299294104239697815880675250674330465378570303639193557875897445491280173438090802364687408420459501377208372768453252289376056476136533495188255200840381393007544762076224902696554442944374339303535404302978158420190952786033292867580330713494108075419762283709012678637742974519557132330513077670776511245678537784555543892397592295723459385810016713425689051258462257072136801396459839552830240475654846443098853601160384043657726680522357886844477638912065796210771031707352083207469190760107888130817643887063437538127191995310938561664380451900458333797320759105925114910978767184833544430463005165454638474078039551043202267655766304856376498208954115612603223459835215994421689182071669738036562190268869152926792365912817182694383908291349352858518565437894534883465935325561368693714592224384738138626238110957055875161810215580399921742220741284446674412938974633598924792592783486043034088228740150434644913104131988980638276287496522513107899706496342144614016518973657896309913150324959572232986073310147568954903354426736350542589623848225667593434080565142293297603669092190915060767889229368686133411933093296079958323037381233265898697245919939928823123627685973516741667291836089607737444304967885285246930283531019121409801230134293284663956847378350585914550699924737892020527262282355909261688683813496079961696372060667593359637632255115380853173543137221618289338762934679253033136977546200510426385355858876006361853666287639528033797078140911515066916440089280208119284008865546456568956802093565852690560637900780698911964777500846404530372930933734832266008791524334261290653440691099250581382609509845678986359213950200766386035635907425979641327530471144461621029343232109771110749201068017814914987026797200726881594768993197246721505682227325677839032114764443890098561645432260647269995739541986836186435888512963800746475471132174478133522612009223655671558834793606691230563741629374033006718328791327398430902878704594912736285671464206064968643903739088591523460200254143855784762154101599667921641113294290336837145728396041960157856790391151589786388336256764361398833914278070024385828945360143990360279604582158664096453968386549786147116904980644564442781127817634226672926081007525217940051305233518824398383946830360458877614620730641502450616206723624566015945512364407022090765772354180885584258500146187225943621092387237740337711325937626351525847013423030695031289793666106892395290298480571063519090841076746474735893411622312499842848964539731810314248044351654188908404746823503382282335729838766456874715555632452022460656218962380704111623243447740422344059435200081393594519993861193987163465404179112769217340256057875285908143100702502362449651623786372927533306369868454727069487759026508344028153920894782345218700548032176423685142933473237909838028093517980776372978048481000825982253691853209463985743218625132910985047214256320997543366839028109415500910853011792342891095997647841860396984484359638500548837631354826121887548191934288238718708837031828429260248014478349570075771570221578961315409700888328729110628575238748057154982372985844120685666359381759348772273944890244862441302126609245714566633426702286993266606529527956015322294482121359082564788803910220119824644851617226935273294633314598584163266520159456549479619829203902577356838560531098321937115267524206929845554421056676073682271713082468721602932350077970754556967983990485600468165272607608020941360719153365838106819690328157433015245541549486812670478736217867412460063093838179520141295960167428917731407332708969826082425299157580952366087630891611525661730869687034015907101148442513658920099853950267770667463031788275457804247218659950478420037702724904344254574035027054774054964758490161306384147606533683393009230373377588002452051769776435161964182477516192594120979509703099612117615348613359828107169328208035255067281949051572158881581055769665618766175803003158634689791033429144350387714047597567568655366983777206837615736217344353454042608031216468029037083351746183405639363478764110574348685272060590612394390059811951886330420231724921595824585240374934804777197217061883753940484132895821477011589934828809825757774167122558579837975894238249490338124437590264543628524540932350404730721401916388755644819664713864315368029482990563309006406789605511969182464999020364186645665397300186457452448440962963220198905108434778971180271454470774003980886783958118227710676564971622349515772411049331882122936105995221038138185283535765421049167455428383297563772429500138852869951988201343927772296816809513371245063158910815154307347000562412460118107089888493295489031318443996348016797967251102122110702196860028015396154380939833057103009663913500106873876051483882649951703501668922433552326146741263251712675094271142087036008604004136861443352242093464690704734339973534563115453407511484479297318451242677993982553160430964845760802996689676597574310641025402591287282668332932477183683243659576874476478165083420559958560921728549684303747751533466391078095716906636190825718077431420943823333068118899441252536282116303666363367840614403250395312878948879968387432955514013988410236683609188767615193538004491547302380703409531153355133633863032799530385912590501382249401529568316961948354003816348801766640240280211394191589144470384945441893245526799173092948015193216514707342821011506595680202097610370329926548623646240601449090322982003551521609248342832632318894796352861780364937920036675631021069097506705428045497698344554569470399599361410803850454504738471305061435910104788581965453395266966578623881432063435056869130132640936556695269907859680401799433102523645964226762747949416832175110900376554645616460785969161601964501714356786166977396010922992931911062332066429912102851479715760779797672314913365425829374593153828958338950916406697863799867829723347317670367382995055169849209050022299259834274352499220932721185646722031452186265845267183774507415430027504314645993440418865143995458964107439565314231707196364867742404541949494796068968755223302133730092833337514998889242000751931157545247868948846514199346176233353184024541746291519360897552389955041661779570131983144266349001227798729425249265541246036449391291773993946128365311289269172124607931383371210018225745662405117039248102598424795810515410814379843872316709329113256177239181415349577145002814872878951524412895453554258500034666973033200032813959105770081991954751110371181670061795938804152358565906843916191035285438846828893122294372940359383809368869046487125440340749619542036778974455241322805158782358965440198835198367128149872316495744358987354797692676703172655906730608377256742680180560054964182368945105705071597699780782688181290070123784007583293643738517468185202278194052504283371577928016268029887843093623604004197162291066620522558993733091961704468501390433183570931530531962859208263773656278494245083728948065215942392313425105629662236852321161518225832658126778920207165463438090584954865286215343989255879304723960606892078675060474045608212318795041958259685651346522640808444180841878553292603005687326949190259170710870693836054774514056318607604729010535396912015797040334697460103925442255474396629606920986725364608624119923320090018689988349870640359368418680078806374866969660106619725295496311770602213613581376792431231167450177257588001543518927718111570789795873704257575855355621755713237965247039545624159181627067314714490229522897720850248883615287798624769783028228674017457232836068103392939749186490800907134519372827075099928286168355365326893485181057511112946676390727137333802991648963403698689558833977600770393941967956741671215848261681460417246110559608082020373158263233537392234828457098030247387182756040599157917535911027927596822827693249799869321099166811356346600071504397569221823406471278999526297883976479468712459886133652817850467537259323412851876021169443513247069254225919325090312775969423144176500644625016381059480217394314224150297206795042221939160172000485518287457445053124943785192366578756836350610394020549739109239679796800342857901851933847373525713789361811125720356920582764766812399172233731062716765455158990071257454136668976044964023814265920169763109664483890053210303787696474669106620432091649079321950493850288652238681684471967056395981596727913590090243271251837641008129278014103212910562480533353118317022427028369101772072831562349571217909820433966594689746941979380856684498877684567478267796962599903757044532942925270963087359114847989940360900855173702174699818733585609153555780456743504484872650888606971652063455533643107837851408361705788495438542811102298736325539047589857463430980086704643788914540236626739633452525498158717340705654320946342694588061682593756411493390753328595953755176460029132462034376485199725632108767751741557271878080846993589185340983454246686112637634907657455700819960042821450558751460513095575610214704115934121929442028086581022511902052126514114150193094514037135819097038308911635268032613326324921367722906450563636581841027479187743709135800419959480266861769060905330399633422573931679161287918020900836074101949032659107449586131926344352137281279205510694818029971446788638393039926966087551514941511623548510191678188583320144581749443642391194567677371408197011076644749666030601924479384755330669621485620211333283260838284960629535496178459862467052877354549051142906733513666951542986784306357486207833350521251680720644982818047196406761815226962371459635231005648469439178757028911069380249600518694890720962816319477470838505531582304319337344963670360559196261089694859504580677579268333034180653403909383870945945042152881565528632469630220932099778764241896105592283634231022483107380471373869485266979659491066039471744171130237831160279199768043331114815141709537176654933915463142061998890988398848874060248273006734403756732106709581539434548258622335992063558686026557781420589226246284762088823367647077002414716145968889390792694157981630347692556759562660975918273699982965518322931247171412216429026950076060022117623893867289586942196075696684868958283449330319186480225160188035395329464780674336086317290062025910525989537511407547184604359322507397988617145442029226342941194461464671121413715207028628955643612410452519626728178241073166696014870904480311720962951408578072782832537431011708557286110845541562769651272685363636930144066302537214996095813525557102535452746824127775120292827665096258492963389483321222996263489742112680134471517895411305720810477998971741744788495712397678739266447061946649667969321012884546208077441034888233585662397518179531827189386248970317992638944320157881741478002298084240895959721311049576956937943264300146616428226424447991838191508611764191501771067119990136847332836444952565213659634803826728925127720335121357313238730167005017638460150873149222172649920837671867530238320427101179512176446701319577982505773566487192160819980514842837924273090012454453205591663932408232972845387672146986111752862696968769956861521413416610177392845061019808618749041936964128194918129104086059517107476990299485263149695405769392758885577872252789894463951441211845118686106755140002870652688336051862931978489897277154950132853225053493681512426239504740925384046122007896608453501887429474378933256475456134604677573170909452426892950697375996159776202639140763887364389744572195629079651590288185416056584499470379724650785460392150787922550241190436400606600217875432135293304961324026342358291139408825205932331768410273073998389727144532968476912422996858660053934824628429633096177384205613991356718156234001116507010618621853601496648380228547008944932950957298230814138072342643231993156783649981285149614717412309368969168807720856707635234801788278444716231352936793096258446785301536195519782043148416666424313103375178250240594233930263783538769608361837052518980478717033484324818687865312431613992441597618866801029163080282548198734430425180333587162059873324838470121504542771583743919533746448097343791950959329852478847789965413244271736718429518445098218384398092052002154350127867258965555912121892450719539186054688957178318794168220921369089587018395852281785741558006394235097313748798740634462899218036961455051647168336587695175121618117794523326625152811791234491292869555531231367335182718302999952181439849464303944671081626489174443218833401460361818780251421455556864674643350447005162516967164827512022249248274335548249588484693850554329402404618583743060602500544188254083488364783477806995009798485368242118443112440946253829785057716625238817840692513183100802083718873692201104575620670353957819948964398271057062787071744081521489372846659948250917097633399213832403535858299574000232446270426017671992362115955389014951871367077137393649637696128851496285848837519438444453860331196910759696816328305440087384460504772632765448185742947781332473297917914591100722474540587952501640554587417704173276566595130242413223376812638436057591373945669888409056978732046615294812847246852514456823584881441519025013444741918741564950013866279318403769047529373738239586091632863172268252320491646990616371132980802284380061278441025212536532147887828189003879512383139554468307734210344567012117613003660989631438633833775649207548840197784973611794385095214591687608819848517286173591805431023218806219797564907255850475498427112514158117191590059633755221566463138440202099164005758881832762507206023574391981911263508629508792350062713327703142540693158593860734815321745832586155239174836158854893825205134051530241758690277445586533293180808744200033012664694964832472430967014109506686299783282111023453919025016677866486865733481398942291760480454038048883760826518115326119841182999611273268633414367542609859062729962503846924540887248668024033425103841103631844601021620679616637153912829351713460903299757691852073965973720898644645305101469527494928739947500742308147024503955187753526658934492120675240558614212902397440547726612996480838799631607712231051790563178519738267480626653901601856312610877539295335465929619284555761758476480669142484177789619839077595005082802195378510452845613243874949203880547620665194010834058416258666948605045686423235694722108576085487721445721197305738004110869906933213735803332718795528233930112748279990741401465213641718985997373656132987668919166587590207310241887599600480515586218887055187467625538785391516553470351946255126315546876132415838626515462100812181419480189703046157190753242681403333494594719802562448554441064152916162939769539722549007577607334627643552413678900310487712016114174544892426454691757751209693650669077583869609874023234100344059733884008358677293442571327587515642581548707479365318170070950073285740538159092701626660766515267922586403946542449807797741473220179955413528075414780043499688515475582185045311645524368725520276005542570349222050531903349684967185840816111755121657231498172041045607445822228199656937625386759144150873971621203987057625354068214860735301145211771255104134188042627169677318782560069606847500415569353821983247200842625210416086228299152567430190586963594984688688085133762070369661694128920428008664514100436060385018109805050432711890203881884154914289707645148528879445232493731070754039049232663631752471798543365551856906228612946423354179636733757678987230013674387339015477281926505035787216750957352249688239541508880886730159363210308828767132359156777885754276728830232355680210374643036984415692893747228202838960035120041932816295823976726278172192280827413265143116925041761456954819748108511710779543083920893393804577784635096613326941715402227266161799716482497500989507460631687646859997065043805668203575533190636941204858627218514057987560349878712205586592926643523927060216440058682887500922327504891510450798327586638406361638770434689302076577054010211563710855804372682600248598412572159519870749080096487440842429374593532803088747364518727317508863738553099373239028771177299836512936958455262105166246663831413778891732934846256544086277977279967307423609418781057091237773183628944769610821632119663166898276626942499936060451680990176468934178634570871260815820236099858040630983011680495295975316839400857974555948137630869673632289843805351993635234795194274161969447207507460289717134672550541723050766575900549520694435387503119875340414028351063761523032241992009638286351550408015632876261308448522776333658107317260338636528494267129871985536123449435062127313228532656108965196191219234645691651070606537952080839011520884318711979940740008619512158872808922203582426336519298838629040978050893744399334424578183187477121265852881425498412373404897270532027442256054502230992060563943375548746352470066506007151556413868956168418073481809786299739883361136647915243096232363639391388004173778698924474665891595286231586885055222416470466793157694110197383523280425470315684342102922025922143175014693569513029458141371940517074372462344495918693618530630464403555219409982549388383995445612820188366282282290671401500165068704123006982693479426488192264421510044249422712721844939736558414477461642669782634122221114867439222083540272447883788852597683029873944884145008356714189487906355968577636992884239837777472218433491463174054800317688121492923972139443116842994342230575143020317843372807712470500149801203147884153484889406346313303574614855301504848381215131519496662137442190307137873659604302139604085421940841366115508532896768691500600104398621741012714593718783312298764982542247490540510638252626374843641807587724274359250770420654671237738117807216231221483209526305202242379242282463383900482218297594581999190715449725581794000946274124524013662172865741271545371135814735221515803106531721685484673569296628607164557810022332808287286563882460987183464317722286760421045089019269962711348260398467804641696380848020491150504396352115119009726222440282943564974122107406078056224952334311169266012487716834502908239051422696968451072069003187604511125359987362759586812344921087709632604052619570472453793318947618943051597160879422072364665071123182880002022761305218888503058198166883122001182772548175687351270332918605989164870195277840358727052597528641040400382911432825252868461542175182315111464181402060924757167630119322369607291027562813718352319036553967553197201823713329375604507728299418733067855061967056779474133063876215002842886636108446774395359576885989084649023387993428069536747506318515340285618696985430017929595985556834931804762018714639639692787039648641184921065023403954015794995399792602940894204413243414998074945786396023805433859877122280782707772819163512729859958675731736242660185006798388295348934182596329762735669126573944069642559063263189388659778066819729441544236856744482357759964199276087443790980548596240867752061005927653299003883424459045116534326410428893291931567139826649737338793138489364748728059972922057028297739022360038064835772800228484664781927940940295174333455422779738763039438162299217451222317798562683717876571834530240245685542832271592107866503359865080980306858049372292050637368115124336012775300856519397216328859169324107767327332415419613747158941793929208353688239634736175326589035989842095814386089207275506157687958178802247144713256441021128625070520929223540619581890847232109910993621088252575056222994932378729599285852671064248529219199668919079978412135817401976170843658663790010228034189552960539844590415539049830894348296071204147187892639948555129737622786840974056029929842464010522468448466866513257802975184823440675504486028077185010343417423994255501669454533619354620378285256969942726206584558256864623335486608713268285064228500043226595347833793392825767196614052245352786477703950665416952862225513837135587452835805628330996449545975537150783643914996515440517708788686934794121969493897510980765891225827208184490844464358187709659449357393844715341546055925627217087895787408170178585072397388881351707947248734471318014337996404078832038132766127306020553123255959786163642862731186546752412049203681699089196453383279058139404770702944404891603560746401212241982490331123536467432939170144799785493554044795710142439447705649013625878597139698187623918530554077282835409010057343033113669179080821920011428541900662574369928728290518343648265031812377833749566234041095079107407645966244112507498527489014729204496214447059673278869682161182816173398133723263574403181327285483472294251675343970683235455936627743592909787513571896367555654939581196528083223228522308048733629895281282581035745904625098293830548976308779298170242430526287554911413134117941976799002555421177808477194595487467584651261710269378110536192394529402598031379152037034746516592797163822255480109297162495942455424359205939823467863106429304632578790442542264228514998779928796296192259673082599246941458353320829664987675347096495587486775929216359278312991693120951799619063516343314427972015975810311494143559754451016417827799503291115761719134630321920551325584415509123323104617108805891918069749817318925404813148635746578246624956599474016717492926267503724061147358395321788271719532643070619737503493820220045001360272977062227181733148611334133782238124920213608197842624307322759369475720261523712384149001254112911349367206478363006859014316004903809000480277235372461792364860455064052897079684850207360608496411078200136525386079141325774133439905629410992320423873144966850137191533850373045453691080883826680486427554754250730703136431673899999378418534497856272568522221949428873436373060246733539450395078410907562053490587049874575791524604575024121015434589798162357818028315823169660303489779991756862544911876348003998720126270556995547832335294921152161242887714224491796185127017046189311921130687259807232081725043182597193673028335802975080988886405153075416193576624585065319727589565701089389215319922791933843971864403927490588334281607887684064312823647602883776523689195936256861856970097992529816145727368834704697313167083220254835165199906777656036964429227318099934238912138160484693215674688811885738576804354937240704829586099560832898364845482717544819414835471322965955753931744495934327570973539657479288907480948662013983466970317495729184667719391923644223589690607443327247011914683774377057826857356053382250068561608201043862017142195041128550380342728047838220758805755017758887124196531945266798420055800114293255333240323218492772468988114153661393567950732154169504985949053127608215019987443540430407718078305132304449954814896368552532147146589609069366823705068805824363201627429388033986192886969802759325044931320513528019620296755627748741145938378740093124515565616653324346763564849147926225614838907433459152904151556485177245821652154764612645981504488427140062092076868714344818023267950076665922589729767487176928650120299671127321921713952019820027332397367304486266567032454080872127819168643898239750441320971371101817441188881871175806138410131222032949758134871429233156343812549921505910442991025901134545485844930913014861823526459819528384704769392330380443909873786258434446647708039285307166457209393119930831630776402588893296299240080678902015729618115812754968325152914873539929485309918360255467802719847284435379709178805578186959323430897122810536712474901364884243629205148013194935161083795506975083972323962432157058063885861526459243841748377851942410247853307038570804362333756531329613183037767251922772151071231814201987700666832047396073528601124019092782935934345282242938189297235780598553288617732476288326112380910341703136109725160617013423612160657112880571920604595614453034406013674203635020654239558992030879604007483157443639331894006482919457992742408749117310449056561659761490933984391401125462459664860948601846096645410446495081035717914471078025771086815792961995065707020872226526624937719054349639401699015207855853896760632153755787500310455164835640562797554987929956050651596019977960278805161200351662219446638603741651803344842441508479684747562850387428578342026354773793312119436989159562424742408338541028424997307546258355598545521430901374751240168493990738799469858651850096194306045997342422675923993818730692637516296415750749722961094628705286982713709409761123533807883927084571632779471680909009353528869205536918730855720994184740930964974434166060194371352218417471563886660050575864085729564625221969660069295030949748717224137111250168113356524559194781564109965007829324553210474733258717726184872319117321372582421245443980949490808686160674178464891329519182154207473223714881661121409751350959967790147308652955027537973226326095725134889321272140637467470523476975136703473968965991165018824834396204904913250318381912197514685678271094491440285997909484328848767942715210222674058671054490450710802157668955512946884997253984369920982464218283017398510765317630793049659004690921858184099654964485419692005023378827694481333975984355481930610285250237557835303032177582790717146288187445032848055356445084439573349666729671084388846600031310068595452282588813988874530612568355852896159678117128271282528284510514983693787527727558607156326800767149415840563647610636339895395621229727126520918595910478028123720570901376385900626165317084586152187829425930899428949851666619289499156607327831766796749995936202084004026099167683418460684090475720861290819504997778260678401463718084993170927087019335396759430339501648748429289347754295428258332571964000324735502934554865876802420747503929646214175820723130529591760364630997644101364309586194821216922681038955979697345983383837508854025049073499052893025459110621657859578950487678424976178295364079177537565586265067015192797670037162158951312422568190790926390793205695866151995172321260722268885663131523630753205848655563678077751638627939399614972901662981478816001093819066722457661631042921743539805649631124456455905621257954532190947733900454436636022360501281001228342300519344514591720594213745974779234102432221763411038443550317648698031791103649261078175201204337496296297767478738191602122228356204162439624601005393532716408999776124918913007051113156322303892101860705074583794044554619768640431161849690776557258715560909172805341503472240835253044808611373021944411808239801039716046539785402574721424465295106666325692159150913744924359202648549402702968771681595259394045413645839436327830539525712174714040904781988666942521974488132330750709081940982064572692865076374042080392479022303357096784236034222682323356779697546249756598700890533421684083680528656212492035719257042247480014308536695642920181611865343248565447889715548603061513544829689883534696957979447417214541213475748654105385247023504591209723080777425682573299527027903135347197232087606774826305883833111839960455988736283036522750000289699872827235484326673080204712275991475159896783758666335117943109657561794873067036710173021270852024125766458168298055958469895341180375982128537092015060962161405941791076220393879666453724916148676484049766643443524452434896704502609267056086516824376557844866273401434862689551884677013832167493718409460970247576317574768809768546337873721695818703592764621803698468661914664888008790521035442750094585419393830213554568409426284609897146278532433627193017013385523379622695585092787709190144321470370074309226150011112409848732013876531380818774079500016586375210571010094651778605601644356277588134271895979856295285827540443716922575206944101952339615178719290236206856485960799971072263747468502641184299213122432783069443613017547392840573152871572555488976295694003984885601467231156178985926604692613071533027998592179694800241043149231478990763524011342805116197555554258865659245637687944633682720750118583340236524601426438527496332726982205355989455544449249896083810818346685195114703239735601281498292688998164388628032736721636958387226561542851486340838112139265772658013094302182288379936154520662915786436586406206340209111742262410271560815620787331587731842564765375387299031621281817270921349075343526953261861864710561986732236317758180195282957391869530975058418837150104031830255061339075722262801812157863305149416746582488816189864374214960244968282904441193660562923246543610959324400155010024054178933601105365652234885845166973331594968594893895029441845445960401040338942232134658867990238994160107934274502397475443914515897377087599298778868034923698603176831421575154491043331797910154838723270051759764992740077198252662141289972499800266193834674990425152255043887472560628778443200125318155914124852563542750098125802629333701020206056591961929310817320934726852302109356089915982283630646100378354174933568509324763310538264714208297195341309799562904186066604345017965688909349657238038404230188925887478692115332943710600577192169407811800113246635986492893551720454307834060079349358786965656062560883712622923017876577516563981326409903768733857858111283238522917431813012651592498843829035723402772283395382487335260580714149655532753852999527126810270888801054113779988490374587054998714268174039893282339718801608860038716330249515595131384331040285670296296156765312156958260502489217315541975783864718825986552729990082708828222367872225287381178796710731505536912190515939133534306745880437376623672699406011957558652570861502940077120403376587909791205969507848604030204021937341489889639878078690287429891720816258161814889652517166037386991503665059454217139939068399377292068584884138084881536466429107127724495724305603978429686943527913105852185045132382547247496952490330426051244979601116460157010730054903336965076537922932204519847513349248126649589511502994398557893497970038089716950065795685228711460953878729874804067818231715251810844536561092298163983193883651696228678435109597057920405865231706106732934212664349264778938702243184688327585835868940513287764412074693676704964256676002821704887212865663581835772493896228752976464933436004062052890699038681311019956068270612235795211798640001541327474344246886554481301640446721585468349227390841011043581548167725469110145388512529721759753925472803741806343744766112430789348213887938721674631821294239700537378227112720492898968240779576656584727555670899030086376566394670020720857767179323354923428737911864203902051091697616295588873501804027658221034299191797494531379030077715035780427482813249727186855525742689003457090976787256317635031979436321085398098368744826674775758507489253066795440830154991204704762109967230907284634430378456638913262570360669384363785709339215265774083281368536589169253822021751613161574700585576208659925344281473785407667204005832559027250363990039855690059195754337682352825778588258234495016683069997127644102151040168849483380913433966008781814186781144765958100057590033715355830458518049190079732999650174071406454285539830951695089503468960392340233724428037967609401958279771032061905642608719064392383103478536099745032337409091170436775191569782676544828108791912234738280781672397767270050079929706945947376523129946510457126289342730570633731970181131178732429399036421411226128570716383896274114360273699635837133781355756672136248893237445391665112130367932291723882880183901252655447291306550953818078596598461039079808419628058326940302536983262445952904660001235213121391329293486555792165901210512569004367287890259073963346146732915545580648927485726205611282986372536988662586306037163350097072968748527782150882093422130098457135005042399971363311540716384801068553530657868203410440695635535331495383943781291955144003529342395629473058445175009684489364417581647658844973958470011304054884514657205495230633582947900938739182824186511946278690089543743399336220002163710489839713287087155155530742376857368429667300527211234211698177893611266770696777660204566071128838168079423320018777626968448298847126533172918812103184177494914438814680112912969974995071089327663969313184499944866887908538171631886402765814671157136713264345711435945302956144342959566911344785827124825268856824392246350243038466044708101803152396722343239449451606440098776810696794683514019632242044726103470657349249678687119326844900788884145042739937406227717891607928172506727611911493210239802980293549868718994911691770343529804411599537906412479013713134898560338871705587645978647901021498433427098647393849401454316344673542208077788166823335251933663303459992600238946542212457423427556198856052115867628326347679351001658822538623433050322675824390810976825848864588158750365565631516973181684402779295949818826586663301383570523503547042127398325217270421686954038544617206397320677242374860945853011611441464643624313520192223749576069934463934931886948269857985706622559551281965335093831115122645860872117282241620442964834361839965570378568672277122679323764631653744890238793260048787609449602565183507987978448225589885795188803258475289314918643576024930718053671927955409850918238764229433250489320875685297421246976251869482044525097040424851180742985361898348842661959372196502986537321406614252840647177049434760871898334005843688329815480872215195063507045468897608296870974744322171261418354931109962554930888642553872179941978761617078037091273337842389527035638358099024755917417564000178894942249176339261647038818064561766248014625273900864596290550006971434316264110357484313350936990043581919365318508968252678093351199205573506371982766162876428458610692116658131367104966641405215668047649738696470392715812572388222233109628030379693821811164102686663908327643965934023062877923282861228343769531122516690095075319309986046238309065462858197875404627681004978155025702518360595523750312818951664487870321251560337297971843206837913616303600668851413467745348407794925278884067616010003762818780191346551786689798181242398890017394214457349449587865976698115005755515592610065418111945770557704835570548084193932272089374798736769266969706628999956096869184472616287193338657150293165232149753921782064001231857505382672032002728520790646865520227178563087517160325788120599568064334014014206530451276103750644260845849059481660029743682486362741283911564500591572752667401868096710953666830454987013418539190746512074940150489256412797744924315031943310017872916152171428145830469060271772915260431833441513603347855724922449417264024431015875212791550600925063531325115492940876080546160368306276346232967566470076310700510867662106303165883259738025422531273102825980524534154521476935889920774182214973696571944074445257209294372252180164293637504392008915451600030563238619513052543213045906908035308274810925150569195151316574378955973087910378759815017176333305143728280533821174834126864730870888665640628785428120171341666809746687032925164190634305708113310109757009898424245676407116924454336665897427913795787506771349681992956330277020915409915117000905058308860679156542504200382096944653874107967591326977231405367003703533755703092011639036442156593728378382605062499507872121763640313425637386724069230823997655158462206910356799473657586786052677123108990532207269333040347790338668189653279641362316877736301209049944301657414633991093321539379117639816356590333041922414180129314323107992286682065695853529512374046238206716968424136216028043557100581014955382191386890839537439286606999435015109738126595647561384708071826177192562404254182198927789107422329573688490735756833953101281198033930355399307225838856562839710970162251811013790959001432980659433744472472942461141001790234919896439206691842823292776779802371475919633606009237312340783142488161242572322907848187398049559493387026954077562895260069470390025458309132473966092272185355443382606846178396909886709212666378818677665443793725570841194640590735072927715011496940114063854337396254177277356491454952768478870590557951627177729065823182618954325197555572898607675626207887264682486843496954021629899328714354788422948107042024343242697917097855774734565230391093855145536901773158222820739738091949218544277219386208987738209056144769480107080695737827711663497853759320328735280542780895486082509511200458477681951802837950936835156422827410412349671857262794612263324083912934431836991685147002280937783358519478454783376817774196755180464646716812357240668277918560123635834737226406083898168485220170567778559604211586291131140441731080935618686846346136863181958243297690654279939473089159036867105602412541078719994219208213361597593299109113712172667368632144820596764035712619463949600000562138299350877402786928701847759561091692239420809276157076686851725072279640649777048970831966348169664429449627023551183485114480649503057113134883459120285740130496542070969156641829301163247896059572441163682453071846129225782997323728083517763894176324139749832250335289266124635001180189863542918212973227977049261905506725499651323137265711091652148631525708162769749976352807218844511229182549616850901245391161522196371512816702233737791924696468213203829280024943772875914758378680923135611154157295117627901559735795252524707318986744324328136445194780645739331691300526305438103845597675995483471548417918033388545047479830482347378947498961666879902045912859108903140744834331622876047894499957265482284499788990435783681251529410547312248172918484842523716360107854535062876287752176385098547614525067088177853109774107755530646374036367370067927292309866426845091346623775256458268985113107077489365736806049194012774614049978113326457440584799305895607939782140653176445824250535001815708129971215956006489482481246857085321167959576200589941702783927674012436141720472555545194574459836609707083979375339434084091094673048804235730652545790380698662961881276134449846814815870660731520674824509864900842262659233042876088507985170365708795331122034352704431358215312404057030904107188434446096595696731966551987669854904665711617592055218707721667000341557164056399816170039518398580994313115369787911788286962006071661925820735069833742547610078989516061356497933724473431276621684217648460981012818922298791403405567258266275069369851654196988187954311251839128007534548596624230601833143762156735947719582947563917961856437361584199250234335886583725968432982037517013796120472952535290115630866005671185386810909046364035414032581846758871941783325498891364161594194804089322662750870284724236386617483163723895879477262463182863539390021750471516409510218841000494263883519838200710154473673558772928278927995913075598731248090921409968701571943137560735847876483661582907328066006435543555471284544157530233979708022314413329399195336960434418579759853611816910222359082647175664129473482578162091917534910858959873350248563820559439066489603066962582635734660762349336463118831358746449881164460628001995198936082384522186952282126256303538176737338163228490189734969109564261875732781492705024937843214470854762184787120217120110310776792656497094796953542044224052936095315563278099371218618780309476316195946419761578638954716602492486461414551681518265015717892217580969379905381173356481942149153613120484853388053794793640296198799653026379607499434476477098704183373970217615067159043458974579037482971157583499516224648202719122218516455421202415485059828873996824773488165816372667417348118510530757094712844245333615018204027503419410966708740691904421904683888130407268131742262051901473715793638162497415880244874353508623366641447410289446185641071596829882568948006482225265851872039102630720698229370030480966920911988995468027803147216828786878150786897350656288898115539622020500147089404263293125977442815419681889965690696404716378142022662005927031001057292434225703906674513215017927470757779530222416664408909870413041473700461331135591963942371167226539760085960087991781697387108781869614003204651487637787114366417349066893322212968017316494832834844327252302577548464663557991757117290515015962954481776383565714753976646814897067485957975921173919033770617429779400866065479113810111712550439284380909567024065086644296209645707091351094809056402303512888329852182290123230711720611936781079563654713908128341135605143927875703076583291903213823313832524708033285891320423539796422797155790040481541327073486433284569765555137875074091188343654437876501796706040091467964571324895227293802903311477848269545609042903326711749707718945435947592938228972530877596828983355451502600110435348051408731299498919133209280563628668460453366055895310898064178198756849697075458981115247909423806401082458345937077333403327062623085390380642902076056857681008785987932950795660697240835051329523064256922903898777741233610774240378062393712459882262075684811425409275529309925275671194201913430872432941788321986490357275944510788510473344453479340965288542987492787652937453212592755739186239755540483708510401058670743149632226559409043031297897795973842803518341531241995620220663884349149345174488471736767922201443025863158822668952415440462092738099617892876965962070184913099473225630355139852867476314987522588495362036546433289433325636977727321951484297571621336353570971506120769550154877063775172216365329483742011389884568028588358565743681475158785929176045761442326865674729545272894976243055619237933368390421710731443678296698879349327668311972415577859519478276797382441709664559947962326904425848138525311401279930312956633345348234339879302943837498178451928527151981178563132852047870992034245924742109586737897583712630098317151439238416062878294644677840431982372579712989405457324202432097442595206220225545750928215148640110090127344720856137706790294984558006672214091227521267624229014377663975088580071635587462927884966357812472125097382210771987077935964302756697905832982858240251180824119529621418707739937880614414834866256420835453787146369239934722347396224582298651300318042827510408233928242348355220475292857166913928274045970483104460377677744634201210110666954922582565352301329552994356367144298478347343637516218310202990970938657074418612288156069568875831013884260626803706378206674558838828796834477271837278749582430152431439799582481479092460680835114753412299144009463806925461149777567351238152831404931083646153344611107172948734792076632304353905274123732218122424447480476943240238512539787935615286592964392894591781350750119322350056078189510875491573226085592978752142340262470890350516064661509433254517137354399319628193628547647851126353772693693317331458424306334084227940085355040090160598986676021279138068796177452559517312240797596174051459301049689897155286515226612908332578599714441762937438427950775234860207629782274153631922835645012650673246657689043881825279343148973659142131020323479358722492637702985463275913434945120845480709735030909375577615176455354700732912779778350960357691680847150680174599520913693860647253706334773671693085065207059684599538004674736915305522314455705005901769917439893719854890525834784075833626413876754474219275216749810220524037854722802326672932475190322190564661325175525683340871700518311443927466749727956334247593472767435628739335155526035354742843416912473410289237952702248396775763804063795907444126500144411907721120348976075736329442918620068847121733048939818008014335311872738075995127012828063007407493135482304356409208267536519434010607662313896282991578833871118041381906924330216167666737625029694696388891241523470499174980550441071680836316584289791250006443073699654969496953036088539866406618316088839407114534438530360813510595289887798344665137445759928361596072772248150803441497707899995560437350305289648618353695120591433709025387094184992801018050183030435413146400591905719986698817054661409466834654340489266293538580650198823494370921915053906282679472594271556234773161044539609350277751359007870831943411137461319706914714923893516415447199461652815306684017036824259829498689262808697042078521044102527491891680913790737520816995010285627538754410722968319899414347388851029011305621117768735934499986445412164400694802962828616414072204544055110721745177937353738511036293239758264108450662036056576737730836800792578061618917751890966055749146890810007981681816897444413373960504050262901569509154050826647892742851867494114333957783885360423419625138921310756553201253969878317899441906187642682484541886823849087407100574780238361799086101288024444032873405517738186835337947241012561924501376155162835582164194463556625615611350588512279764678715364988097423109726094221531243100934174305813208192252646446462282114423453936799133610780552948736122697037982624352343038080691485525318631676769592314422165416850978127164841805025442029827384477489737209818255091218898820365289031024229965056556903289118505014559685384611817062180452535249807566414331814160543681377612554165452655606488089308156661127553179695447015704162506151635198306003747626874986496792009727326232918472954430014201488433084466268591004822159197452186054372294348275195206293122064382712394332664635529368175083051466183353839078888384722352742379710448698462577511539513183993671411741371529556337743479406731520608106853901634124972102231493746647989517180203663955452284623851182961303166289767065417097995619150276048735456537670273677896768662858705630352880436648951724217983589399100820186053788021256572424796078547718917628654354677367735259411789593289914306730172895100838730523966383030368967757732392902693844467739319085683470166552762998693582202693618702831457628583776608889386203330191330501074809864972326170993263071674747825696244841592284298845219530874996174862789040289312210360131738347763336483198997354240236377093994854451216139166111358308029724336608936400150468030499034695680691464447847985878432827123843645294636381765423577068655467547445156166548690714772278007069252819407539509640545104258934931468541321260974831164936093050408830477205754770449914600297062964606243333886088582631918089952876038790167546943472827449977648459090586018156687230453689878206690819679418115461048790252039701390175033992836744644570197590018430903679395896917638243990481438432596368115088013650339846796369203731157712991814166031189243689597796406101041273161828164115446624064949702591145923197431870194316793961888547971968342066890555978683934084934553522982000240411421278139861321742946064507158518036145750361176003223557430649530512031757869798881908144243863941288761525649027086291738040039788519146222810705446615860176482399364500356094815698698845223468149674034077301211105570681775677802144690695408882710707902188560986742716841605983570446429525211049960372166067445623017289223857500949898776204679103871037459975278207659497205927375537232453301759325513907034937182707320662670880518127132717385395698552902958574382508507041958993100083006889485970939271872466233539483291428953935132529205753807744617643238568168526081339218273646629965549496657304230943735688745272633183505433114429475290603770817065370548770406039898755900488587570766279682659448119472845699295868794883747574802761249016403055240070873901195891897015335065554389983668915352918676177866563504824870633899088237878389604696267833810869099249042933281671109047352770137082112499826196238161463235126385047702092947872602203255816264873859124099185610757228450910442413297733526860450860901344252707735789790819067108713208613840986067853375888170183170923408375255265239105175793960766151270983648881612998725445210738844447676897662496051873401783635884675256785555262103724393141512555247038935048761791709500463576832450656811995981296134825042845880736876252850049541656762049876721220402271384836638301908946255182939610410739927789499877204066879193735174296100497271354058760847136580744185582879724821337918770384558856673050302593864433663041431560007414552793855563725310811356108895574498045779319355557417146030646896762381824483131269775931524519843527948503347033717487172476462361394357616800878087208619362652952020125750933936452805946871730311265932555439244846435240775989170177008072855291214939493027772090266060680484933932205311278403369017435395436680994532480083443174650529934638282456963816656935725713409491327432277851266390548833113945175250505360047465006731428233502636499531408779813508017869461857217166377448069807345375031589536051323593458514836656931856094916341879821634693105357360546762136683808580391357760728883958741359478539166031708983244025736906624920509630185548913073798840193177602639921618656442707387949212817358924229637831764095340956036554528493221630122611999056900220680058220965170590437806954761271518376200371733914080067197515838591626020778235083509141751673390414343560403044028910482893927419875930406202752126543333684076003833992929465407963235663703869864234524430698439356214733297402676490161952740020392179296814504750578627820123195669285054549677145914228251242487748780989024583211775148907603060739101706703016176483381412970981007404632484080896706655119074459292556592751679485297265880816343299986022075386642270134128217949774111632257501464905926896479816362064216430374857545126125311736122699745714128244633686592116049341932275966468583384220297515334256559888788108615835142201086848124302993257851366320365899285165394147859110971196311318412342616608786461157967390459115222800610657550059534071525492677226153436866238836323941924933737826336427826387852358242476374210567724543336823219712762465556433262538061364005883220611358626019527482584779896999287754679446229556512303492803483838069460743223320663178183557135264095610983501787062189370882509971706077656886117209990483155050267183219195216506460515252515791924019620062718251185050185260639387996775593484124953596772787352318524998068615887901322653363797239447174959564588285271044431772636504927575825868979472278462277170898982220777990479388670868725986547926763673322569549451278718747776239988236286454540155825493304268004920446000888010000140330999727775789797940451343304601676637155800727981424908475302907659085580593424778028740894195460954903797214134510974575441170459992080098824778769422726267514332102622378200884129448470574343325668042283497329648898224051101478040926357280996338706488874234697960571442509171213148759601129765336783419203977157904659113533145258227593534797673331473566713642456390149711975619060497534986187503397718032367189132481614126736327913426490415674962148586373726512817725659926501448161812243065946781824692193965013250129940799246648457413839937375582849138170513712893057049977918646055055882646077668824108107631743288320383590186771629151702409815001070270764408044660204013004252341399587002182946052157254239677241829719769114846785142561270553263004561154794714433264174386772493121302180640212537710459197239336503769142901523621260180130966493002513731689349970216901134021754075562379983602129305865693911899388057706744719687917961191467941650820327282909675337880984268200937426720110656169007400964205242120562538260849758795579761490835381633860653285091365303290777785066576819446122810451705773169471249489321350428459558626991676169656555087182384616715736666147988721967023353927813501791654965269713287295938461925399328831274892566881718191828707251824708392769855134534131675797040224269921938062280539951885126676730376258856661735820043386270294823814421580279153198178768070397678535675076634979887982550570440136833822255667314411844859128631861222563995409693316691385689178199878807212577256396257724307983325018747606113311473852454741287685050704860570873551298737327818934844138517206510122827199220387249466981785038327628953872671329136262049384391584861029644326033852917122644860609109922944680482933809709916114851591863823451766989028133248142270981422210619120394618059908441407821379496652204546334114972375684942460961912755673135715103411589079443573267690706529894686135964238304387724792512513100370669273712954440560002670921257078382542782089483788387835930104771270604025402444863547792259057544249349452689821984514297442344131491146755556733171016151187257770322825753717178236202890574755221396684030329056296514859483781272069546378151690576956628234036132542047155481104241818047829559425779555399205425482937366230126535399023853847514943808438036317443204755503294800165237157627845365404188703993487306766926024872475252525683546035546386021236073134002139513823019424059710292084164432987020497633550121671159888599120314571350398211896784208339109704193299241638327504023796970508635918285764175799820161404681018186285094980374910526121712882707697480873771303331430332363082524987236624374537390350629770236934452977290063202021510251415948014166569076127889131942291898828605615118100027563629866531453502370784282615332266633744006997393113067203733001443691220248950402226234401895136636577091254400278178982721384961717025850027556055110949712120598281445940491849860584287441001387384439059602512651906745841485227747669597754757712982268573857599649188601904281952909020974169433935468570806594524045673535109375756802908768180425554377001248195249005534046917446367371707468976531038859173167528432223990444734009074681410234859845150076992387475191496552615741822048077382690561687176733171240332090066223777868833619038779199717422189767404740627123971131536731801916030344484597469705469820884944635996248604848451676194086419312989165483541205545569412783459428959484645134491618666070633474020218473667540745141187339045584180280828145622416166341693033994572754120521661519116731950798979865837514009699090946508233107145109166276995579069431088113062628843756813496480392325606864032749515041248096225976518992600570586320371427044187263967489979714272147059296729116913870274798909698009375899003033456829288519307986507301268084983860235287046111535991187494402327441267793530703329978375184569911088644458971212988315703945081538138050370090481800052739524875084896010052481042426300498269001501241923939552920239576160262923805945539560665112310352763508889824489086351661208339115208214046642156613029622810356176433990230794402824982968169640717175307455777206072501479015227995908091650503053069214689163312058852404701455285869766883862441202139816407633094453522780963396455281363101328864005187737588797830652597228179860762287010512309760558758149932128804259060915178831880575303927565979493750442676987700558161079296095823933712634988646660389740833319402010475137787504282226173265101461208226733404615257222526962334242929544426835003098375162450493480932028147874268240429464595339981370927996861237523907471767093297324119156344602042292537731992614943096332478607354718972848395026596802689444472828718490037929367581800940513634252617814725436204087528080400752620583001732296869421440883504633447027124183611550497853784060709779702349269538172129203759967358375594995732037859576156771583878900767228814084185579731056404981974928364175549767965319461956346259859186222989863940712744444626878197086706281723514396166040308100231054746972355170194006639061329013363279770412062768941003463231563922707383355996078537723880372088679072006440176351938344853977866374421324378714883816654339532053953254651005986393729506057922332077625330647397904411584943060333978184054064177275100148600702807608258438123722881218006030499576734693581597512828469080148941094752043921605352379831013671863067675161363476187625745859961823647807965397017118470783925537622385588405341870315566789880938492825262065246573987077424585932133042791331713109856604280499083176407254133031754129755910014645741120987674316311701297212955293046669774077482103867346947502617395785498907106019374599507176898503727888714871761193992998914652548346228458832377638697679460836348208898213158183779641760756792110681230536437496065640170767330009227823623959570683790143530323060806844909094815587003493617290258507164624174342410587938906834615878312887212853491316652120224368441591473424337940862478188070544269829190654369984829831220620051505975849195463965936727634383681044900546888401659348152733921883076663788774209058006415112310107865976594152936889636679340885931141692112292149306190788854322557934532445608405544857629088764633819005018354018119864062697219101994554935718831158671141495136513002541214562930488207079865393942090634281196517100141001769464377942244784075090140425814180292344196489537044234375689758441717355997099075650499394004320622884198769444415497255992305532818763295007996221815423475824232728246939940896781908305914866957102802526026613820233970377178590013382134215538210071941611002486458360214503145960777432233771072752486148447300067788797607718324657989469660870938952984372081131766123509001034076277287949632102466149175588888935693206260292481487626691827150525392057997445998504066027950482308306852567913372272172246883980326317775259843158336367770341871302434181376976283371972543853706252633339214204420409628105184115063944437978952555839111661858377187312350487848050086948464439791409319166166355716255217534630233124852728842086078676095035431553565365365649364076337187169766335045402085711732793621771724287748111460929154904428848691509305093069457103332055706267376574248086712645921882394109845423053114094821535674843782845254592432499343306012530406218775182334505480302689461221392497005121763650782354089999465754400046181612200655190185431407474927676273399157889365402671697964390472965199856632560745757773126543878517422175987387099348313464347236041747799983846150114543654050633541064688709145543724938661722052639980559757913491953202736540039116650261040805393311870187725571421127385928208204812490116102602186665030297831524011122670934077671539989079111000523788618492495146515070587009016306316892927383681011537336393826736693932717444326103119675281249556278619229634053517576446814489005010823765706453453409507210478365977557578777930905647613668696773074743247492348480290553518496224661090745194276128203253665401672535468418759056741502581923172237105388979888861208783535990618064646185370510997918878586070351599973845961654677711284980417811584914499493055951219353537855348010023656091813644744679350687121912705664306182836211552836337565649508440993746020779516563250178309719059140187843814920648731768094056053271833699993543609933329401757396901721087572648444007682247844472277045162549431711127480571873798297841855323911407329778163001289652759836657251694583790910170294810536940986962826104317086051248379671484666742723001721096077952826113051299412113960069041387806441375239577941053489303752634598634104853511749437859657149238240333052890842947358755085162106946315756802173842363177124959946970481604683472848900535110682218923459890031470741788271511124716178303628744437260746189144763346980746529061934656936251561513267005097037527369191609731835227427652516216703050033680974338702789636986157163098740033562703976580180541599941264450828851824679793471056022802422236398519103606417703114336572227560641121472285153105226063949337485251714094943091694031386352190456016992530424877863341291858780430574706394833750264360375234079473155153529494023445377007019810562057621682095174022789822637462534042689903348621775781811213667676458872013524710133675628935065317245818641544038462534605483148250275474840990817380306996139668481358492264350291962047825631324604697642136715839500243718045434527679386358734224024593728324116361707864131808549219406140399516728836529115798270730570547466457541073166108785642972647397973877898322497221688807198316907089677603388712831476408800326448908292086403065718247171095633209007780402912117338405853927150413140310842667719448421327152911336759776354540254162101900705875419899437237132269566656378495737251623825750107969151620576500754799868806757082501146663730715932869976270382492672400235261936526983885747015998468149477496619175403005238849548830083980464367069615298405899147680153601471049052324179561069285982636834268711117776900971826805991901545385683327453562727597867361757958292385025818742495553572259042265449128594914957492877600824122820753338977641108715810571442736285234802565903853383428767688270505144367349919861531471147529367276288825839086180235211704370027305135574757622808208134109939276352082839721808441622859085961579713808443788766850542610416316915242940063073639065291336445092469249682616011939874894759105362791152970865238370347955783484709488967739162261737799312197626655482286039093544224347884831324620715896057404591303555338059018404942830728234217390253427381462333204788554840479470958584552427460671068709182534409841703812990590470289640731577746239617562555595208326405548569583622492619322674990030182982515936230800866107040714794628953597908882333612903362744541947379201942352746222609160915014183312121106007813576518816754535163429681206072537782380274679373452679291372587820030048965521089898017229128580723752713424908768596070491062804660919786410834433145377880160070691766048380443238899333743076287429557084380601678736288754067961895889068786769548066704566653264962606794076431274872092462332812992774884851113145461462341227248381363630649245295329962625649252833836746610880701989087278737079006306010723484023598626741459308695193000767140525807525701461633845684684811572790985858031258272119706748918898488873854972761160072369487073277036486208194813394608363011104455898546918496405955492962502053285281984979073383688323477809155420868595955736381044459456449842734946922930944451166288769990801826087926496861007850188725848397732930782119276137461374272785461362356616465262813161105581624989562187961299010948839868540883059403197747513780263150336927010609610688647253964503821824702730418239432639845442667814844370014373709595486484488370686001115109745021430738959267488551746646500844970027310092208301943847095648517486563492907455313340483560245999639521808554724986815055543387937580315154642693136556965314054895842424164121015699732072796166268210017447485618119001124150714183237133629168315917246758201123224626625732856224365627864649696156919935360092166099537076193564989379444468131304219387044205628092271948645078099280329854910726844760991567006959754820265483154288686989958404807667259013859729772629467719770480085199429680062854249042708604777619231587647978802101698239740452849577876104949285405765134631830366997547626989916525976119193091809752739263787514812061668966150864299671754704383962690696018358513979635320493222950313787568542980066139931978056713594303886797836000762303463257130953864893974824681512451199614914079766373195874963078757360384830686990056701968119808189863554071435640241921945785604929397833498517817563856881985978671812649862209016201672397661255906923728124249855438395537317982630899306046220514388888501898504960232912766269497577727268359281672256899259768184506854630657655847616167990807118583663897636738819701321961886279453846134100186143329616569189032360630473360049485264447333508101431416892962069881499971891313746867017996445768494041387740875561514251405611878253236384541033623762895841887676071200256246173532613477827335511090928209518324775236039492587803649381307651178714408106965000423131633500840476170698558558373461786638037840468880231802717961004157201232280820254226698036437789324814817862675873130840205586680964093954088063454443013873770349775430681343096228685032083635962669781222209539059315944391489196731824027747182214342857974870511345776685484420211913703248809980153176244946849327581517328548361817058227400846656023955574322312635891052193964868959973875278367863877307719705290118946951196423955032734489499662454797582102872460899762377293209913479493505125542163079062790991436252063533829568527633226625743584399153951880770741325894957500409991963450791295575486227908783349118699075253299496278109990135410691940823682854339587393607087535559558446924905861650654298911890014888441824593775903960581521488548045885097493055557803794241030497293455149973296437933309586955678503542952039235520946570511572999798622025082494402075769865834462889179641611717470304181090022165997300959147105478183742931786555789353286679734838376716381731153974988537656899648452827265831981276757265619608505623998397488365741022557986720547310627672294971239402209847774288715636185431230788165157102901958072928522926579391612098328863592075568321238354427687286102553748618817907898380524795516340129523653636508897623285194986341826632040559974169726968067068808186823180593117192534307363666494986449041957369464433754950610599996918775343192270441622105644271412496257670276854742898895427958800390677895984564860898510264847804043270673154858812472808869636283074199425617967039859845936769275822346689431356331994519007657202428600236502531615444233809010340348030453635819744931537774339167620063587179586931783515937201049193847610331895562201146592657210252615902550526418977869276210761196660684188793203509331557913114953751251318537836393678494121295139664301397996674843186366927088559719795611398209205196671858662631603889014150332040159371338606155810322263923675582228820498470136252286672237916447898700138352010168645479393994254989881038895051921882386699134373624814393348293493853219633250348434718031594625360693137735899166493984209081749443874679697693091084706601144824842221144622008281185994076942827143473857458707936774421257393187958633353740590084396661944473383038792403076169664381602624163111415608735788827436492017442720275632962966804473837555109090343962869331973436936111974991536618707005337323250394897237043919311288891490232822885607338015781380072024872773312022028481768196488057420580833869053518728046253128662853438610155098742536667840896811340237837155523920717885959910153170327730515190638050124829046396652252246854456933174445893035605233639180638995578395435772292893746757328971166130013326866173840364055347061022400974004139585157092463218429199432749285167949112888435296477714748046807381304251531895528859070823563755248495951595104394239038669600962124129017688521748436292970212046954222326332867929944881251464085415450318960728952039553727649518072145920610737306467025586079098431419251287448329461980779612828420381395742932021546381131695686809965564995915458311740132776736732753082718310808872841745264857563708764211361500087704388400330458536940027484978152957070872597118077758528543426909474637843397264519036712629535327505598969192398820167953782623761899372039381202554155762346926296105965340411129645198757923158031881899213202083905602245613136949205471999839750191269258482262305487688162680076850814545103670789323731698216197820187810283262255998916858904932833218121876293301562862562116149022981725916299916297856560207641061807134899299101941108445904426858278859307796517754428519251764304323958074084411944946608231470106554404269495263432317707227980045209330287345709899378913115622854083638086890157895411156078892912800641948470384363547522404710951492485453589464335904785139237281664027085154305354802553383690188507723733952719396150577059605334695287924567650321380028306629759540370808032498299416209299467494206339749351098987303524507862993942415066470759379987784542532388723760350256885067217895757818450216678228273851236073258809618391362872882964118151870657183256221633986133913855231079719815377225214168105491162552713332513700825176642772519242135851313245016549803998323386383941859083595290233163292258053789466625776740907817379979723273452121881943105481462332392561902577131790932702965992851420773578871447912885050186254486998217086567405603713864146416889887414419487052757258525460436501227044368459180419490576400234872746826330883673338032510752906595125105803733871235654395688397033988681837812424015998822249388502513130717017308926346615309761064526955424826240175850951357022178518664125973898200592730397946630198949403353779266087470778623569091892418622623469237357091563536249698696777463233727413477979184834263285907453785521231718166797102970691095375660068087957423022106942248749996802287116677905981802877884626045403111717511894212291925238139018364877973879466971055533713347742498406766987185082380921891216298254533495410709315592635295759239666759563432789613727147217995050895708435985922298347092960403406018449042532898025296691870505438130327766333232593183120997871330337797104778621525234479210822077716495014555401732665115709798113374589621056455594463702209872603946570448886640025620254989908002448953973522629746620550487370355453458692083145842857080072622367411716517045034357406410930473243088873034436258859219442634417484529957010527352505031637147415487470231208768841631231444014736059893901636745725488982847629611039475535625119012518018890785958147482355551524912054432563568523504446439156068131997761202699967767982798595647778855266730548985161579060477063839324874468942987121006530373455087417681325114713324939222616970658758493434987421422028374019754977885429600019713338262797913588792747749122722595546740311199030592838464963269005116666037554071978375499820007926716721950866748004816999807537456455942572659408365168053438811785975963423028323025689856202830730003150252013832397555533071900934551035426835218784558652846882391484254896039113895163782476484666602625765693883106063172227374231712533448530200354148111245918060880495320679332711793699215546279922783722108531568000790951873121682454238418846464201521437451588421584682023663572223767192854157610703964366086093503227880713545413265024498397575709516147248445061372570410775569889266917410994669302023083556257852650412206600151543417400374161134236339673943475436159325178332212792326804670640225907579578371366714292564092598659412999903211293682663156619521215563170775655241006623015209765229061427620420631990337495309793540475329164049470169159221804024944304554762627577060969976443647841812499400638435925603067543096554707442534596910950742481769827687433201911114059466699269142021096597466448000332799797347616338229872641813841433453495473703435112257824551292593775717632517818044709061233751899853403623375326218948418131571245677563645851731911538132758595557530160809486127134235718672932580528289046540534639644053025655679102410743621378730557117898920082078756248751961413011698935119836781623836606251874374808046728489317796019585267458399684117630456100299725836659768978517842903742440944485556862725394980578223797135461561437403209242474532072716837953375328871345027826733000089450384270094989897129553953097008703569364272921045885103413888231617382164061106243305538185924526501001229152062043729837602730575731103347507739774990333407786662688694820746776584677681768721473622685869899732421215462469089986531148934692316390415220789310091769671869531576902479561006590527063425191187790962609577676519802591970083070641207532217359434650422852169455763675773612920328550683742708629092394277048429912179109129210555750490728228422731537601612758316960100093627456797718505633997895899097690835872456421227135941237962739002758696260407120913685316005998205312476420180973978468634349967362849676299353406187105442646931698748653169602686391208900493927397515636916433434542335125999969487674841981870321205089703051863699975955081215503419006433942658298729988276421842658061245452574472053447593097014770408349921173429015748666784308338685099797297049442664562123590731124216377211653034080654714287672396780216453443842928683701564662736707241367532926114448797823200321595964979430400643518530127484146481932079378464762914539874949444567503088931749189337214924685156225581785152852571814971318778397636078582278742758427219846647354627603517185022915948990957991000666292465100164520233519192821260497542351464035764232369108766317034017858194035543970398219667965346720259139221432513314662707709506359727139629167823867144614724821407629180577510506120711085922255826348239549416906561841081356620587993846233986276423769618061520456988654783546141342824875164614450532956454001781358453959820357419126200164669264227613601595414950906623174618899880450088146943043940815854820841946505423114483888140934699568213356246140213969785664911145542713786551788641477110009667057475651920589275829069556116619105312624895743335313579339186028060082098530787951990383738318628476191631773810999625299719981500191287255890383719456640774450368382204268696982078959640915886074657146083936241109167544522508095011849475245834547320123394963101607569956394144697679800382465426597223656613065386655335753185608430193645536853974368637984709395730308320544530542239087231637211449466851797417554190314554500051339654254469554747363782672259730484175041197417548537489608453633095920165158806579955598460299270967267029202243685312928374867120842345528838382810748438891097390732483857004937178436253439220080646321584599790470112351124215407554385439338159297228550626325845358595634654895700717294982050018956585266869102666989016893257538838425245399396991231784737841387661072727269944448318296790641919014705567878795487590650317366702940196123745409395466229578399956502023618575315441932879118096170988946424638166503799188836665750506319615747703448337738660360657777295558565707561940643944037698784758228118099604974287217158367957240316226768538998495126129827540678311550093640862707624571616934472092068602365300661557416787649079754844207227961341131071237590761066749812075768238936692459366602908336772547612840976178689870759157952459696903484793535884161712410018521605847049176820575327964644409088870341138885355938654394149808563083547801850306720453031459665939058336132645465517993958406652407807264831615955861003347990101550538837523525315354194128458435759882340874621732624620413478847063876511467802359230187890092091881338825311929164545814435285873356133246899258266691868284136165277756338070927706119043332434842932317114599806938678451649330282174942368461875541781961861849187428337260613002488243366339904845323532705411381277355617700285044515798993004155917235215865201811778498085036204727111862049771285947233681312774700716851967899181186529768366964636747242942847234324104349019145325241422047762171084332346460838434867882245636120041649331142283118257307096230991345099528810680030463412433742300787572898263449284407727576702364456917571301818412511958586098599927958778732813998173064751866104818274821312946907201558379680294724974595733513164160519564413327216031653833480640450507697133710797253374373237485078286873515475385013995957578658653422255620723031232799078132789654751041469089788801311790364423041973157498331451703988857861948966018395024991208343921265024412806537437390016997340260698319632701727813840848017273326293802381956301181170577077968188946454833450749589318291919025820204861150394564533606386811380323092063839545851206136338469458742553004576199831389658099952412480652158978198343355826085724808951769644792847723746959073677969561719841658069446353340524668148144806625725213029615465794466824210040069133912166701989292748363877589284480897226064524662545346251719783183546480746336660748621263884818691179048485594989984469673895059808666923014759815609363661241995459157449550699407266843111518394738708044447937785016288255485641394305063082301417738630094243141883578287314705471530301497254986149491035728652034057403519912867270478408189893313408808784074284671307294770493446272280168056182988860797206718735005347878942774290476440654699548958102610668507220695838085591679368574739088443068353968351430127432484023062516654468553118247387844142605515396657984726758322541240289879309506828545471901976546868699451207665620970811291533203473782037986307107120551719014348289206974767833611847646441846301039197893764792705545807150739851345064705169875620155277671685640112042569641908541164530507768083330577439851329484003835634838584259137167647513982576414760723121728797021111362275136550147013342931481290753049319132447635223173427792898390828284933119729690653510894678353257798614937972993683683470030051573077537874056072075299070648271331840703961964340802275261965136757559307739250169469107438185706018233176760389347810794842498037059764760491287595338178256005546131483205309886260639039601942093463686073380745402255270953355395724186454378515561710964913431899457142322352563943990121882165103465578526024173692194021173016634226973919297792041211004982384667488997620757556611037228099403594614239767306861233681944049860697164016433419987904807586960894960343443619066277888639320463218912521642168824420661925931048271949786753847899327490097290753770933732662028302689656687446350822023838376177276278251669546575251727354623102418553228401343630215451732341569782246363477826735028885651315342856004402636822849078010909569161704806774752780607999842272074829268853005066123848780274289437661785098443933530772147370854697656984236876538785548375692912484415734277729591505932331228155327487634202862452021356721562091443583484151641965390259786471429558985507362742394332542150715395277634961510991770897995383560621606933569844378074226349424726773847059796801952378598437372093665451751123939584400366976294812489904523252826669591944490777155297363475072071644160473064637736822691919026408062603225835168081773915508902592864174263494125615801129302074899604874997889590047736751438572048178873558956916915971572151511352628084550531842199521999926166511278081719245960771446678824904391619110068386274119583915196672872782074391836753374347710168930969141351119637578183857679985602107157766654403861071458514498724734168255125192222423927592254244183549692625496748316724742287008090000767406543490992016374642767678582895294083489679050146097703533673671827188163168433912761765546843125816888124386766649306714930310389634902799930760086920253996628219046294348237918816708737937285934431053408963640359072711881138647726080078584750753675787398808004163900858194935776232471971513670046364403996164794917065441064815704697665030295575269255381625621539553330640409748455666339126337677518034779319400865818878256867634100153493999449016679983239984561865577604357798180471339095917543061759968572346060533182918156368650743195878521920647625282337518495129716503152843008828264787566253432892488408295717069959609374130261962641397728911118671927555724621828700769707517877085813175969905436040775482442336933819842470427806254841996167576468970340384941040284326907623846401171106740244155472292773721635132567644114379430797022158995267956505810920505327204850597897534043940898400914875736921237622034450982011609390662694946355750993189856521858751359846399240956568922445979613586961883010900841357050980600304375024555691110241913151482584667398719394251134379654904727433293738838408833107949215305860105333181552702697069267430823069640309966217889986976871329786573947398000311030975422453914237685945384177211683358286914787419125675323271166441830198356256954678291515083726824187884391385003472790839787411257688745832595773934389028273709935061421296729548917241866044705301915187596290606880290731047779746023143133183247380013445533733370337911802350688010818530730177716864861334991840978810326664935205531927213509873846061929890705973108750204160744196509787001257594191070504740046540674709880048395120931522372919326498605316449466179801462212161112328200365481830056033389783162934204195458762818022480840495630723372014325416109413373739595398488537245046189001509580078550071349351027729883688636835836016317641206338533918249496595612050390291274509240007730675086890126067955682521302004748388972404672909531689604943048838706243315616240792082625350035469867772619591961970024272961005413838092503594264875369077061197246184231552149670253877153959313945972965664259154596598177836883597323329551376530334249466706475983143855436024299682504104145828494349877539254853766527044443566123553330095617353073159972932383295684608567514113234735423759769492315563355521360711782986220529460011563378694481395959833377403514152609807583657223505924289340664715276511515559814520202495257956405854163188454162489100782799950498983459529361935475888103881097740856591697456792488465495877997531055856007087846701289837550146019803333202244962864153519191606920490087840491582373928420677801836622100392691201358996814033827401496779335521212298021793716254148593834642432215000900050385094714353858878519193431117330258454415909179177365333525842455607862573295534104770600156411122162882936834551578837661103994505900493139093297063088192930781497271230831711933064813373334651411665747711385595777741198784631558855654982183623431020990859877251508033952885754520083168194064025068969675619972399313883631213263874341092069096340296714665770508267312861318086515853894012474405314297261652279874839013227650884792530222965802863618323425721960261814297591659432151879770445196985414602573762291356433361729023829063142024140316921571692507043641074787624438569887784383569590095926660277850433439479879723340106530652275742064568689578638859305018226832652226941257667803887178675217556963672947252462739725628884005348833595409516675929700361800710941234590337494342643091201224326785028158579641784909699923786978008302305525025466562636967381161407422739890276318050112791312959955542918808197864688048849997517190337652734361077241060242072231041323418522158269267646478536979599251885100644375348714197465551956120335844562129486186151489285734567215074441959513481864651985243726423314242769560874737901953661553576832504202515394205929960009930287613664419207920560831902228139064052377830384396222975715649778382168064190039871621988109558237067783259699154887341729156258823068505880161521619814211813440882707079758089446039634595153543567962325240065384686514661829118834469006792429995254045730978482553110875920804552004040465623933848843379393853154053464292397186142040733021493517461631379712742987983449182408026716425539092039762332627998165450222275900667831919463379000908112410015744336576425781963145868743986493163612595651423559438011259339376059431871757981796932197433923141840482905193602376768211527428121805708582387867273534372567283910334741093784305015859168528697783667854892669515072117218035178262600156445839901649706737038607457733097946214146076409661316152265738637246705042468012512693518105191513343448934364136405929398614709745781636141185591345760267305979269281491833581161792869695438074688081711095904110831218754992162931989237494010549459457909720637642709508853485712971098639976879325652286552057904497795315941569326594441454909902331353947043366917010012795730932859727183138464523127737522080416603744348725772525484125488332407917928900544007005608695433346456456222032256639124877578979098354527314969391322142019215040850605507317206980140802658644260913380371560787055398449709902481854389152481013442181571064350004851560982694701895903085252115302294552218896902025676421858818844126714326889660458869010312419635630098048091614850499757960566987702595076403370777340510914649001953139288677148969277725190726491027577557956683216537207994296862206945468073558841468316240599804642690416546891155869772625946368385863481407315789888815112945029269452228750139910052698033862494123853896681918194597983342650007984229045673068242023959800871057987329224926434776638603961023038324205056599166375398090481044673467967258318909253045116690911073274031459614540506282170185717866713864842316898482586180038248018719378288201039192092562822696494377205264773403465650043021580562586423017657245708394667806216654508245983089065488967448073680782322674743768682694810279419765290448953716328071072852793465946817579646826184856148273167578630756608794405219404417403597978054199410497869702018488588172340879298049622635857072733435370100652119642502339667531389267293251107470266873709366215950734862471283409006990069140527135500846949914345306052068483648580262339205249030317678607400444810361710722641979360162659979487681572728116395400784148526659961332868336762723240752662641878784936580157957250843282684824557127897772186056040975120671621825280331159509852230076094206365729705270589041820045872029075222306441227899535095518202387760380262461520161831430644506865884719565171212795020758246210398410301250407592708343675611944199810541939693704105769742892376889740675929033207819003114922341818154272801114389147756184666426143277676666758232857322312648075529030393410922822731899573340442551223962181085329126414228651797248647408406146983163980732245126527378420083810767094282211285036441196780018365623010690521782825621542941743981588658913159468144721586735330713605880327183620179711956115188842534179378405028567526223952407603835312330239748098367904342669735279978183179013432119742281102796322032956432876049912754904310801116682853724716538098949440736083079305444096555828368863870683975339570349106788275149201443056131891824500794419917292186582738447477683930407783975396478382338698543913193149725220654044273166374745115007664208850734740042745556581378994278085703382530587702834211599761789786712105510835172644631387496817037756099979924773668741651614393914970965192029905935123394439260347856059536418594150462555856478636078379281900006873152853283839970015724420161050127714871317131205719557690467028076436533656843909172102316474684583488337531834656046576337856158837976821321962978096950058683278535568965749733810647077923531076263521209715062298463138194715917816197311494063520793588711819712412688387066297835319729541804179733875045569711167040192571148123361175014907107700822148384010325149813163770760822967035606588068007788958812812283414265688753084750841093298596815339964218865110213837143916002100928798053706855954010936221728411221090472167338264104873852150181890193604566175752613465451503887606030357824199713713775339587140020921532672242900578681045975235819470814160723707613324117326174182441696882472563413877790497356576756317194450126822732407212172472530691425969544356956469946408900723344176495074382004016935694420838850203156678048093734561071600976001850232426500260701946498070792417382022183261475951718239606290340434637256785986293765233914119191499748405901274220783082648289808502884708639482197580630641240261033977670350653975614182510762933321581173760922120064816834617443451481407670157337125947911035483624120145140548451502344998674668043060678827982790408131289368663107791660820769102427520922124351096006378329963810354685296968136000647516478332727897732589336139773994701583687071892702149957114701896284288062712686412124326948603248651321072680136055151717490819207485027873491276240850564604927610116667984611941852641664125326229667989069723926079137704676976713630137174940450078293871816335481894701606722919179655936155679135540873000921808401407274718995804633695304525252747275780778708432818115793547720337747016365910573657578963991239141451194238854987815528271908549437163459193899089281841593344852876078645681347560211530701303992058569913450465832757504970275891179156635351935761260320025251382569095572900905799526535257701861397086662701410029472479344209189146383626634388252071857815498617720731424743885082024334101161974679951771467023571330261520951090951196740770354689940713361171397544035730834228829192442271283970528178300692711836935814452233234152198859406608123937370490008823924618318169364976459441866012670108261034418191636436263753269299084801937157105417670603318394568254774974912302049695340876054973520077334133310267702367082087187954936773288214738526766158164782180684206241152382544522507787742073109061829780126108661038447200380564656161450730982765695166403318135305861524756445123535654014974696941438114597958010983779515149735552345405944968834546155314408800711347843653942506720781689917619467299564829190316892313099947828401400983805698199928226104308376728267106641851431174442458500534864666012363316378038911719822688710557417189227262664110931547728346492783471540724775769852211592549607762377229847440808117299419829957314954563395992560117875336632455158783898967220400067962726678776257187345599668210365310803317961392721319432791636949588177464339597532905796022653520445387506041906426930527502458959413252411648494175770249624098882807698680939876017881009184533954957477625685485331940512018664614294476307908833471599484319472936532299207924666423035769746882100072226584596092542208080062561195679044947154337177280912566446683117669630142699944263814658861874246128772525071439640915697537046776557546688171282848223639290173067593331807632840658257403058796403564786148287507331445246102613037698827590722001741714515620633001547305727674370498671592878321848468530767906238558903245759418738946897005407218560753371650896131858523853028357897196440761854061016238060445775932462945145125047485669365896512619942677537094661194127164790733494336926042294939898438417812908669284412363681711957736573947926941935329428274151234360243091612679687044742587251493135142390270058170856387037653438016029342510484480464563777475708646079921297967184414523457238074522916071769887450771883831318033901769032870388490643254203772497413193270464887756342889985092979611582743333875009968197426151018895997580290267287415915323503731520371501916695566749095370591439584328029368129257274660294951328803374828569223440861092777181202110276194417081759917231737812211311267155456783576779308694048574969840522798594240037435322171099143406456074253665555674159934128426798474184222742511319925092542266257797918162163041392295848644319515285181393926876293504796966263666678091057723150677028486864365919914819586350348773167515065419744804169486785527156816868126079569108708966002011787566273390306781351372204350705593525199294831372104256281082332483997725565347548876520659162245545645382834109019721466196379555391677119689888161621122303876414633936828365282360616005662932132873020240720704005271546832991235111809450820561067621162708599860870667267663521853988839006371522245554658214250479279912728065901243580512979098401847985214483402472680466024188260665861844670986832152080839890375323302426337103891821894602798367978113378327977950605420117366176032505158318592275294202079459749131936808657081251831166978274632191053204598329336273853350991402793178315525110816822841344106130358799569526964840834649224338712373146881609595909975226992223173600878277943870503223197026164116200868686945363460334303706199360482919028357825718232500975955667367847205629910045820980650387242181051741447256921655955323023949692329830051777557502650755974787643196835512168074526590837543797784319610364625385771946570631461710078868847244118361870186699556666581829670204040493780104439014358565081255561563598205986248277238819168177757452421060535798847908901123099014690082768050320884465768537001814203644939144227829819793235054817909016528328908346622478670995221232276108202921811059049067054992171693154906134946715174115846029684940486126630788128722171503443956619876514558261639456571134223111278742797090625338255314338812371821520708376717738404894134876330845728583404216264857643348659428476490340551413714609816966530950401043857799681108796853063148234217259560093711797903027614950285306670114626900349719943997246683814865682382924124716758789662532824136036236828182870084131487419583786687196947556575100850430166776036919373501016291645766211146605832218415250373528700479391645437802269086529455049450599497597400414539447934789071218430672619384077165414449136161745991640964351039879134425747172919539801593365956350207459651977481189289026700157282270669409550192625271077495779170483278928208164756821644372591352571338202948826535058838910623564524882412566278077519480962294385638304268301621014174077545114437823494786777127426117579251849418550892303347394864555998026457128588277240723967096401331849411646244105851601982443855102874327504527248730477866178561097493511034002753307509534622733304258246552840248163674815628793760586477626746627328999603190435053555552284590549104378689639479246848931709106871883675947113718986552103812738659801738197798488397388317063353853848580290194426071283505030341308254869472550504946489639663868502717427723340403951592213469866506597919106497241258301864917930177490327188524230758053239068259306283949713796396283481010294235959110774418736402691906581208581518236112949868034445906975002799899271638655782931552276161242450982955017835393465128540960277562519895244009705079112378964615401328847752710689131253524896126076228839805757038284734894599438026664498399701388766993329359285708185072948788889032523571107732649394878373910572254634374233228193162572572517486079376234854855819011513175083106208367504246263860648209661188884891298798287088371435036727207418258702812388275162945678411562452814280175986529922450792388530719618724497501478061205318750786506342423423884822095381223853535695915072718194613786283449781909124441510622750932094476495860517309342623359329521193748267366237920056808846549714937894529701605710779095723426096139341774020804082275671575700083440408302466193478097733525993632057744265195860511594730959580297648066569395434398910709542059583368487758769281398979993588779295051146090005598994031590826896046724960034273248352430931072313939380527651186908401479944373642518382841604903332502571941460869934178064286547008698033651059754548058409123635732583261568960943361154813600458721971280900143339845198739842164873474073037612722796558174614181457574221462597317772633659976903660208431242919332886500439996415467232501762866796363409633543318296358813827377889374651638151822647764597609540909624025242694162513516951830882417594817893134247222393201174194106205411138675745433537678651419734743562851693210761436565452224359881556769559216935244564885155208894813373616862998627810517490723942392826667312930342967870133922537265342928959715278225464388560317999124773630746193607484137687773503631439511193612121141374049528250034807687909312393126009407632437622424675101200076745563259116613855409939084423962040500778351817262503626377763887968843140267335900395811445936168835098574771297867883872439538914458096873449938140580478817500379661030446008249969650930762445317124234101069831194407912393213303100772442539199470400517136464787963365962673995868918160182635054485897250335219496580540937594894286441786294048665347951738104174618259177351156358056698094798404066393127658236776118316035904309263781992233506448569649639632831638428661346767644793569669720919890769477075125377144398185353969060440870694537739962297520188715911393817297926270661280456565396923636598210104817146011076501052046534684452281249071533182676777870147387503348018615228764918380845991752052940345764932171355025537077665295103505860673500887636345923072136802312412407608848218485472925558114976493839407971279419579300827219840678447478866890009784151797219267999228457530959852489405044133521200977710603028893497771839131129093665917298831679739384649254572173455127469545239405041288258367460822293920963056053007813788852215231725521087805511214618819492861233286236788770382365099416828826865703957754328354527355462215239502547458827171243517333923865191454024682546608337848526612439605951568423400784417538673063846472606848080044127533589833541687734870781250445323760494211418465588817788153026070285948671603828298037936161302228837996646264316998898220617249476369726743518980352502086445882351282277355095075244885341562153883140120897855839707389768919519282928789215098355308893337810537003032315495976233086145008053472171742379808974596354325137513149080301940267104470622389343353509877060073609818155494533151138417080246545154565470991033438380132401318900320820032395932451484913738283335861457831099752165504358945165638612673330367359842033868137363768533588034087629297851437498530131598021704720728965928033458262557503089322496287757939827174069732899772501077987409913168438551767686592541574519146420042582140130356578010024992322661181415582334121288588831211974022979546289366530564886327723258495732765917112710442357873519598850596731430475706440295688460733772738990413350211647076824132510129297396407791975595679881190255535704013357731688369174406135415804774805394996123564557802327507467276468337555933289130432815698643484579044699811309775066169047500617830081931765933229806600471997258401609832156924924290530370920915067606316878088355411084105825736417331659400335537466443795139011507792969520757596294790434651540144378908227575406401630280827190831278253166766842797132560331024211981742452314910947436971748298231953308517753486439275125878480690132929942377525764502879348334176070394305538046554448780259298481706395895513165033842590818985580974872739529525135051908186686058825322955337347805688038187812318824523903987017152022874520919242595214103759196368198127197662228208881782016342246778403346897065099334763969194294111120420860442869980548424499126760172462704795696781713379734680111474412374649757681004419543733804925693599349094036228065743362714342158553458718453271402309428453696744121860402999381326290927425525722922706335897627328472954343491244905011033479559322770270211485355754139181423040505031768435697962410787811743188922992780358925300497466715478640296059216339684944584873088836237411598893385172853682033639099398432802799140563159716087613431169327293524902169485208575760927145473460611147583316217559554586817112079771149800978690919250326359018391503589442924143158300951928005649958309166935041341730836064892137456895492188612328953337654713548753114534072129655593123151582143640666109265102882706683775553149702645415197756918125562618784450688065873404315838008065008169114768808101871199707870996416215524369264624618129786216447458271426559731534500293291850773688188774961990686357561866294847960326846119232399625776719425250334872623454931900535779286826687812394057360015959723760376060630209302684065176727572107109655072806066900864565283220649727944600141608081312194003303988976749087570316663110746646456105828608802899741409095150562722200720734210244572663587445375160925445725924501758013769925700849616070352439502024145443001598657267078100942274225421322716241029920882500411954492499805050342588323723798519690867586285489091405169781489238721152882926139238979745437980374340885877098452345266620340705379968447441008859727537632014973232180748856190961168474607508904468212983177567077856562091208679865043766645883076183805387477854745975034125984781555437226587953968110930276140361409264107540325528094860498084124454430686350448325300345932728119607183281114256163703713588899076252062286900694404159869574330037424633125177616736179468115943385357191242628854663922498156388090369540483955614818400048859892689507053386076849667443709431323363126899882489725111579707858092609163882254599883857414903373124678899640474972607383554612012216666125706949128684829494591807008997240559537685642639388106017717852186891858558979133300319352899677698790120879916294277643686037003595542556471750683897247651083537088402986322509309744172849713506513208695006415616507784362317779369130302087557654800127182545623852767828588097523765104430508273735107026843888342914315012064912934119129324743238579169005180883480929328937752950277378906140248793837587647880447865034236989501998550367424331731727988067690586667753875913699493624516783345641939605625171147799586286091729447994881377924686282243529092429628984493956180422484867544916724939573676690613404938427148747641792306516022208304003186199807433181699132400009374918575944829450540146358350470699172579973642225795552792216163089997965103951908784376550252113166464379984942861633239175025992092913863575315638029462036904077827459411480175935232264852449807416965456840835136994426257334684995377329579521352671517878769140201590578125553855549853040673246893115091634700260196008693763512341997440355073399392191250019001168207587562252400546281101801339584935315851650946044159772153824968509527659222575909820293821211305733036594649666826056481946286418100316168511651944355492843302603735817626329432768856180049024370505640107584583436774650184978378745877786202167000856891561433698547889216387607207589101106124802259596698224259972437031667558942161724765292985961291232031886571230860793151243869362480562316972934360615436344511058283462045730370977388235913655266608480199736976159455948322875347304654396104193383904497959004927520606966903550946227819118048950944628479059683995121984121772161299437852107566470479867012108323358006243417549738403273277376267031709496969259116441823166964644032543992733013938823307284385273602290238618063780765894446490345010777496882591618996525740838080893554926804352007866621809527745140656110874028735807820235990015721967056066403315753030172858453957566955553079161069036471856787631425708350499404441819967975382636611500438817594248337628156378665954296532194438223053846119230343008229661178574578338669021510640759892330938485797893633432281600886815907686512562551273456737116538322008834991992305082802395818679662037319363774949718634849679248760523903012673064160997879288709563044454951468837918444355557619373354465358776246467919417550414422407207079957117657305839872659506133073702568718319195098072559070003305836291467750812257727239176839564827639894263587086269373106026379695984375427716966413824885289205346024754169554539525348236135760555102925028508673848973946486885194373610405253861039025841154027584326203410016700650850503317756348617585486514878555721853701753397371219077652202825770193711209218511859652052714243477133501668729893938574849992797645017692173571694033219884406703654478556747450623966371649915917864320263969516185646486190162716092881223056322848677309009382131671747491577656467232001013220136589529863376594263254279247197073885940014981739478236418744109884542368689860922060454118933390135724214805905614874324937327121000594265525340012228484188470287403515328052753986038937658441942406740490607246463121979958625052471612099134424728146869978383597182132830149992170560428159910725059563378400247203749311867816311218461351265465771382167807783044513902032808099025409066091320462989905093873752518010641457817316601016971601097727616282325707514893307678414793154260051539718142897620629843298688780671416371815445743840787194927360087640109106616900889595453526503665160467950246934896573204284461206326171926660580387576120264743500175233746575233518203527342478592897610823824093682492060998371922944313351482646576903222248163570673878759433719106104280212323274195085663928707563382509014995385568454959149447736432784615841273396514785975848612577005769466969145339544112520519926278790334769382725508042221734564933203894028846474683676139001700546870870033843648201107706610258702947006451270353525611436614628044113224426533397515375660651342888389139505329561578905435741011718661207878225848286809374322439110532356632674692266146501941759884570669982466963336449633162738425287805922550900907415307850129446738966369121871749544118265488002096466640429857681542998465544755516533979616271111279455524361017661463687197370536862120678806078662371189098788586532991598981042807042622240864911100956022641504730463187379147950950421810016538439786391800780152303446398312306060214556364962536414314333734420466797697657531333019127420829884027729499257861169865945731929830520327483886512970459336587493698232240018158387677172749134013293946327757994210474044038274475919569396970298087063113272547229151421787402453214723580862043843792919364187441024942078469705102156559434403398018528297491510223384628535965936239637591394067251086744572366618283870715360052959990323095986645907147172182209649999363804507142063825115824373521501712441970623237882832111011963420815899736809190722122948725547631236404325562321513841196941555556047040075460170219855475294653854391524255515482909250722486005499390155931310553903707439274556159628547737994955762367011410569600903195191195836600012344188365464521076664900860019906288493161331499567838852633805658272765943536599816922614019474942884034703152832125618123379393978304340677906179391056760697941010367975409409187503992893197968754377954378048462104884833488550383466052405251494550773789434377540547264753693593305039146953813635390960835514917279439118660622563088307944387748164399304092875865565738360241207592594336959831267855544168417712114133761898848797444176496074121815358118362637635529058529844474262504151922624055534916086538172464604283202226213135530956533094389187122361989524433849978964555952168879629619552574113124511308498497737407610795869165943760232384526164104693403439765110745559636295872540841342612729324106156009382798107671528062376194758369972277419966824014684847621072382087970087663865351639349160646244312485614607162765300980161880151029548347770004611502947127275907218206063299620788340167717306491730467025461659730758080840496244143931920216316213368576378189700351197144776080882369992367396857490478093024200167262662235523756943549364932392250409423674792464785521533938630631097821703607137037930488057306059172727360828395178982869835349188388700844162815279683058539669799403928293053077037793344012296983186268113967436411351570316656729448918293834968363105664690700093618682134262906052689326867088666377647703731371804352180480219546065301363894409284441085941757876588671835494631707021388485098464258180198469885200696668258225705893327187540856491348177080933304685240836774143347479016970600948549805121959393752628224859822301965471395004792030793236712115149999312010537507675261742122923248832768964898149180539568022439298041218003673865966481370070806540971105559279614099413311156427827257748922595755889705482447575910482259999421526100553950892635934285177143794226902952739807288784961553817877659071216496271737797826225479024754039684682626795484425781840025728600967374401053361988333378645172451592560653403004701982781439165553681891642362961155652229017150263374805863293040255340769084958276523525559608273086952892745376465208881078547615643803655465726938547333868636191546942981688239806825251934915082559354447941624012991127970813776436737726442000321402256569871151626348621159442509364201127206267944220871675505638452004815074160217900831188788980563269674470118738489327899394645616383576143315575291978876974998242805051839500824775470857351780246600065955151972389775719783112633347784320889872723922050916486782159529415650628333043255344714065889606019801582471965074009617259326840330964460809346224356281856615626831584661354006224208667153118427434059837086761408070060197392922451266400672169524877989760659108393233900226464752623971739209531424308502643641736024762482152076081197262749678111761592956959832851016821020901129625475523400042989003820459312928928104131358961828387166256689261479094457310401764018870871606103909882294561665005308923618400905114513725923849607586203123822661364012469105701294355179281397363376808548416901131590989337425609459547004199611321347822395779892554735166959594376439964804562212943776556213543424353042638336744820816028780583766072550563300630284531885711713115938122663943045819247672128124787699790951426548690154240260739808781056187551641273858644669108040474513781751425019665359547840879071106855280217114707086686364482962811972590018085964593687216548459377392628481447028066014131770530586624306796248037719799454893798087253566801739581862211533443473228342451171676472829589891806462430733298301421430422185743652693652118349425584005278376552919045853938102407652334291229087951508353716253230856360992456063424204353295914107930360861361572535159058341627077627705704119174291326683588601038827765964744494607550596063152886137274872036403219834679111918767795077101591981675172866032724225742141836003657480822246408567390355495533056335606354952675694345225002635004760836807520947037469511768394987222831287816863002326106193954129232331610163926973893077924646948807026402994368478552225876642510344019573201376006495946268680363199924926795396378869302700046615526410579041280685792001636875878259850450073769641449409000899420674206123104119824497939427272817864021488327615962153614472344966677324426166067153709703321895729296314465481960005016609875393920418257474717678610894089619582131837892003585673688183329170395891329903571787683270034545371274681447633504617478555898989599052029365228653454103042603163778429979615757811759709827525940397538902458380366201592514028935259135997901382424234753621461563675679142208017270303016823164785647212933725212193758498954142781523856965203816841212530614659121341262586162253283099805479505809692976525070224290570596395574981683721998565497310421242148399810531553942852043100391299080084742628002562576181375787164606415154243916869075176559436334812413612367684608150938924549194393760613451843003403641965688423029277671564419148827756204834335228065214873684518073371229701238671275946573898005677057791285374742127940381595386182534412670712997459165906691149790313613417037674922417983469562729358536753353802314292348542398929515440053930664165506357764640404225233004185163726761984232132871664046650987169995365982511088697018997002519459017748618785759582396882321667277954729496245767205870066132619645448301064562356575046872077360743069749837709575859178833862381401173228345330474417700730729118151194844299364618684168307283201261441226010879112701797820172631971065338243529521521405394472814538115756213402182714435702084825621951235536720141380447019695716989080037216637107158591071268332140050151144932249893174302230189083607623004024438086098183530421521215876316375602709401864042446753010565629514181767123544086202169137751385164641522212694169901207056456724440682639656933151744169677050485847983323154586800091979804471918781444951705123198600729368265852976734255300595321042368780478046537866724962690252252006550190209068623629943579964905565313979981822117643350719929395137744355988466089448549228085756730214052022875853868378924077161189730685976201850918346215222832977343759132849521401258131371619582854173007548283713197814532149688940882449371066734398829530834429709130338169280112194889444595501302327408662289645034291571900605121526584861646088309118846365701923240541872761887624183100313971547475970506123989335628660168316344227267607085395471436618577127783111666906842710323223177598260109860241710538675202613714862722670648097673785600329174359029285060386639842265607956133802655833818189591369420916110865381424397010615641014399819662525086728469479023078201652339320927787638645898848331651055158898365915993337238036484546793818336649760936273397634533159826790698546229035599140883997499103969852850554217217073193734656586357297409585331667735203955150272332896371340959108357781343288154551706946987470870399790340981345164249416441291275629395755960387880026785891497361089992623309001353624030544642169620061293748627748706514338206473600918867805424311999664898634521346202994052897071045628563285614721531271237301810534635450417619716103466283864065466345550830924042008337574994135135952610848561963955945349894733612870664128343998352258344930020044495242993625921313931936828775833997188674817933475095880117801268057950225547398351697757601428555428862149714973347004620844400679552718573433519654622982470248851350199424710183321668496464972451884599706745374516281659268601710743052096617304414966126975787791069815639867868156043370334938732831973616786189942626228297924528860736325365962062060171321101563453082167330059381429292118937078824147197657100436986160812885256806053189030361849305355803518904838085571067950011059889267326967672702193140480114471410094813899102052416464402963538500500877996299030817498760310003743422503808457723506204911560996285270421761376022917277253022380466231661295787697340707370597535194118462237667570811298630267758754930742661768420580348908852828161715231084495973081943810153257897440293974345459474900145934075389377672064701892374294044672710907946894046127843893157610562600091915500359631003729976260010420982796383173700933995449985302225574316582772452455260957488058217047817950662135038019531548353537348493375029178291487615892793769986016204860460226143329891103882467418534170299254672341077864170410729703012450144740571668713354562084170973988831584830697725165588570632110512407947018670438050727411197199249343712982722341869447431217326341898436501901574935394715260329304370266809111524218238497413073765516491398831446204429722073030381443186068845524570067591447908835102517899607728768920663547517586837522383910353877070058219493558719534696014420844927202207004502690499908820479939169213721920317576556374064883634236801843541435733848925186853200647948730632408070077883800338080552832993640737423955107733876368404938850399414939681044648320259731566118522533578509316892066962435721455986459770501637539228340396517713403718458811533782949228961504999402687491821083369987196176321650423772805333428728370318763366937564916014145762080649186003792865859668442598565963453361514071487276546435793219972426330926756871899653636951256042040833695377962145474674428072453861604004791068852249054556626486910245650486084296665311785886326202277228232037741836418930415979194553209241262924094622528026961092798952827197930539283531133680628295198243111231597701795767564102645918205900208138913548903126256821890136917283088387775915981041581592684296278078662483930617870227519153644028982209011606327457298110380012428266580514165625815857574171937862021638831845493985728288801081502987661265884068733231818607158611435205990348753825473910139449397561284984008965057849952559027664596461661121427033804428034515256704980246360347707321803913847485075279470090725055859261218022418845790446756144290012624415609711580696025476496417474653900661087038792439528091523140684613758423992282597386160522553062109491473146235888843696989486029363422769808403967286300172978264202430811125109636581056474418382481420373461772622831566407432227593603136319313314231355446891672705635213977790420457926546123711844002115924758951156663250722495461113375199865416692109261304070982574889450294298720505949668345100540920826337871067413828540397388165298665354692101464177568777936937645442451152191504917806877709553528843832570834542384934798233249026077019630063055257844095685224211461349123201648867517818696113448335094411597528767800160219875086594161924893488626992811254040872044256038725318316945691328002258404102948771110100073727223928734011953563616041265119387250015848973647123088286183136882927287084975011281008914436108648839485850472268251428208221014588584896203443145205705985202661223061585167545261190230963015685901364666797092283653746581140724301402737230492927268248187204870377689175961822091830454139810144539992346530595278469577689589442408813411472593523603434882990306332764360520367761416764992143383085542112412543869568550178718168154835494294721071774869957622131796898735219117761566064859989514741000645900990096800724468646590454441452918414239493853322540633121530987475680177831503818265112326100861490042278978277104026599160556973484753226611577567007280484612989746856542056632273222771261798408958819306704440483796258025505377745766610476026568647221799258306289699315673098846383210541217760862342451942474816396549063893215336899116155478639732024897429097301170462037207757963919512091222990197113748845286884321652147008339575013342956329154546319704839505394763045023647838698075979620207963216902932363605017220830634096388971303248818459770277096735453978836104678996672261742210041212294911214102073624113332606270620871499617978375958326211774801708223583423735288023893138254575954180967806731156411157962674508105675483855615999740798725329478245381629232159444860055869428185895830076507289329335847019730171368725396965512625737612187165031394534658890949381513733270178895380140974502767612288817615318320592922244767076027302887510259520994106963018239745592495955997897474868963093697331004808244140118025212744959740292827927891309639802067522048377443319012245936329204394058566613955440650325168173811478694258820029149594808173671446764546102790032333293512190742450214636091623253315369131467091914369478757046405332949795226256661356671836497921166139812454516849242522491644172912031177289685066080077012957313764151110779902012682696630826864154162892035686236867307517086661262541273015224155114194741706798269951673041025296179026216397175641932601865964716448970687014408958508204259952505010746235514657637877872089536487048332639654797724414858997287382798095447897760500505338803060135608264904930608671426147410749021304261312745940431022074460194613008922573870768473928789430599232697830001426954591242822615255460327491562865158775280915133998829215101257055548789973174031442720128010026205108255796610249268958605294821925322757382206891626052299255392659855075053860468699887003486994595345042686467151093824765910553494678482913921160020456306438727850182542968609156633567030957691475340518760828889116315355455533786830880948047631509739677463010087250147124331063018582197224618546704695770168840069462753289325546437646739059752289912292431609498607020478903891833273222971702828283704696337594594684707119927425135700900205327406523884965711498201347028871107667471880761759638931152189002570242095750883619850765183580804819592323831060809435239236439387178829084816021696536305026551380167482300485541839836354738779937629792635487921162868979555903871015440239175677795700631541428672612990253063778895654922076202897467414810911257970384310294980491564100603300855983880619039821269496887304468330862331180891457055785399750227136313306861930762779768105962719566473017419565128234273666375116263540693819863502766269185234307991515691995458877787764710527280396632059478451305661924656084395715363803956574201431349794210906986448537939319171546433901369034654655546851771765624350647393299509614999483988692950826533139165473454452540243915969715182998173699944239725322530695261032475223293913047214006497689065599967666824930752227772085687093898925548655503403856179682226606527793632110077978866014844033325000627457782211846960830976086626923181388649577494936170765532924771763960936600552059922394706026239032423466801070222718620299810551515629915772446039759817729223407118993114118726213441660276673336704542760266833548464701208365497634680120349252437963358328612731244584568035432486160347908128901008277563454882842201648341464499361195033393316101057808014162918496950863136712448050140030328295781077538879501976203797446245520655315199648184259915598216249317173849280449213254037463474654556359699461483410080863974768965596852768208772222961959190180042206163242722030011260293478358404228672709272857322053609239144189847233885181392095038974117509204432239374235628601538524721746457851184525627869551945637528045286400722863074363940555235245778548282522119859749687966056421858557147828335196158081633657803661082870779081655164828344518368331836708235518503344844909868793684078155380538255714951853722121024750177876354500090813283843278426285583933733200828533136218494009191123864559907109986998628357905129689338370911807759336845784861459088642593776281253187763879989440264788229829081137615330950586616551808959124267339751348317348667481089619083113944873377628147727421782502872945573905469256909770829675854753184038664083852167770193474585371735425174743369977113311584366659134561015071265917886705025879247429739362544091056410345692861900254547561584415420079925478606370631516148671218362063404141365991433002959633224488281106536423889840703425232156771236195974829102250311064649960288263643983391862787791494117693242955521187254942148749238443658471987484088828565214968831058502314630674658927782233161670631432235153315816614847311876749940843798907587694449738993267489406145258855247243338695445607440191867093793896706722004335377484773575847647299950485185504253353604946318709018802973919186205513475745449441025118126870155641243765757945503777097595579605318273039193184558910741433382511365467190830413520298483936695351062720590280577774424251169609489643390840017283228592341051576850043634818691684706065306107475269641993565196610616419592430693781708042750033769243793460418866995030977880327527672639998065818093482709556858805764940732714807088220829783268523652498725326722264246173071203784023287484568557113425611944855214164272368868109050079659222469238341641891562819983523450874830373421449386208248676673905663619590632903660188657547097850669542331627025625527842668030712921366776097203419070322436522586744360372567510105864567614009474787145332674891606025081475642578658256743750974369208206995836360485676496569212100311527105056729456091614907099030115695210445887251933369962869836246143273633234226616150756870486907449380569144624859872997225818305873051356736795718937246501976244623326960234128156941436953279432861759909979435464578289719095857422245251629575377932636087972243591480737677213013192263554437825456784117286242710141842788419673920890646741855832254549242176382513545505014968045859471778803862916370164836183594912582013996587717747436773234467612142778612329920538201256796600687892558156635315068195794444453538719235614845801307505197059945408414819758541843672400347136766773763395612208737344458965214692640672052406480585278221193116198104593236655732999329794988539432780766201968431263805112407487547547040220750009735190158357203902371833709441659581258404286093251905522834747420670457327211390760130950458596717915079612781088729635829972275577424407525853819910235097389430853272353194506375474854035101226434460214079760046789469171156316836913585278793267058490471030065318994966686753575463775381185671196660484975531976139152201096212801810979398876161452568402866104395065664978576265434607113077217591613076126744065546036442493022511420868768513439112547596504624246060296082560582515857773129444334982865049793174206072623305683922487503766686704059047885029002648988962813615245471202934529403603475432101076414815920263902321112377886357116852757642933186434340386571472915598957365630803521975111990616096011331537770860968782951873488504454924752574778030721831658296812364125205504501474901906402449911009475685553777573663885007129295112503766610874692571534002521419574555019157440075095857695252098194994634633601795846832388365043347963764861867513197452367314950841042709809258002353357210971317996309804526587122541228278903480604582338702967626792390290498785383219784694726329368610325867869985519588586745021435183679165715569101690756418594078886934088444229893948609241102997047478590627055250908724890526808976618503948738742891393593190316225460093076284730421786198132297408459812955624315567401540302522149663445831652403217991798126855116223183347165618905196981451779203485122795134918421371799188948581837356012983008203367921565607186480106010696881076912709939956484565311412090015347013710141308358063696939716255847429347955003896107728020220885377379990670259513971411388013052584660320061120094561697718753551580423000972922687685108573966296710576865796615359870693878136295504619921938344177306887195987103516664027334671104132883352623176717133343408230107312154720584599774868116124713795347327485259657479776162181750276179325471142565596404525003646179538153462626288163849097656887645614903378091630861019040232046548120707607107361407082034904023631844476196726329270192046472857621514464072807496117208327815978155900122076793639137796427889301938257603161372646154727028665815723620313819617545250886520187992621129945708043302604525753438970368531917865713324644468192078226179579423429654907853006708511879897304028837783395346177200089557516097587651905232269758700776208240556626955922216768520822345878548438640190441235207437456826789614213920227418653652474286154203236134226573422939155555848071488031676576983610148677451764466889971406503676177938059691163184382784700305082399134076842154820665618947432294154381953767463048459103067628043574824645783769424279252666811059240990108676420086598844506886460970322863752252496706017429546005233648212863063489911801154089258001328620127323739408650470361686660077533481128687032883791959273657104200307230136535557660738155959555984488326561153412242735772165322223370395740234906995590693171607496227847288784740738790001146684656422269750893433863848509779003077521032642117516673828633158852109375586182484163964118451761094061909309691415603095187284884206717432209724798754564827925670825536577061104449086475591922152906319727383405010105930906134240083718291100120035201522832890593095734100799928781526768188784840491493414942332825642114993764522770830673956390820368109527775246790988552395842744522219223819216350127647856377708298603548835829679836090298537479505435869119959512204496064936393924342468192725517346448491112439144241455601624326412229221537035197558012703525949935278294602589016451693104203400823426360991021636707909315481266286056483912330091339878356363503583803925433246358153720967135877225822546056549439162529806580881785835113946517341255010854997452690896232421159009412914406290071503765832622038967020083051210579850083761644869762137433271130329796598260873188662523536614943384029019329752076912179480334574151589063550940479241852073088124749472987306095980044530574647796849271247500894663565759584783669265749503834465970923785063099886621510755961581437151175105599808419319182170107125017760516377077905273376718093207258645773378293654783021530306278678130551630974310930342828722929041079991861370011573318544567426569378309382176274974261108777440089869966211234804034823788404729294493958006909946230591015082996970195671998823794335690127044706086085945530101576273177934635897990979583655367317365921925809068141328986462872822402250150617438602382156666673204057997414391999288884525983294590696256125597323256132337077718354680467058112239354588487029361691355290095565660559163601572780094757291106650334556458763295848097518503805153514316712067890717765057455061767499848550376778266275654422436611244662271094876163021294618671512470737061754582223662731450042752285374057264264453237852508037841276231682793798926942231599951768303031874330852906327359724730909915307691362902904234137003225435799809105482105852032455229778926798795542552594608038138629585962399226042097867616284586921372965208521309726916256196108145288994044649588959271044957981820595780236682460599027631562740514160557281632386582851800575936801091607774312958049732723550568883493814810001764933193945117611402687696647672242303567352087666908526081668365080198963019558684632231071203293675504841240298750764758102506565863057389521498523851039521913232037932963003260362730225206174554060705375735982518856315971625685984691543179991973086465910027806940261757873569032350931056148599764474225006211193478097310879638455010174102272229757799868628335937643009774659703849389584907440538297930965213741499396060354666291860531438646946324682917473630443653884639822905991785738352870705759074514979697783667801052021069753947165915883364050810849667577740696847243620781046801022069584190291676892745287958629010155959700846764493891210257229271864896160248173865219794131144527649546215412103012633043926841994346803418818340882724063639745140004787981108090365285126971146882649764102308460366597453332304921763982534256134382299465889300773727141755426476864259278284045015857194133040339948362669959535547618741663225747387744208119048741046419079279862476494173892743028583301917898229448845133740659407725331417350060194637682534724679988767515904924863897418769484343707462545667979678084246886427790365476026018100360761148797051041473484231614142399232916268503232710661354527126362769247297322899687483684099195693236918124113441436564840871485625123586653225812604568946683983611121117808555597497855278789028396432672976348624807638238801576427624290183399836760974425502695116200606795124471470087649801450187415689490337835988698281049481064310707713808782962164782996852341232768096841812293876185386968345915402468210187343909726024552692020660790535606614723014845872673714384625281496188247215147927006760856009357675507034019462439345816081754071477075530552059672377583698172579951378742567589091616822061286416212403266368525984224572731835528988652491111782302806395373862855421238444824059567969141575365294373656892815176211895158765369381445709815420779109150209923691074017989643193961045879241278886531987508329844876139903897063587020395650923721281969693894082103289173819991788601960320342086275297192174010768129959177995053953830023909860600003991357638063410947315107743675794711800762831210232327697490597545100245343315072211371618763873650047295413541217603653016062918047896017591130608823491312071343094321322687814134058588632017674558967154031938233929789601735784747995299199302970891332415410953074485032674892863906179688644844207288820723473185718509790936005923377896796871063835034648022321014885232785867568773233240344448008495612061234862482167168534084367424069314178020361379870122224312637865419407421839521310139247991183830604519625364417183565200607901523740975476183376159026477460569451290816570292812719085160875799647078653103617007788509183831378394136687089048143457962426329643555432467291937172643322937957349453214815093690559734359657605764537468075922744324044274319756936930820411538047551047447488222553064151372230518247762941115352218121970271646967330839519626225037554976817772719150258727203774140644939715635585425849861839324021678160564111970436109003041274747236429813249321345099241732494235776929483768934359454466373432729435582845563544493735796619826561593020014121542675386553874570248119682922859213835478330287466784314288027091174896171080552430308771384096610402280845905532835855602353923813414577022056402112009997698888289583256625580912210645350563518575826411852314809737992980227183018354354807807815044661793228045566933883411419733551435337075868694909821532173083143951689376558483797922993271878615150319074632494348083661746431002530419855850670386272154407576575098682772813170270033246337528833155137548608340056913382971441949646813391953846045791339177159094267433786629693770119187708355826922361774118573784113227124169194590318937766943420804383467377340117739475645385098345205437520232335041272456182216275191891563908980628491981422176109765622104048147210664125236793213491451923005886467647831672304877721738714252598928265403513980849555979370206688632269486420843376946150848331456635938754560239197963436614585757263283655660661635461792730975800472244264543949872871121273398895987729963192457568635579531529436625793040371146876138553852507766381391878956285312152113057230252196318451652627646319747940176381539717046533473296667108589205537412914144807328293690226357369164836873440130898424508226398853289328118814990487462221523179017207404740796277793862581660114024048793800580825547163482223837592748197117801717748625696761351616277186289785538202140246702561459933358373238024943193027202260682706962225336107706089243840448408155584342356261408352306243982453717032189309039941167964980016847144834917721476218483568791431831476648166514595807061205347764499439837186437716879242901874805051486189259554747556976163216604102301529190263984851347301842983092925996009314431434060710384107193940839611981550754941982199935779652108226178431446942362143392298731933040378469416929669007077403120746980006191679245019422037192192624370459388025332446627422059593610061001654321279201816900126977575706022339735498335134154473253786550260750005736611714073338001811139667274256199082194353019641208845833575085147953634008426087867423702096182833190665346694330457582303890328368230864625458580434055285470483038377471117391228100069524915790682963645477012598111709042649129917947003382124579333097072952402441959744208412654223784195666328052708348214400986761520809653705668893442878819933498498280879225644866863840797235544900853373163698858888986725369845309807129623893706437523391587035493768172010753061789486894703741786266470563394438402100250109560417449825386924177672868384234757838559165783111667643325231549677188972663109893412654114087862903035311314665901720891192442210489778662099096563294076132215540570369783835818736773612731167629334077800407419541101851034323728866791044530086704380056438312334197109348313630680834397404212841236729342534362593420036946606066288741676686379879981668587473457806338174254796555037861035525499065413990273102364214517259149781571080193428159116250232950873140907144394446139865308046181124940694902626540655584273567315234549709007081479406946404981967938879287601350924091416452521568186810674661386066006504443074828595271281215635276486178151615661108606257603669709180657521937336845643897195182834982349248855674521688005608164053248286449581898090397279223499412081969367262404170498249478739511161041056035699261600807846850553814003667415719083722345089542986978578491722603483885658762879663016739577430294795064606365927828033028728305405081717149971578085230590171587899151321809337105430302365416340748559318762364546477152170635709835937295031653569979848054636898290833624574455793222495573905253037610382136284654279056865147963664435927545017344544372132990919431314002943498140807652180349300023210609699989722908167335284171411687541039283908247489723319023590092233417567048209421224664741245387442469865282737617922649632854644624121579302554524393215976673166192235669923925240148246700357834189783279923329108562958710658283504717732860736517047264892931647117015826203446131953748860917634559299283064878543336525316644923424669486899666556726269629232912686436313760524429078173473561872187845680218775627381028019410365065906772469805931080343755308603242872866474671614767955002637199488126114669821351377515997452658975330858131699257394051600632294093901495693483135745624546055701793635563875522723568454003735770784978366884126828497873919624873683645447407311118610124887177615023913803713121248121155213482059309589382535729052801869494146142652328071094449156434993110047024589314386593512997740711173821632423684836011696820933422305694563091592901704694517065735316721186786950669937792682838468775444158252118548237895543851996720013052535877577567065193497391019704639063363699512900662584286031535064257059488245298062968587623174169493514725208920949364512885919914228965975672035100192099049355178894529647179053007096136102790393080219261498435702407790791297120391232045621604904212187421230107234015409930895161281385402869129172103742292990058586411870753188223396647806138024681595695278568194445122820112192723141715105636879649606276776012453674000156942751879034112061403472041095988522622187142508141200273803838768282137108060861396388535109063646655113200696707422646751050988416456311400713007890319041401204866142348696323293471637053633811579939728130162736246888876752444159941895202085309961115186076171811224770111579037400061710440221429004687382415537369133521545497034072735344585707585283668289341895222401895426655267628953325968885656072874619653863144812402166033396302660798196147472410386897062792206757948406970155810125712038135705773577690983067105437222553385941914378733912850924955769911615829203126720151238755416221574674272187909037666604312886036431324089487910851930831105649512563996684748018897784712297654642934071418236759164209731749545886712224671185866915006643425661560364045748883980912967957663699161615797757718180638531682288677303780780660060372723912236460302476976141544114717373196677076298828292652009988887274794984838845427080280991283775844159928831674743604404485569713374560343227941780931508907258031118416069506940791455258334678067671963073661643375557349410403305475036158712287854724700360977146299096648995748638167289512050244645190287641913782115246032457515911468721250160357606498881938878969377165093437729182485383800689005263874796643610120718743563580357318745458654868870737869727119139468409608872137418835389831810720032813208687306824182783325268495090202657974637957574355471098852761417557683785487278120590816293606303487620623183732938527773821168286949091870446703103110234164913645122353002185524962649416942420428533390088470224300542525217776348624028258011920182155485231812947554439482995933873268576590093970694093386248582326208978820777470062456988632058802913066615842559591377987135967814470907896718046133456470017359102157622078496660819933292979344628489514005148052626234604114508976781154624188872580375063562358842064176130039859401719365393169157135138188394059063584594379192472516684626296430123273818371504103888802258505190132953205433087572295448568528449691867091219157663180990486420326676944903080033309301566381760097183827214138369804379215723631284328195259879190029326268155718534932694500635099656449701511026570656863469784182741289437052372187086023242945947711268728697767623688382384455783172474905621444570619991239277340859073060569434929414120897671108945060915060587043442520588403824369719298457628785208797285528369532043859905777601406715595740566979022660212747414497566921897670030652306479236373768048672910433803284338315244775842158785325428531394061527725686441785905612824807146817555855870591511225709237878843472897364032649224190677479980769275269265623510884369302504475430466889984695080693467865172537575749900284634147912408996681889596530816443972830259566773415578368663374655227645795714942683671038045961432654468849641786716215677435902577121439569717476570062783784833106628352141722112714613285848723264317640232525116976195896440383395018757358393479736133041512895744322096450179954737931270638272597842640699494832772005887598160471054803079442340875517976179234339303016637133727935482288221067933632116748566866707634291467943914649310342542303730109181244277950485436252764840774698378011201882946007423648904728696264111767219425835674228196686187666221891660220875012315233548606296785586878605824981919967062327972736386735736105261247416388742260083972679950479386453351783757128891157638587546169864253362308446015849144800648928246446839635347299050853836893344163171979398436993501836508986975455024415509097353635967801660950495332076346829505958076938594749443572500340542129401407274683346608951131476041336349190711108332695853820771525711556368641903584986063298977329527576891981311943988836480727899835932482112547515345130763359707627135726550750282470818638970029362504278972747148000257081982762667994747956101608579772277774657289279298114978014450791857768098330329154240329429537861995548553552074721724329260227946520343289494624132440234652284851937246988134633828202142145201308918589031177279704256936980652928741853137786440746182067058789551122271975219654587450784571286039958001230941866548823687858644575193987354856220354211587593738226913539922838793367838982197448867368662764447476504149740591755415381585466253703509198171043430758464773432344837803750368913172597273038119019545291025062234680880139594116243563571730648945493356397366053359700259442982565480112191344593785440742543717750698303739292132200971262435879205917530932489617463582543689401755430905405626190280850433394347518923864368324469369998374062084168301194748399565216977353309228797482441237939673850010495561702915832658220087422698691490068412810976880093101898584178182688787408570671360707356485788710071491668944524511824398551525468067449880223626496063321525470136670145322222305825762151496778639895157929149395995621360479657593213013269662294090258825239708070159367423081343700911223536449415480103498951136633088738133279054550330641489507343208867773659441352851460400537610939987374059470357448951470768907922766022235901787939945079856147408191966418814825467196250530613667327327654027942683686947434545755214311126037893874653394494873474093829388845929273279100374002056134471287916071332267968639251679890073521477831890521399182923351274033796236758704290105832494064197726220163517076811463988916321550833324650315957377518117197507211013271583220002521480288287268110030947350024239225147749631346053569546111974512868754357193877359322818876959475943300756619740883693528204143671229548584315417532118683730262418552661123244091591151265433624113771398356673083106604158740898163396687867344548438486279342036030509202929049828389786980367321907032636188843069355158883050956122172376526740932971146041217061134224441513100507255284808118649981553056500562888881833385406114558089777166004949749860177217496641016099772365703914753174756392610969968448377527128576914569597032921779925132329251285354276061175820723869030178744080625559293588211999849960846220057408925297449290151053928606326327225632523157766414721480936688188451063616252684196419810646455868025473052812627384005495250379420670189506447777319849591048642992677042240298581343221636022518978511264402569539061408392317320619386121261740244695989454619238322744889738871917864260188010258434254922341621689676839883782120208942838308488523029835952041933346139578886746061347915042356123277244322648808511960412420707206471328644454395342344926903152259322748292358568546204552358213689065591788324900206747056822416489843349237266492863648726695199428492858318143401806386023150246064965828287543888273789418982570663150925832321747435841202389638860673203287068024975551318243837764034903986472983292485233752688164171253982989282043506816436707598761579034486433263695443918356942529695954016708269443715741672434123071287699793683521060658329220370809261978597131936718564629822448479112347418935809347079727656800885289884945705618291353378705549403334670354162009021952607996238020408077008951719631658921786404156868319925746211818279177032860565718059148531241658228835678960532996171707276358566409842425476287503768730809635673003596899620605630982105072809860215360443949690869809269103848483496560707372346303949352735738209537146318970706512994317967320187079535891117940401716502535935224324765397218593117798038073672786615529693007579070361887489354924185715830956969507950995870138226348768138235389820106044573352732141393976572967809300512933325472476419156269331484320632142693727242034761920331988172260159508493312475225450989501695662729974551344497818577113910962382857800970242987076635827649409142402680481292683067342994135593719774293280329846246247612317985695445382424724224175381964302907238924831396510646567319870941955732352610360224090467942319956568949120631551109084319499896170219183142016527030910525302594261535061561336492338411288634224821965541798458496385952143062489570043315928046047308707213263229718526376010817557578602296496445875025825170323193960512754085002430026482196225626243921987887980611304707273838430817597740892176181629269964076884225788108030402174044395562669866364148569672991745023323084554292259386230881919727754563021435120584872939805320905810777391483888204885896071976117921244191671029970636905030802574257938027496249479305300923356950255476535770460374970037548723637565318237699525895674337854955477294969123876212380347232833837539169033043499406741317748296078843389777221242758160628247789223868076274409519521099558969570777697469553737742045421301162074450537696028646240131869193220292059392941497001990522135611222615484343033907583337309034758576823150047124389091545750513844647009105808619437770438536279518204199151550788256308225369339281540535085257568195987133525155804804541342791020518590137721957211913773864007696440574398880012185592071529112546464638635303629782308812672192435966971665953166483469051681430864954982920090074858526184763034941847934828758809475092686707995958905539605799055906324223671548162252820168102751248027073782706107565873762417966303838692645516620320765032624151414734393984821139372837402412206232893434496224184547643295979142139600656207567768677776692579222066067109055930786095467374718343412645840313593719792505535623071622599781563084736234849523093888057487601496785103626871580967550337208257039559499594871621378198787325219805699317157058913905937578152713604156863192907082571733107713960292645127921056071129047182569665991790312054946994971760261623820647537104210637776730664406477634058891932699076151849142679335536147974712321558790819200034465223912718625025769910447212163434796222037374939745446466199100926091162293305580799885112222896881923793395095594210015455060254075593733241238710260999536942893657610645069152403361541452442007328387662112562339466979499774432099630252503508822044620328502066017843006604546105754157190738923162320490868381360986682406245002326949334594432513723902177432912169785996916113174083319263876821623164297451598438663859101851075647687992093914067610720207425268109702375308088717998679783673712412339097390165622628676975177016988188843343747166809154953379638253579991725200735667893980117191335733483342992446219828247020943092983376726976890810589084334561484081127739382933575979111408115249987030393263590772389842203153526471383095005400778013482674203919970809003735065890495474849686310055511312043443630609017402221784581680390713172691732701083298366603501552589987419907433684826891447473614230621922172039174766472122380724933036874975632011301509024067638034542063569424975955763220229665073063180698730568903986425970588458293363727493706291757772828957469514132858632308200551557208682859686768181842402143303427376165257253548624945974183009554053473094591421149636756078597492116590263331145759821515577209195544500730266392598117549510911073196991308865868196084491347219993772133607707647391605883020703850879740302923007417238860380783363821471732343943371052660083883220297708299867561410888264337460428178130221731539223337793537295015950739866179311701341108470910480295565888887299964751252157408656929024770456795251224975100835878044160258393768315969608174081387725095743647840458293905707745688817708094061447924051017314397061967998399138405533032616525972532955963688560006529246180276494879841421581627019526805932653628098094473997611654923213469253253697158568598605433132687430811304410937299559991573885175056550008890207002163923555014030344388284851858805095993826059893101879554311161720182778487124020490173666223689477964798548502521239272976841125520253405676629476252763793563623769857485619153757639835263591831494542096304131420575083156363444689762984380223425373114178312231896852625360449957571403222263262783549826600070010973531920744000592153934261072851842971397977760876570052517095157324390938532233221880180105340174370586907378134832602834202709233331943635784972205561759603258867566132403350460877625723095253492590089584584518750021775174561823628615345164071524162473190779272025558822297303370629872689944041314266386624210438126486922664727743243586928646470997753705067376198058554235769550838416888970003220802235249196399471232711445769210607854466606252712605916975042919860755869893258254582100497257600272167715805184704025577585998231710302542113846933081509805201443171743365524377222921225182982184818752668178946441393057914475712113802696655835796469773745476157973572641425547353099802698509923812411322758907742400364078775930780679461039559640287835848368280429273660034370951540252559387275526163169280119009390009301686669450669342651108100862753011813774704156721330230003057342177066446728029627616515704586786596030153769119303355524795698935417979148020911546069493182965799414169548028508715537990981727903398016199433960314190220326003660866611127578048409840168984732710701538327478795257638863357274787482901767297284482383400122893664345055435071080653993062997937297150080889617028126174349394023103332660076403364402800299713915061242660413007001479916486621255793848988072733054376907924040276318357371626470460219568199225298322889792996117702811852574825169717182683974015880419355673032750723659286991050291048133443769346182696535526728390245851456824388643395233665179839102008583742645459073406652666260773990205982480958236551513769737468760037611260719785682140101701127861721381046770115254719439015319545755839510907087327094758216595935810336656205960919425260967326053905141934097803787471941207417432305387252821344526658016753723159924373116079229193888707689636241963757051982903633827267900468644814744757406853773087026213783332757496030730826460087461312030807798914163591285019489172256025490180687419929793535251626549884176040742894144996627523589048792024432219121296451429566246380048805308020259561190857027384141185969972768409428143827220062300575419317653549211521815136768252526282636014380981941837567732527058340226063921136602638691124849185786918507024615175061534068934598196255628011099772204654077678616197306481288574820008979644788775603855483104614097088213473550066694628065019979093155633480516941801908456840128693647460276828495215975816329138987861443127317348378895080125569067130587954997767949835068891471024501964137055361834844611112107739852255764501751118372335043421567402452352442016424612666529399360221145872953807888083578808284497503248302305909806696685819211858690847348165759040463301423045505774013876399620176256030999368902783405706515246920122827276781364425559098194382447581839639883777429556930838799413178868348085946351650821529985379465990506201029693983632816365869767289726256012454379002027073279108668871249496722814033665340100314772810621841880157720993413706109511650710058936922179903216049629127767062762817211483457376998446178109615612843525208974800388571975071927658332561447557176817116585271345615929892306746651365641239835467202381637643290837365054922421638388273220779660931262511336457504377323734869934128266027170225115669869569319156294182406112317004413506674309974631706905120288330279545203263142703764325703256715669537618277402500357773390113627204562265271187449612682148576452160616211113402980526493359585974657465798830915448589875053256531181551242689119918115965625780351784321912865555911719717055348737879145111913473173155023159050972760033752350307326341097943439185511805435107780241350451631244375950428050142830305387845008433173761966735299109353702928335655525932035919790695787530362657865334447236775262752553174113485949312977386729631567798686438041751292648505220033579063704416241915613080212946282476433288058329808803330177337794644283138305864788121108576293181023015413266248406819152010644106202471878469944950680310523673745978653450330688077189001350773145553079449184769677146570273503078718125158006897246407996170814524362072772015193130445415794912548623327126900124321896633807466758766338900822531531851557500005036366479665084080293600377789062185436736109669227084770437244895111697010271320970640779784190112948475658840940702910280812189294281177847868283034726201441150240075421311169257630153196928516323599389765632423786606472024432208446626266392451310163814156499467104581225956619258335233285771046540010815784464677709785588680093852681525614305602145316475241051823571953538246576000108852905534313417883842996971815989831072642146318220004362519953058043589331194747875824834843751012660032295169663552972057899962762212536987896012453294057841726345447331927755329209587583186508783512078327331238407509561028968780897371859005890379499094964410484164913638805055320908828538631268112813916025668761806943657273878659524074035582665101481445069438965717396599190146037367709395476544035654739461096220379836807341106533372629161821657631505074292825376639365500979630820091116977905605071817823569555683709067190649848758600594892524056907092110184642686277626373357063380374966854671476556073991291727093826649501134552009995090166946848881724428705756105682970253208628412129161086289525771753639129662522465416099443683234798760174409884536545167673513714740651301499471738534216010941658382444810252956031293372781507700232441801224805620073588984963734339266507331785918166416093412116621940261606423933252239545370553937583027015850086817976161810652869708003535165066235415842293546866293636701112823201683321254594430090355921381602810521287584656373139033710397278650900510137105673060882506799930138317530251347198675487921774346280242687963204224403552586021834202687225224220148626671334860719578308600873654730571424128085882128573856264314016619355031213290108957916733855714196014277487035268605394506725434332200024670788055003452123649911252696613407221363696376420461759857224197568118472620008189840401289922969645652823062723561837432937162196898949072807915497125988668293044180571394751443674993403019715504721683548964742475299863396136120535131827066033583516618539899282624739265795183654686893144782371021938078099296748878162993934144860097698258802511953663895689913785394507444012232607165969666110917482378644154546416292647451618973111293188475717876963827773982603138573850859656459470271513446016588688251902508218196952434397204599310970526056593413445604132996281822306637944337086103090046452178438923245765285723952494951013944195119761944698942236247119001895134259332023910506608464785129358962638605007093524668684796896841127715888559732595247609926390022171314106697740581464367926467959466322738017974706380819618464585313861814922125737151235333324987875595850067258567363457858650280786081981593837734806167173330376957743327340921975115264910355832226331811811779003797808905536670571663400346474833476903005947730492740003439932436471093225706639580135548506464469413847869420974832742320223469059825369090918247814909764860305669149425888374327335945808617473497808216851492353829455387134254121119412414896967246369041424051694911245890487732211303132925489638241420909857986962931060071949636355189702943398793513237303440221565868992227022222302167021906448968321130727057452907692001520916222496755798230352458804108545913705917505889030392842439627628693952559374197962960536384775234676170291791984276827631584662348847460490480193277515369655265563276131336677070004641254959955277136919053140900223459627483529522205011797951717837782105991865043088611783577546206075804626214305393462573337848597312634485105749645717495504285983916214422782811978319216197115030918173484293618801574420012954954660757472823720205712909577985774981772512444945374381075374287828745487145696448756575993270260012143280344437111035533021495058996288871433940089204480988402952258637616560104683994036953805154113452918028761770141950539940982909599047293036946685765869062156778633666237978331791072668905435621746777437787298778534399424002125013202958432765999570541404370941287821369593751176480392145362556961318335287034642480608449078294312374123239062462551077061940992749867117258602189411657027534465689125416999644471956121286827346864571437632518071830800118615672736592391499757801323875275804407046814776306956111756645182632086017500096114526568131354350945748048680707618030310400054015717084112423306331783618912940162413857425169049084809281975138082920806911026038203330155976522644470245737566156865834030874752791392100880084547407206188060899706837141352766542201057952435865621249400430346577771906742753265415341116516706158270735932588767436710291102275628375582104353658667146667181044597764296957202943009570125433273610627771103430444427288818853426049360240050299371499311929933095861376883291789228447680661066858459602455222958593766947497170636204998678860216577582435819045998414756030996605452210669477886476716878341143397807946225143137126052590142957788255892490392919901954600636181224884271460673794226092753518389188583234505200794729640935498775041305610930324715118897614671887863243452002286479430160233901736122407595840894039329662956019765015220822957735793793411269063121734750918968335229799387548879304104383732053531304105575368799600242849149491348644641641036924583070992991400435296238529725896115234333564099288884312353645968767231349352267709639174136690721409022534474763982866066576570484540044136075145818158446799058856586672391210785588425106074602734964584592328322064361580722774846229419442673342453466196437490507610246260384462664066860382987451220668709561347603674084959918734429890672187855656866728340976549536538126765619716209539140295086837279788269711771588126863504230055017083565255319974538802245171379470393997647293663500498496521052871202593066112404868824117419323078872829296722232300000037836879293660464434796592756080916262865489640851106862965165808993634714257010143770882691541447628791097903128693052539429823864111462258188259979516721379614654370816836624433534679072543083314672658365393658780314867739616678935522639063096237232648271239745993519134185160652400586550705280337175420859993690829522598848814852995516817970725744782132222536892791041096018778168582354604482845779334479026852029134287759332581999248476830251599748079586295445778502972160080807733144061928388366755285431296054179827213325177269155585490989251444359209588722158538040230487018755287662386269309186521620339392887867803242056616875261941725886582849082646004372777561235452167843924480735349904178891198748719942363300283120840126546130774527245570297303945912317032891443974398702764488427780630639744944486979050836089802314936759321414618266744772197702800808240593255410437458298424473162587323002870010469614099417740138684454692603599209713479778321557517655938730247022944696704360029888943525088798226179161151997443258314658887729340051165252677651605134577791575011373866462871158417685258480337625131636551842527317904783878360974516796751299233881976845273360150435796220958881167856545980578499065864466608075658217362319773205196753089407097839659764932826251464969263879701353273820981444166156708156619106022433308791519697571734559086332742375158826927282934454482109073086985725412010177371660775685814322386622804113952828892781683940399978521977371885014577080529501323575111708430470828579726234394016750178847106316022183051656897554971065600782692100634769036621055489934057876684354187224412360040004711082278822778436529645195154782487697034691919999837639510250715526751556413115252204087806209027297598777989703033578728856595117865484230472406883094754542079386897352732659883549530029239130880594821432478109127036304722777843401267986165071653187169880957550515034262203445426031514043772415965210058734392735756371670327583818588711591608140116950980686331823382144764153925368144993698806691759924200448889299905291881338745209642458227685150805900486422088555782774063891043935792079406049081744654677042074202865888431701472927467857618853969334021089278623958204116628080756293083406212362713062759377370229417101984424572963471682149742106548198931381635072227644858756224586589282968958022053389724239861547555700624491548184981601278460906601993565630263140905265201290455261336135805840153166306586018172695162258981368936262564490754073813694082183423923026507276047583863398225908725759710037300222399540152275341819041129041416253758299121688217285620949101530044293124308649717809865068974531684094438860705593129435858018688457739981422224213674944142396033569417048323562641569885718675449687743823246246677195030322563758559233530474300368177160570496514613071296242736617245843561557320415712539378264176286223323690698125754428239057092187063556670161615290025877317842782441360497861898503218470079461312123289532408060227101830522456452346483125542515850133969589941136064452729760314492327590776988957210923572894918889831053441237331043968185393591529027823468218720175793723304324416614390109329498638763153872372359996781224797506490295967107067777284730256126687294806515903888368118022644705448255582941435549591628259873967018883144292333872219193890035604895286227384500790769845749635072974388108882413872395631883344599685461719076049521620253064909282303537254659309673036128905774091981970738231814632491427698552004756964085006669450194078412051383520604645407759060758013923542869895065041523633670083226136706956159708713766494175537053996406087614016363803834106166531909716345711893227816772822937757860259416879597500835397697787450814085543288680305863211710808431338188646483302029282252829643169113111511177259289146775401437921848154313768169423504024067910140525776623328415674692794243324397790709452683011138648641609052643384036279648855578027352109467719073631694867594216013113879547135443250050334825783563550048243104433552970442550805923429797050290069780866503772818709584799613366716907037003112194367893007348869184203745013729575761093223177160307038968632610790636913141764630502276742021780044029728191200175233312525564063219233304929771098436089416223785342841949608289104423403974262626735471242474554973424472671753688223968780954437820517397206238909556739462692171378837139643564739199709211877298143561868889766329723876762306066953308621436938332222869080650995537852939019185252776902519132462525969861649230775705013789967693567443304749764047454908161167911295322563499781213360278136774669585650777295473925254763934896726645887909122531302832879423975389644822131945170889354430335063634702065117717556645276261927041743292295232893537170868795360370754985377882817469613041426814397229933141800045803579710193291686304566254508490657524333282531283046435451968174933173762621367399823300999082081025804541632562621575759291847108957168741565138280919794589875142488096846904339663155505273343891922898483261927152993017817302279373361167926607380238518424971080834856481325340963954766049205945309049897666436131739782633854104552670236877775424681792962328379413109873908541623505408150453706071426769920271036656674262935916397671036142203840497254382162918584101119669709541554824860487098928383228206107865833816226521230223134636804932658982466063345913853019635351997546472789722591182689250118080779911641841024154327329845922027867051860564124487105482189010985840716677626544424535249133549399367879059721789538611958181779630944794158006362764333468161020686760203805321029139800347005911661914141681159255017187046691792302447000012377521002181980521559970006035795443107465430687178336904700449224067389347840414978596077213192713033274322976338968862543918933616083067093491372342240888390649265535120652599099464031440038612162654255574173855824930096043346127626002543376058995362431378572458594094238248529710849677898963363210308331636061228759126148231861442242172201183581426028265691993347726513243443962662648840692575109176539228917379603859412983738816004063802718837952116036826558437424905996126638577182573732263436081736771120373451016063827701706513859689334532028287081309530139742087405095614869285490937930561394347498455354122624590723609202843330923927811313928907097207189990683464408798717534269941760668675945993336033253222234314691846948354327175216635155031030981265401592154707932923161375534887312436696464114537113399560262764060881459786937275738585456728658500462631003811712236662197186340210875265674988963266405236949355807043635976144599923388996471989377003918298123742599959945159207851864828417090691041924222912457117588282817806667438199258380295618016844948562779546319907887545402646770526804568594433156958335579668136046740423047875665858617247286162191758195616069421851753877000388303301283731717831142670132814257341390596386667912333369891099558113115477484838054391512655743291255646814872384424315799256663276327425898555093456806925641006900813798298614577839257324962178333450562443657462941884937612968614148566649464095979944185789943966219537770885792038853074436955613061558225175465770253361014813761697699976903961274129516464175226909593824582799762395055147868282313827088717319691673558234800118068701466008847774581929429382043733314817326186257302361477369569427959080392010908760547964867657234248306665377390091294356508929199524153977484177271356838105350876866318758862481398386144783865652220815283609279870540323975282570836619392346097031334451816704386233095359339896647725130365632652126106774625536131684201359681370783821833311767997919136641491403558876820259788018439451733013011149548697728212035465135927849981524743242517700625155777940365073134369735962951089502867509653899503329403287546800857555972422947120690003338820969786291418871246352019297014159810282579466930071758665345425005479405889423448881047538863926900670328472398370045104416083947912292292912566204557833580702669953903082452027442564857226798371234294440796907201504296474211166140924713273288933847984186885823472524889277644871148390025834012757895408105956091198298725863129139361761131299280196913782407915857587946172277759127606673507706105961625819440652247059834927241069832059013954252586045186625749286501443537478625451821757748046767805994997926322330818542150432917936874169965849905515484121289847686110987973678738998033284205331150627086845700028770704849381014328669944852874201963754223871553411932073265328013643154437148124117443345735061834059140129561792422063093855850319691640024177712268190843025567741424877564969010667127595983830845608730961500321511118748127495162089918047870971697897112658275948721912836326961254796713002283987133117936716652041946250237596338200474924039225425919088366469184746628683273858362818293851829095400496766533436076626054366884894677688343038329502236408598035535947127459147725250227568241677274707495297507918648144504596372551675917461260670054739677604075746869135281087285930462306305258433107021943452684922665221528812004142079549313145472266691020885241683020052408240110141279640601468425464894724656043729066491481593771528500740221101948221836985847814415917573422132797334756975304359009802521654088794434171208936008163544267336830954845951144162867213325355579796894580528237202329917954250719891977913421281175960763396305762607336560856463663260512655648919571186438524601972659024917691259026380459358141890474063960782396616503510942718426139018319390490763068297871882940818392804588478424468921646726732722309724834580086787723275220186546564442377772339500421547675686376974877764294227012341409200277143864971482827942347909460115599006507301041385987717944585005929423028440580856306522066659355678281460630506198913430130303516102452688364576037041296476577877116674699182492940395122834191562205227958439915457790431829911903724069582024123855350208639688437704829059292723379227616807877293970702531050068737694420917453614728418871615942094631715503540078075233609752438952061527641049347454200177717164691777428693227202286097215163759445317716929032463824031965101351339906098745510201256009955062452358521401980967298023273052830726600614090136221562855150508390531355525873412779631783525693806565739656358976057706429509367875043095504364756983674599444654470580336452776585050112249676257952768782765357083668914782885091215921086714175118440724641336463702701968678440753324398058396099992458956369003005552561099008077279322701048305758636651395807706516475725180002186764511104896955562026471523271048547605580918789622163149225444408880148220561399048777351079455332493074493178513118350661693844970612329274326897244073029275773763672814368435832773674609412280555111004964118123179674856723354952025749738931102007765302801533201493733273311582698183799797956492559313185608120133932639505467290113251956279891091773333403989023286696213790347228372954998344732279796375231794697618504118990141289704138260326888858108275323914739772968708459565687985386161377987807806753328769572552318056011480169421184989924908603752185922127422378809108107848939910977945844438184998779863234891266750089211085974516542059848149898434713802586310219628929796503943369280357040964784103257638361156456633215389101062973146952649441351375683010963676643425533799239947197915759685081740675188991489757258324877319898136250715045265116409688303709237925366808962911413803562081210512526488469435375482413942159591565775650380928764070964975859118069903354148897910707192899479946133085333742604820130058579162899440830578512813972280351004451997900476359175742266665291566133402699697735979682141999412673433375526869420573556390127302712397540693223244305618934589804111728029871316566087800370495127678243436910194076710101956183427274987065187377493623851767768776701684859563763315038125462845846052985024417816995431928405497391310697807678009210064530670971275915818928077423427955176266106908922832594091690053408767909255001646416193383455229521853983153126199490466615151725411905629608785847627227378263767493717898318446176191586542404245360568317327460232695471687357018267065529327037360675069634243231516668602314005001570830679171312048474314429051447099754641012426587207721775690773516929288688374034052253466666507083208044294830839400339708910279092089999319410140864560673573518274732586750491464430341867030008760726239363846762256906123520742316389924511510403788125129103012228235077427613408339079853379332955073396624644485299672147636686042468629846468116506176812750152824104313159575438603875659296311965087192315867727010486227348544815476766324419592442396104574481648822321764359464036910936743522137643240475447830139511785199012417381136860225708814390102127598425239997005072338128695650107411190309710428969570622721047380800951056421488244112012087326603612430608888802711278276238874641973194988446980988879994879724413868199379174213574973793382380264118827792922514212161100406589778395517901698862771471002268603710902656202535374216473114408008055961214701702718698428245882978947873880770276832707513964443785227284126332312303539932606170788952605306228051486914643128623360259900799315911719574199288859214451040019113007633042874442748803922995546920956303871402805484699991610667134982689647461331311805833960504965769136870859868227864854606333808144132221379066828664188590319819988338120448075671349848679252277845187172494075010452168900456195515463555786410417960539039861800176622016246922012562990030061013584404675596349514793690952940922807905523892525787243638744262206626787225168953339474509555812861602758703955449565608881125868874405571162761668817073951204809051589524171042348315706528098116549824960797530652534497656907543046482859228315578583963128763403710247840224904708925050472110604726770437178670577607131375862756071140905977617033472599169176207902949755441281963331935782530384043106081275703289668177335092248376253878016785550779599145603200785739060957019125315707349602486937231364914944355546295644108288012615783197959297353039339741459233509934683541915529236380519395854896976031542469316479205754444141543172509918633643531428132727377699280088431915404120641202124651122950309091498135941359250158405952293853113231568350846364937956827647270899387150562726955394188611303001463254539464546148844051145048571574971218949911587572212337646263218782444744012418398597501155817868273330337756108858987174553784145149399951226695067043188548496159733131541222063014481108213478605090728269102763694682405749190790909055282891833034194091731043179419573589464691077355257369316223032397753639554176109324669463211494872222519209148908744422561261146793116483602871519112369387068854402050530429595792471039702115774540832902715039660936803237841394535017477936192160666787587607893294197262511026513783373352965395988143801532974068600187814701514688030581747197854663484490820177066045330591430574137545123656933787300999547588880143092075441062717987034084131164643423777109766518319140564558630793889506839618533378997188494640648912662085615954697878468976229606295853776611767163976512655976897014957959462895824746474774990253287996461037569375221306016563705300165190708966647235863654104836409189797634648056865484462998180752701172825049481234431175684996563038222876964121731863625039723265915626256140178952186113090632679791786054164974517383180138714017263783980390105855739524811620234374785839517740903996597455332411575737393994530584462299831724235924039835545051607963508801009863199212120687307206426087153002726915319731662017210744918096791341268419758796739270883480227546952828421423282010964233574873239727351546886547866981246109948547553599805038257203317977190410695806858173016437422435244990793316123872058520428673853800132143412819897695502183727971433553835835537446142591353623420061627829239630303063422282740507910615371619815526751109196365024513713538153920551173566394526523796647287289680621743971273249779317825642388217798810560379569995113606097203703433764863279916415831137132880690199841486242132374695649576452211585964203952027710944881508231660747051851892360469355078267006820434812396887611448934783525586719802494821716812081120489710709914555433888616412721918639873439976485321598457090227737204304401405191508366037993233484947884321255320168184462270235591105617114436573529342211927378709415998373843000536480822252223741946995511575578763576605092951719877965733759312410399381383239905416818525849077584250341778552358580281688458173189380979186721003143304200043948891019282243751045697630589462762754552981138661924057689120090038050552894777071626126547418412561487507892063377521225705480292594799185983082126184350511632450335471195188308823581969328672475607372052650481327633168019929859098687035489194098593412506119805884063141155839251679673847498035823794509219488691251378028427994205052792618696692573094909346003976628639379041013923711564472604997505983550628563316837394602213853643979603279755072252149530674712530700178588685525267806846912095500650151764704800313972590660724512786299186497634369025102054387919569025555810946334193386669375471825317317457508458052156228116820860841034724264387532670329613284237624548754215214403576825179135133625698145825164027106371745101049724266783018385444617596820392546511371452029376662609654214904349450605328376005590498041962784579865639211212595317502840180624701028076027911616868108897524325385702720553718235468558304557470209060354571810951612696619041605114143946404479308634140652104061817662014445718273911938947197256692712952665423318123889797500956683676908233164650320556490525812841271959998396604566129388123520308927090399251575239908373495288707180092099923112782451228199221152844715458490924491277549988873948129549390007164163320720154046319596098258566139334651800889382735193143213030776529876839051105573135850754227633607905047646855418943027068722217355716630661608235030180965294603468408356719958720275068779989658294154248351289266356769032144494283898384173125895595925108176584887811451163860906666121875034040454321458736183985435086573083536527044901179848240661344248444376891615666399019342439271832681956474362825441224222213562388684854000851490710962816878323377781566529075605916751072374476694113004450581159804361968554610396805479340564138497074936346739006118296664166612635094476884954456855158235728523685716477055995950321386625752479081194305278533582569031345224051131398871268299450555812805928899488155610748171358414018047035602733703430234018310881324857371332923164158059652202056395410169826046764050642733052986772350988798950379675398073527011753882070314126852089603895948535777564116040030347146526378000371118878181460167223645629383315050898625892058151892786386409579658715417419907459735077632006739869127011375877805674131524962434903012276788803402130524166213438834532381854305938727014765447906805561265112116560244607083784723923307347589226841394548505404715624552172510034795131925371172625205344198966340863070175537727095667707435960360745604935492022149946234047212437416880002746330230315622195398612074571399486763495583339721283296218090234934618506387279600254790585568412340977003257123909173474807880600843257261141490371702457563489959673873389129652357396811415892537702949490192513235178062125568414318298532702196011172675064732868047517535472813856494428951012600353950028403708237607274823192289307884160658927810288293807867536026845845187987925117220624071889837603662839234952034066339473875494328338420158976999096591408801565515634825883711820249048799622257120607332508627816189236363923106474009143733028035708984693398011118638172903330330299757366044908894184649888687273425412621711867532890065743987078911047335989269341726084380656350721287246746877923719963498256595745728296218177264026549868922925308379650666723142617430283784681092400649248936065825513049573913810340566691023446134424016123578126843429020225608715379802109779324677204005040603448406814850655854642875939390890425218984247285755711627293434294169981962464985299565644370697833623928598928522952614326204841419688208338940866381187807681833966506387537433103299383875841105126889833958646744088974006053071378191404078271880377581377866595208635424120302988187000719919451022640924037750628216352405369450890497748799264310872512989534788961749066056031872117563622584222060855104678943911461314314372635851486808838144822086702230318682280264741165753136163470524729233348114634584149570332816436476614935674987240090680650339390954367298440618868768026920583070341190984577579353150061810873856451425302825005003939803815820037557792593636883087264457502953292543002200577899204481560905497211330428114922000741920085742600256815314001809343267927266071663807715316581969460151957746390187662927230157424771289220997363855943444418053777229030279954130317095397201686679632686457771792298195195799347865997079417810481166053725732184926373570627126550567765039135177890815740101227818545712315843114050704838076539335644880457611822390971859620771636034367811617017745929597488290741544335067939032609848656430569738773549185347993323375267716601523453310298639680860220974569694170486822800629376361552079487793789139534603204595276224576987524243169882962959618488215247390270482759755494000091895225538169891039420791037878675568332156771763113340589434335636549166740163308406714646500219824959637614043722638462498428178713830624006858677784190142029795215708420146435249677145558147115628251159233087457082088284068863477010930855005725983017560678292875370702228539583107647026462644181101468372500189043522750314627098467349949705802517351652727806807315317746026089814856609079600358843753423027870711411742886003507633966438057763447334768300157109828389028895594605466384618759378714471526914512861191831975341881611457150758500636812937311553291858683082044833794434338896644275371497742916549500293740592873518273408050769069455599562493026898310329587556686826488829083702028558157089151044990644232660126466391614230516716250375757655295758751329656158881892474872157986016613809998473891523084811127774446411883208132684339503936117494870582206368614512885112707951639905374634159800531512819958203303801653863369054927610512321983846905783784695539600493425156506267476601879177220165943313238091099982742613052281349845999574176702900596891544536647666571129250861992852913159447099889784349629277776557163449071290241881847691948438313196481174366558491109993879605767053250672623622878284481670193471409717299310114930333394710073526393144793344148521842066632309392563346896489640491657590138691138130379405601293446129668183759329724594063173091963905154676161242769542238989314859155201340093413720670193527634811224371422155600603168752042946491566529620720268733041315123708189332776648192001212804067571026377561852177352524070916862680596253555262620499167460620881039355634619375999407871658151378668580626900996017401643106468884734299034862450438118742725838564256968641740944744308074995848091788692226562285938675412952816438514501441641889099324343502789646946644610941200937769123765988020704645143534012563486876194711797099541522205284189440302794479842639614894460824292367721163436136898202851007560283751150394406919140960585025199968478902913718097831362731105095952452821852903974200474140859773719913893326731164849832285531818356011138827334777359831253954464456989077822457671394320913430226856926586667278518746455768403663837769548183577334305194538424855874016119200656261781250321757175182074769745753066339881139385914276201213990713529142417736597588964537950594041740181313870065386690113369944088028356991210392406513782871857708147324995984943426598787473901770981797777473728610553815043475606915553256122789536139967598855858138296338519287503869614056559613563199422281229116735040453787117634053533774245193854273721015506804297901479528708489318542100153667360242118674409265850248928673014748471741853344823225378039094211878837177374404627634582096442423298655091113294587966177988221522650383707746245724653987564172874157846559750957985910669346431243739670064762372446951224463032647204537456415906835526370331187584655027057727073880806443481589766022536508357911202561588696215208727580339493569994587594411684316007969904291397066034029147979487525156524080711244311842418460696453623865226670259562302839807811883023532631261244708936730609299844948548819805481729744619821291981217547012554538781839926170759501648557101345708655663119250885266513142142406037732653663817650294407619221534055218454705601767173510785521736865308599739622057344394448004398625688552894441970800373560955105993814661920022682134578381527574716471694281487748524977496110656404969468479878218470990308940855133492721886472361339487050739900787916029366721538149154325750760389666055975419561844544242689512076206917888625995351265319306459403773973079921693349344383539389979100231158026434918855221683913331159594347178159164895260978643537401564021852510466426396617279102393371774990477492028720718698045532282994651316154389914449969297286408166217513719822998449304876624126295098315915740232591020197386353964050730765212315704161285087027092985878333232850229981626002050999160688929176628141664648843111188723670300333304591871916711194947392475091925476937670069528501563280021416711602431645692906386369639693819813805436168853492447846637105638080792650171147972856999404510489483663368358224461583671235443645062101190861045557967498268934748268694528221972626264501479999158640893187795772486817355530458487897898483081540386640403627629062587769729087044440959650971587434273499364707345682436185388334465242344001212679065535077600242879348721853105475071191824237296699163581618015152397966853163422249269419846735283978826224004067427194926641332189282889638055007232439458993000734608500167519180970466283101289574691403711707011260973839244052441383099428658834495902776441487251676445568287706578046504380419493483450906512481016683094161852022805047601470425808965065881306669919620297294175274566248203377966887542022655945444443915732302772877631111793336357834081382058401314425990063015563392630206178861754874825698741525140787389639488123709073959722464691759106972906715888483019625411289426763228563436889663899342300923672861107721353235901483889869678427930335505181185028250930699517723384472229738275079486127613059366975884032262022713857214864421563873964305925853645566791146686246520856627135966241496955188667688564379269162386192934661497034099531774851840013484160621492124682470064579923709145584545213784911634105291988227549026133528876765865484136942897687864370678553782579409545889949508104192895944149711609730994920714149588841278348352340760116696747064856657202831178914512366647379548616801684613569836520104842083661041183360197135874226626542223949114085360043592149946003773685996785298959278319914819092364901208639412745793512765306232837667466754820709833032973093950386192351710552882702909043738137989931320241114144573768168515424851151022699473171112490399431673089018987187581757730412255117679842298826929523261018841591666054759832167532085157350692293224715225788375108772706744182002035977303085837377224052080338799886000200462099209600005632833506656461268603852833696875270586734182931105081058814354087424871562923610985291640671706822467028813773906479683237039441823854531382833894282805774259526563059263862872048992288117071151539077859256315721978839491407417395004169070028623666534809839023171360503353519472130244146984135567843368995416353965367769333583213826278964053422461079782622966856672844757035175857211288203160763139697762335849661833974227974096394721496000985051579074916069937123740802703450092190498833827637890793493901868183077865472570204020481083493121662953107221165706930052687009501845254812418906964552260437722831649341865769943484400560428534688843849228447148691644374536242159304438457128820391296866637559873449835293491457701469557424933897125282171408123705285511745570541033626672407531318014234247010618299049212652337002291337886200709250810564602138673323134480427557835656257303117181563293870670502795903998604754551780504135159559345069067559188613603398732596020364851554484318639591752212576216799330857261849991418868408020952953293868105614458749992912934124177520230639285135070047115735653047751067332090453365207948392640414910596577898679694701004313746266796896614202323845592205131607120252792036161344938353666266325279155167356175385108092502901475558914712813728713913860738244000112376925048455261026904023667356489652265668110276654616436619644948451734301859215491038367566332824402233798495041359312308483543292851797685017812045921342550553628924656221825935724912911905397763639091707696659019392915668148021365817418921460758996563473989435773762433699587608200975515477034122687096179388185525326243981375037958415465744863010441724930409518652143875331908883805207675333762941184643345789298986417972916744826849973211122676188016535796703826339226171478928203924663401301587767767680871265423910282728643090626384358016603654187825256352277861743381854578491105351888650859858629159665837871339768863071330696183512758641503615180670851887053707986613597380193926724082749303265358384433165550831039312476121898308008327478182193231432143576639590887051085055860710290646168946679255961578143701285851417701375463382186414574807124267385154768607789479574213195992397163717623592245580921914529598696679692047737595679199824495516769942537382639670823921793426461454925984288961764248264415239068360681613892335450615626877390854552091133576793051292014729782297775442222414388158709699255676148145532480528733654897292812208372024023964324680773924345440640982984167926394917973438807432706207995067959530769453041116748588049004736215953303464912447071753873792245942686810647408305272892194580816869653547100582616700269075400188250747999431630524001430186853864289138852418503924903246701438428515044676596305902453895795893177734244128352840588603357542953315927204335236162417570291273218916037974009767590813093600317015165521291694275581863330750077076010246123629298206579872215924203335742474375048918015778832775103645606829156856237095790078543744315614632327246222103019673922795250503929528000870246058319205604987997265105961303668328534390210410397537331140187441476488292079795013336217120244256569971579725752054083221881060731981857129016531915649835934019393778148846591805224669992783951964352838020855793320927493305642848614062482179998366913328866582181925074285100596971053979214255842557830504896611171989205651901264430198139675058347170066675569176114529591030365613367421106347059267000808798453463983506072982585707942654973359744162419346614384714796490939140691165806378471654873714174404077470274995075086749631993219618186857764909226841862126722312864112906421157895056807192652117784690888285463120456916812285505826247739668083915889198371661741185786896663371904905386711384097795693208433609180097653254465416759553184559096196724096237556979972074537650907996031284874841556748229643858481467589869902866177612959949966703624668276175413627586153556790330923561577970415564090043882138409170938542935538048866106166048725397494647150077356438389743342598769337651953620437481383377470156577248373067299615012230163637789552297776914282629246504931868411266750011768044998858745110180843782654007633034739125892663708566199672649464364868863607592036368836237323763751884936604614711003531501192902134306626187155723737439662694433598320220382418493648435847946345294849311176756740088646444569631768346973874415430812997227646626952184964296148104035116559704313496146773025825780208136249546627557225556005939867498940597534043249271294690596286230042096998598838462761607325745906540476894711639833093282236960619712593014243851943764959214802068191390159685532772540580761828104701260013588385887690930310086056211049277696761877394271863662731818770673230767233764760929271278618780498873911603620873919234123396837030364806630472606504110359896139934989016804572930124155061228478601053524954592394003438587920329150702600923703734276460008352518107248251820114009802575368098423416023657039578733429489758400238407398549067577237270122001937345112103456472691375682447539645698125181568219289632167070045596785889399087977812398902376330533735737080109104498329092174758024824700786555454466954863740245076183617411260197191091235956189935190107530400811132805224737558839419662443592624802989267324944527427957585779160258506792024193199103433306681387246676678477663699557201880775309423851158687479219714863396391849014030157823813182297205751841883858572917567613873257796349550600931883739768645956221460793482068339989560073406021147244986344125485847929794245088749785108407412804572609648270192047720126890583832620184251610413483764329083420860618810008470826750037176693444584696651584131893455057070358722826689928692106228989408222746514034087790619935116007795235975672212550913042024508729152385952351998745900409977229177265129974587440552706906585450237122706410304806366419134382448506533066447480141489799668965545700707207641998037772120122055910444951444518772687401980830336554881838498866222386943372145631909260415033194967358044588089998561590026806187204079290133136248135453844520071787774990597063511872557343753158633208144814130132433244363148724851543924902866017626412708657915616800623075946285363977655241445689970649307379017759869149324804895068387818397749855666770746703278994089026780020252725566558146039685671782487050366350204631385450770712266755263046792747805109764169283777881516460246774197915927030443926401397849018340886426917132525518384559568092100463557588138994085969734601486676664932590019806307972110570353376663199525817063502592072430521265303544934032921200930267683803924128103092570797496800447424564455735515940475748638539451369502501761405905381290187222591887925823292331372397644560605394384447049788681741097099103052105863069920119474475658195496154798221495026415758923528719658258090427229267472722926161437327331231552790937060625396507446871336026473056793282865163725721106857081510237757116888200580143003908295964160480349159982268338320847726847869233673810441225516266943210939229288884412695616062401698324396539945643826455184009387021863893604985764948142238498436869548837352717558267225751107010911185354845740869590656161688912834602298155219017580739570579954413176297020071182468993622255265661015365114790851092508257316151773262606299967140567773935147098303647140572971529009055195985630166367175021564645041461606261224494215563416674612986434141513792406638940141249928766841141950288598969886015182910951401387325571624390900870699518803455017310632090327480658984669314267813993791442596604726170193637293915568451377297448644523199379986100611767083790787362294528768139073766930783325539399149054940933773087169642142519624200900927439583244037884783037927712101655253443566935733180975523810151219408089834176539981449147919337188345103125598891940759678381291647924334390881277342239253404006411260261981880517275054113392403350512655115863035968401287305955803991604965159725983705784944124037610266890245365242206285785433426494822421320863123818234260673166574212005288864098682197921221580895616953196411620019617746284139119571992764310365427636859201785776854392500888977356929930952201062585333245923629040684588683890922489354022201779733213114273608331900959663596618074718713939586450031802533236642653453337825167708899641940161147750229193082784754161571337644355442083203480705502371888112515041976996495473012707256544088571782391499391123590300515262736124236890379089012289938022692304432888009374290491196846707066922646039743419385751472888508368276897592315156037706214409180019409478082681588536015029769713786344546390698098294885080105557713447899725150769476244807100464510774131196857525245256512896240259213577027428815817850056304077832682883563882761109514429991638130798702267056439888417305663888451536704470496600931610010812067112311800788421170960816352365399083110221251675746870092293420756474307875150878323849533413455362100230063003643719990796081218199222371557727749852375477720039158187372155051698196325184853682121870645748973317695448933334056375412181997414568351919011935976133253223828143861263161460260709901481600238160917729285510818768591616855095894711781593320967878490756762141581763963247890810520846148302295377633119860387331106598181433456838928197001009969078002446624349428171831441253140543582828679671703813018982701107012563828638009174390974486041178025136170491899284701186760236862712849597105197599239185427630721148260311170050338964083146094128108026350976361651862665205158321528409589170306513266885922642518506003759360070472887061404253787436390646380640246200996671441455968168162662898212943913353108223836955075311511053874183295253045866507599127161567599276926745528124241533883755147623443917733963406061670981647009076557084504112543675146339066981760917663099637183179863198287254199599385178318411339256036316590445088889886854092732188395924435333855058910415696244225998271616173016081886172281541013057615060655587927530823265840361730866416019149770946741745610673537309734633570819277828587881152699575132409310067642665556360036438553822996706368715452993741168686663438823378174645831833774301776497280073620721650185542577251868674878412587262277251981853799537908678602192370808135312847392536136104072528736151448345591980740972358259898433773704113972782202467990138782294201766392725192371799622985074000011790296008555693616077195477779388198937585228625161746932608331455187567634892628232443662426715615490363022803517290446640901604210935131056803754673058514086484261892060455095489849283501809737745439871903324228014214602407033264233988594949207848579426267712600375006538874531908276563046441452456751911709198637058771478594302778524366055771174558232923556670206367256205477959576057607297633123429642259430028430753540077843754524721474215837451581851020370513274294531375436897757956975735611247686109989762475848121459954661146141964536192507860539081952404486587427743048797654936755911144702681482582045393848920695775208779087552057134445251619962983380227013237659074446584551082993725871474066006401251438544527409039781632626377654999148062722098184122969485439634245906181063793006509006261767899540410287835467268910989400084912260680077047957840882889075859660795895658626027887891584736279995899090918493265518021412493277390804481180361863271164587090836411553863082931353872461626864411727113923468744340938619317017437617130540019203568085278203128117803098280925790724488958389189799576937545098622169527777426898567512875104771131536200693923195342814451880132543429224078169892793282237315172929911671915221137827953752117421756589229928568264672962984846661930172139955511878858144118102334677001634024952415466099766147533154706578267544161678091383291822140849076473505771909696751969349438841208509614432532644411736018505813264618929190466346043225790665640218525073955865643598514637198386195375944018323359421989255154193106658386038922088299435332896503179250761975102505821525738815586704956984795851705208384386614906236862957107010056018612614722114082150461969829443705697812666693855840456364937041007922296929541404929659535821866355095838734324571227379837827182493911938820303897453490462784493893437401147778205561340486580871524855810330150520790579616208367177748304922924342556869740092697060189763190025434414345509046649792073935315912438697116196754951641048816101663487604410127485376895431792424814024922380467690739856787797149282903064757846133177698769088521147433548033390131906554415732226513902162610542006533209996834332101905463757486335298644838204354517546885233373654291732779654123012728113606661883043959151902522739579741278160452497040917805103211688208898660860495786143259704682349349471050404736524228082175530959297294451467379365540733690015522475596166373885987569053570047362241220727843793177106967872850914661013454995896012900393398688804115996726186082489558895025542978294832411366042727387686231465243643870973730830836504367490732962432465977113075602020864281963588837187502357771644155277263336445101855916868907497539250742585600134286248495412355040183521321920251981514604558814990959513906840926692197966145066986658656221700976440807069327664658260633166067315839817874950899788566422736831760901427900763603215078885963660669645219568595578270636123471635135744104013423134729174377900593626624194800443787736096260850648208575390934321563420638195006693883841064651472919930161328680557609362818877678904133144539108297694611613339641576518112109112189483950206436265331324349323746893443585096094773423289107341338586556244816705764415642803776644067914049450173610609036609543998419831704933666860811933439354337841436672686650813571115399855240626924906933427363284890488490123212475178185887500526163653130958257665718276528132568252462636305226894403549532146732978495587710024217878100719649234492634981286676634497911723825520684005361274230882821450732308776230123166273665063830008231181407372563641740817991095056988921879000198018773577550221451041405153162939525322363042588930618486244108856627308926013366448509231765805710792557652090266346608832444948866248668153088053400355863941874589205679132874832852339043907132434488378393879818025218314782130062660580115777478811038326858362180272518032381694604880975564496654373587876701877602056992162117933316969249620821938932656087542238756943880648642640124737871555455927485575270641600832580396525695414976040694948280759680083256111014559970058400766883724318679226426631913906433978869794915222995767906855792803304393581551770713934525046304913810212831060590907371209307433056899741284339260071751520371168069581400186454192786133880178906831263378652915630051638501118822932324951937195583959710351577844244579000144859735158132046099712722086395468649527993427936493889824458838942529136020466203604883230062241761521295766052080024703626191924734072433266083497974187112914233999689175752637876157654972767240915380064301918157968364817744172168291730683905431104123816922727677516283602529032327037854061864093931667503067182700897577386122666087805484110917026358795893283042370937249421290297642316601070577889474281850209098488100282747139358196052651534111232094783498934532556401599725863854785194043904547550326024210960190646632651697795734043717806918269386449846614999465882876054080623133408206969453264933916535209408863165006608823647796533456563445243147700243692167651148835838433723778141266657978102500386536203267003944709083158016396763234778129603327240513871342486928196024492789751531844385371242166236048569294172607380787479476185868557096926546928715193533936564971746611687404004427149818838416869955460372117093218439760935943632849120321603403284007730779413672851177535501810978067145524789028092684727469278792798409541029497225121194625812337461483706301290688797270458321896277085286466866325603114757939657015708194936163172152646728322014336592256162993836108811033799929306604657778088171855750591365987338710155127904927700512481737147799508764452033122323007748068701793318400597217598571088037363447420931578477988152621006950041622752529021368798139716429692996795376929695454165485852301926307477411516436794866197396774018945091223173648247687104710071363626220452369716697790791110835876834438084616415015286927258897762657784637184536447396496845300008969958369517853927094099306586486351456883445503510364108412815040394473007925368797270553287218069856769892683705566570663411290897125801334845073175944660568808834922339804733538969297956168589433787428607580792458635204193286190816395403165074675739708981777956187825061761754623454538210600593163724625139355623188809604872367704070479099589913006271769208691860834015130283770665728733912882593308968207647622164631514107069121638898591606999638296302559748979785467665868620699494423242876257956679591971232090230695064864870264615644285261405807588982079392721141334211160779439652085391025310393846641168914995189300281995993162520089970685945726046255981510199433833323657267180935106340246173733670420775289284820868909111241219308268812258301262163232016663465579457533797797505773642860544780178724401972734853337304141661541593229339351714085203938301997895774347314486502765492812556225526046397828126532082416867107462165541104794630212621863087954948299427816123005976685163058214621911951943730178994944082755090896846078285055628924056385429611249090793755242400664735248669333058792811707846317121833637652456670975175878187361227975705047318980338849837018362913733768288249958735738737443167374326191270596947518986927773738227405795668158754205831540074841144845484187364235253366572854960462462607742143886184839005241661000945734451295412371003530473297962226737300319689017063365822710234233406080148632954861199150888039116619228877709338816128899752163163310122364600698947814499685033131704431440843324063153906620637062621083545047704375994912197026255339283809963298370024447651984967119408060837621082551099061218024940501910982026049452739653130116888299019989202393011061021868291525296986454111370364735759198868521373143070544790159040151181187934518351624976699317611067257804311398105451453812529748135805639475101841984944663574091579328309506853686816558177795365620204490931739381847380481366542150496154811818101638510095236929238161351453860900754409106179524975849931589695551194089837295579207568657584731984102511145529524754121010448329816146593138363575061985744871393288814206836967354860122255247991011237042692331253480685129989622254784461600660667519894368174148709298166335066796959864880721493996518767136214351664272523243170371377529182624092117768754599115394179419424936536551986331461072794994109870997528407670159880103734583854146479679605979059356992101532298966196582739184360347412654187617623862805504203814352118324316852672605443141783832659387693963629131903887730007408146823492030204588121998593189130059992161017239049520488181603946909401920607494297030155963494855421787779086279628786359934614054400260245843194429739654456781544724384333295558340005848333064315953345237714320760384687317488998262045793275217081161613136513501170805490567401614559215328504495796997729684671229299317336840165824965964347015864338901858824429347416150802611358436113973171955948608929242717276148946112657684967420597637458804867287399877434892907084611526828257221557328778817422104811655241527373778803167939818568067137228165582010021668166989630900803205150554539416242620019796082507661743865357568852442321455575973755063669090268260460140543808577563226428120836750459021443535303792336812344670267124788556828611500738501585619211365752672019972756460436631654650565463158084363550107956278646987920215856394469007123814160309064221143876415390807197332995225251400712535608373342194291928550123343271271109328297103184692019386329356068972543505949247868143604878178233522975141685278705436505727156155495384471173205128448738833046856856794284070279569320756993698796707510102105199259228548949053423117520149782396464571995862129419589590298570660370719123521628622279615733777432088536038717018221255974445478539594886965946229783083083671994244741352962278447651022977576975902923524191439965000859918387273511002627363506596463736206615227528629645445988527062661928632006740224385332154523775979766728105389521245513593140877366357973993823065578079705644902712248851544821281143359636878777475611839610835557743772008965382724456063494671211091674228560943236946546919295349441828636777520952586424422925967494903101745340061586342243296798274409954285210999746289930538750186764011296611414904269571336733097261379076498243246847732416947102328016814509155480016398507169516694272835368022165077723157875413554876456196397321430676589134445316698167157409222047837132845028054313427157522856586014252356001358858619935527499805471737398648470478196204615036154782109277231714280991343639297531701102846864736050846279505452594884014745672321324444123869146595377969027525318041926474688283550419351438917824588774347380251492199013009529752712562496930438096444562035401084331293771717123343557258674117875520302169413946270221300744347511507571511790705552657190693634480195600463244594371035588434111739116766414089477888936651307590962859563601075336359449103251121282827762471521641793917184416325681666608545118526537378192288480901222850479344384898538506273719606173852634985372517271484673721228716822302374560452946146068239695607542996142674086377471212443515897013987964796405664434743746270467803436938789437391227243955371081671135938538758468988566453193312619307787608556911978833693806502797273830658494403061576008277963100049526031190861040988789317365469926138058005864874077825280284061163224957416195952931303549843502787000551320726593114063198654934040176275107580962524316527702704146525631509169365748857403220161138483088914764407434844444838175906114925631033295415333690010537362291871285897583377164907172504043575319658032032017423010532819616867354575987890811502666911107909995969884965748630607734535531018761944287604879955979519539902089378556090383689812511763488039314363195641852749852937956340305958413516349578459096337718937301962463808391540256535466721870738053662974456352590845221048266760620709266179101733877270658526308348809405088055463798058536556663653268181827008456632899852919138858853525427895310413354701129350316995870879311922080299271466363562273881031682219956026042486827533662711901548835416087081035336922123407707179532081989617021219491648705127131908484140351325124496633811070884052426537308556328164898918846894780458258147516937344229810603032144094982634659991734631647643832318489399206547054819271871675186376419620783427153123085273788582045129871914221072042463997742948142748392554516913092919006132152217091112116147551218947272947262021623171189152002252983426936900930480211434235553722548561293005878928677851831177884853263747883122390040660019772134542723427929811316294105362374696158590656492940457773676676058785964847390716426973930101978681045915774048381177946396235842051192601564949281566100722189572189138770390586494504370322671737114724905518520328669819060814344999370218585751528700600507533276265045448773356854177070234048087518405207094357854206117999853520831926730055349835800748285771350157756543118571941298555315412776541146104031295547517868993953076749296501934151624925868131646068952190834073467369836480627008838866365382275557941695608460008424873452317541446635286544831560909772386017059135357293157663615879243114235904265921628020675200423676082784051896664738856049474371442870837824957983594461807516609081933608705684200584334981791148225346233693488533209646033407840448859088493008771527088065893226377736959966365764275555373330527988187607895516365780728014630317133745606011970263043819260134025928866216564801855615724031471038469319272907292529600264080662966502536488607722399178343509448033550988665079569048350769843410715539527327426257683029107975393343558325311274981503324080914547243797479256143517415850871042838291910502776917563552205743937898010898453109791041268760350550973260058873637093639356445292699378121222988884850512986013509085118032978166883047720334044735675213103686652129838817888147678438662391604272074280034167653293501571491359434012625369903111264189053475382553973207487468301573307209581758116146370019858799832581492433881787854150669982764349341894852369647452585562242662805732696739734561691437829675602854276868322880387386311400522074609865243062095584229673465937878980831512427693581529400898235808019775194949921182811607830042456954238228806245870020265633976536457355885047097009137764333763878749841210170107474944194938825446480556172818810329178648012124750312127532475332153473412332920988350127957280367606995131302042787124257478234038558998232522724280831095483475006117257024897710143646417363869264641543664273057936561525490600450162675224989596053164456586265344187612822675603828267940959039293435172405904470109327750510556368393408164388164958715886841566756933777554773151057012180968688237917486973514382180625804710348477764641758643040327869963514193478821593374213108066301207211001735641330975050720117710604389380445985921068120009209492671299393630458577047078953636313367023526184325493559863615302062426796462947982038038091319586671482235546970519860233420066188026643441710313060367598081760299147258090938058746610785912514629440202526541697290305562582224477681275441756895479734909374833904398506348859425991993856522553107171412789678979162867349960458179149372619101925556022040145733814599814084728935095155487525144864110263735727882744722280074860891396641019139845484095299325876671345960745318480923186671389579843902778822534241617492326620491531279221353830370372248236694130187250093501720386302982523799889164766972592025204990569809272941681990615840404524610801516252635464829299075291439206734409651324805969656884639637177596564292016567873319114994618161531220952025737599323811678491429087762002121401142251751180556087849689333746879948378329717901099626645275478768356288018812154431960755190809693385360625143499515039657449547981054501319153396936502755946400808843774167480110548499712256190858012210481043168225879318676591657026085301094154342624299586035249280929609369980183981358978557418323875927980627911727001150774435229257810972345339309504637502034079237265718724754653252761056604041392700983823311274662813630398249311896212250196845544024369783497269545341019319239581370326714635106696577512310246141508482317071003302491166944035456131176880528081974324435394950598994754438271151727397697947449229440437273331438785869268718549073051033205007623124952788164768681277910608006555686182135455576446069594442341498409286416176032999037290588412836768235683851339939032793911985265102737216141336246881137242459261917724894543145032309923249824518081111917330543122810732471658256872373473892927234323210261300081569883617583389819549361631735568686081283701203741720973763516231731802487133338839727965822975334771509809091598082664542105636115466779645597587831184889573654915460094512889081972978170570538906508727943682406163856310941689790630076640899949127519188293947541872300230611832081686532968708111685030004436773979461233301757430572532029621973729354605190454649295214303442736512674816523788748606798967582482032404196988521033971387672209500964230583545795980601516244288698039785336572319969536814777737481823781135632817854982673092846587487064428669272350365166903311825725423673908016795761371428996991650740324467129451717329625374214800138302274582709757445673508857692457414827220922756453358439777502864881941545207413511196066073730931495399225707482872474910419637483972784360508408914277574250160908681466016188326935815725516404645882690138234228520251686272356865404360140609686083858779011338871533080134476626975350403772034425359500355254717140786867939593488577067556742334820592304518740878158708870596799025784637335150793638940097349441535262602453571551617508377548700151938208697397403289861288552696631489848301465550410191524122724960573726314843685982045180575343544445175991583545912582832112414327786874529325641167160750566266152122406336260905087314470125116242530186298377588133321633217729308587453311072890129958100919207275283287476489063924309397958318755737288384331468568190294073088780360342457119873693783476891641267993869204102146596458305067644875652178912826233850871543252643914452423215232913657677318018481650305569053178793644548282110029609406698365624934943878421241198681347144622230556688611163349672095339401636441320063927788649322971139579769715921272653057218281080183524843559703313425424348727632681134412205156510677593044900227898563232671437062819718534223385096396945009138167035099895278953876495884605404394065395675778524720238858065941885254978675323731396731180013433487531013502349383306524951662219150786394719570642962637918598937079305651307882235489747595457286304462559241515754564456723209933864026506042310007741740858069400908978507278929909511045429527613184040386688120539996033584379393445781775474397482417741938575231409001008605665510175258907728234923905123991634858809008488677112058226613921202575728704028017713360771195818414349438012717821142432662699067015309298888275637590599156729846310245111945046874701646193769289931113981725327227882656092676283508229680306459673961179226417533240105010309973856845020555980033175847528089800565781363699157810960473244615714208514066559385010279284143441188711276383549866535201390805488034561699302351644337729230421504080610601285611323151740936435358375674040190991036441470291714102923181185605035366854545488064055316631530625726859036886341406433600758844747226944406487578733171984622207501876542534039981257470834023224556925564290799708710287501448732087330573105841073660893371858041794307239429607466400366510220764736093769279736257649327838118859872426566237468108096076615407583400633599307933624190411488018444471203142668048401140828627742505763894911163679640694017472678722604530074038199490484040370071157233207185315705345613879731689538276387612299084896677923467039613627917477014147289815000493612243921975037851879051085189833247280259385117571784630389131266262033252058133840456360424878789963979858491124533646804462427735001951118320587156157124238394363916133137336403939098604697800762960342874487944829757896439378225211918021144447119545455113506536919193529987237056357689910864893293101254297240847329880319509146346106009824328303828579324585033497670791474281423041086448191016536352895594912812204217466530944298011906866302796126878831387426339635326325611092971674478768618865486754861207657171614521064725916208380767013613513257807443912347515750390914796089781670008948662502708286463631607640051843293020868892646967565531488419891281343795994043788604610620169615941259335908771958408244972000845144195033705155003070769258548771314281512598046237322689902389369043569890378502705119273345017532499309542982795320015899958846247892293362372234739661135507595930631442028771561167227387077573295642479789571896327301400029029631165506668113731709078769600126370969597272736537888487058088495611244631051378891114583550231286827090078542294820736151571251379190319969805049535360873208789686384613130679926104469564261299813092664732289082343113742338767532429880292455274103945039316401116391431919592434775167427337880624361875247521630101740215563274621981628529830196646258209020321346275041860833790970641976388381445872429463583238449257371404628520612196453572025260835344005986483291364814660991922148735159369561074433053024891704218755629207325672944587783101550440246796409189201614310735087429734813264766581261394508440034359631188949520904714526811037233539053287001004657750218908352123123975968057554935427327303005847605909178048383446212243063833720517542824802291452401663832609320028784503074910781133380812817580284223504767185044731080042151096408332095097922559993241266127256452288014437415820196544143387523615369120329143431404761742048731714279579299046968496791185548526216844533529161599597615844290797480315375471833274353685154780975258508540718912695113913308614829937290539170161426180227300626440512487992523734675239823252423848989203777161339568340194227303408973650798197320547112050185767103257680195664170041626537220910039306736579991442550965596014444191114582659319699274884309375498901906126182762375854403695107596044688187517826304664962279794704743519521703793975896392236800722685281691691777924309594025908147197135527813261044534999671405247008390125436822298418589747614393850439768103693957415906281663769920251650561319030023519879977370639336625453332026672175054695355668414444654352718517950665363164593905413905488137056483099998818249411333761311481141270239131003833161262265444183439655647486395474641800342230043925636881650637227925464547742656643872934644876482531147193158098391814720978901006763117638037395577350160607139400637333563845926668399195378517566986496248394730021461999870702815126089375344083014195085805934482792480005278361415966990172719773096860516083679875450429436828028621357821636379926912264758879290224893599634786314845429949325940836974254994899057066745798209926507423330426104008540071463187811815551846968625063768988823218492332082920091417016640083341235805935882271894503677469346749652142470463799167638511000286089301189710345039721616921328598450858520687022159530930230436885005832491372230571596643528749156107140168136997690918200122086566279241398413926287160355685552193167770520689807532657724996924023876442934157437390349352566617721323064426246749016043595277595628425376974643140872542200036013412266118592389921017447238559939214694395048168451439759005578916823879593976743246221310084893326810076861021704637879531797510847037841392210707193537599969596462386692340083704558403765492054012032435090224116471813420113997843609582690525463735377280465699649382183392837324852383995733308050555987549758788483224129055764836113765820544349516332648625872017454805054275348251846668522484562375603820481344254181090754927867276691043267391815883396692283687187509763831778816175534479433661251491407281368795664848397978774950004980482237079413818107987397907965291753663104054014808018867554688184942690624638053914220473752488200535740547356264307711573419363947955249501895157382492761543586519306344236613461730517262110397447994101742006267938923252733254129008310479128002681190931447039231157162128158565344674295082775541399476947825895626468976957731265585801602985871598732303755025710141079405282345736607168620516828868389403522425071788064411931710554447396533182573165375300938878373071321705713160369441156107526404347798095358674945631541322190374055394335992101318850662413444712485768608112617140539621116586810264126128265368798079996543307080298160246150140433698044901267332925256041553573001171499886708659385206425703788307892048387950681111804383731735882983888735118325260068108436050276648365159011662905882320707141241765457698245507651187291799751010689685598991990021251059905131426309442502809538147238921935819536934367396022011344394332389257549007099788698090644554032907977075461415543958121422459083853345239072627802909430620418779858419554841853315446264750935892826365735832033040942112187691294004320369111635945042890921959979388604878881160262783610900896989635804886017155427617255690458145809459759876999284268976642231821665043733930872184703910494576378777924241827698016747983545344987401966823997073258576000325915477566681622895925060422658701292243692017850411849954548738440141743406479222224392386890530271479074025250965031572050650673305549350659895366707279343570839667599006800363850538701734819105020715356698592599024110407640651984338551838339554993842621599894973497073033781182284181648895198377766171471821370807544973312693518750907883236251174718383286975707467111352924852487646650957890556238419698330729125295712683136013030759179204088946344806597670667301959246303404736637436655021431352808629030377900281032227950757373193925497240755956331545046577702463727470080357458467128999786634780486063436288234513414432952446089517506611891677144159002004862967361196577402854920980860187133402693036462313079655586704790340408850032247533114298101925681372196286651487491371887127575213334907863498349262087887712772584054185573625184818781742502528012894423045126666666773378482088067953898466999421076395956209751137952822694363566608134558121715240799372151037647797269367073921843271051338901001210964851343550489347559357633048866521797766464084345067425004490930085226799823379017441016389376726685278814288558491015803528223334243649018248779826635608128786623526371572374959188196839323628225600668273731142783798294756451731954065738045004772261492844081691908103234425032369537649828454179048623813492682394972600086210466890974185347305903051199397366338203808183774745208462275031456688733551416452762279749469538400548473281120665493518729302557342169053463384150927440495349238745133879907696962402228163777566459512162864296989510355881354069953431157715917475548919253638008711528660592903104163828162133277193894389626442957879911022826719035273519974999089344221000676860616705441885328206910348822978692143437432376093797967247106788011662181447012363126444738292401380991496758674585491128746514616201013270555581123341918951631974128784544699927975794888855172079966883396833405041484747700500039559747258911000551990150438968065746779309268305571666575365666624349902093659402866870370764071512742354381546386706087805647566066809819023547623439956288183107385713416060222161964971353236248462173688622630629023121375299752607662393007147748751893804398627935074581144994074051043531874443529929596043484427777905195517718983266464883012956499941655026426528380486341865096386017730617953167393974636395750113349110816692657176864323311018244685311155537316703430193986656082450211998877143151500711212665146145473332778402503439730132016683246145296796127704399880808535989104452704824879393069679705364566916830720903065523780125769712598724988218959444108268534430332528439027069865597314761437858232390674869902040108648382481610869144738334624514116902271174762934809262069156801563642931841832653331669577302029322410716586540803495275641222343656907685142585675651161971904883436244928110946195355907810708133845045034183199115309140851089900016730592343444525434111999324747727453450781386854494381289571438802451587133958091957846930287408127690561943315387049067069864714581884893930698509294904481400161401072704789818970527487612934918061641718734881083885102861741451456699289590808907605496494545268610695024849327853631478645842016150827593424692998606567486018711485005589606727153882300024849478175713285419390359462266235031136852553814510155212370839108006278658142547439881127186015466457475206292627336657942979161450907697893122924823864276808019499667196531070156906082996464312420578605667394954393177174822641515818752519261471177383080406569074586477027554815787121060563450935296583619369481897523021641393787566530639801222691584821761188826777692554440797101822298840673832034141489891013847627856430126307304623776901822122550908259420032289329218912671008814842037645568400007993964150217689991535724959302352070718193906116572368834678599307150726148108706286739133959804050816736836924882618965504498923383952592351387465970486104152989956618419454523746775089842041049626831747909025211969178779518260317471672674063722532739285456391667224874354340762822126537264500298213406835283344045253315845561979390628065390905523008473794664776178012832397777902137725486021630880689393816893743624429514114868092543223766867828914081218757476621349169843763850958115673967902773346805218902884962094912185897552812620141006629352656963141854218907246033422910726918403343905177196667048596573734618046631981960074662735839385535792948261519609677586905722432618955547779433761441990747046447898568394396594889577730687235984082241603669182016825572608413620108983995800480051021608846783203314727786699469114161977298001893094829906467934539713626011970209261789979165791927392297705086203515735991580444616311238401785828529515859089217455314748085469175552270254383436569914625440099480930648316436249602060650317401343903749765756643648174704279599754256872792939282186351259112630001286877020361682739545439650920034421368336398815173036218143635834299667799225790658005433291199693025167770267114874835007494810555916917279346735147506364403857407481724351434462894434969472608937045160763415719039395927242392853363270514635408625051377527036141069588747104417549535003844734348955337243855110202974163752974740346499283258224615310334734333953371415424351983504862862649152752997296704236075034959898886954567194782241649073738396446711351794958025768043187483369915492883866843754038946746382182365600698872723173954664053079776548264432381114820233558565296825903286170122002900329913020457333455915486431000226050444047282069655055850206486513634804610610897140242168158720722395268886856603844396234885856530487436251142789292268024128583157084543983406047494538801579641698548391128733739055393531448278532986915910232758206920567455631973028652178325759420406737954404411833874976039028863283823321566386913742035473828515811866351224145356354020893317292251543478302688659197353242437889629878082684150325580933161561627746511235916125429694650625705521969837216304934975110784364727921912729784726794582384081366599294215657487562217104318634856384649043869024304866961485706541910781987432987799375057619074004848959425639886601641552432324494998063802067044109567167258222038486845478409599771447518596275956101997249871054115763872957017400187508179584931962296133206161958448416522885896313114280515702393028252428169205444930680532174459376354767345235521584101375373789590172611661425360870003521317495380033064742579694495578572479094014686989006884781219900630113104862446164441702747515938360953372916916426445249005860383307569942995259557911854431369125144335809341787583395519230204416972845330898574707682533449353623595108722467043951555781099598353443827690878943785568578703500789159767212630813255346503563202294004095386944199518640015594663660774532240021680093300590129884195845207009479493361366398745146062373763114405850542223668820510766650477637950160190841820950849545963266626227856704023844315883582177201030022525823332961001560986214407071638859259224825654484185096432824569232448059632497130057264869298624470587076117611391240619856288229758867052842062443999512307524927992335649185548277475758685220054609306505546057638807694629705396061202751031371830132633311570195355628595165627297767883157774636819570515837657678152795872501232035877946545767511495282332172746843846512299265692497350629652680831752912124204532158294338603371876517082830658620855877005356225490179559007805625199592982084998252593849460271043315877857602856397361090708117514139670934657012816758241305191856684998370354260824475360791556919674965855119314120720328605152555341270384210803437300087273615953374089169720825414005582835776225582182459560395432912233370086745571251144875763132776864446667808714721913763080530516866455564624751430656428249661353047780614075420557822500500654321992788934088283105243900382679237885764592442451165780345575962530616169975060688810346860770581288734666167894830332174844172473829774951683552659252953840059290896563647772143196114611646962018181166274196688330735751071494347798074070075868086878459703172962115348825650163627553601389309137591139554074226552656432262609507691438868660211048340282979259813614768450567815442070329798147132590161544496545840008170176609638452754638575975279868724723146018469231280341787606994458595467550712858601702765197134824939033997356595503173022076198610738951510917641942000921911757648363516821554057657040649634911437376944792481196899586240544569897356812680606960057447700034792799373601586092921737730292889141422380802427503552152887625346631962187197195161450294949050425104658923211646290889011407705176259232660005308050403808869902223978126647469930120681752656343843150188304632050398630257862290929113247461107990928952740232972454169400941848301634089023887529484167137435082971902179359209392003023685710450669640577291046095559867670744528267127243195056541830132375382632278988405787975448579677190109382131487084748836108653927199472948043371727421770279735378999409474740301903392315501367617593212584342527946396707619165084946718806766376662983456277698383867659648027981416548035315995372811725838909912982775310135890016938647788484822145497586503803432362532103521254347262671406139422200603874472155632040389045881104846731023687282799852901977289039824693967971375085060126952260390491025854559552787372754036675444965199530771408278705727672991684502444981801762178966004720359832089893920562581797017634369546273753008846326307375738588744750568403872899721743743239800959098202351862141847264299502979597940697744487960578040639252729077168085557402386230421333959139914616990529665704694723213949232927997494470711795535252576435944103311197312281653539587724197676892525592186742666442368107024937003844279289615412002822716962959072204996208708825621252298038598330171733367128745637026788688133126887645981768111542627579514936469675487754372121444017735955485735135524877507711653873812859211052105029276948186244785801804786178024376436619727451555199350666092157286450292902744077354925286697413638506506291687706117471635564052800299861796006999187363387586579565123329585599845359723480946996476065183397894142988873820484095789258702519867808940485325774994852420095091383002390016027160431508718324431661578534170275149564644588270866909658223230452133697906471111572293267876557962504634018876558537602998111570137222445810120148235834953978173860510636264628302180507377023502244396029579944698692440167813827864170428534288493391513240038613397541806552359149094546975866530167233786341441709148862619856136845483293017143576688475044563288938606798821237413878575241877130247811224286623969818477891756862364813994969882160937727913201821540536198605330721828737155604814105389825119003066933459964057943546470834636272501302433354801051024953512658460811926208650650941602457415938645113688694754155622534474501595059829755456032589979476223957760520665350795312377986804200636845416560264358805909914387617907303621420598218856312179601673956276855250521366099524901806222756571708200863417879619765329202309847754022050906356383958444661236890121697105277072827014336716936546260893195246213957108197781483353323760978748057623455833022781801461138995639781272717058838209755581691179454468209374886304999292852828084251168260635514658154856605965889943307283090417437295520634271777895881077038167897654338768152040411487930848149769628426562170924597303601483433040513485656611201378851040138316493342955462139198411101338530079650332107603849216959114186879913518271974861848811081816602869689955556286052140402192691161828914484296296101365930257573946880362590174562207275969378038181484384808431395489833306499234186183791601811893545985339966964263019611381736925284027119140350236194608383875850688327889958173435641259947170364686125479694425779764681356666263882683465366739081623542095991735990809077434822745817151150737826974834569666497752813482021385657474093033863708467610527063175668153804903434478220091818802046386563230966845234904469979903046483745746839053965379963519499747363460295019347243906017680206071780278217252437050651461691975981185886305606229631305476309658273594378606057851379876123916530156505398901412153509273521966283499958458676641586346978791488391956266151130520972785278334061392284712593057595630142536738108289556302276003740062143549888787405220839474856472407535977768873254658235911397973571247290775377250616835514401900848640931763585396124319193096677297424979482148104136058850142243940417575937547581413953371013237507070758670467753151327973242653573041019610831610483478562435985374335646759016704647595833296984795678310003497697408464294703901329881199090747865225318102550868461661787413020421429553879755890366527872974701224211900250830493320603500208871175161815740717127523401266765174527930732259144691778116983195597311903834175809096094634316750167305079980832159067739680757786913284190639532530598816771988010283297422748157927958501397303566595294313293025776877542211061704851867740653263126555302843990854890219928615385427692768525076225505662780026934132871701800372058758077183469066865802330473822427104370125859337112788715776351771007175280381693542166434906291264544012644414255426972267667343173126128117754727808046056905387406050176210576226896697390319826813636077269440699540480596777559359675119568290900463867938824645071573760417847661489345048797611588686665439339550448440019058250633279940741438115785023978433253342533129044437680965306089576772321074081166065336733907743046624169656577929080163549878322815797320395690202561363332830686080303426525918802140399932907664497714781261316815058891974333511649555391191388718348494247369457944667444583218593134844849699966209984764184794838145726060212465576683260242283905179575400800792594383519837294009126598663995503345961908698477851963281613792855587588489116819429997635645198983205680153566932426600564074885032147555989669706816464332153348241333641964905907816695720767505675570272805484049376800988135302098574648802781429566747515248778597666799768758990928009957573229453064557325672957846000275592649360207482285637132914680488846587482791977924308475000022839047468932475713136496216847708049032645641380405886633221403675008510261364305512850579719981147895190044387285050439538038454267280086052819847114906841514517159908269381948277604820080130722150533879139162307976029527151197607780019879737811993934676368313771389831658686881932754593171695660978012147520884311706384789554984160695459160460250324850784030080101981790776136719077468459581248945829073879518891883453298267785295140316708825332454340134006512683607863718013445693732143435143460592522636299253840463921829815403252922609585211789545243410706385897707668130355431839990204182540265167067985929415177887140367755576356450553010835682313128941035274241611281534050512183244587281229654147607984726510658366612087417055426736551005302713488771146303648913849698139673812986893769299367154079575478628342977000419745034698210830952941913337176343078421878053249229065020583038335817324012260779287775289125074652376349697947465809117490719147271442010711796459125897832073856537996321865521036623127099484062384732065506627268504184348236430966094747264089160062826995963612728036287769710570512483810989652989730124321078526412110452846651327843973531529412870939476417909968257147362720555880904385543288537974158898785373297609400566973304574167887517019290666418898965307856927324296010985007255718346321690729896158712802561213384342414353045632641713282162792678748485387377864353935678613210831168458846457401673527306901153364791469493312289424553509599171718986712100549417749874147851589302553976751856379050469158323400711663348513610020199120082738317565204469946072632776494117800556829982345476212778944526466475004673305440242398132400153461029818130059210080946682897584219218421423623905409805087767067856521778725717461884174424594138306949175082105395325761690926427786614328242947677316261267867994759795154346213337627438984002230743956201245537114839842444287279590024465837608410294509421085904984878958297657538283192116088368734213670141135726704131551893546434450894424767023240991966363093831468756730315620990800501898181599195908279753347744003770123815403450620557519644294060139331070727462580209812207295336962932466825939858788446633859685562131107228113827337785509837668970769775463126683263963452116888012624796762668684473508328050607717243204348644103732685419109045356677304254948467102827823065204748035501698771764977162025021822507862376724346719195799177475865382854736258348192346243448366328351671615908920385664296761135795387666509924452304191499550611378739169971163453339432145671740335558280629591200569121544047959473772401755247391837512054634043679775766660955556684392524332783130229652327409907007182587181405943495637026901344059312343839796299769236075618114107717657481466939869745885179898876944545968197687057139900584698765345072968142829786139249929580397485882869425199676063013135242219489321822817140994321215746813680682807303369812861126386946713276391794104287155604443017585227888039309008441249952732618962784163627142736345609967269136064416691968906166715674056444603609733216780223711473351219828692900642378900488584541152866998388559042215185319816613494218514214906100851112311570522148646525830991859298913128961639489123219750810379501957170119022348422525446983204258331699124979837401471762706579551607052580449733389837908198749661997211419189806950875214375687836503072182015867015805992727951275583233040732020542631895341567284370540272982007371591226587039328881669724873361746250659951087921915746347253229735834553715308326049586426853475506090769426358268857948813910131571074048841813930039233529933172495568689424676581347827873099850549956891144823195777871258804766255096590944044635874522966523248077304799299330808039931780116756656864562728900058961707163304346914877096342728378234614748369508317225881949153904832569996086995441654747193627342837964908852604839880173847364386675717464526313217675033405574675305547663019884402623560606793456050044006881070993919965980336531540738661813460438935640789304093274383362189294944925525650995823922916237316648348280149541736820802169711523462257471683524471459883146661916217194795584631604381262232393328682962493172413105013703282936472369618060690676976812395908967260478039220681996936453368268696987007828394075385947630721594436024559909369739176796539507389202524655452792797014718630174651803187299386931206655271330850655931138257040510211938636781143348417089774704729281447039227866157268131171284780427839451253388910664235814201648959140976221542102252974868043749683269728773361512059085227271546318080646482483646173313798530813875265374484212065477886991863963601032019479289148378072679305932712558952220800003501424238638978485206296563426572062698914812811475592632310873929499966039147216359565474844975785606958997763891860908558244928726295048890030049827870304996505142508349864583295360227245184663543498382299744960031258361437717206167084651907148059466743406913743729748318994082027867572905732723608661083188258891175328452894320445493150126650975405327638672716744298683053221072998472785428801078056648733371671513227831030724218533302780404350318210511972000438797108877805331107839640398073089913601954003599584838820996954832569223380371436761873446549161198551168227224697969253117821907393061068451478681473968345758856944026941560042715079622753751561342895298498589452943274781471290009849560482645505876440499179254708076840379961564973471749520976344508517684410294870292951741924824631278658911213351653493953447818067004363207078274298167362520703187399164003956499808652417635978528032772833653796913600905243476217412910542609102378885634015008913817634513531651505984539633757248913397799374978728852195144710892427335953677589298038342313444207008656363495786311304575363588321653010463368830287906532279849723582684688772771960493626342333277801238898018164288179578164696055972246252293423419536640444594114118846922774444443103439856468668933312995667619914245865980638626552704705962699212814777599201042517356400378688846450298162406264386141480688982768813737683911946494692096794557583560676268369147826432265822504502335459869663205492085278867188710419600444550575322762628530605800196941781151312800968153442727480472114830814026171964204779869430635458379089442544546120579461869478359822000856009664228725804892447615274002313910545010124630549767002161664897976961926499525174085441315900662080011682860315273714714942077887325842509330585030065349955406921681583751588590532528616286305685860665653918982788712969172957238752475071475475612592245634250512512103656057726060032389690233563073810260491213720757893082042262149151008716266102690808468308521922147941762258475646243780068531536130073595942846763837430630609120497819158182855940371847329540944049306544853206765592064417465011919152757921850385622000741802210338109209553966494345649799105911801330516597065762475329066998432140972507231023024209107709600872617473737720240451881911685986136566919143100560569949426184032492173372131021894130851015988345767825164539931423435578768644510701486407018581666693907761153341449374805988899070293543908981967298605353420125022213739790777116042237023234353500518815695321854802741251131590190666755476719334934183182969617696665637025728168031414812405738668758573690674140783573117962627973744725387540897170986814649332238808203524616510682694342928735278269578693411806704534800860505397853323458063304518592909184595813378904703360220754033821763945913410448642689823599986275327344710493096505826937177452485669732809481724714692755413799192139928091796899707413007695939903497411980258451509828228569457566132234044722340193622199310836902064520827731686049740431015125868233716373830219325573517099540590236956261519377442672328940851282588557935372494622232138051650834908646612746915278345242928967056277089744984020827723172354930566204451786834713520057126527549206579297925057415629920474154200500924943532858094378148352576175099747694583092317933585820600601290903891453187830512769243385740125617469709166475577080232014572791675067947952528054294894909637795800992124553852575839882377802147296863944407391285769982415695204183011840777556281364880929581603947287097509918770122097940278727103225135825796876175504633635270502198635021998331092752748760697016774048299433040931018249800135253542465581076329043465832507342781816329545292360460438873391541499721575405047807791492891712097712549730761846088935913829721593314257526416682420947186851976999427772278231251013229405459209243393781144594677786315560251995915856063820874526703184090011634473825131401698306911893618242162788504617481919018287221862123238232446218681366620084526913625591005104786530279167483107325023878094140735799266784001973687995556862586849831251471874242397263766673050856360211144063276324863124488318993460869266679747473261344512973262287999099430590220281421443018916897799252877060044789539795110966553344857280998784756405548137541021371059958058202644994530507945350717993534002276063455312009968693400441119495765664628059071731988985213840912163701148072601724094538609933167452190294877282677808634482154589590046236591098245982323224513284666722083548657793809748837979525803781201202474278434895779528830051675806954830226368850872310717981199450306121832847670177099548511820700341277220357203931955572626516649040297676523956032056393830061343704129840056717149812175575829910154017828121495507699685222101521451176493021685744610774006353217707545070554184232713254697209593321174543356497649715630428805770254450628797129690550062276708575288887770557229606398704979437819684228378471273161233973027321869926036346455918014113092743345238282771212136366513457946420955947470092499085774697225421246697032076696572118948114573025605048734392715342697425034057526830568771928116018815382393583519286317870159742269095778562615062724989655380022152870987840948411592956554371475139323636774989219597727464809975841170376503813196876941446863550867875374064123411244060343584876728719053501904709293002088760198501415887635089324286937492290547361700474877994643560515815587818221141425005111606808598568575131653672909901630648710294914507332612827824969669067915158036399619073253900631019886081055950396392740880698788516545823015545073437625105863475837278263947971675546594951381044195295419085532057635267621780118004701668819432961524690366727006648393333090408008544503224829786862073187584778053631749831013780878512862577476721985717218207518435832802822828500960409018072577044906838984308645019556603155488337007675357070021215264123214348412725634231942032015531196262642251890685780768616581793993271869042248027489432698105694120710849960447210895084893645265199512815685632433712449077038535478018141812242233151989698798052982653611259494523652677954124702968996822485981096459578122676815343602103968133513406179058241353692360922788450967518645208040949354116640673784108322311529988896788956178774714503195838472090166195599028281585979454627070876474120562141356083203701838808714390299130540935339987382630585228565746476744546181225752114576070858144083344052887089110020973782473182862976441788207457883352987210490164174475975025872683382176331905673424212424866521991910610463055742964928270306616000485198837787966506413508137828705911170420491678220456627793372285909176918501240505644331825598364418849533699879101748090295829657271510375750687208749408520631961895273907774795666014442660078729257362625742428866111225630536777224344093033997437353992780480565840743134057273568536941717909023040693726992637408414244081011302439269464430047118687424792671862118152552297899656362199765837384310993228764199990096798205021758828233877131157395400070084004618733554288070737588770684732697948703249721816734777493742948977670321396897467322707889583175483918914160892586192280260600325477988248824988669799639809678211702497751141977212226478111997220321383530619120264024614757798531030454056958510635940084391630851717053022664673690109702682822008960454218516295554539986235327007991057151762347768941314893761643572454624318802718545628475050640939446130528743803515146187817948863710510014977253303913757242597424143491294020643026937073745649552869432479068394510292982139813705755431101300575230996640570787174223888082557885735636283031578388271420490988352917947278055749939136070433650980169458593295106651138413829978433793557602886162999079787122643777063805101540568682300296748454719651934191859263202509897469372955194510579610253996019675743246236831662573347496542547340029770087052151005395465286094255986930963023883829531338131249749662387198813337046747963028524470281575548554332981854224203347402035707138415097809961353380449434879410523686161017377398009274012359780288691241077291526720445768977330410954191499444920592642847540698646333142622721559037610653339036947288938712485634741412270648584234736130538115573481102593663306017779310833523506962259895491428799885391580199078010200169097204526059887081553391852636896523162857000400395692661747448938135245847700341764134400784884562233476529807867452937104933378426624718522250308735885061121663930996705808609540178709672135402884859173095596886024072378299243852949184695078938147031934506430967614867239162390412764228538596065904285460037292589808122973137293554398124290620808320141183882517543661691270715495599893584397522370992033441057618097523403832013912416661255185826120728687307332593713937277341683857315371006432897450074248955918805146885295175107924170077797098829080174292826262861572038362858652655731405737595663959475182897561433654058209567065915903190894600189163274151923606435041638993573880314103404509962908912709637730977843762992306124274124651443916170125665386409199554700941036462817147986570305797911301950607030253627421959304849662962784033355579980682454409605342442986122149831136412401546284984891979871839828815460354014809144945010403331839614856714016540380502226599921905483998389663131076825040976061614193502647401533744403357195674389509905901545022110493238125509625568998102280693543463059191815673859360022347233342016522679159310735617070160363053166009962845873318800919447155808552648175115457646813718710405477905460404054991418253274051129954803724110703856870629602655023727951991190795107167087466005929059132177990861754368285975583882772879566044656732812864270345520226019142560688890477049780295181331708311840266277369480113959146171773105616495997352080108652329083268576457682853236911366905489076632390567207860705442580883381177371488105395757146789590351488851169306971876159648505590514641133713168562193256906579980033731968595970907575019251460695023502436982857952064829148997878394739440210195447089662515118450566067791544107820866551560445583659431700102710386795465623795891146238230901491936910464804221733249831154048047171398963974026700370636341882619047754416048935452767853658809597644520359297865294662049218405857026370428769280665015104769896852146260686730767229103655800294259127889917689790593367321201341114547061114992345002114969526405477997797455707360473854771384992604781657346168477651125324088938610225227484583013024610571773575960020311805373135103192224688785131138810386749477548322901741364834089719262082493935748168726562511119327636815191716012175264090682527753789850096513675940102582727024579315794568018883831378674078034028309135418872956987611937318089141853566954578720862872127848413253595752717071953143414280330505141920404288576750494260739674694060240139858873893736146187338913083069328259511637567843181765793918749925802541838841676943820871402261886142965654999817502402518096684450424244140264283275678542370097862058616103914781691817177453534929965418384781913458414732342133394003122299228979273861351995221701552077455007746665204716877539725505148893630192579874055016493847261361020707285765000339002979398584217254607175498333998753148773813302502552137146468003617076897593892616312229615547192938804380124361012558994340498009882114457859060742533420924239362274220050304620129168799840128431297969853742072339969330543594004130240105239483282731176200972837723413314986993552692895787957080971004720784259652112413622995332895820608765872313460000291747701993358355322124103062417323821058998430488329304048959966721817131187498564970041951275860800539678362667005813904946709230791990205066298243594556355348981776896299642125316636525831718398184368382593480581035895948791254901409165922141110362071660763987922210386893167041786869051273651643501467038561447073360947738863364045559654232715982682798223114889127930319861910294937270120176627645537298071600978102215825481849086866079716931064553982031340786250980823044174591756156722147091436246107955091035418875136650574592118888404733143132578444988747906803818529832156043372390200637596660304823446317633000908708153104833777985136295587790180266378268336216806696257371104364994861522403677124470624896134003401871954039530046562580405998124226112584373029785193014799529107485547664449804700955695938183623809363959197432847044773597453004141700429188403686259165186447044094289052992544052784885897976996169635031155540105436734293781516100696191747603009070826187776664526899923765395343277732328067071902760069011619756515107751569507610048513362097115092487582791851131884517971701232502421152537689731040429175921497421290853163920393859817467883040186899049576560780223350939795210962203288395358012232153509317612802712862343927418094826723439255961640948803002109834957945395379391948924360481273853482009376526919433027750457280784251886851946478984169917066815663627534117726557043030487235797306017389813339199698002843620967304999598129923799297378081527438202366479822990875396192264606444191597501990953940439518032637613474106488396110934236142594285989610610456567000717584094518962351031936190270562545591349541637197425716111770320608951913409081820693725374831180743588668387918096483123470092110184646705525695993806471172926041388257089230619632952967150623723215262952329030790923272027568120679956039479572594616710395434084721589966860073275164918222100685485644668773966914759848366346748013511747033708701252737177859942227710028848159970754800503891525203175993786691496075101617496968529609775403282361628426625047038977739834493139439133282687425275806207597112837821388291119138860223094439336520053893856657776881642424995993794784050239309870359885556200907345780982988120303036421309307760020515236657510163053749734922448126665000718351700492103862834644868703396997096767834648799684192958800553592389280385856331757025389767285086956050368703426105262285258656372221889081416436290148993785786314959837566768068779550647064408264075245193142639939512882249675187589819066872107941860606500322314543217895018266878004473297976012831090157762480387494450432852443080137145159535520319036414657341699314656884961423014244284401302226039877793471735849750777862178144167945115983526642797172029889396327416553430692228682441267402215805787787402570155007970963838641834770912395337925288778185804997182806511640756753551220402106164102716742346185113619174515119198444928403419604625809680015866925355371691271380231522820191331261668103332101294005856854940597937795988635280806219898269131697573103933323490553217991848223371151482515167367873893387053418565027738652193322461122145657200333647422062912203840395770465171632532834812009793068654260392256861188711433924936196177663804501966517193403936901348414615053489802885973908362600423794346522046805085207214022724136244196961663597613379530486001613966499643993353212735552251902023561735209372371272490071229008705884066352662842534834501865354445093706370793361212687493351271572745768412407984936987808621639349474355611486274823957885934555114880695293924190359207900845891503922916276176200882941278792207776338883172435883127716042159462035002589500754397029731531985877121940248210846810112748619169416369847418997246872270295815333039437062940389837731503046629189599871925506832932086400274763219781162003672565351540931438519211103977328496419049413066560682329500947230235415198677443623610383993875285335689664617339390404956206650647398795440047182383005950560302958959754585484416211387754521443027580579246080111017114832129221757486198899553002882521261264727405146669877302714574990529566431881593504184191567107449630939364492144701972193453352562911740130017719055815351717902081873856533035666808127103897945403079521791697431374057222258360621541205570963549638903575865236631494593916170376909229985255647125421521574033113923961101796617417646455765364557745435163647613486232507034193155120926040648077583764393237997366591697325516281972419403441671160585161357109486155603316191672360664988949882449596117129955227955636885153430176754987687480336227756045592204488829121089646948076643364083831644831684663896691443933352694413306556795982589915010315420975697587768457747140286415411563155514889501657780811317781905524024323644777448368757414275149428256051308569493208173677817541119205208157332661201223514371494866683650624006712476538226347982750532915182125705258912371255783848302738356495323201373995098446478070684674780944430847040342517246320732650690758372089533051413164769257411385702328524136700538398592094081538212317123761579342263024584253156675137074993700911875152687060470695244899049811880666892894176063975086636861094582636975486952584116533583677958519310053773510813773397392675951995578792127780922080909829299638220345452730452041198544077821351337059514584754699657490957543023767060597210544491870199791769083934520265211567265758520796600903656102407314979533439560996097164857366310542233102686112958328919093670651670381283569918895949847753910660495305886786817168627091636556861501599844425070408221221983334552436589873878734628126311167966614661161380412804635929913412371051139504488492218575405435240229026882133978935546209559923691578453442580070863863697795231303600774930946961782958210063596663633377819870641623566437098613790190464585777725897824475042440621595251312213259593051010163248297526631294195976449962887581490606079451109141836953518988706365210066343940516873522050856436148845196076598437234103053914922695499313121710111053016470116717126744550688304556150432374867609198182078354327589637514578145751896720165121100878476416077321767621509061587997259273610112957199502868376534071435909292819293708558764365218189387023633112054816313364609842676920259302141138508656846006256919297256482262735539802585049276012653752375562436818428636573798195406967882117077856072786078433616891212971676897961054167995044105563258372689845216250014314293910596324047934909418663876333783151594400894406198633825412193092847841174102077018207726838730876186759174763974743813032552905401051823143362157041280666454968109221990999988403764259190225179281794601073031974292510612855522544820361449003622729853987055839625703974516039093700028858019575370311413237452509676233293079049636081577667163593111341317369685704590887374503951550052690577204010181879108939961172748765864698552075907967825366062869489457263944211370319643971110066002237438331785915782944138629058922960506452593453058882940296000906747799741336758882509308792007092048792509084222820897628540625296348755582354469619293794948223289415073969359246518995172383894582555566000910718750451110809876466783343464993967749354042750429225990025704976316776885151059114667143911153016610281804436596776120886916157113572620450448083285706752063354657024220766606415014527531051841226436585063490500070974974975051540986739783718648693747136125723923495683512480669221475407285497849996891344366288639295919720803191219189289629949612240165929431226338896249090914224175149354627643590928436500306121526708972736114193932054478466869762809156619823400411849180015317554840040373290973069354344166728694289097636198550918602476737188200089564095187022953975702074568775535023232929077594558399381451582304701623128528568995238834409962114686320235072096590427864785610512119986984571398148140141592800217044207553986076683027800182764706056922604816597857253844706167462241456747504425442280110316159984504989738155529159378425919725038859300963847344426296214987379200518433824897880732684397011371240271073610665293544584977717661972420974353708621705461694905233229201124213864329906397886203819377004317379070758604368814082273011647571456489987972829733861875255835107334829030687180299155230460777277048973643211328761688559962960835533582235706565163333336586282247293844710759264682780014577449159628094585200091112949526528857342203041250217158916836552563161433775004789809431641894769244208253529523165159026220961381848991111041433084115178818669170036791388826375078177284651715740862486427049761891818597222587911287601344774944178323812204020552536819546370479355942506812232624634210654442115474880155237107134598461679382092035418794707098386158666527232366159095193266912543369729223770942272686162292277585339048719488937937669733042521780728343384318201251807796279630765621217556764769871004191513491661397706098532705218309071623338522872788859490639036204683293525375631463440654993642280393962880792964103667899714576815600728443583588150000219314632302837259624551926624103846121681938778998033844971644349939288525382286426847705498698402692233817515223277167860375525596549731317639911828488865660832830672168845461745709884196733876626633839399127148713025933659099246857505008348238317591682340676307596394816300137019667373921393220441951511257185091556312849883558446743025623157582919588020164609779528175619691676176826776167766308040635915287150684326884385231813864745949806262237904439461484511512127572068320709445087729849676900971025568880899893721889377100829649935704514447640038985337302495806337084290136811749215056485436044404653235749846157954250481182525466449073193095234973216547809552204647258686833780276299041367528983908025050952828439010020224037695442783403643215679370426720825862661983387198958434938465505712237485228272854428455369033011218219961203647184916887045717887370552843602030647869334333480704605118323208163528566929356453701985177308496583865947182340101088664264332279220691992522362739974800110809370336201525589013539685442239514267878484267684368345193601253531504699858591757207582193593431325707687988270954165768284837291890944790881199762598756274506435831316438859025015022451869657204292502277005269935063722116396904442939388342428596946913610968802664996635732378848262917190827456476444206905716986487465813488546956756546620343275017402307557787972739990935654722940180629884439926567463761485890753148979100094540263993303917877309350879513431414042416284578860654849485629268973179810681483544343566547270108292667633505137052550963860903612780695410253905513633132777725350677637641909181657419646481128539682912222096567675074982165627471346900194760898022404367086123987186047243789431755820702707036999405628387480747732777713238885333273203272340019907435579545589296923594469457186234572607901598538389700775031375892292384452924456753372004214505795964055362909386873594810617023332709651906617486023385986314232115543431122682367052372100114692108565402573799174108812808252931147835758306986554063325652716618693186174888244398174701355735429656516354026160427212314577976847721303958238577722132724036234251852954184181095602670574234798454372490520259242006040881500656999870077323633311002652762982511192557766735254180288001658380112575586884281360662782309570346144493764781172278216159049771586607386150187716928833348907217647122367408021048078718562501135687148616698651867901168067344328695263020169569012665159913439393733546881704160810656260861249249763551047761009700177483401850778836841301364889816367590218324999224951595471436453016313551117397988437230504751467609521745197553223108455238428369348534805661544213053376595277802219943948610666340977044324272171833687475706916786093961193608794762651069991121475802808379949550275047386196420481608571194977314532189045994178741678312201271393846474552320841695092524759686396333566397702353022906612210780866025468490974268573694465607480228197435529174032061207118080430045239840725899629641967063092761743449606946562567307679472965370156146699556215465477992545317782260099884861204260331314349876411643790918339039357209361030956883883005234332271356947785363465078641502156252578585335532166439075081224599248849615150001461296221790902161983046666076988600114266853719447813294099112807183002068305618967854533107912906220213058926002853523070731715730582108780309390780511226011484090599828336868632531275492098982152050432041131406987799397732989334533093419985799971622031609036802130867112555698562546100506100533271944553260728092278671453169206470758498887856261459052661738483452367147862823086771031592785125257095865787152267357004085078867827490186570363519736101881432059748621645308337668311301688507023750784981103256898715508012415388465075411032417135777695863853405503469728284131119428528622482154040503017353583598100724420622554119343081724965581778824137029361716291393053118675079262812385282501504075371085598725895948248273521868212664204441362289680414449301840563985177356612227043878175721112718018066409060243368094662474576012912134337977692543949834677386314475922393069771360044927092010917881513922585834235446090424114171852987416691121768007335562602846823503086571550389589162886159266507217024617087108519799814578151748108648199664374461606318769765823379690789542081719688128075214472030603826464751572969262262822440648546196128081064489769181574610585399095346175792888814854084182220481997566592515919003645176194472911763824592734893037976440538877102059241453988663989332353650615672629398921457559823640760181358357792783777487131826909720618881656768914371385706773339569866458854194811765784568985933408889537269429057737402382507624804648660911908645457715494608654401886080151429453413892130412093533606677272189973456844417405305209624908004055474286995178343791095893158219108146800593792683617277961178614416871906212345867121900522010191381557116408283289595512614484998435561261477440816442608265723863831833762444639202238498871235238663973407786877410234919977213501852554482056302373495658096400431095756728605610181072933125418987541484698078207727627524255453694332501867661671707255036411969376878093917040572522305753355701366758506720507506127541903570756938930385543486536190966578194050289646449521506900830477002847541550794327121348682389441745924698884966150703461545193170801159243762869706849744208425975970199429197824721237671535027459868692963374713959205379571129908815469502790048364117975587745098728054973618595477681585582989762995138933866133446094209679537535691881518114596717806599315633585279159472390237476778666732294080837042937099070044295097325987898106278898703539134332486799888684045082241273904702953741269122113330723539760192728585799216595694038615144653011494315093582170943252532438158700337480389583044304874219553224788840415030222091435557858016703438471099664423679226186558176064766874768352498402035633853155959018920404457836872496726016991285166467220949877318403578828540100426784722152084916735036400364950656749574678933931543967522145673525087554048768875528784566075839634983722499804733756127295493565212515716808880793909758413397867900844139949028079818080922430389243061336779655267677569006756984735951063965425674441281209098203450033992695101485626479274761519391604822897127699906856867346553036259463233797303508975557063033659308872613301283156459503354494598936092782858208623492348401717838812211841512065161575733018951884304141889509456500801902155056331162580019411099084202558731414875650979052733541031761082384572905836039671858002170427774486213650995595485688811356610612669538698452759388108937758369511830437587794355325031393054741504388486014002601188825951691690873152153844790603934843585606793566677183193900951038077890980914699576223888336394395949580094385205331203438058439102304724063854547861180296866607824537330111234818909880351143400660813299004039879624661185130213608337968643913858770815279560032643867251274484407695767219946222529387038197278883313523270248937962698671142431283470563488853853818456200957028703596547015560731036469697065526495799279470134414998716297296026138610341514932999944106765086079279344743946931948424422893054150995042335200723795538200605930006567603369230638621908583570550403768203113017981695862794325306184285677866115958094979580019431780484806305922360895924653877380354207862251443291673959610933429615958057835104807731180312787339150757191028990268015003055180365286677699010253587953988751299612289092785716802119542632054362616288543555585016621765870470973916540549800473653767884664485683733143698129424204355870630788937571478635659280867167568877958319650010271423225317868270875135944112038328341768079701983247345789423083897806692213525655641433786770072798863529834687528500781928088707572093951157990943874134745169183936551338154604391756801663474397517936313208785935021409066646672345712893614395414344533736957057129169601434200811442939318735191644806264940649250093088340481684951365299600276713251471871207037523006647018387380465093431655817788352092009802903079426590890733030367349004296704310990416442640763362733086490692410366531194892929455143278429881034931370085622381483661865403994833157316658687661448159080508650526036685928830251419963586668426470135562624035537807680491442343509244153610905993853599004908866496722205514288749804353848981521837438116621497190912479380663261051561235039983624781658836092247418565589774463007185882316262061766138902731361444548782144292294012621144102821208523321637457903759695526137318078044639945195964018097451827942158146135653334433146094187173399646111588850194767089252982484542666462821737624393772656989879314897736350888362290153732422052390652425502681419541823054090413677535338477772146201209439177199400676415978018067238030747455773561956889210497367082580955536486216246801062945181567403704178882717866248200226320289601876482609389903138168612862027902524865803853493240960972501080980708011343020460080802064996503595559636119829106318461561457605703658789995493399674554126853165802085843657199755743980691714558773982076140153206694935470384075943531066188769381398193225744417557988211535612346171693103253365193681361609034962023839649503147815605927421433069163830611028737125669475893113204434600002558468106376270517759433002374922859765871151265502355196199556997002930468995383696273333669778055503426419241388956181554650563959531922459108002460692381749443786930845850017565696863103785066643301526473379536427959169306149825146757772678283238192060641669061733818772559673301455477298293650269707563163814143833974469911032661621750789925018956076541261472431956582891158297430194771561746535286382788205820161525130985381190896060512161643521972189348346338772457126714304867042749706040457862181844048030031427708138943736318867088097285341307741187689055002316482373797499853390247782086035186667666479412371592384183905680921811233774751738991342394037726663439717586211743911846263296415250450499872884248425518116386843778960029124428485191207133332996307781728135048367636846745699560483963556639618265697696374552638258550888384103669781372640778069903880343322021207631158666571065618121270466208431466726170704192735836578360436862313954462728987868220393386409528205955274902435965432278235194997829320226238258279687465605788624816414612644301118664480505087624489302860353048296284798539384494343257600080776148494196442757140198903080278840973034965659994090806149496073905616559755584711011462145245129948143369101191996421210273677609796064678895648230185504549239273194350685172566873967801508917839410875681367262118266265578267615096098188044291332273381193088925219165227776808172211775078548800214739824229292423260501141232604874500623887532905723402830406871579388081310165829097687533929370453815558186042659073063107663531728719085558674948314492502224110122674409096234287520231782242885111712191894577498352195802177508461021030121487084860485085181681570482199831005073347715742050110492129458624094853947602447171552959686566921759908556755600797473611688405118826416516348272002956833964775766377241820034731274507208430338702492635109480144862227720593262280681214681862671851628240121894103662897569797663702937274674399549508574252619232753598461948977611377900515590152204830159913782959350570726472230794883017293486406242670303018911556683011995068788378543951511101052260101544113478422617858685734858626806403777179132696350192213643188507866325744779487710384420030162158663558361244026127007699379062987211996853126709674223050908067022591501152570388497714750814551020141825851721078554642824595194291593093071744764231807685325951816936761426114135670122175098934750004651885741782923850291312040134945108858451600341208724526175192674460975953015585190085657032088378768046651848340515142760636181579731678924665254643469017422968713851811961939746418537165086915153906065138788767987750380419999439048566729562546849464777541592136725412042081460693044148876817950940184259649554010259889389038413754034166049108156156166131691359326852343628948502750922441885634125294599978323775492345049247609049261087855291568710789418144248627880066480280314788526067415823151620151607415621054408100224503400274119350363721401647152855307584007878366633375640332773004379903987459111830781559556884310791674598668494728244651204781392449666738116427616602013672835767523837597527221094224743344359308834106660184514498163172400420349110496946179448406673876777765108538919212246004886867227378155541150311012174152687545790832397434439897609531600208647430021410204427055677004555556369980990915994288440250386301662753180462282471425359268741689057690828199455144790599185296908046919800009322717849895971624100773420185236973782125000169099533519442982925796854353115403321744883470823308110280579802442546810985511092723393195536210760312173882955147935774452989338849275337733711603048907004700632287626572026465938930076731324740542231490331964225160316697069164287399681559147800017107607523409651667201119087544731331740244195589750064997287101364892485528149877789635463126541073686547794034894507347308687692398043138330406884036885434885878495501210082558677488284139668095114023048229471633839280234033599377512543907131799768274647371925183114414294117763657670436003784916753369322240846191247825743689004254421297169314199090767296998951998992970831814212760575618110643309584436808079255154618684906870361938571808806627851360610891854923819580844711859437503867253471397024163189016335033361197220966729795966382184973102439333317459657934806659194361681708428918523740241066599900747589064291542155310048010904143286100718771132897097568470966139677092242903083197983159527207181723693883387936447379138876169508961544019143059090542260137135282356299234455636803052967592283732903911698989360950092688397300323369913117860933366518278210119261475981647962653464920734964849854323437315269299470344411178004395801214675158627817858792380243653667402313461836872810575851526271450499363111221411664476964819877081616553550565460139303831714496289737232126092883769614820111707109248309902749660619963773648835113532201243958269057230833635539175297947688750871563356086455238051309925078048673624881653188534776433037125946004248044157254930666096327912537365626731588038032366452211507657962852889976052478235594952440274367423074969421575076039268172499233617728290805953662197354381133641081004889637535842433155514990827049407759208587873290306424408155685442053691703896990869436231844076007608966645157381789598968825839846539989345932327026425725204286134202785157395878223730065661693229016314900661744872460220760506139937540996733114708488027679755849443731132885760963815212626400187112831466962042793367137377089816023041998481532758219608193026741053949299611242116685165242588367565143243593886108227620721732407674796808376978295169770795574008859335121612180450678128352909038860916249052536661073884329969812928963878557800149934167509995776955953719616636842001446678024577376186151415071791115318732545975572253621876211024035049946460163404755449821373977035244164233070764595117703382711377183983256459394885803482152210723905798518423796299918283070423109337136595101108889247385633812922821108721127901258180783976350621610462964415375936720349668355161762784623240203124535931479374268957728510439803427692671381850025540029657537393206945525425853699245421815520596901500365310969485794683165211227067168576595251268983427494655309179602182860572249889283306523205095411504727478073427341226024583822453278126144770835770018167790195772255277776457635719183653294277219197208516197695075258618197598880530391321726463372197375803736990085961989602569578683371134135233083018570035810474728952724267504390740701049812540117548591037487305291896614131527774727590302321067951045759245300414125237192461485411095731487363972555545552833760587968676278414800366615762443450627674458741338426592347324042166693633743480542001625229993838257911097692328637371130615663993447021372797918572389954522399941678327101864182010175978695479733597577860063666783073741726874256000921426749355014019548302910542308533823982704174896512844692906728391078024189762976601826497065080608728068654695818372864535127863406388758378284088785199729902369954555863097275841286812409713921585911862131085889326742833782969249180137476431022166872589761656871111655892067552547864572622277671688780022166092302552207060692942761749270841013187607778054590038471292156280683803236648858157379428285295338147862951867415980582854542458139572962921001177351341252326746481852889199457895044020197378151093192735513250361753486174003313245642610203501790335474728897902391640942239308037846806619469323384760085541469596570726501771002422805667714575709339574487549662498767018214244258679036890321783202583159024663148483736784900470319027945041070630974553696720213646668374232787272247658903208647020373692807523495413781566402731711092849522922417946366950064822641402740726578897597193925232878861831403290332129996277451237080213240150898669071053200817673240345912161366873599002375623610377702444171796302218257594564908169103673876283433846632957538581118325981359091630383929177193357691801713824251386202645929669876880406237027376832748029279182887906512751966337892933172205202281105801412158741244284202664785270854800567978901388315355845136827375881843073090956415174404841157083403372627409798037705304082505286281350536153823702454996036436449217269850119853169418928485133361340032727398766488137557842584254561023001891492554745699562741634180678772166664814436620510791958798403270219293807201864641708185797454358983782057209240692354386970804163389702121206829032992027778950055117549129767656455673707619258882845809466453607957141957342767105529543017815114300140690835141644007653067124703636069757522102922884605127581728524978776392168767465001463230176460575438535217335593781252855068966061525461707109187613126663188849239314786000219879031358977515012185465372773020014864621161422769357916100975945280040792336733353239787582218286699429940930422500601554987296780401261958371838999133716030766105512981843480303414473751177671337535599686424696318381240533649462355052994892155636714349454250255120447246224303807052467811298522511458466896651382370371538347465266237348203235514357684376335520565828267105506296432599798572616868238694406019309360557525896361718444250840203926318989170508563147000996904093776146408489928671247537822112609002674938696738564201102808109625450583626842893531053171271862003966033503330159909238048591343206951627005823841811657368847138736236702738589448258790517517696482524029277686438345460017851857638443115765354730990331865090448254012405118816593322351400515448157885765649883207363224138303275067056857777033637740434521734232433298210262165696959155333157405311524274049304734578285584700200772344143677838467847844931840976156818854480816884948111413639218424814086170247481184765466004061450397402468634733909585114613283644586205646295406599404799115037845347836792980246012141793507198598938634943175158211249490949456617759924201816355681744280659956104638146481899078905648285097467658012405731939902536283664738884941338804680400370937556058697938674881400422471293359306647360651435647502585600345537601386175203436733518907403468411926918899720344270142045256898700395969700385621979674301777153323391010434562398757783310005596249483891270153683929517918338841165672619843964049206867567687514344473819580814451312299267310185728575614260658562131386627789911531528230623615187543546999024201469296835984783692275868802043943127614465146743623384669216778797539627102561936298113594450326561864881650282000956783533557093051086859249169361091734573556220632365357043925854933140578986892763011936701360602184442341281767452170635437181973702958078695562176774641715457027318711934768360863669159138623047617610801796968913860513588178470220206818152450126973617909747294771197404056591051838488658369839852436492509269720965159473176873616859953943893042348077691713855821483763524648617664014863926613170622792702329670844896849574103738197358152937476746036554726721199943156384632090324525028193280174553827094850715552802792883094289055276094619925668664613461008781528323802907908769134107570259783702671139386004623556376973341807644937237932977371921614770280630751584592763043098347584051486840563087314458102259675012577547169146943758592400755497792657910830610180588592501502081447970172295729021508704580661707880321734432915630977760464870659772286683927751551427376167575976476999978504051777288657367956334093232650795516611758625950411222515937534256341852990318186928617047723968659717481489531071320411109655082035916243713090237313469674498204418104576239507327433094362313666346239429622145576299222330826834748971165758922046599578331141464576232688298012537264667181544209196703864918852518840515988883177996210596559499455945630319872722399741720558409443004390698733088840199446518896251953358640907462916373136084670111915631227424202583728893240804777811843645025315461086725257937543184119412568978638591298578391791988218253909333713781582170891857390396877473713935890280328008085733180520849535963259623555452946021105841508857857338380354145257507800110263261808839405443447441447833546239586986093867539174688992159337149735811330968534174088796997212005861473474545072214934674964457800721601275771753019302342986668493324458235808916118307514473573671766007268100158927085439903627473809675133854215721002442508147753415698848854624855039305910148297326894478085156330041858191595549476876378021619987467303402110767478948973385806575586036616281739658651697835127347233010178897049700197408223282448185349061133006536907925985354383438984006384536496894252355631837657440213376851009676347127675659989661385900610018283164157767042439036603678131935567110711412777565235375139071693534276455547171501226504595709643906879778672928092312809903683479499869423213921226437298922064425345854814042778432016608368310563477579348780065863930637106338652821585643292647265978122407834950849294674637067484517546443853060671042746246580187537894428624303822859126587008784587121778725521007471590569527766618472846486393475837094052070393263470158451640073085248166550687455648099421602465887518431083926910662200752321304732837634745680114222090060322317048147309241154768868166669542472238141050725370063180380326848698803118903133309894369775430616096231880332114997989069819176659134208610609495563768557916011818816465655407392840525099218071785976542432459847919660097193846678109597433998829123178071105895126454228265883050211478956090846461633134555633666847142947927574591216524695981287259236369579649600070865161345206463700956934570284740270237974076713263790790217808022034445198611998084028550788249898948268463372457575172501405663036231166192859644509063032211770991662289682160926574919650760973585357883041209585157974738634138649168279497164732614973269461168260900161711615133823684350026065206761262481529639106144448407835395460828041680578606353816379666625794530622411349164615071004739898960293009656172467740994941127251110768743455445125517870405437986618877305949018336253187616934722773478289835968366924066306764146941642896531661678477647817922851213717387341815061477742542832804139814632986033896284233444209161314224039679658086532330596891699013638735532623153057919722648766007688322357920545405375987040193507584418298945128618904837397609728988685615032056808917881471558459685958674446335844976940532064537287762023527157348567351982262409255623598092165460155285067221142548566779592125670405511085069987033853693052063123712655889552450517556600453709092794026521872970528789632860232444974213576221185279213306741916045654679540661117870979157992020911062322498325295034446208346363418486748403843596757828648805021430272049188847978366118094834331863171178940025495232461552527603263386085739059369489510364290263656774335575495368341073402038247180583033781176882797871432144960674534571031588361441076715751328237623607484898123512694594044384831313018177390027703094760111463632990420335250758528528609550304200669012371602348644975834625202269929225225285532137881123705949087834123353074567341593253448112338950861817456067534075584380841875678862223168408335920322545357862181524478658318170809679535547629222122131076445312607328289363079600707641845154858706920161812854410858941286665117575366157918040469870032033827347777381466176777552159901977813758920310764381003210377161386471255549116375694451640930838935380846158529535093110737355875050315136581822042743731441615352514018313726419232220540286592337890994255482363316864621172706161641481380798151811687197444121221875559674639298352360783747954691561854076397341078923025819804909432531787908811606392481087208721387146797846451989134127961928399198687248644923967731749200187045214813618764173174177168275651276780942198650371000320350367633866164361341227328459489537574204468548959783094820920537415743515824961541821320746893777803450127351790702680422949903141566056627183234166371128905112917768762687753936796896680629987496531056874254475425230822098713062523587943632919128140804305993284938083581568569991083786714273672882551683219531396077469790586873138518303391705194074148424409204616740974154099162877143740892829951562404480870810835130299820611079487953491921879180232083067977318056492959456624402799320531856457695909978659672295620789335193570611123889677987275454660163447616642064093550778818138007072971623051723024874924870488956178347636897003496169646076638590110557905747611832554474037516574215110329863919835162442288512294161987671918107795103818681444359990923466642207768297158459424847856447040063602856679253246338045880643891024244452247979137412489047777675389598571157802712630395289749733707519625711552343950597900080282190664421828625008714586525265360667987069643757409205682200657607944921121293771185033433629283900747313899580285082628117815562400545394230226081571491866403031087253647866099549660276835374153006752359658542139823287790956504784853989319366651709348527336635577849186960505706605619915848163171716842007241173970890843681191977857722523115737627557225616736559453255030567506720522439754681476636319789329305514374956597876175515273191285111832498678186948514472500456847287829943128513895221241168661006557686813326602686101580757745156450369524249228613475260368130911774657785491898796071092328147459208929506365900379178964944890570037068632627689845371274726402555688645653058476794877451468437274777230642975574110671478736926348454047442809484214087906060437069544459824007022137475578157784929263897630843644087851659667037624842511445339501435033241025492637029892728961141391542387339449430404139847492098068845154142883428986497058449626624991562367655358389565224155245499703801030113686736298259925477116734360763374969384187874237439537421515322475948998206917886358740197890114232255954171682014167428883768734233976969844288148101372234623653678747609188965473363039651790722545612641288341410043702106609586464705776036784462577204051602180774275538924273808827173936315867479847125849759408318069570802123917545687282484542609797885867104599959007274123326735565360226475667481381539490795000888446119327376651377130826984334221256258464343217869258025217527210026968187999022646457036589763297342447594858497208181352575095166382592433642952603621937444970227656331116240812219060761651438892804744601183861352672786274658601834653128422428093251356301570927339011132917464330742408880223136133648215221862490532482563450008285809942257600477699149109693688852974707843928088743594702615313322422165112763284951093297696807933796506943196729893148530776060945706664655416217112574766704068192598965553328976795152739667135442913061903633694732199952028876761489364254147880148118914859707583169306960676496736357170380362005936691668675905616943550686316281202131478419781383433933591011916418044145894332037987991861024216010633190736962944166278688908073551697957798155487910405245676654153050159878354414517176714470128352643950989997676633699013236179326372378051593531061099047875454717792248495696800581176980202083335096968984127882077304271514014708667208936850759013294659204685558462823151886461459893451646008933456085663946082075283204056648995946574307521728581647626952856284368485253122401826758481752962299495946039362551766028321857442257762384498116236389828716853139415517127307124594879709313691013039535152796242143669922403860503536361116654570157315872682371420877555042490755539183195764072369261598327925999003632138084024076699822408972445162691016777986220775516490896289516816677707418791367037000615228904699147583353893716299680246597285743937300603877858002663733847972530093197330203388954991545854760777853999599148720783871253138603761097284762818410615172141283697159565332916059439441263752268833288421362545753808470298900716159560805015735555289765675935100259676084364682053571868069529022742597165990665235745735659429710111930580894197799673427580962593155896486025047611925524627879368762385973207319226778749981057932900899533538326906496345715472765662600553702883695918518223401490390335743417400288179748457284101782506962106164448596027023213444503724815681411909484267909327395704251998251117722836220056110659585116517023012633424655665213781127161905973599013044795100628573653224066639604439584344498270719265486094457611221917275736673238762747301135675970208775671750185518463966577657378474836172539534627215035545466949584262547026420149757413714611197795138134129626879370131689429344911628782137498296365419625919416901988639451865608782557962203884974488244522158041519362012197281753288243311502194794376300721762507386071326831729018391942047542967837745945624806234591006239820696503505847618774224282926437107684040679207860413373201906368376440503274574753212755131649656559636976320011842473014572594785858920640591955755114412184536791444840473621684949055821821093321633365926387116086856845990795848086856383316288341232233810791431113208201905799459657531464608299292863849922601122857237898069805935629510913833639840927728924917833145226728123866272566416791262413694698285205735006079894535189199653999160238374672616621155179246722243900267319789792736269265951632565559534686559160555539753968155417058777418622905274429404199287005202685573779259206375004704020585386429840734448294060813002990562772616881614308738353367646642454553747486215350388199103941322209299597209548340630266548123900517203341574842040788652376166227714102080340230644377672209330747267619971689985108669285878090142730531767092617753142663280252582515530492589931586893730792816521264056849105760146809752676298465818223442338366552373027243263347628758525628159727565153988625535901003284746227523860905980547639219139841331448716669142284692011245992900345247792555287781082352382984680375725905202588671577868023144487190281388679414444192861159497747334605663763192067043092408087015221426129384563681973121753106134456158338451735080677295824593390350395568930460176125240119679149737442291470613475455963925410622804299382322689110133631546058737455053668518338374079581817280579001924134872998276533323627934106373574518276234443558696553033646729151359920078129661329456626673849456391965759827414883672836429960566845562006005337141502569003563468618036082751779240427724277632979185464161479778127505945282161814441113240168710983087238676500717628485058941569840238893263841407456265690311502600472475386038554912125308404803467971429426716854928293864368080962757988897273825429670579179733949682193151768035727694924049262932534897416137045069095804404562861188031607802401930046548719117864601526417051425571557308326504350744974073011444106732893472906666294185749821666035611202518605409245349891864525184841038236700882958860993612427072340245761251552136837142039132736946028304029187894796605835357534757391700186418118850477693897881794721270161951565878439092931466254285658309581544931542913741341628981064146702595822963465418593865197713458437788688650623146770002504279703601578266059452377131056048532138709567334060202781028248089562834111849859088652942963801245354831428567756863494746733418803187159808990803794314262972220914856645161320823369001397849957379566205124841667928148050584609601560299500214163044033500195185113743522089612934735155323411908223200491962496831524588331397682958524372478045112869887807907055571044818434160604676388458434964731374107689447373101604263362879379645821027319972349185405643451477775558238116043579686707176541041511770537511797990357304132451215762044879109033280649059650195452009707171504248731992187435587816305748128593037783166242275213710308339982808065595012672014032028141313849748700646681725251658494458707526501855464410667398932184904618195963383635108254432713676839093713131459419529488031595424707910191760395425188280898088224850634545771933056448319892040261789901570849099940289190815743117062122612551412416045943040287966544099670722919063712934979767314392730940618203084711089914665478723755258892723980930717614450027468992847319491591990739256006927567344956785447070742323502872896979239897152040476575626520406610381049974325734379845955342625255525552665409428962149621554242574231029871296971816333945904321468785411200897246019293157148269682773050232986925097823979529894150046520602396369549635210597975971949006000205360854608394042022803255359879752282868115474762868741031187524043734159256759745804340524888176243457804255041977762451717237859244243312102062634699144365462774927911219398641507145965962815855025110174123725744255620075099416168713874622853130879606771629673441468246686814535594105656416132411399034022601557791749909305453107591999526545643549367173897921968312814231857104108462264824242973126789915589615613132655982320058927809227010628063591011871729415118558978930098262663192974957573503313331366553461913059582840449806887524330634918454713765929221432219768659873739037935760487352426851370371473151687381103835972016147648518212489897499907160801477496439005662553624022014701721954427791172870875671181853884639970299181704175230920606896264883653316688472928710944637171138214057008059125023496484043265496992898755277989808497065812915547563796604441777298727044830087658778378108718596660758695771433027862438618990304746411055716518465867019071543737169212749861434292621895794070702026748573877345030172780058295019794436015693534268475198434828546549575952631969360727746132785243767935155866989399338491348963182590548674614968548197296074326370501675276457176029191432145135527899622987905328173894516923782025202782969506073250314617093288619505055742060625709361104781003145150095080424410821770852042772793489642079729203065767463225948546005919089976426428138631696838773545857764071157696080094578128872744086316954018422037214100758823344480115900525203408978776262810557932896027034393270449943969950287743843231175645947361552259558214563363826585699653249327168063734936431922850884928593097803625848478918409574319527316175428382725130354229354430245895077297095411526869711418246867834677780899402206751926855121570334874529951663774154186737739372700022420168945076278959790265159903025844983911690425697919020138039408865604806576244487339560082332889494217921357521095680557639977787317863632235944662251565060919179664536113232733507506893681936801187607054646486771611084295118107033090388482804284536120174938970144745092672536749103829302856680339490602589728524039623910960784035323184277563096110011318670505332965866118422930527023275986597647843979880852769781634419725653108499048809703214722457177164613573359672985678146290060832779280364033459869756080489816770939482810094725395321810352103227718650634957808184010983155518010438565112685056496770201181558785922607276316612663975718104385605610871148863121466091274450597976886479059143302371309552213437051754968825249455064285917798297510957378200484413380022172768638289944756056621870075937217208271167854941349372423435229518431358972281366650040040822484667369238247378708757085290796051381991090792079309576987646643183404655039583531363507122271480072666381609769067598432302273696341261354441001447469592835491529557622632816956961906357767662028806547254611000905799977642170876982355984256652132661248270962584827099095380255711764113907551376636362474673149453553784946510804665601576742079832524039506358594453247228499087584780739048507342638459808368865123628043262695664881778798626085019951883495924892923764838898073502152083665272072011292760019064830904259306712170508772773054459585654809513971877894874968048279961828881580547177679615994949060407576622419128143829080459132936595234336493598409317823353075690342266796230667914944835414940180625265603820482431201228220659648409657345841671424708911896654908676608446731960247845590857863838517691925187735813707571020726891483880197724370143204575016184408633998540911590004771022460554993104646206755723653057401388763380088651402979900549876859325083669297999289246993736186567410826854854218836531065117407904417782158484662145211146499704781694185336987130852269069466602163091335956653120345557297048641462171855960000073368356034951241864744411951763335567066731596154704158841035319879170481959711095285945131453988813893641750535598991761948592849978586970637097424133461527564671076559104769733954244651941718238194049179635212185088511628432701638215690115507904711986787197283334070173408495380110820456847900307249240356444217123776640825145569978429622752910303092008607253161991814642830279568844381907224530216198861184604832067301873097236683966553194830931384586237279716830688495647676796901989048217256547016230307834127377523986030708040856582293511814199689581815620452086411228876983485519413658236966891147237865988492980196581776259415015895591744688695020928562037877570189572374027680518992299028324350377395879371680274372439833368375661392064909959596526363710576620442647828586748865591100191342246812759960582925252014561275556145336580051006174793200028673147868311826334881189622200635528718094177787403635181970940867625920684533849821663511625798158051607268237418560895984459381794303915198578304825438375687946597165305899207732018286115600948896442788977161510389167794179029676378646831738574753945609825062411343397909663359198305506757447829481944652031745469284736335423326055782261081145211712531085412923506715145106546034305696568560853521085125452439776178617399486527057292895793020174095319730086307875065564030533210494577442899518292854896960580895269778540416155843517096593494587076016156091834072567862105828841770213897111533094271154898880909834792216951804620217109209695398736411431941562543013178562280638384900805435664880872250668239343896816880001339174822120085160104045299219378648420985977022155502236190226954903722313866006273712011797157125237087660635324543596604384797525039163069137631523473085388765105693216909864934281584905508669249008430045285072427475451522742445889378585791443495342963786494026417496380035639048594402569500821036056154650528600987797304310143252982796024458626286082098217148899934034200048314382460712398901815039191270754337432631019342536762636420191304836835587653706158419161534234445010156791225577673470445751262562078186955131068290136136460059505764082424327793814661175309081325149964069170433637738479013481791131194513173057564235053577477744318258169476189974486210910245159849657425854477803370219206083281698490975846240026073367273540050949889158579528172233242097326195579329637618270861683868189596491507197735425716332220752825791316856912603931995775277092836573737502462785698265467956160976718043351415048180903419543274959601443266777474327584583830779786173150365326825898795849953898901402008172381719188144885175791251464969971519536141374729443879241931117629444043481324330517704752222191813859085465742698179906825321977897202915704115150765940454524470451837166808447381797744443242211446749752044807898842806826565220919749575156786916552707245700216114564591718566886881974314142379814411353353411160285778279048228002883440219122278257950157228383804244671775135011042668012100287295569438010491453325234713349500071413146226852168878536375430746737885126529250732058126056242733248896868187728918889553299690292770174490423394644410567883021683708421068012259722812499116442820860976404725089473076537385966410453314094601162055622279530821452928962219297649866603547726424167556350479146763350904240933643235954343870132032791868164537365170154158494294265766850240160830110894171128878987557188184158427645020694172452376913864848454514468037811564087232670740920220318419060859078643328864558683240807315063899404919872744736925513945013649460141406092082603340017949918039392992284526299344549312414021806984371450625500015366132467245836357503501238650774519922999915507298513323052291894706816902068446809879783756925252560595072220316848055462654066132087006638914118145206436335847558459525130803767659157924077459537877554860670872748137638605952287742507661723531271876569928637218015736557440455601456901247080607443946626364689355923712334398956318553633320153230602874621503833198211812766340670907740548555594891120408056113347170410282939766661437554808792216355684861978360729206791514839214459974814140568812119750672383942964677997041489464987997719519107004616090698461230857535886950031504583436337927698615174753095394093544622322308984429308370637574265647751200902194163116229966931624092963668460125316624562903158912603450809789417826164718352577065349307266322726952293872256243094984367744503530402675518303504580304400757773631075633711520169253632624325854065766928077768776794216664575155096604337955487633070506130249778797121556936900703696140931016284162054706281952309462082073317270194712548117523445585727186996742346088931223382862790304576856802679359741440740339278069980027961260157419849572118856872201566493380707586361419596161171479758490989080839026018249419520652388952798218156968782907895005078338352876750315207514810144961727915088062964041518384049266942550624001117497938793879754751606018816805024755313837682679254489956587191927617661502818858300666294459315107993900587323754013489952893177565564260630600764232621015752982479122376205949166825005388538339983483126008787041523526720435324523385854691067513992611511130575053207000457827614026099596707120867788862555011571933685183823214248450856005506427227411340287857565512702658749363461858353068827512166701443232566910398153457097506328712094784622986946337142249780014838697742553840802321430831290389546378975896374785505483031265516972326157403893226968475510293688573245618128133005083029596863206154775649079745276862735502518422074169861572930497984177775552966427377295442021430826413140364893870688796332449301669512537059171934522667640991419540681300580735017204018881184323097467391432317380176548758244066998529683204799240355431044122893396483257169431098892548869990947641062501572580219616676952332402767243336712094500531101441208395547456815208785313969256667099992192275781983191161635080020845637780071298461139444017590075204718415611376985963470851123376718359529372298584168488386015881585830192197005571763727018732967909221244893111850472258251843794751896150792419362322472275011625524693293833935576986611326962576777266928052056443120902982187867368312793887602060236479909454291690853243108266130870658998856569406677508260586839349577628385662630012850160603033413978203991776901648465708609596094585052757265461743928593988128502878926333815447858736507800565547736800774521348576140362265644583906875789090069321985476602912595416318032181012085883074491299155169820872464572360213013415625098461958184486408238983108873840508643812377632205182432479738480270747686983177209596829799266186879036584637263446155682225573386270304776634954695084668246026087339726102169753981824258066715314772189594888609065386400711771943349408607262866751250307639693428673646754741418964587246474591692586086249093502411421782142202658499692853947199425219564323013694848516735157142489566211216582886713139204076084149481170620690577900779386078857218943586989208016123831035860120618468441192317689094827117678693954644352770382388228153900116624859491607668541655434706997890909061505725241510218407528993052205378903461747968942549484347199251030660416860711003247479026261810583394688892269941690235106285823278444401732684231245331994962409842598595213218683125886864295264673892519276729462273793413982004258190044088844589132848408123170775996691945334435596011480834264273379215360585582446120240345021058919763963168815508187067735582670383989783637052037731961670188586488761411733055515215697933281975325361547058041847481244651796530585883546726866230645927707921861075164207635080608027622434221373234478477853491468456910036753516661870629141734556521926412589070016086331880359157658663177359234320326441357025107016292627023411295327743601980706000813877374467681853075111526533809742928941529690390734080538877714669500039875773876374773140424911910298639389802192395809930712934472937075997210378050306694870037340263562986619238308356629624457656681929337066221983513264683441569178769551270738333557506203708842539938336254388513413210685727890786013072424838466224717359652334596155068656934960514799946714696285533650565420353555672194201549133492838462947566813518243390740651795878055731132937364008248588706482436870212430623203212232223360441074645195043617780317683908323795093580382214135230843180778704599186014024683336261766200012967082766614346112567303601858383944250394714665474081645721728319925319935943433678510315372288932927633301274299993969531467005928692199474861029385794408656559486593258899514652575019220338289503167459686806949534173049026089258563667182262596520055483107749526200863252438121534483529072975536203401763661289304391965473964140553599064475597679311354246424915577043398498111487464607614672145734209994128703754542402386968237066080641676661083783882874180287016316728310094842688898667456745767210536053243320196543518198876036276606316170249644983253886844219400734017906659652754109087339111517020268706546656111415710661329471439819779897144346481617745218796868939063952483670300963168746138264761480783684876743252497549759916180508762759160283200592086330794590498008802919654337632567674389867966327451384326757717155606029832655300727457550352497542317661194149367302973413288270792288378112861111069140175093363936020784015060083759391658960851617557325565920058403367730600231890938896739953803129432772769845663804257345380882435949555355545910712844572692971653604693969293227931773030444458277398313264143074338620583244418485203061476817802009726982620443477754703632465778070350150194792436463470980504791380697529071014827891682787040202886549302529499524507613051711689829648550649566331236205396782896959225182302163128560509082728586008113180034221483832562744619047944685731802520540831684780573432800510905381385336478069129182043615424711753550974696507606903892946845997094839183420647490373330625955002503734555552169981719880668493807221694262464024314689885706047368656745469345532371127321906537105554485666797185512042430850301431269428097544430668450232950728132211328581445073025022247439657912139787493601772463264274139802584347358833422803112673664974288897317444405349411685785911480951781690532589212869142812564516450803551866969090412627102461103897147115076843033031320215306948670371913099538659281164251958166141403710250929881896774247580794018643158036500165265778302473519135404936776579377812174132857611664527200993768899283196526546066660529346118925677331659383311126931199352689280671828456462793128680014921084075402214367395837490530069319139903855051803073875029896583205511117759277805546349607590390840935853496372951484680908852489871831910580497724844099667239129937662375101577495550686120015694550924258263793473226270424329275150624134485210649296064861239060673954989107653413724904571551159789292704464612556629926551593078307575300249618631001710761726160689224124041849280179417736131466905038698983236710943036711686280523814782673164506545554066803883368887317742468107548815307234553083031583235859273998117442937344229235435322284326592998262588201675505813612916028539044603990844594654282080935612028437801094824430352662764237391113420150351313521670399348970601090970193374563407604437032789509572484563280098531198055621787467514201352284979990735827050588282018428084845507335384853217581606134862105043548754402196676223853410936570363991248289031468369996329176338905775124143276125224359074079023926469620493563753021670116729638495292680057696694381059051352442187582678102743064013779943355947691521278601935299359577708814299124441644126396548913353454215621910290010339777646597840206997097929723007468814527402449252122043157756308426099858172438297576355593388763226430979032861995115529846502840244009245968562058120143555973084702631977112345500478713090527686859481859594302320569862540022895844861020819770939301833565980256729443157385888024708188822562868373173693938964412012551932155899580164270931931062013557023491846383515688738898108473791525649186280851204276013705450194787531086878184194993278709885633787448030982150759109041078945794825245612088112378030199257189255731787601203659862492758547653300681294891509702884928117679575455534726996392332529095838634702254293716938073772208557892846516534749609483422483743695278032793331784626112203029319412793270409352993063665434212532401785318754429544586651434280831293542312192869949345137255019983381176458596009614442599938925286628815889386959861988702786346531916471064024692114793253561123964635827388985928088034020948867042126220645716651132142424133835497163781736639171350816046405836136212943789312290315520059326024070308345205542747146270036226741918201076134532027645976411318436809120940156463017890424181619264376651976940776942768017931984521949496502258977528245138833335686341581224258356109231896271819622025066055792341209345256248765302866833262080231370954991557762275800295805911070442634137148221951503236831983995715925183468433118916456449454570057097742101306785361720270728537288800889934003846088379915307255302732518347481138055166931379840787968664477834902477280445819231682228085278360352030046306805434649204463909428363304508427755228900906580908498135582331410653944633581475256986602390140316595143707978564852799290381400414787435832378978818592293411776306395636464150776604467728035375763515119795050882005503469387373061741825106256939705541211756172986745995686560378627395043044311218165991104977928301000672067498306172293424952310456965816031706766636495858825827735861734259863863776855554447383672348810396778516600255049466943584499925995633676090481130776743508692225270928040423623355537080998453612534966760260895432249924495878967551078740891161807318898867082373557804206223603577764594547480709779387012155421748166971300663137019561146575634660395018525209456249997408527227349558677979777100945669146407708699324094547273269805400291285269534720488657794709467733980826628087442697656388909805040831384310210836142815385227617778813384412613945290893558591436729004153412082786720100786716012976928855170634691563129613773014540770037970305200988841205222110903256978873555989552256786881311073544706544165154487691864464124958525080015816882324858296934843018272585985304809383299248083796898965102239793721996722480191908736076701725179837402315740008968039511768093507096433993959539522874713433378884596033319835684170861757480783653656673546984189394109958403928352976325392591676723176907722595213768300416932391775649567510785816029649448296189858699397339294876867888846421283985696431314145969346052025992918295667817898884107504005823349275808170992629241264885298326681883620817599351227032987505085594040347611543971053571408729523145540392608903771658173063444361410725265986570393727721874854364030093286364006662844712234547150454993745687820194102935666188876353848925743309358913590842203224527020757392569421153170628452447226616094685666415685821900956036225630548760228679640026076967804824042742488075335433923175552505205901814367795580485092224359749314335814961318835435854794888332225508138099657568887352172876888850681185742552018967305447169303619276427216580227898634158298978663445531044176525047426228708589662518127737072262021256201894428036694973514833047966388814048769363164654060988456762714390766716297988679202664067136533547909389561183900736318022336528730442487785477905299482945338316219380295561645673627985817899660769105604212147355322409446120475876930256429557627425115750031631058424915346531400142396591648508496280861389112246124198062020123927189966480154698875758406840066873867852573628124951148557703282935757684338702633957831810603589660896307813530455150874200201485663248466800942033847364748061065215835122335911872680686748397482978004331908616888173557074580287378624410648912606792746979378483408089476243851883212612731062150006511492982032657630457717994416269022403897296074110742399509353171430283019469155817230957807608034796368426718078077431471930107364049510665440831985365964330013784900821783279700410154214385016907022415222455366811573020825705266356896769514996502812183566062635378218590521609578851946582720149816507963922659834676084428431028364640756056429880066552722342521574455251408859326143529243981243982315506700415939766142978374849978831972560552997927937320807133165590588625151469710326483922591437982375061395810883271303655537134210863602984453191515985423595860157878586233923838437826005919400809408283100927331367370906956883375863015478626961441109805665954991120001964025720356560065871935712582707357666107561928659353173334868603113263201468073427370302167073150745426321580111412408120153551709422099245842814180539299455588430662536702411901630953081255077730883638361993240822269399409683576716064152065958322000251494849001338403357623004840536691775198873594786868601274116912274054634128401959002151653946831070297069632035494110450663029629811476436412303009601052027925622997017612817569136939417452403772954875348459489318690540724581996016896159887214510838662853035817415179798074586072501048288380462877165399114862455598134187439644167452353029335302659677508173273881274801597721353864612033620864855948083285892664238055101696045057541216659964592644538420635146742135388617520696853878010260747276135077936221889700131153134737007154121872683301367890107719715728608681901085919572267790481637162443599724259435770609412898358355386615248883214361557917113343824227025196215988265457631723691191765754072504977241130407552789134638711261438289578353237954045698508986070049757272030656095542024335734173417901764339523048854270154376367482033748291770050645242582603714966103754287260689251055842651845859000778736580277374419026105048478898733879437567518004648004248425712222627889665332251231580508667127528681785112896910094007815831266223875734271075757234426218843631501493988769600368435120984544728541861189577154980299209256367673981517865286591416137173868668734010657616629242859550948395176050415762100349843573794166811264979602445080889257913133440558773596145141301844368408190276758198058693295163754329422063589192859036801190513652965902780305043342954737542071269956835993882386357746852574642724974724197770833329144421736392095351606432964853439842070867192967788908842094685671827941431299332613932720764456562548582161054536249993717998696143025954087674576414422838991205922853907863332263681065171321581826707006971521353000277044224215362646367163714075323733637181734227052902890832866791526718559163076400656932397822178738717726646231973879876728642034684004884195367797748575735201200617098355898332275256426868663990372554899631265887185623188014046982851936142410464679739028380135703125258691543010371420432217959013293678458755059102185342606218243151339382174468761616560859359600925144792715708394015212166683900596944224049315807264936105626557688325967352608617432570057444966942234558343446464695471990327357763114361125514848738078986834611337467629730453335363235010044238065381945114061494207598892870843863790581009844266182523286743933878293241093289002095882054596717307728506383698163875191735916991030150896156888335036551179022942175733961688504197988835986693126808232997592624791584614116005134281612483846165087836610701339689350494326679472468818290081294522089181206357583875416214718694238255803237351645157301540352149363667030823868298439596372407764702702284559861918579169428143303175558655801309747379805404135109286592536990690314041836061151574488827010948073018882328021734250923668753711903879843830231702330083936847814455508776373715624240868886341717122324443662819858108868015860374807209352027897925927984179591237965744050009401547226074960915026603342866728251857283857640228631092619691989682678823325063746625327015215449275702001532234874617019182259823232577552053491214487574325587896229938005204744829402964785557533245747555502194358984595783924408679185718232187594964104015122753301596410357626789116508930213241398940046368395577859703592880796861096185333743100248793542700851363357140297415948311293291925481611276830934614722879755235874985703416492751570390692661628627801192150396604059828447850210113710548289774433709011126016460868972192538958126319020808300753386906005847474870986410911594903362116930329080028460884731990951288034912448788601883965446038709373982799325210351491142745323421001071059636557881883755601742531660311727062307219350928334522764339448265595690143875910540117931015179266377294414250925659850409902189961273682540326549126751903458210903194647180229485517951606299607210606854993522838557210921996462859277938819214587044518900490611136564187814031151893686268268431795185969722119167191417076886976291434552628857803180793735128576438108606108374122360228594341100978156167735167016392817362058025916438037509632398589153388491504426985069682319087607563998132929300126561592359567535223335948510633713451628124742981245945956642968258003214942932161728803784860827596211404722006742431923356669445386002916443172093122315330922447849495122875994393274476398430526138557261291798274808185454823718211653853600880805845008981440315969775666950686979522485072687268955561419146748199245008756628709445762717016491308907689382952678963405672910272738797200634342246943073675569774922771242193772428920607919023940003475515825115011725213789802345205605774967705959922765584907878811293043991477780625689587799228198065778639906203246761936423293114938013175675995114306587332373689474149971301731376057025149643882745639103700970876403623940942903247183345636851244039633322038757756766470713349414519458571613945507481346960155224284048639325294823672010065777550925581919074195345614073460757137355751178227157994531680371231162829310299773505218893760980544620238584804766015669495933838865247182475014702555074102565046080927422396245824518958418951120324206450727182817825864363789382731986290120533861014531493398908834346765204596320831070124313476444348311191619401257467326432273048931904537632169838513368745797668113112216991469094689482774784231858726543557544857207573953414775812930313390828052910263757360590493486057386300856529550048623940692301322260847440633438658991428456621491769128959004073243147030255302124247009294936614809105631789720079276121096824600082599711015407132601976988397896474105221278575169864497883668373143288538631234107366204388828251662788433185883693776433814527497670568958444220032813908198563939348643809842134570137506329372251989595620097850788697419303845932666329597618704920851952114837405956696824756539507711190072740325605785164435472829171101298096469383991458921075902354137384965420938296538129121910723812827527499537038007617168217384224987234037626442917763965746980291644218150603170022951863438967528813932406481210737502488115102529352509429954383748810775927773846312839307324914371161525788680335582751602875306203144477338952634543522454374654063202915585695413793682408847178126845930390602614989098219392257552694685898344228643965291168067021170335491460877318104561076227806792125575736739618486055878488487851147593999190957807070553219618382674195501809062446937280441355846698795957269418630328699773637624644800916194225370813736305005959616574468994369485948072100126021605663480418204239952557713905707965530545731160656152634349496678271359944281267935935283289326116615222912839575043027683377160485743847013064807757311638581334590524548947249500969095765700061306208087548749285560177771968539667228672603800242246807294398276120004714007723682051397930304330273654197656028254677663156023856660378477332628013254259670261534758314031403995936090625777802084041641192443749399449686240899551396796924242556046174114745381838578130930284200201153450834287625940814387087610908365030137398749219810400841478912106104527490441182565712610785302683240286277438042463449073482794821176631318670522222340669223555096574232290644531521073553385827823468001781197099860150669168583243083294040616457506780289969410113725457041231575503904385666469888395511248247983560539151860070651711898167337200761395537836192298876140695263191883677486198402872779809410792415252216712588260625555054468780597384165455019583742285361943319653272869970999893017200830540643161079278696085062420498166056253023533000852320257468685594124620111889007566747324611221813935925389814172468736836211439848906241783070309398923703117699001504389075483700252273796553726422152484649888798017084431472708769993477897701598831492834502177380805456820940254401843517544808163025457704973417224013844541475411662214388260078939630924751769697464015561409679766826307256370851084023571974707478966264814736663909467751015608705052550425962577204731790807549401511961159066348364030278059935196721086208690994681696014459007758767818407604079217525027212691027839453734586935091494798396269516387369242004570970280594889139602198835618661877888112733193142067370795285809756245515935262585221747398117590744122568013044812312281587528461523365599193022249721380924517895865737890996047205866285756893585021610349006626073187496906392765044128732390928189417707743320825078648798093250178212914709289719167042119893152345048175466355097816678486529537816476275146966416777814101435995893699201425973248958221367661422265154178785301050835416713076185554288417606545772314271648828113269834841936578584395166646461928557742776324042096426253265163572254683408714625959370213303553099861970308671209458388783579076850678668330978084854458566171414850476734271785868221486005133559474753127821714117283158193973557597925536519275710546798705353421236614745495965758426236199497891488016919169548197078616231158378687381324659636597344089909015611118006667052280670473002645564244380794077599277334372892318594875381961188304941740970658497958976599798562535057024290598231946127085712363514069357618744985936501658963047653999046178071256197372917521622534658714747954320836902012324604257291463502323328062926877683806799963392482679294309397114934124657009137955959515082057934512420644549308153545455128279644201237507921012555099747020791483836719180448088780127520737919408746269521153893382557616524386598580815209832076563402504247556834321095803005116528658060384187152023225847416640457610684785965844740414581234076195296297335739964146419348073633980731841345786040009762042588680255091733940531597430020353117175657317711266826392598264969403888022929670544342382132935362459907800803370591783355530056690168761622113373037110156267412021339418273914723430049657608377785832989693485929702156081055236295411045448082007769668112232030308873068772119278554413829544568250914688554308102224169780737323397471459866417353035496521107467111613204374104786858600102998648124006986500690800475522333903143419487341063063807883560678937984942453517676289481576799675574533453228113415121255226996327605793363862932028058904361397942284809019193123549535196938982551718761845951347441146374020200835716029603237926325998742625059559141045479055195032250881090515844682146541679576468493350922866556359409378857566246617043386986176242595408521777203028727555273432812073487831471306775611207418970158487714667846134444926197270040929672185801828089812626427308363813758191557252767937001521189786496393396924799787834469230137790873384998480791356768529649853786500124663308487432493165139054783986866514771928844335605475950796613799252102381418850276578950401238629083512080828495421618707519782793300453808602565835600413668427401858242483224189089570813450258993826832792223910665105413785257714920127315504427652389200209520941009509399171199134206915447300997082056570388580844108368291088530915778239065098059631012085518658326682563016583529256555063771694765853887741382889095975184429571555896297138881374135313067616425494908163739457337018545292986811038033541024776239898197867499454618245300723945851497460909966107201341572945800284884882435759311129533604797272468369582485031087374271970748845001965581275818107348049427266612249610588668689962360304594012075355993057148089352156637681861144875581185737200636126218475287973042503645859541170495282753289616237325282810462881125060316381514868999158534771878773745310167557900474593003828906322303081504656707279387603050754379183591622909806685714514246733681662641674382245410594904681849048094592679468948890238504780391221460482865669243139770584830189587463367781874002586129146964562896650507029098636979451073071924737157538985610602402434546152501539500821127804750630741706320505512168009306066246105796610692913108620615116022037085234880452299662623555999380392345036596051970653690005225627123724555402366861656301977526298441153051271335704703811774586436555254137705548318384915241381814361329505333397942602234018300701420243819634224010513053340082234352029712499603584506391023913001094608790757557499393960715010835336508662269270952891491834462661325631443103158403052626333281439300456651168837651630453084730806743194040333181153052066446508413311249353474709643084307905312287695967307082644854237473582944936575008300626792929392230959243122470673758854240316131865003018023482557696349325038918374657104007705736574023679654841914763799070747788678160552996116489764376238389737428910150024522565530575893463209523213454354436448867858872630834345461476322304716845092983471571250911045508053029081973631044065384559618365824321979655358631052867265686460595941871529832161657488433459192103536804536799121690975708581290145100823045872822417585771109909264173372068284574787074092944903545627034098081106045208117179690283766380498565223642704943189602716289758201312857754948760410701461078111689069289746079344454879766696623950151216058083879858476022465351707370344329151578069224935051351215267556305169273955394633158963899426515991855983987215723726519469953253137838129058257962040406654709974582062129885761126314323625152333036894505377809753014306783740794156584081789109411121588639937715041342853174835084470832926743926488058366779309355107025467849370854611834680342372175045136714784953113085502071069671359619467838156411560416342622140675601080574867510536364927389526980197007935003002144363985134324173240463840685610095216437699234621918293617832634246577096654055830498575082553824994131067299404447071317773176377424256751943941809139716554737483327778505371982712215741934762813406209959595391228556232904160218734838649273495342126904233374791931295997970947121564298909200858296066502963202503198584076600266654758307819494246537840425006655345107391764455316139992495862578901119283910794635698020905028414925757855699884051533939939306390541718207937564201613869837736373104309193433075406694818465265391369531210801783924262841723546149287304620475392589989704001934732374408370467042768399616919382556478047523441099661397400842725577285417746233974658284718120757608047686244781180934804040048919433244728717516502725030235402728799910224011123920352408942623939768553755789952182441338674625070343659154421844500135974393858896710168423869102784591750851975217338415192662600902996706898215685858461296705701798927232745597429296925976330828696967169150976873009511304561191806512035889333120206271595592152133414894143548344822378414992847696349187655020746652758217817973666006478356281588008049595822091268002779316295555433115832279809775944770465249444597222194491085171874503519559335204218704314586716872083687867860056759228703764981466553165857014700039537354287128000321018597237755924445734465948451170935084084872689576892203455248342956642114401115162491272471777740982019410438992114927651858067281497474889744241902565918112474208318088679627316670168006325367913469924456019867088636603337479624830663023496360763369494822642534369650540727727639890943468522667162950577806654739870218956742290702289682812479280994953912848960125825725097375846312606702020602657602332531439584457057718553342287691273837558209010330812485316414311447241130512997720547293363206886412536430168524335917946491837261367605118814380693785049685193979224027147472273513202449344947076579684944385692350911312136424307230669209664731330741117554289586494346626390632482225501416984369124493815414575397967193585189227260661298267125236607634545415652446290873521253859070838319388356451827190664782567790000600051897856708885592326066740381090727728517653945064036938974266948387055076460376776233560270911998103737415682436942441181856029456777622791680602323074699052790981207421413569909649416264617956286353767737675233131272087601639296816339166555475484282320839305631038940535701278491510430551815385011215054430482727510154982555985238903298629791027867078649124236613585872648167851981301920528431689244931336187472762178788415852125398700642626361058536068593678466447522288518797860505067728302312875353362538482735371200311525622283033116604926887745641527135376811382312190815701295631746203968254321063177030291982583671208874367939349675068413372041096227661471192392222010625624051375899164018687312472634021252338099872548753827526133370077109340152289744850881255734628019729125386492423604420669414433651014060362690752686108185106072429072178241090277722058918758881943916964126743446974861052171372172269444589398025112594540813032507037695899002937975772239864945769857909007223328998690709491559891360871099220728858957608450003289635142749378377545788979117400211468077372662539482007632388582692312198311243311325603032141723689386190015172899570281497999937505115875713654804502503580997372436503502477519178824120960905977840916307503606596788753950589555156597866655334527985866803582745001893299190228445777053132970721535949838379110337116959219079380977987292167830739110790439423946386753212519802105972035314282998169408999113200921409691680996820415232967442929955627080527626722503761124117447665240298387488836149949647928015037649462710650880061213278009219232281508243266712553575766104607287439823059230176493218215636645615694274537993637960694229548430407429165843129210585956958619320641465031327582506803783497003107930932426762154669431944825019470005375672529385961207430048662492949380294669343110641994085679654501715679746434539951838133468362065601242491066596617602365278973712164884861505216872060060070506323509671131708042872779368981686403070047960004195395788760505426929839586275622556850978280454825680639181288454557550661263890119157760977574191358187941968585108314579857720895751135043157747094669404051632237296724888867244822088836242278933024597652682845588733190179809587300469983510236910946264923870648534401376650848483380291268076107735514118872525462916639510030735689627040657986091803806600705682235026593203769919761272027320571778204071228352864392528813017136132904516988434005239162559180070851331821205574158132531892138356584079551220768864362154441461056411847317765325726036301873169785633879361056946391841715338832228707367325324258690259650587513697490172653065222156353030228279877613247923316082474079140538087285783513832361515766214786623685045074471371715848798938173369327526315534853795377506133406486759805772512761549712697463349477031840839017848050185475542923606963706237050205631920193768780060709457105603007979618744833629492033499277007435012315676476699510913232750708036203397839976385098865998159166644650543856105421192174761972531673776493974100495234731782896492683990837596696873095091686433006290999879026958252435202758327744739287762962285318423272535523401529196114736497425607517578727389094152579355783739000142024764027562719925060932673498209670867724080796924895995478765409085911238276211899902035169236473477635350181683984540474482570979166412983537931357699630152897841201327596720912766934509091772655919511519087330449734497561569322005115400336463335625894481880827954725355379398957922628068100403785961624504679129349167594931730436596328853624374135913288952473446716997922691449213930556057427824002770115538793877123291442433554654191227231002328647111446584019482979138106510736932803962489229574369623760443674776506038379433252349991932500154023170408721746687796282078501408040316850375962905007224496866944579260900460511884144438311180162379788377755492865809690216316168590170761665151826257649506948098942623216254346470736974532428519524911304683890841821030205035552810009509191594974946095360424628337630134332752960851133071534522928762002350790713016359932344931639732492441014208879653166413733769433903144076683464293243421488566035883791393550802327630566931811496321131959547857389491375764897253793101835547727099318412109665454431190356397095789007366650677019615315553102151093321262327493897793320878048391539874253390350024443359837844402267496516104789028980942718469410996399801636847908425745127107168910171005224869232208354201068815470707591452045198313567359507107603691678891055688559978372468577317550170215508744463393839637481478611358588393309513694059721705706881573100249302583898545791843746929622529688587575914883530118378214093913722713201350432805809982383725243940286952768935930824417196540812586876871066811863790374324679127255468151372336564739890832351076140856819675678367676484057308034851943949437617268515881963373872392303567970604832014159818758744095713720769485963384397688575442787708257143948377388170553946663258154615362665106081371587393378873287211823307138680823435006105903566000960941771121497780309115136926930280413510057694855550431492448585871593016896786083128253899432745146701510082599251212477619100536971588383908288818777733737296606210047954907292291983037188798757936116188498580269514225149057337836843958564118094247661569873797399315346048770340540364813464313711172655868403096530369177905313202228571027180139954893776719394307428855254064352272630094098669968063852630566405098673382845197476221490610962878590777271817034325556183942864208338871541534493527531953117386271201935971747242438606866953636255035337539501335197821562742946348938303874155081768204241065953768998161587392801514695135802404222330221833533024965671763354924528721763791196436829540207459566099466022118918037885128152953774926623933613025821372942768521493819579074988307603459800368675167513159529285560946277106363579893121845577112863452765913091594998742771917867646401635369848848659514570164448003561853837090465882381540045667981496626742224418885224427101508682215913690148757349573386431337609666615324966339848997702925555234229302757210885852920095375177358433258310955735033012155760050440579281945003544629227265638757761790032868802947670153793897953389483017411499481023590129086296945929221490175480113967670257014133813898945288356710170052019890402110181339468615695988096709022918280183531754045316831932609976883836957619525849689416275592732033123690492591857433102980440601234307237380200244429544925322395770536420991314668877838561520917284063843908250996777595339845766047026148707191407081857338030720096177131095656314768562996282233974491670628129258688637333000810362590283675247587902953962912222011072437380687814316025605949223254914355870437219228730438634750516400002317473182253602378694720555320465258187116511329711621877311891840764762462024729299650335258348853679589171450977945091920216283448577435742595619852526141464483792862662128030694792257103581180721706203533585782426735983886709382266711121019131565485338989746638997750213385485964008182575703200400129779564311259494800317414000459493738694767042617658477210206937403254424614727859347565563468676196815196097365335013648503458394975299737723418056367545218696124385406829738183865020582515515658028822858885428986087562904098608446180963661007961578052779268064760510403179050126051481360945057288093657533389573139610421344791162702923488154459046525351518909502844725455916166890502381515791866392509606068085924156517953083883119989650784529232507679912500664365737709844496583372820825133452454384576135756884363995253086382334252113534842054465329847674500605197773610251025455154727851952186508778042364073330581761804267459404044362945116779747235983917821159537666199734069960545906996658266531559920823940420000974240395187395652215619429117464037043469046749334060822000671115071993176451965691098420624512668677159447235280430765635383755064695054704857488247419847684441547934756532228068805921096557505196311156537093466960551941886657128984870452159018006189369249683071137421996222032922857459124040896704344746790532684802258947880882110062106551679507388323952596577077478267921575729869959310306829363426539444449205168649504991230458777082052094900880827389856113497955364467270658904150370447854021411662694667338664448137922196863022981421849276593900492628458744029911160811278908729121322579321242811138621425472324025880050579590112761104310795280828013463528713690521753898057156361383508122964571781926590184196334472560158362057746910932331418030711554635716951909429364016996339612828447337667239783651277763378005883475290270479859278757381967587763502553616539061126389037119955239188226027287911618482899058821100228870607886234968055659667750125307762182899946859060346007128749398062078184990926741918772987008570837263014647168391815889794444256695616382508733581961858141343022657713921385402929722238192458503927721407501099908888671004165657122140260091242516806648418389598073614154113760745302052744100259560199204989346339464732697205001495022288446807814156438552113370788899980468474108457815945790905000363374865333747249105006514297371336374428292003025204602559969078025006752692621543203484979195983331871543207825123949005425494306442693922049169506733555201223435185181883360525905179979192949075092526973339280059741436311978839207552000073568043905363805786799173707172806139242624731739692707193117795549040038675987173496806965579584345200928500697661651442367276237943708872804150092161680019752519112934599305599692090908226628360182009611578498230105497873811824530103573414623780147937058370786943861821411607388572758039626737014076381114707782700102556422353659368401453128155587685966332447160840137706971214783632775460584386922876184567570616016446033682231678391555728573806725005435683556413500014126366716406700451651125776350293537146400930988996986472276609973809139239434550749212383825519766535357994070921795571065501095453716392525892708810472252563701637462046966625191975663189304614339914700218947187176052996219371173887406784596272771285018271193625245898221092019367958425026341217256670470231987669468503155219546230407267791600655865098441781350141755321533681500740574696014869415414960930633451365423184644829247034119882894430030503754478562939882531376590830247537860366609831377615973769828119012129860031042750799319844102742041940309524051556049049287980251385002018980077440964790427678837310229702564720525653107712861104107857962056556336220167096120814185024659239363407904818676167870585000115671125995438123779368850975304123261714929129128786443356117622580785286089271204160214962739757325346626527317170657720102143572788000459369543382892799892720897809029728502910423989993212342740424413124101564304058536130187631400545945503914848139224273067781595191341532445210581022933458296599279621324732339099810160042186223783536044489300218148682560848659865706100107726616920217363848687180770770320530376288541650578825035955022511403414915650186998066265570139002194306980367535981497704861022485976830658114746382427041755473837717803649316803426218508784075737957302986847551518476197939631842585757622584561034249626638234906925204912687680367899855269158183940352557592174333269254157451649140877106610606778219601433076718174703381131520038941349059517249196424467243137588467205331143098318029548827685500068315919217411946923067085241285106106492122510131412784080184436113442430521648648060535751065504438472150958657149474877440807799053071091144681077449668569015496321286283711663033592584271768157209461958686117878037844075941340613939177855086312448801856579697664685103969806597972791832778840858420638316734385654932274597880747812260863888347174853381135039644809472926019317728967193756867179255849027736007197097564782113876203445149581556949487437287968460835523977164154619043714280284724825121227478429214875856270055171950136934697272191617894945230918917620470619824356810632244650440469938527013050291402329832531801688359110329946522244914823986290902807064561685748144506158209929752737551358967421858425366174978426338368146098672312925416745904320371872078889691277491357202842261545217608057174197558113311129931826928849700746165921212420669462648690217281833927605948865508915509952797797186521983373143849220198160741629301965011345945296934455115414502159501472525391375537697285464379771299766433747220929605620998235796306644086320961672813545135642185953307022446279415270003567052509664228107280415964899271376350167333765728352242750779313340716646231832103632200033908363987056279955015459322845765456594590982732925570021888013910906566924570370638481985180170203146738536471143241826959594923762585510715473069594947441273800767225876512813740103556088807406191728107322165888025623318991058409681101089365191658414667971430602296800734041369342355473723150310005227196548841010001238838475070520446089872710832485507119896531501869253007652380851537358253573193275114471276287412444940481615789615556282938965719544665666356407150562754311788215725219743722882251183904580378684293678495050540529463427461418610266563654163207464156728615453619388835119057030444277369655563653752627696944121162134801169342148477153391694108543808264703552609649338801204974655905747371526845905882435575450788560617434464191586114394091926042970578536686882829221122142568476219287236088800290318302627833457242052284022394291370570783722788579640701867670385801783679916537153529464252239518063108334111852942582108082681239052088989971865814434503579304507659466809514204416710400730328469116566953061925487307728011617388764676113449454390947776618246393889275758335470340852591267323013114769425062652089196463036405392371128337285961399311552120727017968519747374997912078261726314317731780374287155970715789158571961172520965485912269159336994196982873201276431886237117871083587375209867283034795705584302613447395937726386140469455813368593368698248839554404731039054117784825730516306125649699969905438580509482099453078801329061352374448098559180509937615078855546760830207292578088149239301049226239574199082469634304849289013403715479232627376926600870036825256668151072974279864074810012937570260035802469477859202400730300111104177778115394917390389551213870612797890137557242333956126623318625485145776601455688168831665125001060171624372991106725102246305650301292654105155260033797476853419850276855851265110117787123492601562965665127965952526821293411883622107189318585140060757334211603495682448486089108938632254724554950805347241342787100777536474065964637934491910199565046920079493038983467481286645323796981674123254935187410099682756330210310509503943240542161112948350143276146566099805719109982092845364264358106235817140309510332596893867173038957882622822220713122119408029236325205083609249405900970405959610672941148339538471208580633017288883544920562860489815951501098973110212228786826795177276954193413334344299006952239033928692478896545478194359747878377928414912634469047598978576385585290411247383092829567916872988074993785831614546645907768841017515529010244852153453846237072042634983421168211807489951920739864737431256816552629514240289226105676418499751921635469999405290995806195884057464990526887471007630722293119706106653116456451405835933615718186478610024385895516830879441405228411227484985636386670429006521146898616101969436093550247051985118731224853219087156504901655564284068362028569078053948624280768417068796319891116029974844258642467912321605214147671502967446705155281454044182041266097357348171555422962589746851940994641396241162930912883135169749494023247346948113380731141955069328386183299582265446913850027178714353675809741134476946052338098748348941164225960606125388838302740617827275117469032478465667623016563724168765655022208066482575717587045033998819063567676829045566437020750469078062594746820515715384473640671394890911944772832038403991531480483446111629065908972505942200160483524258014140097967720624247824267069672552944600487457242090936608500081983302579657474289368595219290484524295574785632732586746478716342584027983372102490064212827262233003727219766634211181507672840103705636523621306769777366631745906188151599100364081360313617743947992777699752731717248557518713158609375141532670465990305580534253746745217427412526883817156318181318958771992401777582516564450399750693504176887058845404886112431114911275146898783582797453229926119512468167281751612256241761124398380455027959679030543645751500348058906388896447655847068857671864027443142743375243036871602416437670232356154906412783670847462457613321624593427485693681017784267632596458961806784580564550409536721220292960065259289333623941075166868859761889471807087023072214114492939378529838360625382758326383540328732419492116173331286701167004233342052719989142425754811558289103530569105950986717877587151359445939348150373562948926473020054199401977809580389255170430583839542676374775113963312182024751646728127048912570327554249277064810199877666336949432897625414306046069342386833303089318624976067348483619496563710577462734892253058454367108989308903288926126750999978034839576793587041998849281228599093512186910569665593208422316355952364237956224778379276167826834361617877093026137186709432857509019367677784553154253326864002075508937351232548875685762681866535304272679295666379381444818015391476346607167075533056714112536766818981323812529341233771408691156720294230914355243141674353350598674619291431678750408871626613945388757321452507524644492398516481008280263129774201734355460769995302606998897107486512485346195388309014566084408904360140228049155874879730789445654481514625692208612113914255922376683167006719978133965070544821552971771828909496798768555296616077290262321126950724921089426348795297993360690431094908565001026681751446838676498796195546417375457564276726565519899808181901692892892222794233933812649134718597484588683953983279851850252466693967816305105954286713400154728075138066475831780795215846553238458983817344261054790464073558052524542357491362299606262392998519349636708493907812011831277704053441136472801705493671447042319277663128741653144090693236626856157888647009941520665740993449933138695106921883667975772743035301445607476211877715226821427714134262526372409612996656820687327595561781733528236339640883235483789158249138695820340233867424243032360588340496303788079931602077176128685522130481550163817919804701111596176576384290422655536184639467716075556022112135328509811721524462498281189370914194895049548392851161950348604831418259975690211314298732825228151947572992324069114018361733983378992983391486648933710362369483852229998257625617235769930835096766312208487403053191547787512460305542525432056328854957924659947155409244868248546959622168696062894078319909217586239456458021520487524297337370092739389867274805570949915403535680031100022031100112513388102326452119984379828759149738319152463009484635116535890232580400760587246339509887998505575267212504366634303540581862445554108851981007914802939512647094471921927173891464829509722275423743358505124037359692349195474445249025999159958140266599977978090301944993333590164511587801481184990768074813768092522550178292266546252300274030332159481394507508471205624165966641775792907336679046525257890339017083485062814902122147263130432171388629310730781640009254600206632635925153933637168741728839858806485518088871543368937898957432887331841924473005370078137860114416420383549749054823511948093888753741655956806178377166472792664603432514917526112139840115727335340184288282322230231011533585292496907950336452524555709404751319861139350457822832819998486215427138591014442606147080027712771482544935355259460087040592794560028992903941366285674833716225261382053309905100354906991340000827246317040720372960061671396281658831252752554010473014869917351273412281785534443142385853744517421623814376695332608397561729005141255584399014031604301157476971136636418609912319082467153881485972798742117362051769132048837259188030705185855063641696860141650320303841382092530293693823181456382881793159958814149773418312752042801670235747668415002315535863993602034177868156470304390426287634725418901592386446535149250968453297395613742961914320193019674060587410219298619039895878396670697480529935644777276883577053540151674800643650174471849697079868805563138850255388174280598464250660500072423556088130957008975313109811751580574787590699953926623996078448913351145397551822520592691608053464249153152011760155832982528813566370283713114207063295796688571717905984212963801424388826667031761977119878319036320471983118775247251738647889982224107438727011638576988352396353313172462839264667202243442458544102601426545854664108694473381306159069426991005183937117397913973482632858399207223758661980297080302833689202663632578992600503476035877022169762608240895271668888103583682908034412155159564220315803726566614064285230715269856434397522628790390569622301210452793931869167737055912710556393083736113090988919478321609035639578382408516656632106160420086483749804119197130800062005268897878760447296838458586481305849802586128116276331433280052611962384806612219534079185272609452025776587548372230866308850971292261507770114421091540751143723640862799987002943270712669240479990793789215936393771640917877750521202583841507306553537042603817401897635686214896008656246610625749982749254265407763151753895366958182356015812707812913799724325867795395344303641765948338000846697810299122758357779876716390052029382897682027003811446228656846437477511410132201585846447193867388573806835570851948844121398690663357940521830974335828534936413197268968752868831274056594629460838405091812760156681132413803166161736802933666385132491933144002874111353442753777111821875501500357377884541885566502393862102072616477287074584383819022578706743737498677806537014419607919070577432333300335984373900040440651565971864343524569487110833239941449642122287587204312448063854693043719856356679535666870922153012319127651035151173278471141815128751811311526303591881877258152997015518573889977114645662872804616684236463396359743238999343076771479050701407797789538826167617009871478751519169369624837440720061555331947945366555279730914340067368231361643246169918474733650169926390460437936682504960754754378076241680674107783647445216610993688008438819371735764213197758783720259371225429115370387602325019750683805819688398515119478204154443692549838678234650600269030284335427642880071710540361565719090549518435122016619014792812883470476738759219391947385902543793412747879587155191364810952030736072808717580346429707270720360875528298241429276429934756459779517950337950658563835088466624372498245496953151588063569121498822563162049637974934241474438052064340518488885808625742103949673894225336503086910855876888097251790439331622937622278348570024094783110785384833698698785758878680233279839737627197271896123016254698550388615532472313449861652368397762830268792503515571382009539845465676639038387012276501779767818153071900238770404194990687078983221675543793788920137156404421727635229588425551844332198670580867346577843184227793583693782031812391019801590790113447562283260430523684479994789383658804612848080384497834374158656086463674684635862532681978994921111261834139402015518073335589793318179513079291202100690982328868168546823369924447935034290200999201623905457960450718307381622512069892650403613162467244153393286855669512531199452532697983841597754874112199046896500554518067665014893285615965258037065846344405029687017006010066090266125107436614549295157022072924637528119654233031364910202050121331580405945428002572135754928667889226855771742245068976147284833326149545526862832872216254849366294101851065935667620851583124210456417094053481973686693669672912356800125514932024012635498505978151821942279503046658850505628163557892434040732351223374436322784651290546071848014160978893585567907916341205198460462901715764944616972410917352810691611814535068845043784946386968368490408411839988597471425186335346119798600782903366884997180124130750746101742749825972311829290244078928971257518240937003417806177301082453350662526622100905922691645217919146397060623308388359888374795222293693578685389463140577970933807680054852616819622297916136066362547889451751770453170662554337596161848435442512258975176212240065922360234873189311514692334259667104682731806072838717386637943071651926859877893450466476346072218037405308762971505904099767280214967893486920816289996565211207721991706785925307429168172531532981972821251686557793374248963209844951285871552658868288329466608738836098079569740279277510685420844230047665843291703552188924610876264780781782485961648579622950772642859320178691045406594979636117229103725154512348181158938223157193791971781648339324529570534635060702423097879110046471247003953828105661080336775987942402490635039435800771653068797901644529056472955021590161724627756105711092374398873597414194473738234059580831078621456349255469777154753488858571340528838626790812655973147819824770397121589716019509976153329476508234252868355068121302108071769817808066734212469087954402928061311372456140603531219855535415052639788829927540571632809976580615095291302271158154220165824453210820642709421398418676433038061088789884279668094898347471971579527307782702515482584969571709907600060881692296673224952325969179650883899373351085293863946226291748781115346335656259121225386023263323243213063143902680008650881211944773230751588419587078094568754955887676026571873609840109797200102891827014696755156912149725477482199046214172572108872362246181132621295751106329940527832223940669060195474994379093348532244482363230122421865832078381809664487532225019827851435047180512847561190185336721368453868473221805361195647319625906746932893283953531184766512317298589502992289699383542811480640980198673434799903820392920617375896109127354517012434591266296349786906675857211752374700882408524549471658171700105394706686280541041452814422142261229082940067535312211958305825144986808260492663351765240539891101223110262879742501296708622942402573930851630525725398284344485429784695922357027021023355153323502742358470181677698772317430254657169051549848743783622689450857988845527411488680666756900590844781141617868529043886267178953257815049264527162623185276474044879217203607029191479242493745846910322966399242729353332406921516588222589525025901347621674906145538797684076601322914645173448524276944085036095153411398955371186682235438542265529566171030762296374440001799903041980852580373803500739814723202730086611460911005326410235437047698330144650727165946696930961222397082508732978154988738845975995832920983679714924555352696577130927895185830135745721597415606578100644474921032721962154240005820646262520638550551227861313173104567740653743589177460735781957453183431534256198018768649104737633611311440967165371242664537081215419648595200173238285999918071932541694542973820987780341132800550841319227797201989762628906338692666318584217568374331851253585218002314711535354344744863721294306571991861934139500283277502562889033481057863982929084537786065017683120822413387383422966829036688797062503226339253630940269816039706706415150799069074624559564834612544504615068683429579425782488871593494249087971513316256131336580419776401882610637164717668862645602069457505257598962423849429962967377424684459463878908224863136682224806776213587138191995212354212687894178752239790102991602234999462281458144220337230322124166509806944115546000708543456590804531065303974412241204952727336873725016225121338704921494670096747169877116019010908417282407696134223296489540278687984378917586232132524324817751994571583590555951220979534601039328683963833664406336044656323671251290364736146714365038092871658529026740681398742490576198690270061855502409611288006237418244171280349508693808577895240271168895441706589176252321031025303541234964691586943693591166813968479667955756194616447368343078070609654611446811287872493091473986818151538033396453414165305858870673949206230414529708671719709927329282114537306987859208915793108901315543176455367382951812012759498639342676692522323139376767292381693854548978306541558096201702781493377030682909210705825491171130201286599072577884059588696352466071346079714928334580654678283229770649728662676907446207861233514924100967948376472406773034306650074021448310788128273806347717711420332944170645118473151586750087443615124162854877520492432824961078139977316720434408617375779397879334420490640090730452251695212659198789688904370174831938545858582831661262480279646658120258071934294540397681830049602727414312022794805143404755434018393095986360881406758326977172483391186654746552156826860351454534953775274926652496305365765739086634110882699744930033369753504830926770946125632062701455034648263746351816961069684891293394486503632741123157771348217154633298887577072599247031077469989500719592157949233987232628322817081882524623075799400714580622328661904907270790889297578120111320643079689022086838764695515813697970387252862462348362648303782590621431919349936831532516333976524456982937630024803271841986613860080991979688366992138184888186714505940176962695148839348035764572280204367085004220274699352926122114964149829611868796651717279319599650709897449284010531368981764936464750823876190151283458017049634776055108800509179277340984272544374308054497608793435245862467052000906315981274935351881575558173939428885821307814509118540104787484688737090364758332713746931289085954150646670262727438031831003258353552375249363345700434471163661325018927306216389224268397504250844805968305056664393345946212803305784443710395957843202421724711760852080349359054049179786916210156477623345098215698328312282436440971961507869935635644171840565283832470807162136429380891361395211169716884819123845240823726314616506245835023316533156720252945261379468505270131187657537709260003858814094797193139808395279659520941284539703922203165426383088469692240914207432354314926787005668284218648438753601988326025854240747160541099747174847224383893414320862283261973227377632971940897787554739021566841465185736167033994098910813433727490004934232478031840077222439535142398924210464762618007563742615973772125737062705324677602053004073320489393948527599695001944852720075198484863903045107119057986542610563554384477136667673382475240009036669164930019249645045738194636121003838116192544578672001207657914277141692962007415720169124518991539081471766190113939255593926630305600080722793971070767706497908358845381264485144469556534383247774792902498807548690890995697191533596195106841453191397165628781112817322480238737367979171472159797387752057819601899555877661051988986133606753469649206180688028020156286831261196424226988698653166561806650142352562811643906107652788780985653013967140356474924448802900127420148882880920977750388474273924045874826980155664518557826239884393991276232875196224284898035723864472569016357242684563184192636024207617320977888289775885410164841664544677264900057704148592685787301955371067490880608123161197104038711496581452972034705363930023827527852825591664570565921492689895817560209436924749174873316517801452813701341998171175780751988720494756490663368013379071492491694901449894382378024743390902191230228900684776104843618512560757316716829248386932726496121243680215231542888513316672116297873131709568112429099110061327796439463919833275851512418237589914164101248942588043469645647133232692718938671372853872401273152131945186251751634619174843926770133367725376903965617599211388003188216154884774488936392516791989023102007542139075634049590839939391705207777872433028564297946311479942484377587186995464101228659662692520114142246426562872106430864460614380420010505206900842648616991454313381028774023373431201002184003141594177332771583065572097262925297828217692622263186847639363347923242868414589045486615205947241240552130631162893707606605017513208190828185284744284494378127015735069594598513253892571056941668825818517564617896728469321371219159377709834872518712134743179281894465432040680813333808885300879832263147849562659790650055387622966284460243064731896906318282081073164455770542200232302620870149300494365567488300279230914769335665644044342471551580006578671648030408944489994312797364506895971098047684216664288682603554745323885343259621282344525716552128758895743918294348872152082899679431301787219994230659795809957917681506844941589624227507753296952980707239550072885377305888156812657926786532071360819179131232675495476485331034159308766137561168968587670093121325254403263774792980295480535388305886083303700701193759268206265615797724985100386515073004788991699214201736361610088369330805606041977114580454734208404202607013826637040423343660514909391277950769320870185313642795422238643852506044804638163339398614709122843862375605005437847346186412219596426273868853448904224395986745553623318986765906385072277699657593866679808061139350890792234068875907285271615509586849122670804091710160721239426720482549114506436403711770578135959800738893595331476328816613330636721410000638533628927188437067644305942087959180950521337662226280472696597469277344926911522052089545633357907791732005357205089251502061113681578353801847789161519625165413733434453390688656419231565109440757010328738207088785340721073475634030591675727026078738328762733791366051577640321960546740343406804018271406221955524599143509650075238291434380670657721814500662854533613831656508235044098297135950809510499609402515344812512362979282266165174505192186981272236336665804057443603372987085467274007033706708265370355396365117061477247247127003872010112586868040709293938407145636393505899631103133799766239615510144579599757967062693678187703128404791326176366039193891435921109399531812480445449931267028726695983567580615241029396696771374888645438089556046058785585903995519594926277882529561984452029905271153723949143861932007240077370349874684086967561819042776728549347676854698477254159672580252739435886958726407899430789271174896078482368857406674292848367074177524938527826536694818661396749829814328642811458915681139207782054578264858083781860384107850921428024154486675615602348971254507869002350113744928660571719952402086126334213282432389281425226311626510458451565090852575033390779797268810148527261092601206556430977502236926707618060681378683547826290990401458932069404616285306028809808691639773854014935739481991620035387431221851371500357586397212866628425136843903306885200991585521645306118187048778116550113758882495657820444145484155862682160503777394791006170821581292988227550287225974285997164692426407837406638375217012548173558193750458918977611732767822841791435155527491747010989913712383349501559574961417139306403365500637347855170145849213599549293703662635646007089569078900234767040287633201080526551917637859302529148166306172018681544030717123432016032681052842573201558506081415476858565375495295764813506556918940505070084890368246517688789349452682579229107772385445245268179975031358515262991198520206171783075985564813197310769263808946606579777871732995930685828933450263585073639450003767193135211989190774646989682495252646967381525122975453529325359770473127419123447547662046687040132482632884725803074880336984088729517016992416026612427502526109978094615808385510927729884404120016198007028007876951115975138020432899609271446682341619757558038452682833527849228302972660351581025087181983649281375820692607806965923309180713366193389175259772160819348056051380078291554430831068766318482795306366787462147012191967484085013247487153953523888841055116478136836532581897628611500733146990295361591882332424849696823121491812421718289208129712524781096142205442641632814952990799196556563592177201119354661662345616184484534258519762433426225193916519232488664921560654724095915225399528899760905253770017373332433001882126420323746851122420268676987620786606692069846447162040648719609766476728451186117080734284287219540757829737729060693030510316636802703754814292548029470561599275165655160846192168954170044107776113176841227764098001288119744955113766725474950739118402633368181462182331774798518188896454563844554677064892602864109296509639886276152939794496327134855756195851676281975673677296047456693782005596635261765074138040194642798243323655731980680183130603327463488512209960619824770093016481474456358783174728150356188521816923400559979939717814340631394951130286355573630159688742794392299853462241616058411175637433590863770285882463783618978976007404860488491675956460653108561328975382493993633290664740437636447571463616197834312880763406359050836547791898027808199878762374352240527468553173092908875173929165938359396851159380153193263170223882070385476193914758188285933269881096939978010769771519541623986504609728963079753678171513191536080290994850853157304852293375499428577401483485692080029990308821912240527147523980349627729216739316945058827924849529785385117302428615750521661788350619331279168160314300269494441280823528219737464877230859671961053520983669767578462653438967319176797884433740949527629720477485860720590813715612689804876498710434323113580076659909393461302530461128780291275709161006854143619811509173704496193640951637255908980297233017515282300767068501403547551100478108749142338793954134364125038478288326801493697546268193815250260951662272134889456758053469213190648030876789523724848488414604640589211081124081603013237850238840210889307139603875668115056043614730859325899829134174763076814315528953441552956174845669478481408042782299788132183569716995490189902040512431168079326021342325637732194564941147498043265458437948977893699605053559115506001062184620456290255432954717555703155173974292704760118373624365287770908930470138214744478163169988250523990137241871832843786225394125761557982820393931265429370045244971464205689928949443486567374698761400523181447077529617880275096529194801520228737020497768621519106591684698893436489601625539729240244311494831431703679372904370202922397558465934554131516130162125234275560374806274702831292562535178423439203954487337319784694678422955339229575287905904621997654701794135944697530366401196955590243362103579630606111304633098699112731872738780820028999364503761487196643894217580599590132983850308841706894240197171039706696401244893622797084871633558032520386752840419324218419478039207052734583989611413186271759110438925654619733157136065826070759339873774917275882923978673792868508957760093196651398439749859858264223909536663194242272382969320242874804546748864635392538212180392093351318931147693123548852120955976019978429488529998574781221622588268267353628392053732389430579708288795848600893935626778187553026832483310680168579483453579702939226280671541568538720917104828564772830741990714603102686091311527209255824054488773332708672398407312997641873133750462338455070173156866040260050772774615320232658963991791514719494459608738643087824440733561223632645539059305909862524720612354616769652198790511843753442054252036134841245383600636432500790193240525579728143220135982433979450906349875989381546654971015545705375356489952786850277676165582594190022010109045041041632775051089286925330889082693490885809052011113128508573788997366492112776172715028030823671398205124421634567838051429237242802264799237899608564227677103245599331565257422953388627120656063019053932255084408649000908243611613115583948579493728446347966237537022971200547124171081131401493571713501309448215470628594521919921521974104969414877837076781956587758173487132867452147128266086067279293907540594867988499873551979862263680416226903753886166931104096745915879395016021432230922553158304367464538947143796479426970934478542220709657101722215215244160706153414416522626737111816211336716324705409946614620597994001401275126235769544021928757975397903956944554141919975133975885991136539777593418987162769002000124148547027846315033965175001540519311210826617160607744930236144541334034779008404036028481951168169954232025677724720605089095013541348236933490082129833776083330101679396623430055309578155620138351716368348643676631469604953100445264301355260573602011410139907973912228551309096175488856506135784611458584451733839617736572595147756062672875493009909042754270083830342989382216515921727508793846709483251016822396952928762158269062317041288766065568808108299804814533609416454483567522004111389749884001607112195276207110703671148848206816500857990260214179013920663199483347901473021337820334892483457043293469608604711469174872212114185867598515718283968428708482607410557426251806298416746453800281518299686257012311020915822797633280776695925972599795902918710259378631904372953771396846124158079919100410830621249483829617700965805755396948649072180347661594144115144653060354379124730793346668733912633906672272800444173835851514408798316123982364170384778595563479494193363697876783032728288189349129089019583175272522801441141317612428221917759344112718122790985763882979964037353247818919280937297492776723176667153550019792967813434430187107217358608319180016910324966174785494122342865462788342863568724306734848372960854165903740025010783699262963676939218887854340934791013222813435209720531026854922688972793521918887775163993144874631694809373534018323555279273038610331341641265245526205381010152583370567244641509433327613331769025720597776908238253530194448826638075644527497729342323512763705675643069084269138055148491780678200047970797333619131927124758719692322589986371095443716146776993741757355957828599390209907923532060513995545299983410006219212955318342849791418579158862681537084178142080961376960338353705737104167352273472406131793826912456982856160628892802612809477705313542382565457768728931858667761445330067707420972716056217771204851154304012656583000675732667170059617919957709077451044752740941233225316971019878342917817228071095403987362802007568359049978453613101546469471281360920664693832485735030166531814523469423536872021722214782322903806698206986847806705174034290234397172507187247798271442247492387013386613103788066523586283514278917844186043765360750352520044824897221198969991734546707051335997207102309734071969414694394198020317858132899360679309415499687554424096095139454037114265686205226873805985118013867211876933163913833629768462969261044967967564624935079424653115407222241595160060623116750569241470318849743735488527246914704255738240331170546450416988274689959004694615550570205797974390896513468762988970198076941949253861244059584028451372441103674624668816799687874404107612434081739642809888016888017524967794417009177701910938019032389423318583433024154743851558543980063072502186003617345777249434693693495676378071797255106267532428550833589955019187827860988476436181215516711095135481951663008017202168746945246325961693052211665311797043719298724765868296929866397137155568658062879062076765634452982462067194634385761993689463313907683367623675411028911036911373218513645772517584314638044392003370536917381876065113015336084476937095945373454106976356389187929846396794369122081995836491598774824105719680865994769417800690342394984022943647580234373934920434506168505932952529924671416267020506355872786795199929942624038740064498366998686106259658428967522135529426042819176671140217898906326035433241790779274736497505190814683796099047583521458850807033345151745815676581818775089478268041511823153735977096034681834533264887472949450923487687774520203549762222627538781571155969727777830811566993936314932047714636126712886929587057892410064915417530921374405213467468217885976017186832482087385716691618351790187054801512769150666112569198797514378919028460201891373771330042733632286411368411310447208267282088390367276466879622942745738791716189710903261282602065554963322506224197768042217401414565506734461970348424250394542049594300696228610059761966507676285935288846784257623382268777011168947879852902628791633227278541878720521367844450163848790193089243368147283129588394561876499093366314532138061226606680035577259725105877085897905252932201825092759327193687835595084923448641417321729028196546099444072534075916730926459827358949453646198578297862709964338138860062696283084877711028004866621399516683987548540039677810536283264266517879460038488328620994431045215670790988574647840477328666269129198508618209812267849768370056085197153970587931505123472354328574906205396570684904717698115187744678909782555022860370560286145213408884896874368804381472742069522428062698523753950158887821465586879526932378597807325985679912904446521442647555904350256962004968508915480832977326146808559530798457924423246298097589805614491146083441574163807812293421223687239999323957152066600482839449070434653729942154037839926120030208690621121145709650934542487625016820227264437813579517036416963257919465747330136231094064374079434429442446048800073734842113176345619263339575653845113195454445236091851730400416888995197249945950429575711762038454257588508870912971929368579620876314966388424909493241461428837278247033064179489887781138407501407782097045540216878461562391419338235502445037315402055569766131095400223141377084266058424793556316614858119162199064007016973168367228170596481559737190700622182058263675082476835321415443446498103618389484031271918086426158306260991666654059404241068748911594313832089626013912147468809815926771976258349474229820073638631931630492433840091259671958631555041350143448671407247374709777258318016179071477439362190057702622611748376951070463830523772840255169563122667853299643383096570528968978146415952965237097699487700446708325703301977162047957094266561087368267374962887107814224604977110080881796987633612307817172385617505833930582770859804088229691418575842675893911306410661046531198210393668685202968041660309199493561010930742767351166233312533506973478639901143500181524841409812697909010848837237671228963703403992452531691926729732512632441145292560010247140153071046806569614161005322035049121144655383861675788982666100397664652640815844730782984300103864542097597554250319717064693041478239075176689679287775012635007573569732231729630865403207347053033148527355544756591929253120506745525423333381207662931368553493718790859273475210743536428309080448632798397247677618299289488876015033279878391903381353311948017484193132251795239698295658606862595102912346495387275051384023759857300376786966768364601326745382454882439546107892974142425682111030289256438843291720365633205971060184153145830162600807174157398524761404580763838888473661500312666595931004214890766742634911633220601884985032383187657522475103628921110852081869860909621372404981804980987388450061730689306860204457808718805879069599405265143782955574561909984522932987857462479007621749304754319622817116597693038752166432511374895146589639790999933442290828390319144445850057637415687659384850747019765267887149126062566363302910723783541233187242519636637754588669387807146040844672093118401983396853219169259874099670252472626990678421931033152953760057601821281701518166450434356141773174639504153982349195092160169739145702635348056505675766655470409450503562130837515191709970285330902912496335787521441868600170716345246893274351810079581688546592708063428434355398921637355493446187119362352970223381566500579575251046035297433909660804067392690464464854576240410690443925295893253766989445388377642608628223455915691786319742028346190111187589285594580842727607941043712112840918100818952619765402919575169637460597239053510467270787194597359893426810878372529702699206937557337042981465400098837510842653222162063148221254187265243095768069417958932054018356727868454011201170844311406681110455096663120698385561072375048675623835645867382935364263956574864399825774480315449828819980653242481566161557740431212166764067916116998140335972790610941832990764223170452536744307942855577968710915793184006664322759689884541851134874144565369677547640891269555715041130628476419622247559189361172735131214444614070001421967815032111867050041691679814093625774912941441479636438692750736194934417558069925198581813318724170783028423497850467747716673775734966762895786315072179233255213363836874041089173922317790537731154001040315585351458713078422095329992456980424090219602345295284192276839594274560486258831599817317393171709824817519208958058164272801683200776511790468381783647028883908722056654671555074857103893115054600413935275437341759427224746569185792218962096395924418679990433093724040406224082969041478039247946676129456296190826586495072637196758866951222306928829787304648915099110432648758056254193713588883575224279281264381410245298152050090945260049942785647872591651215657875234548982551614130001192713495893104166968826202623636675776162201212147890174793172352062060096650804372964965869166486028703246234474598385416422894100177150590726454614485787708448794877520172001791461951671389852827350286400586895758012736799856975366641081818074524362004217494498731814002934534712669199925166791740882697009191282799337998192512360377245383910848969098657885979132972566127086049412849082465548633554344227598141259007448472168324379402992261681867987475576956987125550973306229040404699203873894712647756693817339529047405512963270530030340660072318601606435071455583112972835985000081647901709018738688807954261897873263788137818549232529424305246913590629650273394206161468181952825655887245202142056974677260464057870571598014654940110700564717155672972346724161134219149901751336567799132310478294843017479749958756369467449683243597943431461316909508465697353528822947067996273132803654073834165633858017271184240057451982607363483358193819051823291082495380390007201314190625658916118451691495730271418233106893787851057045530229636072140781778512862480415008101644011950497945346183402603813140359330532017671380549209448187907875154941032468799653190513624631331159286371238873281171126533675447440917975561063268676591778341277925460641057382917645706751687775968856180860321381566885221500429929648241774620678278543249750769899225136894674999542048680856741361875777926371129799159359282850335582492763730739378208900672276607853206344864030901154536859999867841249263555186553774649341721029501746892131583369731395175419914899577624740612433108347651725349097367297044111998032581210757836056855623534484564000279225642625052635810548170143316281880001718188825369990538333884860290474574433563830006788143064964200866108504302646967095156932038601373614168662179416006608858226249712850390546560125307038272852151179155499863564718544942130672183978376934706687876783813140952162436669243849801921308137522198761652178392131250394876971361488359568833962758516391627641264466207469807695443581921834992445728132743035681075499435195429689134847044200614364911670542128194377585556476646643696175918027703803173204402003765795106644480408347957849565590991481798846117100898534997357413148526490326188785969782285200326174087822874065419101023868488906591791718536186645772944155631955571156781280684105177867019666706139914623262714134001686498488532367146480201015825075567954003293994522878724439209650830904156526703031324122740675149777990997433994135788682549780463895032900031102509222900298997874792666806707098958879133298044877836542662462609927688733763077439395813180024950478240059092486099146526434038331154928347035964904757113674332521923820619269520786738860300284179895646759422430794263713139176787528243363731316895912526736404154302933449252664694996253196911226531169306410411333513429554148497668236645079727734400000006473595131452428685133843346745392360788167148700144093183272155535798558059595893431458936368230481269709165744278781941266341862699468513333709699426376363253311757599621642499211524681966719059227293681242657795506721117156621570915587990527662326708060894521814623700853879157236032703737551076080864472863849918755184182400804632053921024858195210493937953176790491531076225274006613185288847013110469085370179997956580373582240853454265283245350015833193301204991034337072035883511653039802778959493256643881872762812578842297333950738891186691533448068834403185591700193824585608240737829713627516354589978922557897018311003550380980829508696391970354503176540458174290853503033565183424760220604801403741819310187619784317255180437515694300364090653937031959523246311186348710573681792875221920681587733329874196013236962355264152184667210501412332941807587004900971467119822401629991398726687178930894236281989254136787659726453808506659891569663425648539446162768687848679154681629551793270940774311545530388240311397321591462459987946173817899714868966322032906351359257876844392253954526244222755319305488029940063204300960526165641512023154744292335467333655380601469807960648470100750570104611607530539839645368858466683305993066188245930091997764667901079868254418433983237992724059692801985334983284607150554990413188266322263362259930786323595172013797206713585610204155665397130750665147248865104787017968917586935957759542765239328255930075209900683469000587995106202574391806453978504871618604981274531908617200015094056290647303169359471146673786541775772877717323901951098674183323632111557154045949382542824908425585761670095455721911981509306211490315960276305188755661603762319785348132717678990084892489046579963935451453331341820684932677294516781723559731648870516764123881400109509854032943365904693434678520105621520644909811450601453701766478870083378324745661196998720859047019955496015877339749155200264882124301940473027470820073238583110687203677970163930036201342815617684292339312925123886678694788766186366511307435478694096238481333876765446693416422134769769128817105160834465578516757326316205420085369509874070391569335835234256742923085442339808317123392452477302677539863024670583680004796602091385432493955644630941081770915908188937998233259607306036626224089696936500743695204243785243461052334597006075955295947105186752605237953722141169861694623555599827919685624099368439256388576126891338686139814970191845128329986403439145026436830719551544529546607736416388915608930084481213238197530463016393446869075907611120111027312379583671291554135714335159838485002064369545559756684720725833058710401757623260128793586000687507307746243259931969486604179646928010637358232178839007314695780000202858449734915568383413791769413060997058445792363097991833227791885980059743492486207330930336992702356321012842286504789276085643653115484612527689544243879876187270743710703691210991453786475976545364750672392478451296344854741347184370289455075606816173887167559322832002911077650308643380301265815563515691851760621543714406166878530392268101801606700313283143358353516600880252143651994667205410930290273102413583337295078688797859763645881135933818002187120475736684675793810194672004148512938313303202188545315857523639181694356811415718933709997292660202990175017749810665854693491150165735364932429333142153003350590498174166463762693850034095263404365147298756500819290058076414585211487183321344026934079361103737025293510607498203597454520684492139385545125668503488249329277655436040540229410966965881638941409719212101567380822896077934052851730766756557609552325789275842103233777739730253868580711412160205798556503857924871905089675697597274352985992269357469609745841471623377353201996682114671754230254451064704273624631811726439298027404607732788407159834366147119840910144564146186223487154390203243288331459893114671861952039424295495503183132887602503782556371902888234968240858216968427973897347104789199572317321826817935050143451428229687738402936753339752626413652515632126929089786142488467123714804035700970089287462504080315361020903398732722131402899931546942569368209911075582480494108842271077780130905708373011812952110871396608351072544688619225676849554100468681493926089332042916565223498525682344225071553553317046667480031690941361080457450225802013476964477770886366158988849375893874207577489681715819744234861630966637005186115459058433387335344574935216053191032590162131135914137648834490575474892304567706144644973862536013398481920196095832419183081167506820187492948609802082834476595373352290099823975238532911713297734242314383644200759701269364936791963476986496274914844936997556713684907746825791110713585401489340971237712196372537465439640699170776046409092387806950118926074945899479298479313031891034514150148446186403646401357059137688084591707302882328717387839682404295171559114521191034016198619441529682672678135881586640404103856302254081535582001395884593322163562299496852666366681987272894508377634714906916157896828704506710380521238133028213544733249995997695662848754226462776494273589987764657973925115669738115970947770509858715028286112041102203632125603816143693846326885247679369360000743275957275735892989947467556582177395084873351038518018383575308539835492697916257335403135129468274748524818803625710063199978872093393819299168256345764622632206278337636771941234069744473423902297818608522532846840786260727959932081518608150375558884693863697475697442005204662974856667554545502990084155809155511597974751836130320791226223810543944076111325256866630152890960865684771921601773033932087784954709944042112785928987385301181767993322310044779266821621638017210579665361116129478032184783222338662207244189276804051795172204851473625211676888416329390167536778284728066959139370861547969882960750005138683119778164913843086356037323632688240335652156285444390242744603588590490928428062724227738636117419670075286082992949645961162838316902798036344893380820317428179755974991753070691881406858917523413804404531720388222933258479446878481724378201962577196202644472544763683587945533268833567455199796367834831698169335412602909021507974063797197621854374658313791036220631445596134578110988168853988526631049081442799994777652120792186027848849936545232414126642703573879971902253170387142318575882709095277180276303225023146598990634509703313146741724808355133445211506318976870381464336604546934990821698609724037508655669003259465457840431950867257221114756855241343439499782411177189931713179960184116373230819744680134674057672297120121074556041758891337190925111321730705294035781111075498039891927394786466594165815418558437281831376824952814739535950360440394939490369717723485041314429328193524695599134117563061355638094238001098378694072381716798399996918786470522467194360107183011691072633961620195432902245652258743474137069426790266980768959761292658018795837283096870817167595478810247148558940246714885835256125543121127338009539763950356993728003063374491973737008282594164691120726864725002795652435637264958536120403182161051197349058516888421261166072369919214547361042086885883345619811345571929708271957518315508157725151436486490988122717592284351305132885908635000867981290111706556511338009296750382817146432649565166250889458311911296865768633320439514334260780821738273217436901065552599565446470055100726861509583329434187180814262677368238431606368639244603447782444010073790503484245974917726316788147104136536141018900627259501588138436718051093363796726716636955123970364459226457807787999669464443483794299680542232048227466312904866395732020184942528215011523637106584268676498414605385789314287620000829649370430307439967400136397284297826860539650612069501211001285940045215586670251095997429896079784911551330835400484038177927617339593787858418759904366646494707853291577082576704372788849176650868839554700652306190102825234947661280441264510574659623958744333535981115392418296104532382185004761243375828756233948115486752334047600680440488226019478772902228241531657501593460713313449204674332467529554532971258089753708590202131782158781767058720767175742416840141236789954145350750680136778946321896890961592694828686463489375594864032422982714102863266413908857054626089306949794331968858696397175988193801565895406935746639185927158676805327418976664052716706271800692867866089793487668192664529838812231136336381654183850067262545971600729151741831792716275028092679673814820944976192470487381887859960976984787896632459959629190523875841686921560673727529187260071512962784046491631983841543082366990220643518095808325380085845924552285514474035392663166483448597056498449649309667558257261374806181368866638472818293771122998759434385629610408732498320489877155962581150750610405226896676381764355240182083899716954039620987802329139055754315850854912856157934038137783635933919219786263918807944408029500798190537033170112963024412731747011876241921161236221001291931349838765459143088529253215441149669597124174462155716239726519781803117268724416513662555979678681345287024184004028610592541140791424851013459270127285510899758476828401506435655907889868648299109624403263953411853817406210503718411472096803365855231240598290109456064302934161165370034546889656433138047661867244272103604089302405523532389248914411827378405038643273756375714459672749683667020117719562947979785294548954098808996420895349754127748374022329723565901026298219416200825086156889500390723857682857835260541848481177983879831806152239519166611151881149751330589438860463793560537753250348242418768770111150753769876499709945291910226346895418982553118573489559945325883952359571399168046017985565171030924496876298266857818448411473950643106424389736629293103702423752882238935843000540586448748185776626268225626770857030118306021478319217005317418074230125442949102029294112676525725719631030521339784175201274008466634241900191964792721008272798873765871585442732150452147314074818387907294776874237534061188156168462936911143239508132018346397130446783779660291829481535191927869381122699161502405668589777966018578787107642906215581247446009560550487859056331479205652401790823339905639024068877278845934525441656338140624895949127756371378995449098000655974514868659901851985513751104202492686606096397372826761414963871460841038209488457384027081961949643339751504292405507168103728261306718074696075810631943722471133189538148493040483141468601989840076313563808525085858511061072905559219713030503774062956006271679501255478372222237608042404912361366772872216924158386365450551223732959169446977750947060734422298346453893692423799529293872897886606463546079190852390595023282586742814573631700218619083271568017905867951774829925237140869460536494831577912594337089068924137934046851386584663233125731993843319708792803666916155395688535014891228303091580182093911251677578391364148303343403748694327026389255327152675517222257281526767386775059779073877099921938472775404211752976911398657445102990167869357468370202637210760560226367490106990389438236520371094798101493250174880262852893086544493981715168806589940717030824418286793390168463910001746477318879963868133625319357673311924142091790436738831218676747347526426964606263052396097126766464604570754975654896150626691761802631738973433487104440493413729242697185373162140445931396328771557854354520176332155943360228286608507438400633120365666348937764026520677700034593724290045138611564048476856755235260876698612592021563146055162414977198201715714025169059004870524357724609764271458377537404041816581964985898905614452219265276701977073762061130425931863296947474766772052074154932420691112665744872069845302817198566317610690224178539314370979384611564370540062696515081763171567413356323577295290599514414520769852089518926526093885903754878383024803250980220963511383294743858701543883560126120360196039474267586878657624172071911240059776325934321773569133542352405706961171268928757466376002399114484587593782916629519642687617650604470382596239511332879057882881706011686086767985542160253805645809544660310084636294250328024382357398435012443224361486904978726100534252915291936094361992768457605935690799797244613553583614630762544737758907644359038221191408403241507805720605237535843067227968429744208474806711622276582583611995760368133092172492366661401780837754293087822618153927924799187504916698453931657439213495973434699599124166090022161787497121199410632997692902327985193495962117728340007656474992788776419241776584021020881852147472942578354625379388496399754202739976025668786743138060778618064768727366215314626229064751679967354284522059258013605354265487617355724830728821998064078727535280390369799733728288175920190114204807903533503206671107113249546358770577912514348969191662467547501056345118595241470561937530603203820734448664791375278898629619880838357839894938904717186467724365130426393780243391155334442145479877636686122517907683528070905814990754504703649068150310007514205298006537229479218594142169704873218247581682461331354452869604812036725623588583775868475128259775065830428707205498197456829578551197175633201206433220170940022950229654537469319875343455882750150129199741983107648359645445097004177819510369365372215097825439387100306160134560837388053027965131265796481922557458881464729097557859180897872275366014538423366593724700175082772010671887750890984423795365154099486717070425194718362632516582575524068598372265436595277826217442261449439280604434502442583921650886000749743008408674442507994762744129927639746322812698934419126605184755884684194333894671272240972298221746220993731561693342961262453832872406064543394564996788725410383341350548114391661009412050029197880019699998919858138803254053481465477830007322547252577245062571916499443591670709075001087098376884932064943794313089843643815639325305298244695349595731525452708102892502200286020117442652359124384960895068749441131890646184483137645826822621632140427707005317578989423624268430105027282007375271821214716056467461725023013366679751260021693140252602530067873670629294458882242551409832026419818114470818348974977615156468754888084388926173363650850785004179721282204933533584147235779267076649398353242669793667872024485945378533047438062943798555305532718287221278559379189843716130760679228698736005726130268766520130978277561061182684021224874630407589120346812453406934735098185923686040592329862084282822525300389648450954694833964151802312970713688166751376051023549339306560987848333067437123312731255171165389712781880705473370593924106206709699919826448170186094371022810100241035702512260314996880984439552731647359227563592460248818191557753182265189081229989957658083805916258041280441720852799450114069667199189287177498045074773513080173455168984463134794047480225297899932645352018910687390482376960433049879821140386581602035850576425653589270910049063055605417977007090864797329668914968237309298998873580538187314469769558535960859879392012128201449606683795181694279432881442845036330324418409309352136605382358618127826365313526688477598083574998368793614308780015276172790499725361858812743911542289471627323832016637362119216318550962760454503039936643208458054105131270435726515209887829216235065522197634329181768912803091121833901415819894631974149621215595071359673142904610548366384045142921410118804316530116078187024549957268707498456318697706687070959331412705139828115118716958924663344876417378064921400039305701643789024773863014796647359673204626568063540797605814048979008873229205523523987004646620907894629915934156298769972244446058264945605588838658877304831066942438067645282311105592216172937440968118979725627546599842159499443603857905270782735110063669745725356834633696132994846520245678480885267949416175972622480142238718937813967303099245080608719084695614690758240798773107706235481325542187733358246486809555219215157479017905312268653024255695644315384522739272916729106032313599154305123951402017268536727835104826261704634950506497534169794834060877654673945181428051912748232331024951086343507842631724844850981535375138965224344250321392644239118183319050295453158833567284726887506727117086813688652075648572759982719077106248556151195993446646747704020294564474006640421355791743238407775236314506083217497762331590174110484353447018193463615993964742610841153937646003166755133255448703957485471960653852370076348913353832975576987462350915329857445274017174247770254839347729811031769604925680417145602506972147821621259406583971752746045705098712280040308751402064897719965419432375662538210362088788695414530033208827117962145649676013171023351695624908583652509657574275520712732325191181821148718384123457050622267920944144482696949017048181105082365212833302558396814568637699082826797878240753018997518765740912150034684998498052987631931055766977540591829106829141456924860012790077095021512226870742648137433767890054114373816370178968773727262651157843537054703630926839394892192234590103363315861761879434156319698378547416277293594227235949213549279392424554154606415194743112245327474998161225065539297371372241775190921291575934979249959224238687529635806498033218120402363391496384168673126502862047506621568932804521047091575512122314913378594282540425346160166449623330515776245761449394588803759073893710333275882317904155903916033659737874430596570052248148524018409991931258423000540733998977375067070257928637176306195438340489482168427804789010970582137780821667701632559824497591389076805854006902872866479529035535253527961169622179173510359345292559230785142431700595930382653000011026153854552389379281421939529425026150997272692536919591176663139813837626741885454590856392508990352368892186810901551178613392708491039412349391978635534585003408793669626341633401125948549116823732835106013647674268137127385335654701335954423637300892388826891466981043150680607009439748133618972289643222474732028715450207114968729974041533264214695656476681894452895171737747405587670145742834489223345393444656698684913822288041516140988583908827252910815542698306990845572215272218466105065206731543593516500973785130342399692302202111363546365251864986220550728797978021649880435945895588578884752251814702516318429525002612557849364478652313274458047864664821246126658414691759174369099363791397811140532236790579168819243788796376042230655107834278452702648163697800989373216521407163079669402282041655488579080336533701561015921252995265217106881384600183939899389705177101526002658139195574509123295124829346971805364941171871198996559836138526418490037676903150855594338621971571132161049207769534842338607809254336324677512395763233924294855173434560295776025345610097797853721237799829398882946098036128295836436069040873082295221430381352759551298719739353996052181825517079102805350678707273431972387630553900259591241887079420713033154643675551116749606709889702912644225421838324050473309959444227924695051566978843000892239761641976462717554211420142727467293199598445294817744495740657802401365040322417566633979516657574917153540917478463953673991430484817670015819969056816885423413965577101769512816762006094560451331246409679487254008914826579588237043064714410891529161837531555781274701162426525805217442407403398324689103387504004758842096030401079349297330507574764316150079139398819562895578307826428044760704611733609816161788128609742847409705950980329199264312272794152222485326011970894652074682461482625708801474207048714440538037038173841969425306731572960247957332068151940150937577676649949331014301138241990662947599581697459210535285405767772175500070119700116501351256019980390304733440782929521269482390906147092388249813089620494272603330639729592264275311079308503132130588280963102270560838860361152598988299022936278372462000933036698828554974659545869902053691937228574227728432500589809572291331427274285768544723741851699344463375649859660955345256490428643782963219606351705955489491545158605713610159524993818022851933732626088266153962844872687494651060819881462705432072122636738566026836475552258543246959314580343546801845515948525617243762355477289624437453598205694048514239551572695543989941618639912065241975123363811046373247332435475945794558480329984101364569794706063939488896888823225493034549307387417884474125614077642710145850962177472672190589862257118187600963304280666546323211854687126987797643136764790469188923186797939335558953195313071031294459112494041626371781503907372415022579648425346658630632750906201750107899088948844295367821569580990415133320277419035870935797584416407144999654137400875321758646774239958779704313068445255267535771556884999345772705727839173774029057601305596633327664977772475925617404381073138565372629916527927593873284517312867646051652293545844746079035212003109434280730830585852611057074814796586243868124206119579011434928015869682368644884796963899516407808701396111631287840544907759684144770514897036211425999559555381259253641644175700834193170298101447617884556232393912365262468764275994866970241061320283950112338600620476503918944022400058929502163060429720387342785268696515335751360304030737529471001707712098038843988571527053195373581951764759107623542855405214653516510504078408118612347544043445499190691308969724886138639516209923914591560143300408594455954984748507394042124990603005430675362037729533665848701084098891921402216667917745936898175493036054943055843564505488234515815835697785610128912093394913809450036653103108353881993090713340280620745221457867809631208858850528417031392690027456016749927169455448754601249989391262229301935093643169848293738745468870665860214690761288732584196205897531594483882815797779305187699562775817557559098197264498019840316041036630816232978260005703006992587718595366904928389973640195395468047681877548363565249184653359838481676204497344959941480892533441186368135234775023946486179808462966619267595550647265540721316506365102797097266839465363280852271058747397172582503744673259197762085841750134753504018019817791541015421307613357646861001533989910888267984923825834491120420753970870883712846409781278487040919030983459193230260482379952839934147663761572877107031264407146425449043322446005308185370925933853341751031479069432617600466025626322600031382235757381470390488373846255134123119626069844765598725195406878088545424988730115955888598409919150686736539926579116816692463772501745410762602677583813369526175469371339908120806405704409103743114095523507590167180641426723158773607710178576324465919649253865264228700644713965562270196344133717119329749518419781393251399733835484233260967469405270585447029487834657233061898796674244050924261248664488772187675805497726144386036699630680678015201970166011544410219039535167070958066105312059492154831121050183751966039779807613443677948991905438886305157841461907551400799139632193092450812770820146713001650726421856872191511241457674574931298890883078546624643480355222599418155519234694576127765490007136672619425484087147831422543611349161594900711008294174412655371518736289759546873880464944983159697281414574360782198841590189301958381671564744308591826087106443981369603377168065057625341076342948070621148592745390164607491534241223935582773537112952782688803558168040070816021172321539220528498651262534290580114144003640641970421327229327586910021211213029272158643367362489967930666356104992309504996005282972196548547910330834852136339369138053461987366982771582702675634194977217245953029573756728084839531194683248017199754734343199379639283683988057360387521440834038138726321616031126562628064201966367092990686214234810861000304122638183768041140153202719382356614673762014003293540515274377191456107996154232957368377851876712143972878129080636448190402867556795312733046058333377147020807972558810709507913679251129157215207738552411693752916852183297668313779373214762308764993103770329875738903985146772778297424124992711455205721362679427502045497453630201213514224506471953314957865849503486953640368529188749222525109470682441665219755299403724942403429568656341612201282152153681514943860605053406325137406146251907385572371553401885324780910026455039414624371193507200862440513666745766467125004726902778791014601300233735503676812474316593365458771517415231597692673348284526745250366026081491619791348375192834988514908577647899169956173741564023614702996626287794113299894297325971374197727760141928019426226097848154351788875812329834680578909465831157700078196584845210281595440330692726635011012170455449479281648788613292002422537672414619081725135236648596175707669001894199611547152312540956040285127800750483692264092198127559154376877862500535518757458844092030332988361810613279593169142756699273415557650084184427456417007345417418291472433240942500339960726656871980887847497662019068775823037180923605534437176904082600535861215382212998275565165256170177664078603145095372916089965984506425455933213370808675530806703850150010327949285750864789920719721505015694728760020656436703501728024424413852061615242989482129005151269487316864548713629397063478834828635390026880982784461870650321648592733433047422774503252845087927018440009216618732319019866747708600641403711961872922052611721841855403594310243513861258796925495997130103150058229238252217289858617258588423450406195980666449163912560939608204408617843981470347102857415878290253080974649403470145147999672648646213672392686976729835752374995594639659574536964600783120766321031782695661715689570874028763948073728593892800644378456262418878076651846448938548396499015309623688968098570343865499932107167406231985663576038198769519094092476365899915504199099835108581263159092996399341787025669633398284253759454400897284502245221269374159271063597490769387038907282550516833186707971140648360622032058245196402161905642912750658855267899345390019940737982534974759682288855337445642854464752429828675601521461636506269040670626820576361180772114237396270068939998102728535546988853236202774408742401390194336386496369762650573816311705755234730054571498242187277975822763858633074335785592679500646493628468237314504728885097916218514414800021632295086676245152642483404617941013916165756188084208612997390961934150017905720593054923278928201016619610269371276078649526036724968735609816252312959807813552466238580144201187172331794924321691191471298817089450802546215939529740641296180305642675789445990693696686761991190574117397322914126160442687895751129802299809344526063086671967972565154955299747356979660127589725806793776415106231876932303448717763396644359933450113042635632719972074117957084475873524277062294829434645631851246546778057677333275944788598779563381480594709159916945192920716095801256725225672558275385339706366097738595557736076526700499751910892159092059567669658317274239962250120033629019150941508987296936238639022643006982634250168930980509627336636681504382370338925904215598041916991110858314273696946230546285307117028018302993881287682417222507838985131017226667650189391656484013085108259553563999350735497085129178100524622504353969373222111065430522014185436972398015055313403195377449376304434518877761933196257556417048743431202352384143692387237954355022497986690654462859918866317443578248651296353356193608663157456322400430479261031396627185880295800826612079999586342039105843145931445897264882158372807938913231721497910336770470862843845297771288704617294538947868658385383143843250808882993323180984334316419745198206485500934213571552364040082653122335927554602155983460213415440552418500893679199765017698609229589597912847016541035937113306105518466981651964376724892397179824037503299513002115239069233331707465254534445194719640009507175769701791676716593073590537546456369621749376867053750471557058359442687549128819186928522795438535969974698797002078434359738748770344439135037860486800548253426093532773675276602711378144102585486843896136415506292210643974281789280069602308274654619513232082227185425326817872019728505885015934932660268950334785679686137279997486095018824082653776199244395979625282377174450598910740127944434547605371798605316092464290069527646555670385962604703607074355141512253206267616960519515747268699230611986355555841354954596273211602891488130276464967968432183665136523488890812486338212610247154117789978562855087511725932145371175555490042113762162449298256480574585352535602593987630475909167876259097499690454934760127250851475314481176658415497862870707076995269188709263980402813125646491336642294385422202868306418762353784924035019936368184962293638164814304299268035038724304261438477815896341510312499773641659754266123263110889662429171429730085445577697493981791687387018224499447563235911963680769945005060866931998835336671795983459619475899392916073395563863994170898400191472557824079591933552517645739180138557086485231612076921066276774690082776180118993461700612289960256431932364416866845898457738986062933134406328340098396666549493022697192264466879776194715426735343695626066921123112597580043929256690122882499428118773439817820141100944444935043170973433037706793152215916087383937653643511339100567465209443023057749864164405479666355550497173465100658912881985741371184296318622784598638605831034833813714361362970476062571106016828702809686843923232663056796809562320641994342264187350681459458021568652405350611647850783724937859742130644624490120694761873001875830264667211674274842570401295765251924873484800421014086699159698050014160614943243273408532143028903224426572488194042936197572232957432029428447629657719979361905051157178700167172356298172278012322794440057533811481376600621826508394821721861475756414142209445341798543079627008312981528669829956310258752783636330035062455597297159366956767144693016869709314754712300290989559377990647801116494248375913160964915850831098336123550435083314308848508961394392206280572326925023041349794964660496253363249915456230117539194445274224003354897570652171262590334786006341162571130662434281118225717265987113663637276469399051062676461800176991381705655436491340063489068809391059116076224563684999086070222537632001472326524098556570347116870951225912736524709748445781849364205712133722582853136516379326377210726194972108984878950883734983649542796599701484221653875731523889960338535210401399848734002329486171161906517561998541502865650738036727349108674013750636425175431634525035110429771964654126043900525194328708921526956737234172903400836879581193951638674819514966965352443786624312802916111967592202449150883499366740613255569332603623643116824914954272834956642985881038607492343259480739293388963350466827167127167972853284151189590707320572243221725212062327826104885333762100595774215925415445949753504215330607607232788217212850948814485850080774994665608964443453729310347519636988786425124384658837262826387156132118546204632408863662210476253634149036268011003101628115427731264654147725736380822647580086976288107459826177366372040307763357660001474688038238903799512980448843591660222234697050759928671224473009227258744273757725628389503948147417856701366456561482588388589968746969231516646125201783870257502285647824816281942099859024161694489539711393411454004433715897164325438780379769440606062480467113459552644245136847273019822601398136329064827288940426897783150177147576628639664035146370072673390023327193274723543484258767279704493738396462122574054449479776987205378073397099776189022335226109096893765224660151848787754967383486256170167155050351348852868128929143647794140383922494682660371488364162882364331565841996554558551926859861197273653637538682496745048501272476896088328704465808241767697760605602338135912326212814460029702779225053869371394327679909191839107892800260506697760587276537877603370419309699521204562337429451111129703197595342599233398348453572468084296816962860112960242815027363160217084044983690787171382811104095771111100584290235239724461631595601013990690106972100533606949865992651259119595344866842909433981876337970294115635025303943741595971476271889929489555271095237386478071559882862922398957385739161315681514364093794349348130029126539501732713200656425115398356936019804394702345890267726311801319250882610159660180664704849721391599064102201698676692920009947460283370798045624859027175368768011754667472171748378559771267983613978154135797720092921889304316806922776805869644565131412191758945305461596621235518693882933574960349375888798535129906699160821580881919829271767552173328220771973284263597083221581671199624429382619027635908071322709336131486471498616324650708237937115876924305201566662453463081682567583663370699131232353235849733457351972403438916234235638494453792860599786274855173052762514836301194915256656221701221703486691037043847630629682295419758302239503016442379263947204890806684651327896615257810781732092569378849768494922910297977491541770392562601973460405589269908302310760875127053982961266314978664077939253134379707205575353732755888424636050509949088924616503188447100065623896468952743451637759939614310631162685747435080972978470502437840276864730337840249612028705558390702071299453368819029831748185455457994841843586929061105429820736097570767091778592675015111390444687861097011648692437240579714115500771554339344891629904659055436792519282105243890329599718109651676862097370948770355452674601890145449285982877558487115499107694643131779310604859960419877805984845078872012195299418480407220838884630871903435833401200866301937423400633078319730992667890867160007826475706314796064719021744392238438423377597897971330246625887651837396767872310614612650227828075249787061159526460931502865293213057100202185312859133048682440486745947247508446810679415550610568319150712882622489153514930065262028326244536396726450519137568540701000096613428180004866844774909691789279396600713817710842225110857611467426508686529474867779518600224213474817466546237053249045535891149056767131870415366624053261601884796981711681800642712336262456320174012147435865618167298306733145395761084073645275515842404142990342386642229483246636516931598096904341491796066190514142545436049746239144501200978317401874105679152207159579056309809123220591018931311714939104013272166887627657567233320713540805001719884549415254327410632957862374755620170037429820736234716868349236501363770935723299776783857004011088897386809248846885831569528400412235517619290419162286417121109736973844340541710964739918909613287153601931393237516067998565204972971970483570026587882351120841617210659430831157630785927131656598948773360345445043307483681376021081551151761801330878261354786683735297548043522399894027264233414252237963793680955583937878791753440456355909392254770336282191768028790396272677249752970636553822666883664761981309162202354472332984526400492456115249639419607205051834704182518474037050924130600300216051031420466176618600256173401170147572203172259230314483975247330550684536807522331796960973293765016124816577495535121662278154259719657019855279390205768904581342900363213052020895804155784092921488614068855636583132442613748920150820058004283491579025072060175953128275700490399856212632821537711490102076105924035700072208939465063245462767190221423512065517343551376395980347286848300502394602745839816181043716163455732466470409109184012699499415732383113826027042928534252911306801574557381487991490893397066673769386990551619991021734730459370448631577872172368206818814487182556889479937083640383037916142699694915310276178298838700609314805142449410302631648992846313020960411046133062659065220324117619911468759025288256478394683230129215729563343450394069153777025253235557684956412281717134202553108376798482925761337100381089507720285212550770671286402142022253261858411162041981698058687386312483610342069775686247727187290353582373599980101341474621304460234272677260689282567236851310050278208199944416244718695189556159327495353616384601552193334302804926848019227467024778281766337625879244592336139459221775287185171930207150831905071454824689418793816903513036020016817446548495290846991636620257584384243027279104341888250765165267190959472043767885577261601374513489373125197525642575750103345148224567412473544296069655642967734493354757592892592923829021337809904452614692863745062363702478092471300939939580978049551452178553597918886081635306060700868175755647653013134639176111996567967274820940654143194951662540110397846434411332612613712706407321817360519119336400926734506285949408516795731631059766017977497213123092907372134141233119910007882736730441804991809457820064845890862524086359396399133237978528355179906043899496625508498489096944095667480971971939799332804807094498268532797862348846956327358302051233168487212628255313698606072659081213243405212251733895164969803403319975878712545098977176008170202254868670496847016453824740905218441409074196229714934737122036562741010136597699209133208008415471352188178753127879447495593793478929755566613836542241114047572544690648751513455795121249925531406558444424630072280419972861485216638153591837919675825636662178333466127231254008309763661570446706679892712963580620982291681294006011438154825422245942779806194013870543409664458021572084242050317221691774462129340678779059976847755680172860680372501546744451178350821766137539635892124095360780134288975793300940989438801635274284186142756201338338487202297008020079343045573158100781860278602636248104016160378888888219445586670899480450766910207834500064914980257779858654403442018410877114697645227742137976437730145291885538530506948995277934256999088509152066372364921897603055270137065305623574672195933155859570081076610784709311994976326491881556177905623967482237887671758324371833389625945506861054418287492706706968812529980908873818235021662688324762373132757943831327470137261878794736886221466850369921137395544778735146869416358864752583976569319144207207945247678835213423891932476974536652621796940794849884082595900270930854642227489974255422195056563489089603698535845060846055237715743718775238728057398449263599194558818751713421946542804700786153400353003457089642801179574546327011514528797206589860825079583615129209947766033146877956320522232033736105047449172436717673677622146013247784798192650975279083419345584937342455981968795071701535797240783959040779341948031314904040307468451261043915316118603420807200628890070102855687692847028540441128287348325323262738555009012379571847872051320320883733391952525691203738976103028358340973803954124326738965091449597981215792753977900246220637673887854458685819426568820309574647362369821125963036566072259176097899168318808324231228122621300579395645967509512642469030297371215078169720025185523105599082075107291785088270247538185028006960257898282552923497025445751418168295602549038871012480294011250970297574396778266846423011740305783270723047321829174802883457588436002905476483979008229569706982412834638036416293875937075434088508148721284889963639285862686607312168516653603110850430241750879432621176319136909155936056262904251135332238745114178335586313871992502855286883056500025355605982693202164386729829820594885131832585393903122216391475034320277481896914838656619462714787320865500311257167036018137177710423505928039517687650766263398349976812045706532846574149105953981812726281783180780388839864957188654295084787160065252243509874734010209363856928904828431471973468900124764354548268389889211622394080401144529593439222095071572992573506173581344804227652630979472155052854808432791391092414329232254751494352370066391739467632567431949876309053543902980912946059173810613848668070004425257494108404323216998530929647963823842511415115687972997945973839628947686085062995660351300587277459551317638750191260832104773684304281589064212720499771618779482473450504174782760037372292734217247207217969158900514332323843611430170427465241618863058625405658421691957895925304729760684763393275762035201969958629308203339365560367043676120804425220071615471505436105269684546371989628672745321963030802212140495330291756595298069310998545762012652544807407005662734193624365686787676697991071384161936252562900004015077985649969451485121458595054218628651915355650779475723549930336160191619365131402324634610503378342494996868325123235862203038924638392459466992688176555830778501551347939694707189186755361190658835047459804252348737626466689191249694097327778831996244081414170719777982339557548017626069793436498628068049278049710533753244765765279718781258986395260911869449099346083433898309600429698242110536473837009616972766802178200006869757556434931174721975914510490231593305604440485386251682199307008212561842697014544175539275061400523854428597310772215150857710453729181079492699196950540990293072217939429214397819536241983231293358988672215203870248966927754418654401648814987469640206809306263170888184705186416835071894876531973439778549062709336919400546343711659464989123617725771587377631377909755722506615551771113521186134476006463626956771998734919263442815728207940681600687296382222285019265166278195280259579121696144225426619586664281327139327235798791343021156300024957226566814656618952880118051378986163679860123997247077381821650820109390898387845179929860546660924109183700212597920928296422984721913586995398811962639530253370339595041196489870166590003453523600184076821245557344784953673620354660538839741766027119443916626949031311640866055288819627263592414379109357617145337174834945112254303759343578700713129820924829018555248926784970281591540018513212203995504074188790279989926775401679694581221439247699373151277917070096387610600116683452508324639215924365023682872425225826570515418187582874194765136482922159523222023758729031885792534101033606906924354276213804247813636328483383077961155859224174280118261141924472128113508964066820282951247869143822339644975692078581295477852734892260753681606990570730750348377266641423540474207672722415420089635523976359600124074435420795902582358751763280292786052221853355374052356285546779488988662455440294167753536307223870029300032203821194167432850004176692510680831049892348565712858961346643313636859816915464556749054679138701160736203599588528483720349803277647816492338895970450165829630318431360894450847832267166355038905679015831413278348811240706043609282864788167511458109472167361560279845908511842247173022877455691683838192418358520878650389405329969047404605649260067923940622310349541461450499840010195924152026950173427927245426566398080818330075310344809357887320643563820086614452565684500730491230113559708585910248731342074559627554956644839858460884762731298140694731042257513973593765377782878141520796253781894902445969361600461487144518047400742221983380196628837910107405148345457552097311504029809138963953455610303244228962544560506992867940437213096606067493256583403196883256833487433265177928401526540205753943581717979192118999066836726504758658395154602042800396663060061872949169959911260175601547930569389993579162917842492445959861854998623340383365930570730639517234826680522218805067788596165064301449577318219722001520500335422087578279417457243975437448407796532820738653232592324123140866460790084778043892365767347527737387625626389774751031772860885385676849765659015090451161419107550535792025072064872451878308441051757857119148223031189055171249953124924003640221502638365068376035367170684113086878761721445355485532754871002784995596703348382966287250482945516080697274549713097966717630032973767679421730581893043651152841383993407452833799196999446459435721749833247459126206623907384975619158558443261211796216122316197028433716988227835498770525499808754651951508196468353853607017044384233980257620497338651209190156882094664661240863137191073156252627340504634336488020083483092840289193955669969207642066469021728103665878884903676882059655284883215289844392086910923394905009968977870959290721594536848792603476858487584722871433337014158947891116314118108480667207925297486664293872356313005121683080315371058204706067994124704539136118639509993978594129285656875451386755589255405923570993870281374090866666277896104178696037764334016899793666379933838109228167091039633541344792040593197681290855854454991986222216560850400392762255405871609509447137026330934252460367109911182875429346865546369997733597626117366011915989676069802258549924992132992162499129933398936875671339981639502884983721478962137512018666973884542279587176703970955394906859015627373875242412840233330041214177898449066996982798972496490112059050425057073868311799202252712683503063865714081042266213217510943971813696474577519223289646163134389204501950795003065457902942691417244387925425234791055013804047693287038566069843687028669390101639075865875292169599689639088463631200651580461854621275505089515598261908743285072705985535220453057660664126892060530648900849898954229868722760912914809472730981819056839896663518146107597979940682767570378406753654505488094434115994214614713128202388734976814574578425963649542192889910101820692120680177701245523053234280328929818761008867926153079026470615350138685180828709248443344968747721105999071943290217641728613000313694673789435317752196559877495162908330892494708920943759587862232932778324809430853213663021867931476074440916649319047558541595644130147998320734252889734164353862578737216501597769017664705570832412885334104371654879204802186627329855784995182001499590067994366244511726157528459278166101896846931885297582923222275533533115660277304243400997443015295021059373921798034641732079205404641366836460131292937994724377118399686917787709600680764521076633640048184993547434019913872645659120954096736366805618003506685450622830629917886247983163183630050064706789999901330382434906294413789967132643666700538198904232849933480700198299097376078723288817530914649309048385662750217935479687206952014466444784330038596879516137399214428067811713540802783376047835304113594065070483679307464517168900730117305429254561390781825564486764827286138022488784590538931177224180753346252784780794104647357263106916113770060451019645382697547681634787828098912802948932530068570175250711392554302711822964416508444487620190182888560091453141214585313975213521613744525066710974934232493704687840792737137197944661822074896830477467318489484716018549480902133132721926633818658303132149062787719662710962839808035088809562677717386777490987320246514248360420549516830087516649463591732204794298176133338696803000947723090270199593098905234034851758005275566935998237498039223848176052420393414740786425145452393212602483465446994116728361224483940922409183397187420602831520926921591807914663244780033145135641583170674395147069628701173769574308746488024567005847716979229934968429863155491986587768679948015200645759683709524025994095401238027870891342267359793691454530449216120872479425151963925701913390801644387534637868910021658147693072399006469555940559238095778539659219384246224697664791102443591221774886367787479499861193948089524434388075105132864979829324243941855000831810433971780857809491396026334371418250161050828217142864015890983955015578094121342658233845423164382141403010180698147159891082599211976429172730043451970058406490142778430311036919393738546938051162153534379660677898293096956349342561137164752619256654192922351231376841080355999553619665652004927922727714777563174596055095215685143785382763829302015185217002429925347581381387438614517981284809734982825678027160320972039447880397937447875479868444042374820939181522029249758454166622093835256034896929665860756037806282920231283120903163993794362427536245227379648923125807462006312050952144959250610383524286052108517353602622209375290181379034766204653079561332029361034732078944467042193338582850011086041627628734108702151937121215819781200958073518839376643608946792518285156871958920371600677675887472673778861250987931091243764832086407879784828310530540353649580854186971520025570872682215136980246527103210512898012524732926751446888248300037472591914738345099216692953740043163351787224269621269772899595383738862923275517538769524201322371622390255951456190776658349536959541389270608884133155095849402564709210381445399711838454683490075827502042572498243482725479027745385109788684390072260595590058037843961497521035292799939052863288044510838996907579743192765221416325485205962626091696206442727840514111509861953193167863389344457514403448846980520930942092085893908921641175945504447909330561927957782455789372692008229387551109936138564278027640744633461967154406642769159698148302265748234282812772997397250287531650766542100887109204455027004383984348730973886595064112591245941093542712107349807246357036166452604442572093725852429798058446620913318300630146306996972019243261794335647513735279941359427562048927005192691642501457887886215423720929619194337227950460850544972104400035195304901902930489587291654263134887439447293436784370513581864990212199451488830773745992667473513239053402478159283431870187344947940536450452478602518169411356841396542280358905343544976935437986743444375785922189210911733453818526219052780786182033701477957249078103929340061956887874226166405533254853477746276941675106000231933812277595669097572998589447469339818296898439192402729498575701260795095811913734325074737337144365439310227365545998206233165605251326621552902930761995602567387252368228802529952015883601292887958818576040602068040993338674377636772850910922680194038278772869358639087719893916329283010416572091628997308570535258206861631186681349646389603191116295940833074776363929133166895776011051067113937808611677928654034912268276771712867363061246251742483244419642254648198883685395964440122639824134157090661548078180942116148843288798178172288725353602713058290073080084109016751702172981801928102992148913153860262100333320562583269699637667279241531495681891230987076896421848854738613114463435790917469898096403177871103433041434138641391738848916164511294166226118619958208264282899657494891436165557436114567322644120428184912784782653852185975406387591946021516361864991639317764921677569323290919657976540418159598556042861801750609645506942527027680085375497935553511359879912238607135233887433733961854997929705432687800361242373044605214165879584120909796210585541108174459073182993382293029240257028150959296692028521276344825857610088270889740606971332483303494776870834079942143339283324908857720474086346793747421388752936898870414213966152840672787909894162702744943685434818066479800838503395831764624798363743788822994136009617027483495953102410526935663839301545512518898481839984509344494214015536913309203855926625358454057648948668487314506874843478234381112191417625956924014231735830989533953627492247876948604018643964673040330623633646452508859879680042296672920727978521461969324872957135170610419126414843161101459017471848808700422731926003422822417419269042781854619878627598553356787622540485449667849939802445343748738997547376316726900634382279342036129414011167280442035169125340338771671460775319986806635655485289348033368829221444120859714291800594375611128142967525988953569895229821688198224617989654900893582669163481049364041230869104664677215027551183922395724701872985955675981683429514528096100720056980630853501970172855981444873458198819652604108140265576609281886031505177228956601982217670351901700465976686327797337108428343428845364283915968093605508100851355935117622154882147785476639486367956442706279834459791568512659280907311157264346435741765172922069313543708297546239584897168208853802242427578907041794181010744877141443780533841570833458559748249969194835426364321617419818134402184202920066538687774433094273671786443571960901229144780372030678449028551514516951000136230924616963587222006058989514936159063838556475238198313950527739915909726819585789343484853037322454577362963792803271766908354641966955826423454757933482094890276821343547062677859175566594434850780576901944087387027385925490062803050868534861721563767366997858374640253951436429657679960073953335583870804110224092517320441145051939160001722188921536795108047994797745828562654536348319769596203250656914911061757051074591354553679258627452226992807002858047585943773860818908638071665193109756391974895991725025161272098164813279389532612519469533617374991636910982211093505107371709342979625156298295126694007431260790691828705137338561775667795506457969264842580854917333413867420081184116566431423763746303764504140762814502115030544255246607816042624801050125025910431151781502430170877474433135516527879974312106679499649195858665252683620347090192333934385979274441665618117610485543106251232251857131486850983699952645297221657650710682336172271048754419479218295773854024711999482740817595678879540261336491331310520059129747106255006737176361277920663318162166776632762295479549912372771170902829427997351592488673520775026007041409050071248713494693800598481662709611582566955546677294774820767825465052969294850179575524528173126810056207627900214543548996468591896388154305858122388059072423466960748087863229369788538009735795872944689884676828064021651823991862464082758239239766795872679687082332042605903105003751225930172835656953732963016474283064771526037467015509637764892294947908329340885875157296679083136098160524410687680907631462614768641002944128260960105434744808173706954951743372438854591177373964418366439937311357688871449218556552468585218033803841402987376201918422787570456986879849690961907373352749198132041700160234364573904012330072776190224493109564905833201275142694565690762118318275492152429196467228944459426068654399318627068083219708333489575827328251122102938398071398591462198901625981188210945127892143352251905860330293933155721000980088599398548289870937748657511962623401618083221043935661288593437687780810265168124040827577184307285680951504408249271574652177730017981710133881622227285249778992398534845469944546743736600069151118921713212555480242106368963321236931373866405283073799552156628946946733528594487331807762381145598278333495089188797838784836263009650294168869609289981773540839025596795730173825953786501053680860789773544060189827067822175674568044867624123470508818793849773647698982287159851025771582411149135643341890916959986406227839659221636585905971114814145327929353738957496699215828324485519874879570678523997434349473764775658242798892111003136916404840201062009096972556231742319316549288255112865925898093658612403482329131313276236544867656560270984565897627162421973761244286725947258760454723822450748809088323452031741323952441051561347439433228695482588911957969163168610867475140871174558929891251137461109277682787958098859540119544120001147112538511804856603424522391474227146699938499421811328570352879247412105391164018810244843626875664529756540427206545567888360731113438430366395061116288829940799707715158495430635792547051245949840924638312254128085134690967771636016101671527417537941526148784951173243321151796058168140291463662117937923400224513382682699220800753736202736135292809401069118138460657900239533958270572643018056741434460588048152573192389047500696689225104107343077006308746976647150544881282896373415286308338539947405860671778147905274686149759908946234483119468645873941951616025246384975638476410824298219335561478012681009805837164942006623383721047508087541152511471658946805333879578163972776380574324943352141203913314614785448500922996006925674158680445083169505544328484877421251729820004069759367757598598460769794680925622285972905355299623192114167641755167197469587270970150166071990291369123902711355685192515272582770779449909454723484814249852649532801693592343419520371370701329104572262934541638565196655581596108093299429734907150786221642048326430115559736661275062959695808473523195088392096547353579703510618504992568470500241308625040636880355291753331947435152316478490793498957059986604790841651017106729855416435546145374262430372632213185465413133169761261282169816913671328005342566283784931814261041648003502216681523371270123392187019478972025723276360708347274040229196342760301231901363238479070275054436316681663205074922854393751069668073807417408212494714946514383679441717906301090066779043316513377757602265293323650599493034259839587720483590486843918730825263526115370237561794006991823994387518105937856517968269547808166955689215524051706010244759764817295350403277674222430561136654799365655298481422151088836761177911190562428887125562516748331314558940956463982571681270347531217036495781245174282401707458843627472181207167576947295399959346553574569990285873137856361102383332665661067193338148328581229836573156089395560054403496455000814715731602423086662783690617988649716327019931618279750120114191744972584931510390362916273471649058445395532673596120541290729572462606000055650205771182525581221010762855203569412796299544811489075609559350396079111414307517210418404429093893153948637905195099213742262702248222532024600338237171371692923583125551674048538376897765245901476880955458765879411459490813278042393155558942069316951448692884205808514733106080442338436798232653153277117261276186388098972747221846698835436447222856426027349294279310908702225886039911072957156227026861326348556579846643217822941608917907196787972737723352315977961608494280906967528213742206377208360335829785711506709736147837890966863386679269693519963762867273438223127064475614461024764843241297660105620575900491456832359045668339038739257062236159552802547324647383094043082016039184660017425225542121488200722278241604830286214973705406504629057424001315521474859066173123967516449353133734284992813437831353293936968254326860739420210237115729674646397871620718493978001839809759910509858706351535713941168963792820038814089725732212588867583074251357474116227721697363091066472371477978968063063082390244569430552758002622461351987028227922877553365021124535340321113916375025708553912470977571828503090133298882798732574051734092458881902130438912411938121478947422015887384360947127639462638215213268233749617873017226889817547753408590918627762094860784915374243692652793435946850001846059569089651965823105759734174993448843089759010232496005180039967634875483444121428708612549715739260460202043367910143220919080695528907954618145289520787869351334911238059971689014603020176493406343538103588838287370136639509157091896623703006142410672330205597643408211767566815029056136041914604048798192670307387532299991593483673980202989050636297662660711163599468763341735604620149134298132707462009841752688801471927343379423122143339947189240986245363524337253013386578275957004368615324036170125759453753353934003181276049638269631528366774820821451401584185550202258963805916949959240313533608979702418601770456049647366356751901239044380552326122140565052875348025983778789572454836619741807758706821650446600892105230333210567399889220565693876358050117067106369303716603697102187626320145786048663102082107951826409885783939885597919613622034692026922698906849684583695457423595377734530958214725141864366124825959624563886302901549506254932808761219847756532443457232245659576986554859569601215307193979052935936266052931930281595323141687160580116165256183086065884497574260342304889813327639391546288689952552871253137148213590677573563054171423898650278432119605783917751089460944531420093978312598009680450743232058023725572572282316048965538735961385041423792295079919958957621835694760091673323827920392497453609255339704075591422562866258507242393368038001426833553320898229857971858061881612477503566960824726463210434223313683749853618483551094402588286632495607681641403803461877898449213249332366477808548721195558889914648428936495100994555076569918550396254891898530852048197522314463657251166149835894835722762024272075084787183021472149220290847453129840250889012153527115479703873017176822866374154361649410323795105847950221771776578824343767516586738156651228655506454237877615369891279394862886749665452496209154816463098830543178801090286814383834199299413355154299073643375071034108689234837013999484906473866172243246940695647619810326759205774170760545259046359524674603244557951436706292081439648870546944557287685066251149077404824122280975619571983292213486987686263093866830307316225430003614337037847652988269454668083675020616906598219658076219183621745403975145051328256814884046264498060583556367798725751749209513981715374359375218546307981965304553553074175561984446916426627975590311340148845298531613561914651516518969378995712742080866981984196937592175865957786636883416168983715256266429434332007254525541809525329169876860607079205316869125594833357465813004221915358753133022554241096216066892355241205326747065965370743906895632874541303046417856805978050185201227340719177069604542140272928314146924916350747696006008503030808622933434848839471085333067790606593180133934953668853118675882403734485276687907588789728796504454912565649458758239630001544866806507827546787840758343655586181606411195140081799975391533041903536054585747037044742877695865887810046175378415446384175425338625042998247974075683765033121912978449016754224206999302980914008507896996450471387552761321453766720216349246767157043073464204827047905727880564787939586156566398580468973841714340495223302619047421769702230161741730735977410584270680253608486437636852037687297347409190704675557899758245065108301737891961936778074435730126704646774949375577804342610104013897319193754415649663726387753540550380095217015218971215796124773037490326216896977433833143257260037249834082476385449192528300185787678550123445461554176770917650444660361779413695279757783760613563211816817019423685230907858675364776858688258065314506921720531636322144139715007519443064451268635168440736994290927970081731900171877961952289937732875861800456900075352967729362619154143393366469205320663355442530932108815111775509761347613675207876501936549366755217203167468704440738163781642381564285044730740825609459786831562872422522072166498256291588151903992923320898584371554053874584429049172753933235110900441584616821665210952308364206795716014460166234554992414997542078230882942144570529294890642218103204317507311857083646838659563851814302705935450449702073310639911866865401689018884126114938703666660064709775881093624403190190640973456823316066281564379464029456976481428183729263041409198240335606387965017401659569107124742695983849623805148194509852932799714587120172940480457647511172920433001383892244303399118768899461368810074030259370000340324090998181464595465525561842454617330269005864751504259095990456038240583365565489026686531519313396829039435082632738770476927646856033651943096930194391964193525688983711610720654021815399467044046094808294819940029895221805579790527106819289491806334669896789540176132275664610115634673695999087439007852013969275921303877173184177884763093236585775486824789760297917676375268451336697987953528178833003862191202415922477202589938290085425532662457692971812527334577038714025686522384943907365003042620312211243538111918027649265467152093385096855800467766819101279569086022822515854597704517943393919065856984267606092068790170956471329955630011657627079502011153256127727326323524838979891832336769411765211077760352296218369806581233155611357204395235878456650270774385012020867459668424814416526316414796988401809771808884786873505333791495988371555745421004257611396223427396237668454532901614465286227725867193624922950756000031019811418524912914655790570233607589325901436919401409139174703053897039952731651181027060151316853604344084027805099813124124369469172491527531576011354681100738916025125516391108069595251778800043030400396447241244118628944596911473017047498968725984862899394669146689980713595294338773170862980864455951367486981500734331714752495502334802775113815578256292211799317745512710995242181461897493708736958615565251357724983028967552237625893741307143604804896672736109518407730713091429855178640282595880989492692082679633666820819197237124278505495238440166878861722756799831180297846852049152109881783550181156739830959454803116838310633746336734306265027477853552519832994185999893375682842605083386713920942638497512573666772657861652034713092999370989598568104382951792524564744314451643732314602702290564269780158106274355350732740994908993474674058914763608042149277592897861249898501208119530036799421895710644867248705281479046055840200209576691896564715320760215342643468285111991264436830413546838624833005724200026962991271626322415748474631540508912841561907721858907586350667033814457832521287000973937794684528796164792054168996716452483729102481117045113054914714139196116745822803184733756764586766423972474506935511601632038868217591706668594150656601475829631920675527217752047326817944883599334662683027020144680609954861845601021772817035567244362184571709869947427036194893299744665019781197326757545659322152914169329417560278341232922244535534612074221555182642651506091331116431074182602803887712649879600141254705409546239953498294791933743367902770967068499731212285414754351128544453368709199686801092939505846423686087900883413110765212231205320773817223405859103573000202680766286752654183795175926255615999154084948700730309861409979905550603535668707239540889146258878780622873921316643017372516577740090053848126608855769435943919428253929586375321690139130329967656246293255115770410992530888892140307570716847005370084907840122006364013724655141717452920678364661617283809123418491464059974405486393350341701680436595676784460416879061464508534498564030914000454152219129079532249018769939158771547973072995694320227863943991475318623907482662060696396464455450945200396324520292600292201839734092534682139536994883515949566329016141795368349292272636756976578680255383985654448612638265388347084832918785947157832771891547922562298845118460828651474628225834999632079648442904899663279273832996254344080444954833629582010130103006777167954081693257696250869258115985575733642248354690217223924440129276547579019817766175741398096445610014961721554429246914953838263400336626594034762044090220357474640151472695852877875534527504406756701752348912981211086067807497786050855423457058416214117942448493394171391913548417685870967596660252913982121602431607078508901001100792525961386655222467190121492517722814523653035398529763954971671104229967604571731959453952148512774737809308321042172817546193574519588571338926472352520149648001746532607923075239333849859224952739684261503762708457796461312429074105825362300679841330021878999599755602465979451583440204997477690041546614946472570432938384795824745274943260482862475002009415992920230239074738127840900548294544169032103004110020565784340898232516410031578781826266679030226965998385433968309025202935631236922829020390536877367597750938828833611073525127603686703459982893702222727948939151636912281287352917524262173258117111941235049392813482120262353952840395479095250003135031890456554637337706079841209689146083917788155487496182098725480427113556789274658161768973910579472598803411055188708521310479692369143935796524837075899565473952740591533960325916903983269426422293760654242620379972905522683650582848130150319110538343672127947050322013855525840999391463606665639038454054922839304723484210079371358154002404445266331179948170684464164361614029124223207511948074498924359067604024498208251487213647869444494710431169560817078503299317396458536937274370656885351457015596811609081765229926234730406122871618246995260904385696373247314300702825033640324547146427740222790667922568008375966403135792417511054621345076099830816903281148784982387504301658452118420874771613269436916766842370755006903316562769178609254589902328159365299815458222078056350761440215310105970290028756491701834187223556501964082880646753744099438307725774756486946192689057922799359911942775765674743661850293941950268563556224520205175005089761820412898754024063430387301651714293665838677918879914382902422639547507921851273479480821026720496006711994769826280836618591245386655029461125557713055807275137908039138921367279099490784566814396917815543127371906207893686707103142080784723217195578700365541191489168804325364513595293639584268384225006927010736508847292035195623947695968799262845032934181191493553969791591925044750267446550386123864332194647986748981093814296230287136778176771971902726414777521727736237024746464261758737079379953083063903292557229668361698663655593941969883194196056449449333260213435851599945914816434503809797526761907389416473064833150093214816285718972410956536280041068793290225251130033895922993242495008539906241881596858283977367887304674918962037982967235498213803903026001973546609008963242879237227633324871412063700417969194955467306279297922858619765089618484087466526143271907855058299134648867266104921138998177608692460582430165908445211820608697255103590532421905788798907924987779013298880402417196448824753271650466232442262784533459024988787874816407722919316780883342804786444778916964252008222904872620568241605305011023699574806481802592224150794461121857512605056002188631959090734826348148398245127462641226224288164980426171028780245303724109261397542761628380961362602319555927121245937261096301830025645637126183052373546501610541428800691842660338568619871622750032805373014819370139717643974961800516375634667651394387135564774316990975230911534022050122473863183254396620766916404402560155035353642878846522127453060516324842397901892950656785071355276907796186469271109801414951406531920425386494465808254687853437740797581696270845694252424546580291591623370148253889839751931400672767819370497538767055412803569379464750462562590462002082119914674296860586182962929411710716692644185709550310148271707961182655494871218638920638455103234338623960116972550899306991644192592451925469297254287473620972484505526547378678670979762662397480393204473647561768749184139416170215396422992080771426094938119630512925214921024540403187431241239466627650688675868987652652192794684274776047343295560622036745864802854541114921364150957557651876695443535810377283217162574586083054218413986009167384264251923613504303397100595891308765085740865205707785394385724237359713957614280864136567746355336288341186334950264785872064974349734684389554277163863400300076658054587771395060900278828084099829435275748399758933562682453563648780189911207944530823314527916534796687268562845159548035101394132829720102680148500513583973309866121094200391374135687037885165205611358166559969999920647524931809037822765005954801490350934345536246085322705240543370573542165611415602059146612204563193214114643215755238994550145717362195828938067264569048467024397454966621240078367449911240070919479472608253452267779465600871956041316497782345169255451404219866734666631251332840971497649372210111758715831643930201842894847074432836589311700993144257055235672975512609754178237120354810210257281229524072790214438337912883089615524567857580373178845917494125567547949449245635240095870514573423076002063415351445361925913935429690420233572810726842934261630153437272753239339736790226982768721541187570871981433157585233554596683481498511899026511370481876023522053518100105390087052338612938154598592184667907617119864061793646667862410256080142550004722121893669864290152282285923466319060961515716493453783351094441481830516245267577483551598771796888832488001259314508173450575404681872471076799224236012129034707991712071840960111335708425140285448250307971938880130737554203921247643333085459386219841701942903905843031321700700457608905305308981766119809943510317761405221019376425822087686433055455324545359983822113517602102272960885412419011782315034802449833453679016831989697513963387141504521847682450148737421003395290743523038321241379949504899730181251381317085041313596740019520973305099089986312231865979404995592691516298570221401743724084593295184049417861547082519596041239393542665501180563801141476418204419643980765734496663636921348334911295147288394957298812321735548419071313882345328626075147434286246676274262466911141196624634448398230353088008471458832028281432765662564139668492764047808886927314160068290875086387906869808664690118786577515075649599175064075096847476025953755793195156856360063354588347800277802079645179205711166467423141038992246021795973536602747734843994421052086659464681994582200852503488059319313724151327514105308922164392886803062259906514575917589720498024090818242284904674436914426308923585668112918116077986498980170468556820545399609030567073847928006043229982692939385111919966976271140499430641958781600608807816676927407044330819330162786422012012508314412012634450779180821250585708981777015744561294026447278120903406421020318214215970854323631292792931099736539410589425708225376329044350631956042485084733737103589173283461886624427823011895454842189499599826039746166541152943863253452110166535135306086678384634013660121291586388420969756872223148854764808177173390064024701537457678701117372553012870172061569790407904772022788503472353088943030068970966350314300743605281420062541177932614996755433894116482776885755087623742427046705928908104272287199170625470750541754632346750724498269121798297951846339106249511753749996026120117867824568420710716393243095564013725894572575168943574843076240476145688082366746803680826439413562284262180767181618259204556197991758494736154821179246045692914488438257762355554963602471046111633757658206826557566617756516290521803769136722180248516847193878502287898373982871518835005282686218944899143231605681356538352141328300028411794143221149070328933305922943476368229526042917079147337157496613229083348217859933296220962344664727676858920173689575993055425815985175764588554851925813060265797385797981775555389706466285326441005281645432689660272688053792876358906114189035994794979740324355266866853566852174885545456599391597795024366375627404366231842959464362698753819399098238951912424390756078278953598553479175143193949262999268118907139841322044513675592602472875415313015949964690174303230105452699964607021157178574156112091580462514041411499859084078896996404163696243934901994800440208966076234121931635136827698923180204030041782208183705013772595646774187132218374177984127433354354372372825360478245268658984260188170371711291299083153241513553612958581892837022862282567537319075500001975160789799248348008875576927172211443298611918300361474789739446126886892989501515265708818881753620371759377815535956369050166900422958032346250801308320312807460794461034134617061930267409425197441476606451050203446792238742941995777366368621302563472614221093406299692311540749065932635085030485603138529875288046745123346557959913956656027760039434607688911387055025782617333505543143429097627989508945928311683688392332449499409985342104754112222520763540666430450319306213045668227347048583090340652530926440022466160445698780447384042817687546915506554895471200255718634057001565570304156353977411270680066805243003981346151364806293236151571687378288754910517394229835952847357780413170142551331957266245794181603151169685666216406121801635534769247869540051131619206111583928759887937272933505958911939669996362692657195452045733651744755009955066604569044427035662354548133954394627368766281506728943118439147934480905822502527387766195809185772639163518830722424165110868096174913345072305328521315401241516215499525125659541415105040451189087217521219310743089990225162340214037732763231948764024682983157518140577582332765856555233239134142555030368754347108859455812909022529572233970317895205733470884561627924804422931896572569745858048984853673279322728678251848535699201627546341126114984398280928700496352002803195279762669100072793514403434988093076835049641854081361901030810492622769861584377699361689226774200818607714974117716053328173338041968018940348845444191579535681209311471305110497360844126647770502001147105806131040646059763724089461602119545126071423073245621210112712962416932890856917586444486346669925603760312231230452677396040599580025056135468519190522415378051639014367531854193601069116367480060666581695357461048474363221585321612148627876608426503040714772542728881581664344333882860083099683122190247457980452851943184945605619307609115599370086621586322217024309026427293132357188854256710136909427834982194388630084968169890665231536580026829049182231142916290657536672833927931566418395552699184200502341683451149503616788722323409208740860979521114538184050947209562056620968941404313903334218945141876731194574232899014743280577207094139298739430078226084942423395282406244960419319411353738554897931105278994717993028814101832357414408795090383073646594732021421140894269806596572957323586486409855459708977701118307013351920906754290386883944202268059210219062815518275513525810879390821145959687597358341002511242955402685021249382920560616435893426833004885502187200381999111301766320830468095502351686813654668013492417447964841521997342485721499008903359350963979738540579594725149683431963501834377464552140525738078753341221094089092107780775761753314607083480238328465039133344839066832381893165340802096844549824499567974936971123462014421932318459991520724540160330390009610576754435723359190741846908366654880785895376806274284625245840563786224694425822894867212983934907345027381676907646429077581810081501619683933697015108007147741125202695685181069238366850628605372218364256739725781656466830934859358880644015422390100096105964114493310254393305869991749577520332068665815350113024000742940230806880964199057860564081922006957773945946493844841026858371374956508701995051713524124961846936084727664707369559552647479822255720326943755384704468254505599312804417776852511858391369070248993407535015260153796323271653493335186106321455505159863290407944591310327173626698522734683695759316624690361384489829326120602205092480785195347764400346948942162058989688284440298116991454341090801167225995781069730325163967417945882704291021840132786926849980193859948581750116837757913598316499959220411544796542007645110626751656522576856400748540933593963437461154450447131212573374173146438301925613555797318226424845576283392991092481328264661300608667442649409025215029945499857057007980620530520934371767480719006108541034425712211901146244730661339546451522531208760588242842618322926937039687488822330555026775968754920505264155298634424042605064155195542230831286432727270440165442771665431496606649828927481088390613989646457621260938654650143804475933354085375968706635480993541524219074117700372449359083664929130998691928526890731435610072606151746850859141290789658135600080495365915592144004548863073123222390476037667518700262068969829236464579929749253692391155898100998120363147511815374593374830380502895946858524827490560496603542148586110559857723523955700231337471424132324290794379216621676710533171809529731767573627073920474592047537643724740100810867116942534661724115002078706435571143692233311405652218230446042194232899047222715909114438883927075688247826850730099273579629650834027746383214286125102659074032280447232895375692327166931263030567329416238320367158081356214406144431106929890154791610470757727905352597052140581879154593774898508862740399691775520740450574543265297126007471827690437715057622970405832704021531032265460988687389693122588364602539913711484668207018502882920493657590129546213964783588686859722370248917026256489464616380523323755651720802352262761238667782574052080563155335512337332238986187040644365456817785855607475336105229084984245022477192412112555627079307669744170986167954835796210513416531613094282715507630461463470759971123760467351478968026252506145916235897881906597090757346815797464864619766420172573550682564227040467184892839035750356981872522950462637740653459367053294828505650082400100710926736465983663639004218265381976717893699343439359551286308877454007778250515900240324695720194179880736460794094608817611576744057203448788553174783164012518106033706306114441603172886000130497633354589223459021025071686724533407363941420760181205097192239164076702682105563020259678379402427745462191061542496737916736940242887664121804823241570865108174718059015333649393229955071109372663703520181873594364524605581119575694516426120853730876311561563414008713830238696632663802944552588984803110314968105706803065434730512224930610303328676211324526126633860839251650414648657678871690903851844016552312148913487309018801268747986493352998674179518311263835937161594238248195925189140862874531362973628297760880460433770172164133335620191499466054214279658741975279354067257523327256852918483565087259972693263908982900870559288815642741660172208972293952580992854371087596167964491482808106243298467843215365480397398182091701772991298691443561685814636856630811764331547550424591377979747352876130457107775571677477754237709324506327718441674823420961022973344057497064919601739067941303680699670389250041308236860598812455141044445651176742903614824030055210648691933242918986384153257112870568226469427657790480809338662717685685231384371294039169600261684268153427823337204195085311251711874045464933213487573231808042945872634013045380558168541495898639645093724788582260091365718984119386047325298073493769195587951557221537762593810577462695271959988828205778421927017967893144257220947258334893648308173730003828131236765054513294798768060153530854656441226772646303910900343260393353527683450742226827380352344494946821423161683201131121681376458351410533475554764962886579300515633740678927321550785721276710663564132749067204141910024415386218896849797420393816253739450968665829011520011323465539470911645091055912310895038284005690180448071662225953023865818941258613709738733388850519377708447677808524263442503666627039822778944812415300725474936939559551288486376372487866403231697915151964422978733229982376030352964581340339896316322926518258011816849049438075339251283069578176106177320029224574633229823223430449102214548595296964356429104685230816215087175294975152685022874083254285199269009442516972095747612529747813401899959425820651854821993379561587859899661185446218434803015115156069622829719356094940359195520323106725656475945416878390044949583503346074751993033152503836599036917191365985635384159335001418831543886577898508478614001224149547176026534591141052052148344273047037613574080580967984454883479126546055553124495494816729985745550178827019811387196761671470148771480990466996514452959692088087885796673194486145371118254737369254481140878711218237830204896772219992745062164180921866155159804970063370127341847188959651536242916959622315438102270481365916843723108985999468386838407088961396748812998165622363873423310430229958585568727430367155421792588596778692585598081643399591215884813055325170478257806696651956464795408004329175049025934417541197879211698488950082895638940315426415451638431334396689498176485893784155329292559437327982967871299959041485262207972521587519314124203666064223923284619268424666394416462226721524920475577771208095083905675096637081607284313777306196473411391773525669040534206409257476689631625449415117850087067370688196971979658771706687360395096976723957217804554710543493450917998457682703187923599158557144638696665494470747348364340157192287153732503869199855866385546410593293236725976583449682169090127141458017803709908572496839977144391197366274162996109600499249089278205229636496954249077534100545958009367940848146573054915171387158333428403969216491075739115206631484598074351960606307638259915101084416685598956139222871799870018143570070535115517716776894388459180247848688665935179186138956960332610897012465664726380417211392787267220150704863161043557620062709134198998292544399951674847556445903669747650386602995447460956292855930868202582237597736187070016980650850370898967482375181574450295033807749586437314120515711651868426166197550894376236303243725570797138140920974797345489125159850120763699976644450363275530482118136063581547142393854022957352124814797355801881480918768775713928534252532820472707785184635229705381482679139636809933134353594223241319485386659501576981181872793872528612761124514980169129065194546223999150359194832281525738433613212990481072448252840214639874307016139247101889835898050099752988296194188348871161743330300194502465974234442031427376766832112123664261947931393070965514998807700202523093518424765822933361340310176745628612892970545055245533524578338823932231717800060763097823430555144162265208454355586692077679773298771650635130066105786741967191794057992778130634559363774521131681168043358304943021331179638016104098635142232491915011580588350185566725747435825487024816011684204246332369871699548013687858635969513417365114009923033407187421032810852024571022768377466793052402032186908446610143841143921540655245417689373098843143333175493063002855327312820858614489011266016872351784039738299079613844655535819969613630020990253092694346045954056907531975852361190558918961728271549182860642982143456474515974009738955363899109517749552908628985045486114653666417371041237819930712836946776938799436530682377176068514530200249465638559398041725490507116930822377591600454101295020479580809036324451024906549587783643523338518105619609245175881382557315667421000311822528000525594548477543650897679870642882234649702044401702004219443504508841553226156623558408588272101830411986260413337205707416199402015481369759848663359192517906157611459237141267897647576663753195317744071412073515325165797134234569318845927780604911989205734742342261674200593164494575511117527035364147146274182116672444916834456114307118804730126886063032245796083788229409538153104138714186206210690970299612363534830262137133817580870503564729202071973833373045393018483067781917420320060576938329021259369819891030735452144575148329490721145383858645776011248996853857302363205359388081565563025229102132583097185459664067627592728491585153763516574162892686796835406312228450266432615474195506155555349418552172142054522094579579684163850330428485019953905945375874875229120500900438667608227549629863120083524691945528872866605126670373825219172608149482225660593840668726771979565559604973849383434330278139150681921283511333307159895322674989612940776143429500478018344342844337083258608881192550919054339075560388366913808369449116077710735481734131354526219554609592818321192102769620092084632452880116455564877551206835364702501713195543579337268846810146390778109761397574797118065466671724728853042774409369181537625382795568453471650512951677987409446849407335498267097769746538536095102519609757774199849695245869497071265338807006823096773028797490670596822772331641710792938793472048224305257940815246583836364123373282250522654092240421808488196003812999272028659876697857490728831789452109084869506470425336857176416780375401289206732771662198534417322155432374561771001131863168485449284328179973389424501378437695126993864290341767824058073382525639807374749751445563172296628261104764927033022364413321160171095195182066877497256388361097270657104977428985922693778469143480225665899594960759646693390461403911332383520209530507531169072774667964503486759832925867793000700643682604781708357011749621996784880709829386613448638810298306766685144401188375153549181845136092540341889552922200519478565663720876798654228595824078585870288745769727186262388037233436766401062974804259269820346172622446003049670249076459946654300473150259716719093926565855885685780061935379715788615851581829249729651171730497052098400355455909675192883817275637731527159717387203286171781886384250193475432734440377381701343628786281636904381294570880152198136625129410644983644159268483497979987063155139417253998401547017906628090957515416786083063278752712260608437018614122122911623950971943387791662856242895299636441804915695199833517126507624289175330141298464695910344155615622916754289669544387161402679142864142082833054950822931899896951618891614489404635718609159758672962503586906715799126028112090846312236831067266581795394432810088697774116215704980025011989599144622530876740989969749278467497121992342389210854824602176745818427926088939700782345063083613395456336231697308244160915203343548698137896873667883419460228938625361360081773190388988942487710401858803044424981018001339303411983945712880402520902598325627533644157111103915426922221198978405392223042903684877001934711043736346866075977370592531402664096217704434072887067167168455894066548978357198436799036856006361029077112484797396940309105675643785593495736282123100581395595134878009998936863936234091734698157401759148934883201429949014178062252875984199306588741104390446192310561797339737922585246170268687718717292544320328964753541918257304271814760303310691926869924256667579211284694038447204867353809718889461979875020806442325690988443852166875749204496039235809891053375536253577658258850777868409291882655378719430788289744758802948393169258322531534378373660196379748187875611575390467664787142738380139328051197431977963785943346498306061030612605138542653333185406395301777605715410430072774279372641226125234461074249195149874202704107704970090836482549003300211292957250973098278110347112474355370804185535466919109429183971164364256583527761239234895952105028859795964428888021146561185886143978947554085574329767496333660656717832334230898857339673723917893425156177110711188222567844548201225013242712092472774710979091354041783470733822382107080487559851834406937074009660213999655699381137915452670315599529057424935835907415497920588573524105561835975797185244371919872730621803327755905058541541681415857276513918040533430595381618153920549059340755049570104894988868936124982472975042329328396034125071334231635274472543127240396057008251082609876144690609392869386591049546853895344449944858391057046836188833823955487976566164926584158039303383938635781969861144132225052566350002465984407894734049477888856958422914737032166204266855442117057585679799803717949420616552102545043689769925508009404309879750513055007776696357635755042233533081934477045123109395334262527297304353386599793756203648230683453718116361901606984125259277142478377242065238289410618820961062201160440921172092395653175728049260313649506057689380222051226641368110199002986677722800392218568470890990818336856914395837702157095139372394539670901883786576726286544378156691096297646619932591118997391324197748917902029268423439583579197150738507403842864642052493805020836495710122809041389205441405724384463563587257425468168418597268574125827046268994797828388064738306258902178706112552629795257181683963505691600254537097370622411576178468693994842297226517933643868657193757947577622191308785110668758251077646209894936633216035845522847307412060657757139140402976477742249904796567899523831204443857699812774584130486093826564466721950404943321261575497535851227879117948704429774750581887792657788292894159237042370071276614604256161178083490156728190575961166534877184656158272733432744743108808039385301355152566736568023323630955965599864502450123222270887316231421091594209969242292645418584582723623397494699133948438064309699159949490841266846444761839805300983848238779553226909373460165554512594437836188927515686075897543893095756085553683540186365894664696858045245917847233275036146641300129852400243479924471372416888067907793767268973014358849389155567079925924439902695858417618288568448345155852831278909885302843399379302931790727351430400571384233048180778804395488014482264479558726914089102631795344838316298367325952088701342640256434328885330938621039943687236338892392825946662302850987061660110611256315741281630828168965799323207540196684826061833391317460037153519899432379915745349856461345823541277702380741827719108498901934824026246168550820918837103652916240242827977587547857232701299023055908146291156630569869236871977947648222041624997377054889110762559867631972803822540490300714077487602737440580803008495452408414655457682109545044486554678283173215429100279745686485838251525007177605114552442674180972554120120365130839903138963854231539208508090896049892165668902839464011926814266789678180173663338590874271005936067013905620129971846768899298795808788277819212358334603298378994325543759221810854671876996975690975888903161295927271644159690372856777434469597949683062876530294356006347509996718252061729441107262574986806643180036385720412340750701618451239886523981919478409928539677369849709146928963935270068914586830518210176447087994437317882119466541468745175635181748499711440878984700815046300770301869337642598569955581997852676097265996735060085631388940732903324372277992704142317384052887612300862585002390547873140475461088466764883202209618499109045250215492387410900224997396501363467176567635917499299907699098847390646281053081071178398847025605829974372668384483986982255147644816599026032645385825786948521371687604968587850481249541866749722043961456928219887106576825134886532927582336138306235116094504503699158545689885432329973745914107408633805589198536169253440806614685871195160778932811582914963933483782915770450030241411733938514913598877485570158126235406087887135168677576282553345718219165518938011472263755931394266301171237105935755333106752473918135564607992033186993204175948024181903117129293612215273320531299882352880171368784884948208374308220843181829400973196833882520937534281318802646511350910299529341530738598895118621583837149700051332678639244457092394098398287401976288628059405275162662261343985263689537202765661592963978734877436561714719627658281946133301795155679734373427676451982427457211293724296826336857023124488308254458342494800909993047106046139019942195985331680387835572579648635370824357080617382381426445240998635425878660914699938801214958593085165158076157038252608910017906006047439704193327018002201218065843405990188233593385400423150204148078351362973276874518586411116795118064829681658854033231156455035358503387391193389525043766824040349562384359700610170365865012278115567296906165911558252807762626554246830141760406503346199791491007984075690343036392433846275198593192449919368122232761122248066979148763654969012694399300049768305102828832097968791860657498018109177312581731697020212953336693046952377090816191077642624093129242412177888000007354827586996966930462151284347370255687731228738593831259991371551485189251459534151784440739905147106123581785644449605626524932872172296522343438182613331732517364675680676985645459248043097001779015137377590375826844841203198824337378958057939473902537321445282056584131014819245348021937782295013135859699432938736043198673393755787798061152067288368767889158603060884795753950445248647852942866143120014790697177015257223530770798439398906265056189046381220980322406010291510894304466036934306269882644623985501778125856372941118543657021272303613207046869052158759949306636897452836883098518093356167424680076986471706955724307368571722012873516267601014783159127160736185550492217345536564962426385066471858075341816098641795826367999307044362273032204592441650119443502895930240142221712686737177807920940267311353937894273847747942529133024850663501719848456955101843418374253283537485718677384127369720065531054785698246628606533682419929053935634669711907148559299225635813231937535197611624009540767767627407372623749426385970654127144143763376135634910597683614071470982231875924405238428674443289142726141457415892507982741246881240140802796995410485838833524528292343932186936988761546683420232857555530966184280209043239858605034481351616417534356497684404947502806233306112373801367491647996773686508048349119257052462879772331483582576189534691050051771495609869521460827783254932799552059516880980680697950456758200125600308233030134839116075584064195566253542214066897049690885119153076861825413559186744609526237970598270926038428159998924017446163533419857980838905695634543735350155052492159366668898421024391054819284076410368894411757638460740265154075610340051654838757476783024087817189947228530161401490356652515509325156304303409208017300698072471416269829126199937080241117722615208324583225044644076254248073399041654772257372173575474598260473617425687683794421667785828327652285291761353327604146908097694113132300238978390623260619952964653271332529711425970151357484021838290427460249004009905426117899012583278709418511145217248544154059076673472677741483608113413111894903423970860976842488094380069548402197867232137630348931853047978016565895368745326507896141958265165591546272500258420331934142542043423074136819852190183737181706297716974904604788183942271737666403781484569931646818140808290319364633835442994571640006205683151449189925103257082295764734714332574594158917980628626519182389325132899485194851479156524552438597153201461725913498346282004710579872836160832988957734703256312100676840128683221858981712693413120568030997470360908413302573454252016561352207738805907891066977875040500220578756373869710853876417612983965231200429748973226160466565919681300526529805130412977112571626339643968768772277467320553516709120373900467687946833634999693972467687767335475534567467353725029767996004537857219603968071987988941092117933161482952724871637952634996862118698809780425764869676627880484659981436916869624259390655555846798012575605141401525413321005587352999703205301096456855472668218649537129921403553425006135881734834332458829029466175710196683210533537205198998564362773688136879108304121985590901605228805873632578345702452158873990413691738809142519971370944984863986226029189611113973178432225959422659802480257556265260791903047359248047534443339001587323824533949307276577882866375424917164578299198786174867526176458578313347188166635942709485895936652664342027108339205571769621857180354862627722703447047211674908663787302363772998075531774452674149651247687772535369191642031217297809376256262587362391490838537541344493144680142669980070543255113640449742073739892581626670958294665538035162375223285733632592727231217947226083777162286599430495782809418737845367662076276417514211889412864170649525739995345280198724018588147673752488131800768128502342300395941820968556292191261766205068458055523580484553554818267303020254468710078001739428331516151007296375881963770582740866135123078837796683034088389236740726525428676435600368746836367792659734693305607782009245204565352306835694721775907732291433892085835875826551677910387854716007239141071905519841296528920651939853789696632412541571193486550408964079289844388112871930972918169257514853997291586828457242224519448682045519081018059448658208388884452994788578483568774885771498058266215955938654605195189813250645814332127334908598865067985378156300375413888572852180736753805379672447660373767701379923133663581336223782528188991314831827109736601626948852272750826339936944481117278704272060030199944544072224401981397024479756500604476720807391915804846979907852574160603475472008074761314991741023867075868641482932269440781849365819132598412237465188345260680231040504946824726678116064586878962644898676378057763896821596824996491877339223464242037017786639085297215020585059262735275625348521177268382883358433088348594595325467465501295562393676259118172132543916180285227258209018853674218790927656565292418622506934037567825865395797881657221237187582253167256537323683902571282585242420070809803158239831818161994471789579767668166722284723985272742189279725185603046905338376423224673044790282256949575725664879365930445888990357953330652246662387260903344241510503002084980569507059953215515202444422236191579039155318999620864214489578710122078133266992899151182511632508040375219063353323604905735545496378238963425274214666420171830952428195131476854905636069873581694718779983377881571653109233988965598902809754349892340689502435780966175293878481650387007542227125824879038082520336037901221728380891828268425251502093988545355889045547681078737703388767584193125213654304662498947733157633157451691598944174987254261122104749953081406177299814204476833870361435787393257932561669774706183471381396046253612132538147670986656172886130362966114363749132153776920872648475827979850688599928843039458453704439420039069670680535444872333123592316206522767559901460332790610671620801533484580280312682322868664572123389020118343631244426804051039833127069158606727366774237306426696471842391879332527254261220905359276061407365113334084243856687298269936959891389462308475763858156010938734287641724646836511305426633913100689658452458600675115045466126075415711471881292620558470025733503901137577713992512787979817400996232108052700157926086911039356585027768913770911418345906806363501996865086496113752476467144781023975706687538293727103413668265562675682690205169737659947558742142501838261968255619467683883922986268902983448811688309795489283221774200001600262569438484649426683173943377402434417266185158761655582661201177222847458367595472876318543590838393049799606024411514336565040951928801467303656583692892603722214728770996715982382987958222657989576987170372008442051154869838998299468805775699473578272030986986564244831605108224346708267776943920763341531774181036590340990432754222940030281314049446979161816775405902618314106495840365010835601313621137445567956307588302570733543412698345267607055491961033390550077818780735319951850746223144862126508649455346930095960555852401295817723062267474164741464407629692399173869146766701602703658507025828443004972686039204359957558960284561735596638988524268178316423774970265627897057812040199069315821220986312241723654741804300061832749379561371793822633473478175201407115028937387343632879492626189764210137713841672795878903131123705413006185373967242023501514111567445060165852729881707815425751243831769247950573407811963010478715116188793467610923329155689957120401891648560920725705561028176703256534164476178687456199523652571043266376829426666028941990569732573263646782982592494291307405115802486549913923414499673877957512719415539415146961194868562860880365531510454671173650874329439483498683022435699057775681987480563975542842321923052108341757603909504548426457597766127894558006921997389462259607221622566014867483182457443125609265089816339351795604307907520143663710554911789997961535373145616196699541907237360390053971566013357350521516949884641386275181105528846416877623435768285579603162002029143676634306089748373185147681761851086432113324441833982481335594434968375376318961603929406509539408823281277483319003358051665866509062281877286481862838751533018639961905748981861861725658251416333448605432177209058029215220359826374709764851937672183209174782511497327637636619195588073690107797334502798566227493959364829038361636608298401203520093580989549984645509908843311598851280135947872855906569579550130997319179027265594187737852339983357341032462805605361306939485699005288848349497085566489140454863587894144648907984449613487888316807204378629401335382667257008698544759435198282465723330036238221133412478587680049078186677646732261944200633945721748506485895938323484672103017965222008986975271062569654829507652957144022108694622721270314618287961540603391736830528915817212653079216838303033946624075403755970477669793195693372327016355932633806091807532227772901698948998573214306717504645546244152123817189252964001585740272935239149497745618897812101100768693526998321614047756513290200904014230153281144126410047459632810623723361843448701893807288313391545637845820831517500077879709142487372389927214856399380025914310982464660034027033977827308948212670618289032658735179668192709939461796564242804687884082503183809411801097028376241049991649862053772852714955005942928635345152477735176160455114836895572691752718138398452777311765467385373620373466822816776757778326237262633876825463605797695330271457526225268287463120451619831283868060791223179780821000616699934822231280515037260095002667914357175778962000884260217061234637433690240073789016393471811781157043275322892881674409015345029383466754198040991598627284751741551656512784686108849808154342075085059881384427669783386555026528804540907760391718260848126351327460885362908628486908944784992011418800427569008480965147937115150520947908724459538880997181737650873865105992604839675147341454504848515728624780952780535140694207453946066416595063639867680164453486453934048412479519386131585377384160468503274082840029272093790523754336157652506011964978586238831238553490397010841583352293218814832399214332837309321540330787218448188706131285181155449867879888690569276124272679758796193662814693636475159109631284628918185509409686598925020138569691160415325228947325503370748540710063251499559360363122223796805285112273883992454920950057283227745217226732247689656673463165590458789689421057389847218137512542554475910272386993184662456777668508498003130046166141641501487660015738273151232231985356524111969330013324357540968906381936407687620048065633351580747784724689725930173562827552910354366677248017759524279937674294020718714960551345246377527510656460668831776690662320576058371993162011328765729268930705647740380821352767643455731305370668112795334126781978077286992197720024514019870561060237766463766589838180921234793925851793235933519862343958546964175993515697156718549878037414969654209082636709332825981068154684301019920972556945244980957762911173564346049926982213473225589495566849313063638901588691217462878734893592629648878541361445517663849802498842283904479151470072439370461074550069447758560984868017847696794014877428905995900955566072811865881489766226445573689321749902619861188115428749492859107533750274443499031502174764656495190428007969082200369267126436239492464162972807219370454076479760240591089959977868998116161779087217988075617533656669417204137641957793926818616607523959407855812689817793977334559260785895068792587571584697327210182513973412194688179819063623570775702000337386997015355448195308890021297433428327716955992967929599123982143471551608102947511098071360068280468483105693275636929130582019780909954455975001632929348442210545385890347207658622106849853561550672015519523876556408639478108976582970883257790103392613157912868115685891054360834411364997542063267160088633402807477596541933956503850531215298662892971154002512588638241697856399824800386339487395986174006289734612457283434490406836273026572661576436463556752428950607944609706384285232339710689302227131283615693329289311962496671206626082223653148898174138886636734205569547709049851207791428674214870228756505956674263264263896658005294913977774140144961986181721863905598044650550748164485184396338162834919425010725969763645739612194892037545459986950507815856479917710471667320027568330185705977656066424732402759928123978752436203085820801135588653439797342898540634502307357795647068689132898334631883565255993043610881751238775897243582634678989841142676373729470810592677834294209557343710032828569916867497010218222504491872756068168795378907816204877932247414446044093176421003981229126285465569777824025039472036482155736298552727135016829474009807093792408848795160698794255898644740255448646322149314294813577163040336194238220555797001382010154494506293821888191503088125660137072921246570796467459969673069597132499830414668971355348665489321446540905119770175065410731804552002331718582414152896568656990690595641864135995508249525732754550665020964972041075255755985130824030958724159149138163419676020221899022506509199446772260864172272938622975100269120944851197515300285550827236054965920251046732850550884023984617269135650869594528151168878944073612688084608708954203730151338418822550134287028750894296425711685613312429951459597677652323074480681613816947948271874924280160682553802032108815787199486031897403356524030813278998806628393501413569778906747355519748402000971976535794946843295606546856985700626785910191292546478100111344059498779873179182437853022109290339228176949778339671618556898922400490566027312123143870642428420183187078624849723606686102814270817593795066053447749606212079337375279282164527630093180271435806899809628123516171870225798795937563907578179934377265328410228181179755207506022099446609477923330070642528391591087865408207649692296724493919927473347741474822858349325555141667626687488803683501466668421533084917101648886045480571423931006884762054574767527781776580957699494174458643061463860640306248539499657612693142110653377722469265180754946073495393921579317052815232771574942632684608710671108298744145160378239970284467926391142930524287560466971899443699162550470012295181931968990329783333718503153385496688052424202964253296704962858700436942962848616778801876907045790359305906323896584067731895376605517388682782173872748037092937340284279446343477724942783714081503986003799355371698292148185749874895222270543283093329391362455951053196093727051370602806277747383582485525016571189513608173742061091457324363209450330160113424319453001335739595240312592647172494513177730925677308395095658060855338881317294225760616012634501131278202519682960704196162047206446466657256115354393377668487778414779350508769594011958751359870124509313995599410408595023643000312389959631358483650673404602475096869709733446210690517245247370736461818670624286356393964644481548867749860326254113454183144315187161153901890646979039405729676669702505664958871749877346764912480744946283265726078505965627747679041385490906694033425911041964213181692560141548034099221108879033132710960506418918235003659568876759871620090517690370838866336999131971308015668450122300737380458570268917651603512428301134147515028685957374304366327249992747931349080145959942557327718335793305293590937453000139709928717078791227339534309351989697211742868266405813391866384911930466395829612674244633634981584922919721590076142436423986453805196674054657825869822361945257546144505254288878156952126672596294365892198720734732038770890276853512691469810639954805018029769436541725454601306338818579852972805912375864163099718808046274660713044333368549541067015847328029353416241517842671398137978957186781077882597586230989284474190127647359932401159845885826501847017128033209160682938966258147996146542434357606244330935252976961338450408559696119962307001373853719580200912169256601443781160905784323660872524524444927352649150832396938295300386030496006349862815467306843659933822187763204313103407506452898819821927364840726295931876603434348779559555191931631597029855617312806599235359709328694101146563759837279446560042773396685297199045750396419235858889238831855526372145721486022244786242780499712556552139707046787187425034755031591000457181803576012382360969737438342650446080590290486959053621170425479397245787233029736253548413160337380577424543551515164330675388698757085489206442419381884024373098750288292473371640032299350642711688220917261508847901630536717059212388956235552784250492491361753504271418635839411962816178502948095937606424599979983762074409743343316802277437144506595479159590310689362517784316038551519986733154642116838903181279782668448879458646915264567613933736377597905546478339520897151566416540376680038806311763134767594025507606933601268359782557938683222938848832469339111132088860010398638589996654572569865207985704729985224948816024654012269053540506610295584330891861183942522222024984972028597411190452439919059206886901035272361916475878267017017048919478338992027472599139648611943715433775680067185268181319660132995452280181202148997231684020532221623505254981309200085015008940356278216379691063161659754425530935927538548615458372181223376460771507123106419525307704336409473837044280769123106723528081931136688419018460523681268467393932679009823497221684816307791328814630889067152917577588500528748443462612005379807126558629225831221803548813329877330500742841920712639811493577540286370466890963487458067159012755300750508415126637262873868493577437945762252445583330391720480428272350800831087644952287969296451851098764201960878228151303923856636180088482784189203665498788926407103951524551338709587915530852455194661545431661072498090740479237344655465791451546825293937674657613982790769245719421216417188588676258892168049108521091735103181707919108813052591410426061938899719568531468225119964389496392065056314286202217217808102525618238984941674301871190693346831651359979648530155921686314847153897636280566921606691786222542011141260250555188199166672383867584011730503399298882401609190464031542497814419544814135332674866237471737377111309484724705988467436498447749148088786127268398263391189109003096209321586464302273607526482784329171626014140810977816722386965794727445483761527236852718700621439732026824455524018126278076547858496565527049426084099308779001824249020424198737051797529570888151807798837856107219326387717657097526346415220510837688477875693427024417428403552108688275604831218054427921949672424739606024935391641050746836812444521306000470004955571811165886035214578118863076135204189628168429928841892886271061046456180999604677601015356582582445020851683366973585683096114636116162856952620983541782689532010228568810551096297159704414243463084780569684556549555343962166058592121004420615466803943447629353771583488005357216192750941182618522866166254446025669073427951483390083321641363917098958132095342066748809508862774722602062181027106013891012345283037429477791894721336857233705389786803540528341859599755971227868682441743110073223024415308247944916825995059445300783738152826892259066541778041613620353542750003199060905160711040219878222004375945834219753009995831668768387211561332232664579475115331893765154600664851898631981657328891922210220862410164358459248081941673628092553111959117070443759902082456809953602599709978852177551938809373504669557372218900059068147374773973860846967310980282028787633530367892811621150503736154028500366797289791252133717743805833299996811416505239771979835185207580375874622773611230499702737610742226326325609797098839069823831506201781070844752341810315506351982488819598243573542781340962352740745665995466027563042183873390442666949953515012786730911483020940282376950569493825110750258135405958297484512670174627631260161495520137416671265061404330376985887405646863160867831632114777078125614367015596981378767674987264471410474473932233135993596489639979189783767718143964715421546408469799045447620416475949505501677327284970758761303632650134732150223789810425345094057541258951115237304432295995952743393404562329136921795084135169529763150577850204748517310572510349822354704243505817901641554472982913769765063404001211665589304098885633877639918064288236471402479097933430488917721741441760291713717061613535249832957578939301512138798680427726728462859452113090715043994720896866748565427378958047252814605115041648230108274034953881471080820097245530472970767876186589233007348070971338280215677738499983517388874650465065404826399271469162096230573704533070974391471585475403439063202546889775479877023494782707909939401185735963446588900486374460750038074748925189691527526890731028829030911823254691787633401664640985727149261816576486946872384759208409099538112496702828087123322881965852546938557543144454092538693694156022419578070753410449936660496327552261531687780144651182125551812298618014939542433963457590657765223387350301836630235905944834607683064005253846579782372262657972054779136257446120399227031882945216307492472281964980676911139742391934957597912769575785263472632740302266446737149255136709372425500864380567048922192913316525846357171512666102672607455102502953339913233161843212743740765431030473250242941866150375857474657743295008577771553534412943993745802692976726528277166120001033327656722839056376874482117707320751107341153086140235608990018369306898972332990173164125694285100393954111400687487550810239786739811006354683497403073521014330193632991494696057409058794881772630307778824908372126764878661733163132777223701663375114689973214536376998840937684444998610843693621619096864581116861825081030485824599774385525730757043993858631205135455878620087469937796881976222605352397808664245087501742523909074538770004346510247304011659840937423852183597450707668584989042738059251708402967111239641162598484153743346542484317734384496169204201069251278390755458546447655529285739084349338431845196097633496074011873894007021283778725113296497965360151496827990151603815980040916787582373012367738502885133690595952882824749515415177533428769522264170246583484003408035572633054457642936850395260661692305557352206463275279537696141713725469677412614387981014643764800287930047054357226192481246024275075448847859546827988450377376602545084519867703905154396101389983853145637873771356914956090804006782259507472782442726103966200885337124040637610571401850804994862031221027482314538597465454594981428163061004779462631480914978600953789752526555055152674029886352897473001989075195311510750898810337710657693454275216746455966270604048806141580430629706232711506390318348077527565737911537405363738030289492524121349651565660908896701903707765151411129631199750264494341479444874544092448700828234908819524504909121069568661228983461951190871599620163722269991664365172321002148914933144756460015563926732279332090225148492759395752765963974345149007884593857571294125306410335539874555356620858927528232752115016295594346406722012000975773198866067650117292459020919160716021011554551300112109275976096627050599107366800984295037540893214718333314559776009103898365037257751265989229631149615675687919888318000401520734190098335212589666721256226338226167089454457428862672958356434687683098502497579605124498580435841653039711194404209580831338316972007421094237864341681315084400535549938674811133079622756160445521965352749083611053934387577006228653602892511663920993684420512066963098228282624689759666486862048445676247792046339245509880849872336045018767662203563829532025519388452097054418137018605533249380134078398016888230968676503857378575619854427707182749121860516992801500674983640046111255184187702813051917515723967601669372765006392339735602527224776670765683218945272933831028284848859639236173156160525430263087314949152279518186540904111315101024501802055142867589869279622727698341326866688128950602004495366518863907505492199077920208194190774991751939515145517155618788527100163536405298692736626719078606604760695071411143036247028405661454053396861438756423548857194704542130420054000551836743557904461673269262735942402200841485666956000686637674999655591865002582963778900355617108114295817394368188154885537330124411607212681218089321064291771733158689869230887995567367765120347540848839446256316854138135299549251915347317504719719502098776386820785942135010297922872898829754741564333984771347214496158224026577495118270219968785482079531533278136502926774044992214927559725678788782063344171694838855710973666827607949554480018325596861968677614380485386372804542459594445074602063197226340172858457082215626693151987016962294551530080398603863632938945857072567207340261524260127109892967355766714363449837984530930123752488528278787619778395830569546238191824585295467342370670829745853490372573575551063323272450562880640999060431673840349068355323123531519760804872199032008762187362123754209149522920552543020784626040628864752793140983880907682985940421707421485620529065078936686393567922620065373953693627038118115601527658135440039112770265238022715397461328998411558734670455442639130048521750923410412099671193314175293665807412271943944479463415028088671819655433224946659552720531465081351487623343806921785192271600507866880531444016793361841858968093453709470557126955200425541447095903718251241897741223583716416932733534842582042408021071014967855930553279256071327878067459373112618279254018953690684481778503843909267477788655954872459173287525921246139737330641874659327411309087439599423967280645274275351608026351497068123633574271946095605804755931989737982197535602812133388271899337930818598775820698100853238253025331722353793619602274408215017527293446686349036417923593357406833934771724509543652902018601809067465185184700628271687715909846163137918968963250182225522626136181641081281026426671553617216091235490168350619595140591542955301428993247415723517058927740605904576240096122747140198506643205011930324225056176710710336581574356006806575923094722200708777289040228797011818719506408049564352772660322863950744170378715427887433736265409472436965633254055714616178023965527373012942581661153977011693107419209278996094038749180445317027232688539221229878712955295126809571477686870416899857956069313340992399507836499925979933329169652071742888826122066964732094847301931312048096699047870611827659687359450543994411391808573847809235844897662745732230363789809073155774199952040269967526111972120228140536443311938187202657505117801877776039680752256070504081754329615806620899219821220069909543013710237800749417517628789135365575784456282337706767510055165691347937289905829586972775426100251168057537213178047756504993769599036732328204704267603713596782673791200739004608190203977009725524204779126274582012738118775427238795885752183858291696427501002323737354523867706089022652364287577022176161020365201611564371665570905515280884731371505330844301937210429452291394647589487108694731890366188388338299860377031912011638972592444676831612468632161413028603414466840020514131425711014465138647886208854861643122890706091381746597943300208424499680784624317264082144047563081617330659711867728952166405604560147264260585396227159758814996764673297112512372062082723647255929302828606499768015496288499335802528994765010546000596453532132268081673647425318953982553980699849206556051441951953810232251624199903380058395631878999460628125898843144121961857272169130257958912874419160808982010482703413956805932498116885939484762364900893784317394220585739200946655565620369568145864019322667880302741311930959774743616931694551165328634918017438581786375844037320256580175429874317364477804377357330640226600940171260649404553900246975220226516315999177268523396018165295377974996813429610109568006575642917859647622464731316170070297377731702401307189984118058106779571126174936146333544621756850006567746346387300229148362008459287818404104971518976916065408053178262337148197467596639265842844654487241478024718914886299279881320456222318756919747315978858135791464011091438235415114508281411330132004057656883252459871475747648610697223556491335607455965249753731905316723506133406081837535486246209417270161968838632621097375981992810003012238234754020775121007214159612314513055819188469000739425883720124074468109024148555591274546287059913634726845782249282992954037441638472645678793445821732559175423487483246868787579755354341166421489183830632199416497286606746345764633123930279484024687353197690072387160035603974036474942364809584300664868462408706032369130121410258581543508107801309668241526356043105481706744871310761261939609324258425916398903518620947386752152232002546607811807780402289879622141236598714543535569772109816911460617391886768330783974439528119486388343021820503486200832501618507978171566883780272036700807969138637513094290367802664403373017322979623451753463865953282738442653467675540138628809140918075237092856268005558094101235096881956793942283537056515104389525912003985303211114211008739889334956966024886575280021818424563775276671449295044700389282738382716270055270977199266128976337635287208489444102032007032320859166008819378283671093300635261320866946821598202781055034912039059925568532402169415156300989817166344336634714583655704272258192215595960252188389194300946662235571656870906963925289394689589768601303047596186958142178955141006746700748273770197711110445748506148018836307341078258403228680954747157317064533083616102822538529959571950766915002505056641281714479762182265339254806780417924475818281457923075571506503290383584553343001889502244565371984233110188502490811269165065888573988616261824579516484618653589367717849686628058079550991105307355343199957293865313555650749032412881081906410710902484558514707005335918263176155150848002204218842634494234797076725632028723540353550427293208598937551191699328360698528265673432205570832003870372441544128272620016780477083758123959355168257102537802074558576640466200292794256094689716082659707459852152605179228419170867111169405398764206252356912684832415804774614672003981513837271665853753443493381678209738470212596453098493195002795062359876139821931057439516372766120519861877389007953681076174076199333920048775313408735608994251160620608406350446066121183188632735868530676851107282428319092487452611543504248894885144128222777869873182601145599156900360000239945523346659561531573339544224057021502388141483693654992878385624469229006892302575861342166106142219489161481164162450482525016493337442042212738466091344255819645232598331986624982652469981975099517657368715627491144173188983081527753579333181170842815395353115174624245137094516828805296720957086830320976888894275106930008827450813734338267847646565692332045198840748905161624504661599747763648525770141681865508678256266608793232962820434753959495145521218408580241753452599116398647457824450880721782419337542500917863388071345869824840456639653043663195698985147687330331801114597301065289604545349849083947308632943115271064190178634177784662507265468799658713711902902713126816946570684593335274844679307028093270509734999870841668899243854293505887214000742303012721184531533813617954054852254252491855522396024131095328005742633909209095146054005956355688070887554499674277022950611345651387908149750222746340399266716740121065966173726571438283934239340062064917808499379500941180287004423483416027067284215360270917364042451152430303563217457658741990111034950983765544774443757600075124955315368268856088336482962554118364924792401509429963220470271747072790997561058920213858602194297121095376178951881741249471580929413427613570662747864757996354494138059463215286233948670753989309110513654919978096494552522004153222707575761877369457319479508921204002633860343986160950279776904463318062629929872310511449601841415252137185019602675459732865992337223465406954574509926704380055824907259601715694945936067930789772763300799827215313213737576043379088225101404373661664473426773056291685682445550683579631521523988534007242562388071900148703567764799756497400941533172866739852739877821592348633230056432770760266999706108186756014606458247078882165196722057166948472428195769818319896399937857955756694595094848926756888846313631817836027162755461184287519036987700241125628855796618954041018093320190675956066322820251596245437627927968518275323004012184242984698453807162239795126531660110012579462499602953769444432592965770985747902236874423995487078008097816738606555733920368106589122611058269392209664681510876507036994801987218675670298552862087626433574684637018244731049973317646911792081460059924103753007220964914006997680249400169303243749264525897508699368357562633338835674747533107918118654173237645090334989065536699492958253262940980672070551373251995998995577022960681533479311779215274044709542142082651000279664085849418953418926366378573859750560204336052484240819817226548583400217997252328514886584294718963525199555070594925103781177887756270808248282895929645114061622539368418089270177161741868473811657485958819319052571902190003270743813724029020172577814197022104778219330229110412885384732818416220814304310199701108339284610095095802248739324815437239968176925320077465425195919914531354368303699470993416793784805429593010908113072004968150300223218892177280939623940851635102984859289563359196535191587420900582264620739121693578664013982818884265087082944472921149339613561074519117160447219865581841024597477194149153574519929684120008416748658894143535907831107308083941627903614171438910105491995031380118438417410272062438312151575039229167214336037821096480323753626641485320009114262027709485269875574389640885568554594918170936452660792080916167256543007934392910219783461014102938067020394868157940076746017475679714521946380571157023343669095193997550314480088891658529426712671826509746889697522095861516066521267004733610536822044975880519387499054754295386019407422822011287164927903253315264898373059209221767705084084635089276793965258339349384517423018031135227690184319794879855846701948413218653763902821510014682468416453433238177785033694790072673204243301450434851988982260597679603835316176547271381122011636870066626440033769333373677904744899738001339597074175976187906934520514401088973052579819944026111269332155379162125678014608301897752466540182632294139570379288441979539218282013421265675473340652950760610391107937204259049618637070095173227757413882366868619227139821519768539812768401097629029675076371948390361396145993688715300358479705947199709717225306130226616498124402363814538935788553091913196010394128229239844158966814466651219161024329284305447426369049872706930969331731208246045991982064280134027721642813615042010938858241023822507258090316596457356906414637444196436435170463423949959662848577771177845701846286969749730354583524393851838951231359824558920369012437514034423543385427429072707122810516567580734759210236333393049876334807286417961649634161273476977266391185925200173624723957557227675958924047312829695948233521042150656717691450351870831701106296507692833864288465836020424323999122314310878703154611268193302450283251293738485261287112239708238485824562631508069150351723301286210015659638186322439401477089127731344786499903232813096574412198263607799698631118204118408459239287691496373975315867879477518943986360889683828705194858912171525401736670355748555707377018109942071928879294332158557456295849873675136928481448242447355077808096058449834695280077687979189162139420374919195144660286156281362252262799144515487172399056240966055756154993065757851378499644646713571843935941458448599708126628314234114874493765940895060896368892263861187461711277796642553222950714520800481105194593929609088889513449173061229250299106656875836763676130836716549849509963603136788549618687518038202394721048905752396443158427245390121247836149958407185509724543145634232165683360855123071653347474856652769494921225791339178689594775122621931525336361400310031070297332156908733964371862287923319102113749344066368335878685801675289952871957445240281841420816056216562230348137939852060202340619825912403197783749775856384784562540333007145420836133204773551449059046385169406012619572772232584094440373156795460375903373839193941803241078695101456945152143660681849009209817171949669420410678457463448550101909958585393189466963101840564979913006586119883659474156067669247224963704480930858641779162114497450185589495388126494854132739793523033863439563782169966808219905082847876917447085969245192849573916158671078259406370832690463786084306143534987527746868706165534486414989956243355010073963988507118399219690210516285671654320969526910545511443115926020539007837996929654183767155552150147863888298400740432117821775856847418119679505261873555977262214038596340499104263118451971779884719200950338013652453223243300261984413026254348138884208497983659040631087331300921207380235412758048502266627580341574358547131100217107819932593437800854426418589829287820418202558673631829446495759417710364272652533635800049417057688783357400269834297469593611357112162447565968558105811763340219478837780198936220484182119521851083330506038837077275891467338128234271021339325244633203076640479109030178518281071382092572905936938661023652484396273923612523519030024204039157999289741378187480363990909206706583698531506270009815311881157565032019879786201513525388652745143095280069485861085759917696775533811799318826788762605659105353026085720725114793183567237082543220743813200470185161866782401860216100509236323619358929087197024264813536223759532301891602509106595326953969267628512134055068617396283704599491747933709028966805896393697139118991695749770285756612418253636841032957885667855208887193423436351562974599296858285841286752818252813867546611522219450031743860895672208506083754986923462788449769776493838517800082656326824979396279588578524772413958913768526369598370331860653594595809413095921231248235396423740800550320454845826974089126906710336500656935699835119103119996158031634881169041228160825399914857087663948849078040970291811641992171332855782725268293480884911375622637507935931806865656884900153517618675422096305346538503036221778525030740004538817549519686426854787196624639432781765802867175329101556912833498115581730674595919024446363013045354052048940795949872828008100926219222208836425176379382290285142791958889844127302141062941192594054742159415777660642670102705577710946817577511555262577846209808390567788518835902683942186811318601996968943610420152308516181212855875016713661527796457128943723150266447091801038409261964767623740427664115661469777325441085732550671211054692088806009233927784441587494507132353793508464628927682425828506095697055300729889176161457679989260839710563258836935789025107822506683658090299090567504730208188659183098497120641015150455192606973949736713225178756947594362167079232722435203540646437243479398131462399402386182787639857873332370999251720033296291385861359305509632883468585046799140751885688653785585380370819676812371465611386619138261498283035527949113880383041146270865809958477886929935631497836775031384849858806401147597228440624161995989907415190191189766680229208442369539399093006272067264641735324561057035291096531373915233586165122254803275451857623755525985278565891638070491650481987368615281926935427951239121584460842319803430624733987021986898065780818522116538826526873301512652128084525874275523032043859849607387400597350577070514321111987746128221419833883576259272614477674776123189064052510623246886624231211962769726404938917784766134912249610426812169717548677855251473226085740449974341138496832695936762110461929509209151429181056187869062800277462435096077043494565152933027561958251234234651323372526142031487489016852173070399290902733303371626214522138405788573273777046823360310953542437674476569582923886544278833815616965731968709853559767047239437799199769891712935974159821428667792498047436008575286518659584643553486671321592876742634956656956687135583236336901963821592627604637045572622686975990681290870291743025003868758834182115948825234367093837856523661759897206539418593695830603316375699905649477253355780764301355792475005684486590617289587053652172403530920550667089165202847140798824661501389979562433483467987442891285520835458098888693350976136395505883630687518248109616920470157108956937465323437991947869543639564590084110335103487741204516062859946352366256718531908002368862097740875805437118010397228871157229034597072924903345926714324381945948845846840070741719574840615899581119048432297676050044805979111906862150691296878365858441814509574228160260200190682062290064016723857128311386885368587110914845097689907798513999359488556512283212666756746016027195358726438886612450458684025613828680896930435294309844520724232395289968916241499541114531044416445617854493945742901884807546047932144415202454258907314845529405451652394390519694492557551951535354598385640740497952581288381939589451500072900201935048803295778462501860322645078817107783124700435577003617681412117345391266593662921896037985946444254104694151374043681237524296320995990500673185093049567392518374336464983453674197508120082082887898384650337047203307258785484112091037153881427457844818400311952762862078597106830043291014179998189957234656269885840389454376016245795968984373440303040461156013335904971382596755156256137051318495360997454671883241437563486626358208426501753689311680115484985621748526432965884403475826742125651506366028709777430734939206132759779798063066001439349220638440723776493014940745406787799903549988827435257319313873318625112265906672501376008514455752911531890893529140317197438689553295618131258876660075302045181984066089216296706018424967650353873690934942297371784734611184399124946866757833912075467149715135243401570771818258777141570441226880602177533518152718368165314281513472989376475970116305717966257259204965758952587769776846292334191163673220424965564280944565650256296738807658733998016769643962726677713314598992691669209245602415154289050695094519736122973910997524499084698848303117951902572164725851117415340679943018863176966742015579045214974563693352150791162748846193993470314241185483506959395051351023362030066648393981448101600031343058366008621861486130647378192518353033301659350371519214097238162690265787898331561995194315373241346027365878344239309427969991779294606739298371058751297059717587672193356124002714875370251864139329757941992271178866313206949464764229926323701523541321019390250582708018678938158100834687137685543066733617615461177168641945141011499773747830119972283361337401205233362524019987855469162380507872301978951251560435689304752841280994226040822898077094483922317572675878398013117264952252697534450902581374809718024093882308166073689110719351702635226161791355364290633675781338357850549200982573302078103198548817734672221840449916375532208830416837478578403398085778980769522076643080754241600539736657073130912376647553766725650450245593019981181261096550786998242066914065194624725378000094073965597413138982282133686318569745272079885358335403672079963821252012190886779222112701709998053596740549498495251498072288157711829165509047969547258130750512482846761189631037438397296711318328893886741617920931359709176071156596313062982217018234851488322978895391459287828625496925300009991255806750861499230240191683622837536969838495967916298067931017785584358752044522035295733794684147327347582722206146923690606594842011348747730419302125034750199921018026409436036316401918821897533740081952574916610896076988973248951209122473814583155129595888606121316062973064855789712916148430543384160728109971578994053768526199232078597699959607698763362674250272063496389890129161876212878719345455219665981343129369877439225582434050325454615594014849603795102812862671501400181952966536634887193382985676642291749266600993191254917003448515800921212825063396457667740106199358652757609857188328241527695422647076036434615426514362563233262330085972232415946097972466077679293511805285285521366136779653035971887160280234811752111287330143780036874409769603859740128505089639852437317670850791799807345022120704434929314346594045234365819040732854186644351134010620464166868357002727339954155850020696098162672250008093315560079746537200572886353870551266510923200159912848747834558514480097469486414111091226835078438134812292957748979729888710208817529168164115827240656174195834543286411390127247293730338039682599747230343969186981592124994343322248896908791040689489552970220438763036969724227303637418573347765204993513758023006132684432010982842927224740672881260252406727417793528964602494143950547769602913870597278741795918382719350400890292190549742763481444975868487958776235167622664275030854950777538410906868326184467259765092263284850114943038638072498280809220339576059563768617239854318094565033323382033431384150256791091042453788998438339117270395722236042915257576467785234421753284413110512113418075106497634435466695165813631164979287969095281243214323008277728590337873738368830032324925455102612396631584073673148596731753848826737846098924399385024269654855510948157986158433319380046706221149061016457282304347337190191500257970357370614128400587415989389280044199315838915909125552203452540689208332481820754977903784992076113443725482339506869036364814504369492397061147249427905584222020238289108243681940616504451150525552615525187894613080536130379949206383604238166093364423820084338879414420551739183038839957558026294850147881778625491145074745185671778465160963074135827647811847817459413868013763271853163971425953962885039527225778794685719540642207782186639146205148747706305774578071303861460461328392287302593812855891585292422605475569093691584822112561875827412181783955081570488434230342546925855926785980133514512201669421401503718039943234852830020379191240702566384499350509889947388501492032789195491170077992642820327059616783724530034865084903414594538056475052637965069819898918394970232182344743995511726021995697269411351744745578541999015766808865985272316947556241428400408302899262796591248384278112789519666138576016608379791778832864226302373255524778156537987388859410992796457141434629202694581225366977462313661024291417683921350628790475483858049963619528029034400987763289343434239636405689608808268068735061171051571975763123505776430578939507136070544351798236904172645040294162256673303292379730491595600132961130148210640794137373219635244803297370001422549759379357757407736219319333435029289342802928588434666919990171314014885698056547396115355248910651194585666391329766378251854402237739794786690141938192280151963701441534906972092073569593212464547932373946879395360186310051894893242830240712723523865839432656764965586952021383106336289491747643791768819672429962198542892437249490900649445233943632948038881891917259476410966416710517388646652755028366611304324035034979387982568006013777630077280205618716507865026975962962961143867289429470712840233025867128385226185449312841832758696319531226585378208209235773733562301916744223045318449786595266400754091276650451132838917117275838627021932710917082071349857965554940617166686447487378712848942466409438139787264886067261258986926008311472993072656618965364303174113619769477745589926625394965962005010358069613181799328377615003741326203811233466777444709685956459475560826853218935225508877173365590291666831695813955473754875550258038957296465292092570741587398996625585468188602569667433543271392307318173314533333763380168377074008141585618605489127473096686605426595891517204090789696863422094609992819880369959793743764171481819999049507262630937263026576578235133300230113028720295682737778398120735146739170712462617898239529908541355359124179772317661482338519992301088808725605980534873790521065832991618196610241806006628368211057283875644751112279259208399817621300370178283304144501538109975932478611928914020685273802970467566305941073885638840396515942707897370918601962342047441159087838445499879347876826073791011230984469555266435934823486027867905761197418353042374105453444069510057776901690362276846488539919749984502071169435665600363288639718443199954366068953101521853862379494472292258436451920749705026031676699436270811083608331800801809031558461936676810736565402682286262699042535415192375973187744296921770227542451527527139639064975668068639806521505608960718268924972996246366396994148957432392626295098798872160461092153012895304872555303909913127007629968429262759222638063409182890009127836820366087321097585309238304230188828519639909344908737672317040416788671837175368682298703832867495101310891195871530044569428586445543402969112540161052731832996336759291700386591364976402997061692733969326136826679757915416238179683410967069956945944496104162989983446681009529006459388492350252277584631290585937299046034430318326325946316633432714372007035211744208070766783899637970857673005815277039521959413541352867651116673306701002030605703353377099704107466552213573485374548850941003264211402728541240649792191763256784946131039477304758339946358136382416191271451320723036749567932472710550076747010933262938913469140786545466065643603673609558649823109159795775577800242958342001842195572225535606489245897455484066857301373430014466992156885036570630070917976015615884426232271458729947231672855246859060652685920761657643223538597206698262684039225756728373531514914517235251918313444235942239714765008757339257643528355308219179573757099823061860931580354233911598673928871983305748022811454436525963009077471570335516202165008388133104871226125991799151795704933579234056589044797642902526915463484494634789950111359269917727841566618915104703203664367281234391100416438263155166436566846522334268014568578529491629301301474242485743659903334865776022561254300382794672227985923523071812250201856140133809642829129743248885616908261784472434664054263606134641071230090808050336899338453149437646281748234308135323690664287161439684438002294195425786031584049100772770011948276417204044079337911680038060329608316263678524371185633153203310150866766595736732332510123639846786022089724005575261717028165858083524785778145978822801752827133669369865729125984927169863061670838744910521059865683303282304684864021684853097237267667840884852492211930302912868446208915479034424199843171441142959244262868841715483758219612966808216515470435832394309753283696395887230503434900972268608544782492093045272351339177691258195924818068655871452619603655000147408499246576427108842673994142852281998206305754748238921954416832214551802353892036514556706348925634882194478212093250249929903634078702366484653289563325280346765799827834396072357809283331267369624297668857484576929294413784348393869089707587243468546652005220265385900174477113423989244296772395808440678184364818789779265723704975600696030803951687858620223749637398455345384348201719027073003923103672706667644385742071979218471900539323762358784802636747574643056820244072150400659525617081366063533870663333892953318297014497322330928902240709177904920761091916477373948628197721767401958512773888907557177819506084597465885181518185596035604276331604990262530147300500068965180174232766298470872630632931080521412210114806805810480003217606476186769943348018344442939002781220899661619820116995253335171586778534098951971152524753265409274830168556937450625542290797861414464968740519623884430661640909578731014636833642297331170521682611661078043345703865122471313740639637953563718479795900501871306728436954253746537981878738245725039212218874704488278897182610627331644419411200292600575867928750389066794945351550508969939705536041623812293983524561457251070206979843169802126432834610095835177013053053648743296045563269030327368825057865836237264435062845142575113400237124423662567790939882554366022392000078901401073621748852777400973315935284109480127369474371706803371687446474010375328987862067998080798975266675773457606148753961165261400827697502451625906510541676801801283856264439694307114648498277629928113399757971274512091865731630914026832436624632486408848803862790218083163577909592458957791668537808760627902994719842720957985300048858522247392256492068722062973151050259846852350974591304420551183404501202734935446823412191096122468317029931829253421337584073981349814443302730862812269343414966361395718005653263745211982773170891973916432925673767649941250799530543218370839837203229086995024096212589996672405663873379663907904657424736855462524150635719312801903881492951929282685807527196159438780794125490361938425083053258048739081695798426895729290217202836841996613464889496766693488146646238896957025521968318336383441755260261639813133662319874746888671020795261516578374567798621493714915438623130645536355775357710972796179741428875402953900659022802872872989685810963743829034963299523830232736402566797339806728872838072033539036340922831477617175861847967020831641401375956217125036390722390027952055198694780770535732898979641871788619274065979349713788966948599716011684560339819781210635695910088160490989622699044258454564065589395993335610343209666155838480822140806209060554744550543907460126574887842089748381910652488650929191459326089491406741757061844485027340400215736748400495635080474688078961475887671490565427362745009407233283426244029540810357095419102074366181427527345813015016933684995603586061477041351404303167550122293777138218639104442365855226516543224064443418829095473177577885056340402800197948737618729300142737778996946016074574359527514433852711246533018001887448542212907504888099387217636672966856162255299260443305147866567351923282194140385624105605969234481162371695896228353291284157247581085240767823421232465878829955317045867678909150351561631796574450915560716689413389993420829624894363730504133568764790219467419565279531571708160505664582093397710881429765397195469449351156121279593276457375585764318447536174255531127115506539968673856594087666769914735069078172475947048832435437924314414119032560444866261806297037606771150419973502418945350872730307690160129897888355356298483338412021215418265747778315336765231942919329263172125640795213615005388538289030913597354103925179055665094164717695637604570210543937502525700806045552291575059698724921017812789466845695747564539072963783580121326176883808921950314730673699124228151076313399463572806209585067582907201453129603380306277030105398346491921805182959544788966378361578471871793224361513704829318782977343917188194573438945451962221827592543420502352382613272277489735378139463019509590655132083344906668770822096842462668051989733938783381315766352235413963775503475499971695401827528311243620199522149798373975602652782248993962499276876409725259308759929972581790013509844227722679472389425299277935446852707829976092201049307029056077940460166569814426205871053431427782701003994206278153219746129380704144634884759388627193802216490112992753339076278431664637694152064969172056528662963910205905257506260946076450670037316391953586593255096966046909860589822289749168626703137460089185667985665508219281163150586169329589191042282297346999683681745405985531774884675274098670821792944446544661979489839071270894436902947197648621085864308210476788160052723496640992768937133100756421480656487264774172151725412859230959886782861065983664493606504210921287688231467386231197267516372578216631418008067073876323039997424291135204769957810900247443847744958111309563232538322914111877409342676156624728354449759362106618455246756052470496442410408866422879235560005918183917078564445916934686307267356805630819304350561988831268802505769005378205239484968061496959314683883920955554439964686186651745028801905977253447659169802243427282119697763475203447998224124885335551704797348676910385063411679314431361973559896190103343197352725782958545245448549618548458692980234348714778444605030534506894237273115690727318093949582616728366145970799231873840909295523912273710165865596185877400440217008962691804378665378628921023735889695325759347576529324249435465605548252123624210120749333362900566705989414105440542319929022254130512966864014153806115151986926529363519190871956341585192576724902949308803286977543877019124146954941584946104001957187989496162074478751583006946912162788744366260005703322348798248445532565193544516574151714821779561765968400139094289010907897473268204403397121150396728396931807550053480954998706311107639434302787055615814697239167897251328006274897243555512801860651750117717350648070318196416915600244564215234431514810978757265705878287533790620712319289846810242353711789121855605465393050750745225179473516626013959087208211703255410226412907243293318197764883341386646482335762389076256399370754265889788616637819846522858560363494099365632873406566805752254852087541135576449174157621866263107175818454878577700393754193603019614769028775126027709310697138884118263846618520000228120806373934587068864910603313371256660939095062539173879306966877496758287053870556520131095136005915039083388104777994180255028959388091063537810472957711790371181173200866455243081045726290289266035967999290165804237773419465710235012696034587163112230723161017663625119906627357664412262193484591206573977888307791994926259860952401566697160103995037264381661752888410474871189643733501822844617221308721581870942194718134887792865136886861775320704580873801801713826087939410038899959577634240390827996667339053287017349930948407696238541089525696820566081124718862141795698793678632984861628609863615330503885062679683490837303236409828493998734619427278533007399025111037984873288822423572196874229677551054373366149886396737498161706037298815588593478632109129612774651788259584577759829894536739680883174280490225150407581513790117215023387070868025062290428579187227256890227119009883135417225041895539083814337961748769985485486304163550570824422729553407492707405964290497935476839835447500285339246734331539063507120318126685116380281110691622043362033665726347520602324677457728891976154281714761341149413266227616405546687354648490115025404014176040523862885220047027389403349321447243443018696037838664256749092016667160722074865215937515716828733822076517402453416384210844421518237166036500846794751833229232716682934109381170770276412340577774967899763514492311984966774908799071719288965510402055945263991828233555452610704515796389913154116953185061820919507995946100106589131358323300760613231455981578353330770407577980182375203074126490581912508314943965887727824784941560883727572236997777994476833508786697396120464011004736437585451125042162361019322661215097775829333395389235448953985381286914048472262619900461193192217084966154022973898738769470496774043841201756049327614934546609480548962593322559146239694566741950905282026462139599481563714197711811181479404686567773954941083238364243430758341057533867636774748261060560962946224562628375249684488270378574461043170673251276567119495692701600473476502598808458023575283181534513001234642621441135109953385594435023278470764278622790829818499161877224128066780090885152258925662861962541027102283937775127336649361848289878472720381650875425208824453421754909270986030233028758416996749500792323379090500998474108305046922129675300042270528904528170965770686777293838503700723617337086469006254191742150193231972590301998451287948044659689543550041422281324127429391267587400832959358958322046093285212426680768064678402201934184098872562694129949121814513033202979374794514025607983207344686972915337846567788429531195818624794293202170254985325479313708799701465382024479617272959043204033834717796306885047035249647004853119240132968129166319711950948468401677112523373532809757769766593708319608883480158024715695529080985973609469018545187678014964185031037132720355471678861295615249045971873129182229238679681514862932742542196455277528030773604496796604066932992439112527343151670019594938787996606772653588788825826033045525611076504572994288108938878945418742633730205102434638786577423944548005848711783094560804627646084564435819104932989323963653750994832651785977456552569729641682993580378493000808853703836616467797335738123259651678608934339629883512298352328947914104082089605463501922763903067629691910518543749775648419013127786373278931747038399937362720019913886615403006363585256039144849934971541407365040089942229124195530390742090147989306113469896394186529438532628140202176082486270201592516112881755427242786052684995397516001604300994601034984005838787159760448442244290641159047671099990004655399251891788191573179633602373118827076859855984910951228299325899759529540752437072035468170309093962456916873260015014874122077934760395130662531029147705298989556967504408250245228201007703159520828099668136100050275350110110449782839127253047197050589692800867794892841559461453560052210791863074372330082791933707135697847282688155792715568061430902885777428316856903396436132958174317421265227269034962925792128987192876510401028642124668681502269501369069109023207437256540416111754288743382988030093219812711152883519197272568769738423847628809476078265364949025469986477580954530166428951370006048629000781922938232128405090973032247549987779241716746179674207044328263707991160484156728449411037871844020416414713935045236272901781980616504139674149682557635546478557890189849030660021762791013314272814246404068270111404751329833611104015396166466750371037844333614739711591464735245653477575610854745462000115112747555911196731864748220931559065122516597540271382617632783250924624417758163995977793432879312687986160761359272868191785290878410845537010375128947091948319144304096130660725263918367137570955412656882520768831096028359327119899501419142049798645046897920185120150328508568823361499267666173289595421365004342343763753824466831557731779379849429376994051578479078509051168098056999795651588220218583577230312857834209300169001049900113091103557503422273033467542104892780238320722251903440427917501116879432638085494952893542422077801734232226979849017336959591805151163464401743702764516639159015238394793078731219248399717207908360094729878357278544686320412502324248991109631400666874184293308704853770513791726961163873285310448130107333799362967413999866007936134224338016986939392225743340397469318903355470864022525107863376108269210077713049138864217380364046319414762956949514309082927839795009423841537418875757449755980419310246462669396536754594642684729843292420345462437452472509785333936427046669840683003819614728818106244035556873700800292177326160585713944351864484725195709886200074329990924974684353445685351483006682027060042107941393434406742180925878571259400485465005397657309358775774718060544732968144135347248516905310744409408900650749655147365939890574095143021187370494983261126587940092032573913437600729926956958950757095587580998177249128969637087839529277066306103275527845095407966913205738407635977781640944792332902545824178078361012814602252472503786204855765022425434027822848914796465681969957499975816688246853412035458948230146033118395717080176195962714828095455520382417301023654874632531028517413937772026640692479000924196929983814534729231769797375433116013210308609706915823881856906040323366392881025676420714216090760882744782690438350354536027727143122813887661488887154116837877869766979716121204609044968116216537277440891640762859864590309405803472034995573094813250800958780277157131053857748462725828580985770282868756251789244074050444549159192436158900486316502509858142414564485858931571114392554140033894340926829166099594470725775561541648101718299054555535670114310079851363550218901957445182500857496639671705134142050007552379890798926649661832060826615974782774307641201910464726523514298763036151881084723303393342252125826089829755642542401902024111614534686918905129285467977294018829910076032481946513495583442060949918307048001045857393208419392826771017636780142465847419413943431409596487249947325573470439768780040528505301777170254929905780672471344374789501018983069104510461991180819703737830519267341732849376683015104957336204646102483929918874243063757756714155802491477306967165298855111181161402637712089711798716281657355300040661154922414286564788345678792391682782729478971708115586533995529702364929510530695366485757029563058621442602092666530288833723454093671023491969603129553319963664874905971429085073852076328442323910866441308308199477748313628663210901170484434843812756743104782215669552287558722473647951940654162792023928387322640970619700388641645930992435302457900716484820900641707630914600565640948385723208893759638000670444453964078435697642877509026232523724348527941781890536286089878457237866660035876035920183658356441727478266555473071522673853497385915563543216337862680238759554016397351490701353633328012805118893384080329521077335146023431201010788858549334063548385789931208202646977576112670979431711664986103536354649178191288549179411337127894570573954772416686721336562274375169794932585001710421969723842310626471335084075189449350861492023458257110705051368074879364361759927793160430030029247730543382296694326802730243703815540313117246829270388693960891690438284558972654674459872378559852610121158487414890270086363399925902656090603246851944808526694374355240493704601405640499569057321455155835932566250981702542595708506870069211179956157181931247868379159186509249315603263684007956546657660807399623794742601348999389767157771645992984474051380511078923428592415400755716662183388032867827690348189309305270930697850213211811475113889991620268419395958679000920785710203030455335006360987332804504602699595549144647792664910662238388133994097421164784661118441738864231305382010960111087187713240416413513285816934614678625932702947249402198048089005085847260401580779581884610507688331750383523650326406761720713776425187225067265849327770050151633590035633995696544230024884565622693378086026281130872028331610090331630144755421343004307184096439799283494189002729063409754244158288019068413285178153476189796166804690405729218648881825275522674625557554119204637359638976563754764001851492428107810389359655543274096489181053762532124200231831403795633178466541470071095324403404172837035472446072283910693623843194075890285222609345926964960852294767629080045034924721269113159729299223219492600311515408019271943839042273816737605287458750271622886695049758107423224374082728798165447743503181239549097051385655370049848682244248191408164249814700409082495232820906665102474649220087987643892295946547214395846699570065481064807243589288650868903281511846436873436549179756851351881811756074528725491836302916526634456619982921634869855598535799534887111529394463826484103409509429673598917553393476563341044032068061384105620691650938400767536663115507328088008928174562911254785957734407118291116972136665116317958473554855011157056306668213567370645775486011713420033345508660106813550533630675795935515334226273131989292739827985542819283135393520039402933709279657712265578316235020597011485479242411461325329889746667433045880201283738884303153378646367883033705766904410499370613482057717739887437662449451522346924155996706209002264454589197265433887453734870612623556995145149147860108788179324489723382510944738944285955513677392978709465552826261633256242966787975317426138053258072900801828926122030668370517708880500158623963489266968466279825428950367001935489243272065001887350206848548235593444841365734877085115470054720804866202154425794845716184154503000252332061621704842513085637795429694006820199232240176078962487903543797823168574141918267267387683516984018104103225605633923679059972446328656266307807755807470379075196103025981444328546690167466946353971768837093185079808755513083624259811556249242948117606392461473378476164606898837511740211784190303934620781644362010442304833873675850553069033659103381511400238999751814925740008657010027981083314478747593345929053728075194607265857679031430913790073583266145009811892658812841295930982102537771932197915898583079976920998939845902689331311099756407413867475909794029883656372048090522019102769236568441353535517038025376230954497241343540880943120046483332423846484891031382235247023720092557835356841525846934398802773756799744893354503042169551188868081887598295617236542364801621986050550853687960578074097561319780373254187931109905508132729563144494843962443209265080461264425890800306879481592945673767447778923532404770372709516273582132578224487171799492168753843129666610319479043999221021775136277335081589342874018177195861204534417108608827587986995705511626840116851891582027289859184018677521506228014130511561207414469493779677806676033194837731215381931905828549076559398805682225936059514049939428657813587961542597866001547648328467909047289775367148124524458011258210902965869163611103558340645313586086458379542802551147354629618779220265985672371954461444737444572407198304213382344716451455326105765322472763006942815968794990021374764391603587347304507749240572452248446883363339869135121882323439310158758953190060613939554179268684369338713315720290651226726708814395396893658400670674370124071747823002050330839749984986215121754204847934345940181096122459383720956583056257538481940167204443175739727780842509146776454397543521215415682438031637442417027964655090853923321998138626309221600531233430918287078995135539017791526898654815539796843893592420022521593632944115825999186992671149792912070601337092674694191174737138635405204526237371205083806742747539024136797587682056920878807986165734235771933913073499191777675737594659203605440286471153739191570429951228525958247871431420290890690118467084520832659526648760501342148290109577422951005499611080395790406032757943141810932844834154957455165085307674213737242382336584994133787789037543361478903581040867056100634123325151341452566866727616868200760590660541379780281904338960413891549774049543526719501832999420446201487729381624166537328736401608583257447882604964191053740042026656462331728088911671734077371811342060517741877831467284775111810309390802852579688312035042017593082260727500726263208213403204658633640208451724664424668187778106592511709314996561709495770129328075884788610090160983239495152532228512132095592172909867054739597049718957846194442430988144774487219684848989952214339825169735471772559345844474893501396469137171182797773000882724282442172268551384087673320918313488747917288244219272654640418722118369407334567106189221885089119222661738621384032685969182658238228310085162626602998886608598704449507216163539929646643731592218931080725385191988715164225522130216871768217561735513947683220255327870236183436234954869850294479809727175520915853362675714651326398285635786028348301622881960939454764391634791927509558884982505010562086100119575508845916047269587483325161216054428510224936234409827139868526472424568392287254114806629466099732919362075597482983595242101149696725779114371606442422164854798884040127855692442451331581805207840907311422510481302736723893041427862516488001949063255840476950182538966204040217298553858582227919220494748408366009469489392104601781874642629682192915382192685024263413538561121995900894133061219194087077783582246916637203030236997747764593714869601700788486196644350583418941119954921487785791402268701190498719833160770040820125133322121641725969748941845103318618585478445182599992065983353359697921328221940192223862006669937684706120191402733420965134802711447562401864433076273462659986953194060410510903258089702440353744244065011557959944680626469210174982255991465043024913643607635331527056236679599229290342269398274253475427174318394996480437103686416939317670355963807552022913727944023729634272369786594701535187917951081776122780313736726302942699152941101017645811515149090336226624580351687143916702316297058351817001736955993001964551865125895879752815122738411127826228715640194802592207487208758645046804022612922017525319339613535125294858398703433500943213862464737195438534129340391240163789500381751778381383699778965359963328288048636887136847651885854903348517467405061221617796472857789175578886308942659280336929357300682281295089872764831759739163172363434023198959176188765574277905375585259040387805071310161422572748940553965118480208377824750773665384962549262262761909809766630663156606206615304068088665859569445396530898196418376263968285050526939619101007675507108233791794142529274680013548042523434960496448677453054347577433211177969147282385203207997543117752252586960860448940177276029490958911862732947170395794089061048778027808657864281301722011803153843660036372712186045842581436479864293358629462203884040203852134541002071848496926019296421906803606890611998027021801801003330571214951225631640539086436098310449048799544449842007103822031336543069718394022167685561423515781402807052716415327515310082843080292544930936484965668718985493808492126571627226860197199584778451913304617557926307297458503208532981667950258161636882443089494785970494162649152427930199426027606987851377585532504644770389914951099958544459629963830624104668928023791627223602273055086992092638718949765409520435262783515526066330838028945878534212980963698705653759075295048679567312247363618244275345677160270471932857820986269657621008918725631187339496686696078122389429551350009364838565729199823676889581138108128969067372543798207580697282262895109239022857602435498042028556942860916337458204776510498684460531389254905711254498763551979472029477823448216845491687269301871489247405568577029915406100813665712625176465331941469538465690748169645473410768268470013979159903178120348447165926425611621065032160322382569464245712006376438225944789654478166342946267553768394694007942383606758121398160888883426279549775177049067090977239851695010018171352556522785895412724317692710002116720775116996094934004305818581612966638875047236783092592250680928575940829046504191090748509649458529458209656020754803132327615802371366104341744865362608260278949891060117734671830010145888913529936454693515972366139452478545142216255716684807462244972847450017062772101680197693469148755520942706076674976097312983565138421343665988602975064484937976265604348692676424811207565631921952636304229593855200534279977726488047610325077060915714036331202581006842761198214005381109505421461883909906418827130875564004960281407706771659105231442091150577153139506552900445143139475676658618031000618924943472296490269442370387612813043746323368025837843684795705896902964296707825446289999479105602008999165295733504413458909505565442040789988679718108972210607675050997737015608586869333641095165019080712490076771085494140617240811610365182180459442531607332724422979196185841152101159068700744686109783979527838866352015986653673294780889280241376732432467788659361813695978332226619514363674623912766159382201310078281303765079928751092218011805893856527077449637421784875270258550426975196862895086529375802011471063226279951077476122864478985859787551931306371463442960391159168616272539695155493229222482899235109553044287100723043462108341636015812582960931458605481521361158175097359886412056412415574024424907569991972953710730656906577095700166054094412933241459662196834658759514715280315692908038935794794221051069735355948351869569986017397424764130863222862633501659025925697127394211481539694187259675120461974974909707703215814554132212946352494886031694779613059758003056409242593298525654796176285374777715122169691780522785994555736629394787525088405813329742184907642262622693778799278885976040769701161635309251978013855044257101509354122030249693834230229047665766744196365024594704290698763939267685895048440484004114367242847511973461092184232404411064775928840100434281653130541047868605799536351691151184903161977746577300461862147530620247558426572525830390466659437781787745934367554416019012590071323600225276382928610438329868437036033166729343232690424414347203809982065931824293528420375612041396028966402108608680307853318322639879173570220308633822515247044960588385236210336555281639826291114767342928049840857692711571109824066025808734304551761769804649589388386597835691925752060537435354808084434179932257121388747942398958147333256992042587437659619034121854675502268476312599557440214301577862175388690102135681103224389847554017846275786272050894434022616871735282568795854176948318981733712752551063609855080258992323649773214595926215825416887619448068375224827246081100004251567971401926946945812638027362252337557956225833089215138860711023305016924358150841829840637682853733506510796904271572828447475539305782262917964360601015634928299115793973438465373358528922385418813041391264533338213786464797926998884124544225554498438976588187469685822052648751670432556903163554532905089538576755512347286047591778248699332360988768961319838701545307003713308373033705960546035426343502542523281746374330254449645305659944626234584199873629467472237452519455650907109453035280441848178117959804976148145410742805233843645476554660749507083783561008707651586007608906690758330730092446815033692480650680863026583367803878974229828809969801974739620882102360401760121500959915641181718943414210803637586742136141544326305480028346935886413267758133049511376337681457819183771473536825595959347726568573071173244545839507111030348014679024594289171825438429061431588079899951975191014807464147642048711701691664837724954577254020418176497823730415288915598881909752212504864465307574049443917470684725636367446480315369911972559776836907302364520598481198742599845531933755487578766003124926143036572103883535416322024562677311837419246332427177325159065018696237904778790375885236339210848829615269130206452613002955813824677069758110152795055229055173425895510544877143454412773439514474125381158935811574384720162659264106537906543839204040403778260703341191579898046096917060546548336889343636325629193341164829665450024695130147039837213038253995172045366348900956029479921717059922089505582292059793162916552133851577174815726557494485240471619217369880975438801556422189224658980969129002042629117569792510938203080369429465721461125021754306479766729776474393035945280946806961632852590994282104049948815314923732108262410054818508524621045914978875844361227094072568127911663853662419322839257052869664234568077241670354800798397213567925127235643894417890647657671959727861010987713157363964756256182734684973679479118065110250555181891597718774794483011379261565884893839926464816265095113050932929813969576125848306072793529450334842534448389345919865440883947663526573752382520027124038579211877589639652418521103524714673876030433556192586997435810902048293184757268344333747025910957793844467144977844147885386859316932374591813932104501943130326697094751373248523527874673519575725043045955825997825646749797175371716170718768914849523537358264399071418411963630819880915644281569041956456014667633040053325938388431554226175122691624852481535559081563129692623980063516348825909702039320553693739060159976277724221280638201166301109628420731325017284099096798658912600170209412181570018526115259841976472755944852361978008673182960352377949269191566246688262368542807483228711493710322290446522291522563264603923120900926580272009100824090124334668979624894858601350645444554300050248638266013837013383283371136398966019583902621507244021498358185409962035402871174477924758274631941425211980479293157328427384260046065318493987870892698010866894200477640906403542392088049655368797866067253633078803122199043846588681499648656292131063213087494633479112018148141858774785422716319852605835832934484564078461584639136249013838216942262996377671898381334066135438312387876784647893858135858955439058506293119162771989215497700295033223988178194478907908838162205271393368961584046332758106572275998747407719396054622432137494383094138793071395735607502773663868335275816208033707725419511798166610028911291411887508835314708761814793937432359616264256903124706214408595984861733925146275277257311194100920496491829293127285372146131744610995945037903633391971425291796983938582567670088767369708476081070843798182584703357224244364988352609880608974278279168132387364225261523947766384251123714972712675123276541615007300519944859689956015064806144830073465162938499305238497423324373976054161027924319060855758901816003324815045046031055317221347174807021291013591466277559427503701395077878958716460834377199808657508300079653317938402334306551667723734327969114493152426461908196328561418397790570968744777698983112757006130191871280920600145986112942750677535973270947759318243815827702316712155021536543351868445831228503170407379869720827302997845026589350868649596397491083446431064222378615656114403871211150869360513786649304504193042022566155452348281585655253924054991422605806736246465122950604570967849736946475450121734963372352916068159477170724032827617273082581148576058430284181554721205970566262252347656907080249588706909918014080115636393534342975666597716589364295992085316916748383319161133053783303824194779118313441156492358579399219426837756126147501783788627599554012527040868937222141332892849062694684688845952546949097876371497014030246976650617435371125951747358138053046600772341000769547084489223271317024767623150483674424391659388185798470292298307841646600770302910257435786773358037581967573956899492441564750044062927418228361312889527853140664047762438942708443091192204544241878958424608726506407361382476367937551135694975456231207581913563656920115365055682182670297972789174226577098565752188130259440269999660688721483514076767049782265835776821605003294791989764008794038580088749271436632225643905673832746320128877129036923046770340972139820049455531269007480520169384503923753458661747892266342380391728824509246314061602280217550797030693545613916534378966108110115138472477797673214089778257129443831114425450588252975008883400123730862450163437878427982300604524383222148544564827115024824254539492198857527878667908229291200985162641921889629780641597961252706342549335424990064032505720424525123980359019169884303285337409508554097468858461736894975839531220723539127221190624800081598650222915280841783217211392908778284248526641667374577485083803812564022165512615881472336487681495581343244130110087540473967538396592426117173025153333727540397460691675122429927430050454723426098239522219758554407026208444664725171543804426399114271581620904807217039433608646796741306775089378741978905636534127242484039197570242026926833814024418180594357827671717580571992054143560875361173018455145267371865639191558014955874711704843228456753317446738977456366938468291686352744319031358235393094047115852950986914904808584459991029905192470452316293013880113195970285672539022975316087548486966745739328004157549758599052946191541755364696517870448733075651322897557435939008228279735481255583552567297678262986016148467752443334439064937278487878428786784523285271764827532291820500963927798096324634086729016123930431650658765596004195179217567293984714818332990670584032759564607184275321168245233047678553532296677220969722763432050706681186287244071219561876727716027825278626602834903423147956021241115904500905309922531008174203371979142631470410273037115565773082985784581160852941520014027746392839363910601998920158422197823932399037390562521404787363071954670588899056370110907155858769976662896601564939421658499742710318289244301022627232372975148261685574327474179821444257461115322609913669845775081799230235090571475638631554546373844588951408513717046553592769416403000818153801854994474419151398846970834110390572271924948623452615534833476555750367614686857803609104081774032662182538347141866164655924272836983297853503205060107299497526280011123882594563687586304202782664422529401099469897094877209057966699964983922093187837011430863276131832189310948164699909100902455935265697379597969459230735506145537877821359721922542543873441541335181640447287892721319634876932967670766657261352500479510969207947086823722620151003803870291971962145582449856139078493339237219337096584118181137972892528609334646235341432831247465281588038479372307298572252907726805695094842927270032101511767042110663267023277727662277425236375820285818343547486377834914311913847909839171205286884573083877000549851958952125553748001098876909783121698358826165647801572091885133465933095773171480379227822953737633018297870974856235985259678614670643561848850324795049484640564468315036217345525517066046106378865001309480498590863267300616775592553470409621705420326146653060493319744222379394888560466445192318622668843109815176900335782603210693106065941009903406182648015447249884437272589964488310602238527174193278853659252158528531597513766749384891523558584574048508488514743542604897471778141886926373221459871832714390887774337634830291605865865445518641475928642944240511485232444576177139474017765088206326832031345555196230887741092028633270494801682538487161395596738259733372391744377470561318159438596230829936014984589341140802230240049935412697536269431763047081781050076926527167038261800717905531380670349786175099006208357771870526328423943942787997101302527076922694246406439375998738411148191341814699669555479911525010860005625795816114854507190137168495629911702447298367237103053754057767574444787668997142849652985756454116646312171082166344341132309832037691498267706831547277178655911507969894738801266644304074053605201394843710421517506073442916824438017437949320318600662164150074061497990275298333641891364140488761850440696596853962532196563422025471735253089225844156600260701094768047605540245785533902757458820456578115771245706707012099650523739775535058625945888402185474143081943623930802392966973458676588397633650493505904376615550951252952539474773777468777946062458464250151684532536762554961764963669682167328257046415566377860329517532934267753410010985625454389319176340479857151920012333194868947822864013778386706373685206531073151800077614940220704419531767573292474700922830662484377830279426888391190432445492036598201758794380008008299234315462856908175288612171861365803205237771358048183718341740852484598975154590406399901854136298606922313685365279843506248733236533035378720891121606985481796531774093574299222283737082379162966120180869619727394310990660611748971410263614892454307700162970789693234347604282168600458310396920240631176077788297130194954427170169813707869376619554979631714736825261406178239890193124355880217648463311632895695066301359865269097907015884962508762973702337253696271872155910147609502890836029164726471604769846424919834233058660712758334616506180334903907879434870038841690908034390528860976751213249834004770214579193059881561153956002750340773826173777504854879502204100570027175704083030522414376410322195510534299485277919495068622102975787057630207706038814048123590301179768239101572471740979202707311055183330547152992813181865544388413084206963792684595179441420946295963321180541660876023835311313216110540373101080093846577258156951386117082191381483770325997648460271678916693104621079821967040935350277358623806853681023162197248195051949518752218669471301623059883316989832311232618069733870399336330405401129535860971221268711364043133061134038784244220089864741153335475570810333801375493151959682077898493274936405522214199243835122928436243701971424214192754258948093857908534480994647451224264696914081124183656769009189691210607636936042869235012579913946133809597391246733492143922863137113437994561660945177182172532620014275398640993900959002366712895520738077935774233874420727058391319851916782211849588106100573450549615692757681882564766633036879236024957626293719385072628419629082092388023033307437820993893285903797618116698674222074560256144189638754869925581422280493254314615874517030398919515688363547650712027251768646535237925948900370182090784578455691117765922684232372063193126251156282871452595951010209532082968927442883876587152827336459975217037398147585433520212676672000925493892220566923105322979698612799918055811252953937144782858865096400587191824100307707456159547039376035985921862294954532036248414125959274930110241562458163558671997892165946929169414340887208840725088674361350359980043561582930103973943720414114593606733775282149333614470020085525089413543840836336231576117802525457213416476881036710124320187754065191336219924637492633485184152513481601156171591351220383944103257350197906102205265502967788075314556128595008325286224161921669266397194737408036725884322980595744564253408747918868717913366549464143542494776559819304684043055596732561866040663589490466644344887365498257312126248491031365689344360445033893246159542232017662725034338376758361622316463003978534354162552663519164206105302199051243981466273865090111455991118683912696740131930212572617596325702850096854700396778300123428197832762711998255693447221479976319911670749919492237879880843753564115129498467779088988693636794809835821972825728828871236368547076480008937646393076317895779509535344128301880600582206038596819494619685413427316997581995909608650983414564532966031818633604659077519133622311369908002303427648038963956886915466985531711826142219571487931214137177254315108097000542822522745855327095752495587149657697756845527477401402410178745636563447461137471758858468664794166969642707421379161442187246945337610939236794286481196899501099961550135110892098841480340499995276286817994368910087535000050631539748397097289679531346078731640281311154087412389313566391746929286360003448503515946643847152259773761597208488711495934189846943131538702988083961267219216037163027003170945587318038302512762759253807047697352178548030336504841828861456735717663094124363856267444703035106107106322991160574450414129460199871887809703197951098562094271470241441229396277288521513767550852208338638984794878359435228397369321435209391845943470354956430464563395147303825411995481453436303841613362833931708234781011685031082670852713064613650560975458250844061878602045879030606451768104727466438923174465543876771594798273258657389929125575194835708339702163666927947620359012296870903578694056335960207629963984184563281399972084647289070416731260194989145443888704406468645798474793335778589653885544131048667971336542940140691206878122562660880203641690776375176732480092810593915174238079674938707079650476043427091409633716845875957643724090556612205685167378961003708885398118742327749503745151053710844638793050601597696712692055803417726334265968133292660231148551742788394486769496581700297150569132766196369894878838659283889525297200700787843402698303730749486516366183622154352343440052042593864828979315069884123359337178850251703262531231350776188665712794857487538527116604514815044366806021985542738593615039776608725361536348957510883120844519761850690137744185270002218076143013983655442355523007431041358150901022098399895120850844885804181192881858784969695804127847970885184157935861666528461398953297124645611822936056087440310956269646396454175964394682428458352668908255487457897513542434605828608973505059807943552550248941103651464786156975448275509736771934546533084264044352205230236219459850735289943398742207255593311756581448553736732294792743703054959862566405032620172854231171688512290276054125564300372231040958373052048802199076565484033607732826586350145235758119778329816972643147424508574314288301204570966686817959514087453411872845557933414949730526025541913715759490076892068301436961969134718456061343261484593204042359569931241874525123658887723041890623527425108316526647547773279213357987724864654333631377844180983485115612038076727723665918490525481902278871107509459803306666691307949928318770323513612880194401294793658396770827670090899199560847648435642030496322354519657857015953194172467717369032106163467057644993969347336945549753287831316753897756995758561410280737310514010433376378297965362329968415508202207436753882460583962461578513588228223772471666104290997888340138440049645496531950446105520431620354095073266130274519368471806749830661640049838852791046992464369657469948907336619836735852993171224428603567648363471901547030768544036172811694274798770419033822134862704548049176719634568351937847896634010924236009252408452021342294690361754721790764197304865104480328225285413789692776754996968451076045223252842269293046768300953372589488324776013803545622796459452093908327735269166219400865210819894371159886720899198575411233330029148714480807004441306691892079550186027340066036324771152510785984777246529933895744825307791031640795208442720450612765889562991298255296184063654321750677975385759406515591139843388675065895379699555602662292236061125556814072412674103891848609510624112794961715420755824805634455083928713589519802550628014339841013796051723405287009971219509775581948283440896341404306761092873204247611586249548195094133280605828619509317135633282574188194778831103401012083127528604368498266422499772942993316423751778437609639488823300757058410060138929522168870090183102214869684045401695878404888746880495531881623584486609288605748995856987987893774924911480019006008370365562693477277482361847280991856853245888903307645668174300974114039376971208476723578635665192394357836155180843638604010062996285690965517038437242122097732588078345937785281173610826968094011756643222635863669010290008884530811098412188876619366636917584095562596058600975926781899058124140244467014565847587495400975132101151759119961866046573799272589286919855437265688656093358869192778842278491471310803751491349072004968300408204424850125751411122513664879332573747002465059602142233899105452164858711384775116484708776596955859018534155623883825986922865555349633628087141490317711115381661201723921134242691109876899849699962581879344611588824037919564197767050548106795731173493945134367949542397839001253532216785648130554026715647888011761933021038552089232064370572547524299044496720755410703416230932014854109449759926210424456057846495741639158909388709703242607582622840303903282315036812705123037550731404488912927332717984281059505435109312470264572117012861639450567023390344966024693215581761240814748226494864092811146793011396952211255721871964692834495686847641509086132788208793899780132891532420606711325474909372954370371793076991706602703785672109804601557236250563674270972423738124916361270881765537142816591954257149474081871076422509360091289374864395000471392062346114942300665317079747488970319756528804075945255939718444326320794156435166259121836469141406318207839598146535672983592042144903410636312026776520915020001513812270200445237019250972948152474484470228032954238906177703811371992264583901859071029747111535064582500869649502870113329078228830087284344835928641151677319792669592391054682825547703980708949241901637105642726299293059412774380164887625417116845719156514045279951654314697362560499964070885503238598854578619038492183072231334198831524087471467633351219299191326442146233914187736195652008293218692170612240668953025040590404293714727447465520816183926689333888196925124821770450684194983599578784422254648032681995963387468346345432015951242219551378944314473128546943474606432206778593908506103534368395277646307407977907170488159778470149188728847071197696646259140793301110222785281153973685608618917968834098472408771150275044847277534600539700093728894955670495457661617846839053571232755584909913060256243066497763026049070668224771721274904986033970771942183975458096303931768987323496460908491020424684258517143890899780395878606488842292630762680882547971283381670072397490215057577781933486109036425421009832100868398287672729914173634182055906285731828654210782740671154507719363102300025767289648443748260587294052832770278091696615335859019466329514321904088470389537443032942117103210628577017645977082076586002062173507231554787345641908357506932568999685803816188892722415710851205057211621216210464615986085364400734794103435984477493550830101000387443989839745064564418159850429257463549789220791248485324448378559991712243881603559542259642812894561696058105810735589341626057014409768069115962382911077377096246874375832758489575023771874333378004435417504432966201921630714427491593692507846432064673212329913182067885124031460211643582927594883120183796286237587361799352749514983790943732187522299881906352090534024964673313789528943431652131158700482602154968509468377180690332985520570590590463507430604485522157052459593205186201807807473766425320572617473511329374334739342159164776816402789851119110725497811689655538198071965441926475706931439392260333041907146059487076214478477245038030622790557073304223612967200655621385962885318465301189509830572840644316308206649630798390845238736973761306872268608411140923606801307331983131918964590253800865519446117074520463543387309639779209999031265677558716931005196687565779046823030417504666974277027931256502035090917508812042215962578554934107582640928087007934108214722364765856065290225457237823385674315050548527959858365605616899609168007088103191701209760460425577593457184505668355749003968837426687197357438624906377753921581773376188497422061263977070945041550138304188421483414371515406558519540716209343414096159675730819191336992792147469624962413123971213305440385229470370238309205703343757258832849674609372662820116212131074762962916705667636663005051642007053011351735843689676144099063123291801572029866442740813227934931430855072267738956255801659444989051490314332132368868395428262391723900205591805534775806790882995734151366413329191961106862900123994350329433411977403177345370477923140305075453995827065588606113604056711551560021334095321915777512881609291646167535145980803989147414708928225500703977780633102518543106217003773602933376452717738903778249144909439873785323021082164380416753780277888131989846074655221156519735509471081818284672862512935537407082203716282271847663244696781249990302785348878841173366481152874927526486512973562347295454375424482869708978594496298010245728385407695651061981746806724533755433562137721839065246157509943220670756444842954169508928040371042326455868907538602251286865547892548984456000066618683902306341636309086783955576064557468796005529536930152046536246980666372810555342325348544842518405108097165085851022065789718298684465485928667677451495361066579060556686041298887926602230325075713464337547327332272299933987305729280432246831697100742513489505935478931086779157367139882060773011467151639934965525883887119245452139222952847162937650707549136816782317345053116491762015343545360027600932893943850079151139656913147775062220427576387070600395858415040253398866343118494196641034477528887332632029888409224425292112347966651386477207408690099011602577155471081465289551567083281095815815934073664213438202694132945720203369074314464521526889475399698197611026499619896000282161185067197831345796858704075258471962664363240938363656285790028644761128236024527698718954909621410447029669715153580050601347968013519656554783471676606740091724158366089694849475229656482149108282479580643219946100009323433566288838419418439697489406026717139765770146579609961326779642650993950805954918138049721898629542898388024455772272531379700687423617713262980408761109014285952557811636076534814203495159763707572532037536286663099107007694506119076638536589176734024032613865043629146213688345948182306275911869472272435657627957404928501615601343743679538693790450707518709533494817123837433882317646346881716632835398896325221692516075069685409296559045534262189637381272189876094907630799336666232122750527037011083843390197641281826869126285954376158371819605210058454577422874214336290989573441477412173136053232063595264566929814315697353357026454515815092571891103465182727408653777348873499034005181374076147016514117310020683561250144853061203566984977997778841282212458253325644017683618646561397095806238771758054691664503876861203658175074558497796196559483444200340213282495253574075736703510236914676871801940841440781724289941936717050205870962055447862905694843349916487397898237202535439079814018434639095308609584478089986280186522392417244969576787431503911727928287332198024465943110921731102819434221173261153905584986465153268911181237701191194971498464383759980941063731395360286384310901312657558764125170170401526729624495410834698319671390396398910213316225400704860326133780808535515533944370053098103876537374175256839976037618136106214037901022505785137074441522046228589622296601900101978896979690832591471802997932995103846353909257963560292365727338600670608076424779256450118879241633280367489434285741397012738213290063194105890509187848534934958219310503464957033442314657694744962885809451750596689207933861829933558009207792095296572443194221942044573782787181703881483530718558051099307064692692760129077808814336201066481167872508143343442276490863406356456257146302146032350342381986508212524042899713358995041318812251238838795632815324242315878810180543619168304153892520679875280041352463973784711975292124840730661914391166293581363096238356880792530306054537513865311409259504025912771868932932793585318323398106684720877346309570719997888977769039600768327778762958081797016565811255606903529716685297868071270468740582643053550462811420716803280314018514728593990695418514927067141416484886469845728230824696852528366382024277250951553476394259268437489991178432065173398831792160507466596339847577894440645736288827676759357895938742528248517200556289559891626756201701995439565567000592518318811465417835440963411002182342632377589861936103419374895261974365930385737267062897895135130332939616906579567541162514190291514462334159846686033203962090669907982214277064801454290913709050378322838430270468718610597441884257325411272302656373512845465739200393886141094898804090237332184428580911972293886789758741237435199093062431894508210764181080780745837316190786392099444806403330619177297108703962086841932895734817861121613051773660443501104511922537140789501773164933763834344521623834794979543131355537230997921479635242503718712473533655189719238092676295926394043452443592298493700981309898052786279673418320788366757368655273889924205706511017462716107293037215997354229451937531431396336367795166610048485464490435953066706892252405799642122907285044148534633618992826492192600575723878652712434889861185509849665706629776647163541990408290784674984769575778738345862706732271312711279355011328724765250792224858604314711071458318122599731288052903124609206384519665073919732498563481273708053600666982066319499279247214073554416177609937542615055713498000453111412692880046302207813729898859641750371072955422410947671574054857617147075464809316277771552135610212517860900162095921177169939006339789151793169139559470262046970344825054188467774617032892298594362496655626895453359974153173302201539074263423041786091990645332854486461393796785353414227678557435838034309852295580174460297416558453373632566882546943992743637052585164304862547801050716707510064725633995485353001802832211158005153045322545287445038794242951053554498612951435186845332786138592654056225029761544605033548131751944871194870747083462880776892812427308514301807555506822017323326427646147374507542064712979865694440156875177197107155792364365972158973377360856304350876594006198417617494183259122127562668136912928264728126584371417282363512489531616551911732026725572649921911332919799697630395044913319914755093725397034462161534771132493384180727189713894241926941074402504362114858921873461202453981851508484750574442074501316721957065394691914493556836618349710810672499170721300650790211429675878490337842861680778674953097095387654296885848939748162071712599228213756128220844860928345485036324748710726578711906398350937908533245088469078208582640833314590907993066650526544238544420143249235894928580980446607890814918655503719517061017197064337327367138115981155119093764660387230691570062323320986800408653397915337999503625608283159011309430826585686880939108553438744837151901630765753087664441800750779501697842221506280418401455761812151090835162123337390332063351467610678175061863469425526129122717274048908634871541784050489810110517713583656193710670135981833869465464964967794486215335625123285270964846323738774470609310684577110859619406778743409488624710541393658885472909120803918273773003877296811870327310829536690964506349195811751502108678331170378638907494518607692526923654231297866091787564995909998613106113829282148359337577956217677659517684436972674805319338592239137606604238528939686279527512845832134826910212638864035329704105387421444289396487532502786758337027213894698245933161164475163066534035228918553275637240575047945638498849845466082447726193730366344374017755718579686820293103584009781585721511226713595302842843706331008517922989907657057641654311017636091797237684613854456426420184486982411845714207176585660074449092231861520067187731147890670299417155701318816605380006506989410440326155373586053465574980716432704464828425802125897510282054570882137283874689590089232836452507878898253324318184125273772124447728532747777371712221093215645780114231860016932863819264218379317071054770301963894490920305582343070545482923205487356712262431176745886532263476038144175959030409247980124457158577348531582981766549911753824477718505978376487828971683794575012661829020098258393340361312961736504463647256548714022505232951243110129182540447130372390381407537548466417110956376741092008878735773769889928355557448990058409351019141619689043779583915908270099221943739274195920175025519061814056714052077072534697564105710617448229872454518780498399082285427656249527699603588642687079031015042743435413883758539410948621359540374873693420681524514317440763880660718181800827754775450441006725844054799501774274903763032648133163491358041554523420869205792894942585305566840264825173631108923932762275583325100700867725343077188666534974945005216699352049101089306746361407699847807030244530797453271921827156535339694937514870657829231705353055523123992697988483328962393680654189794177324211704971896902556080662148650359638984883274099461160915616302336062951910513820715450339248967951556161154220147500372641510910037507749974378011086698159286150326413165744872704610347491351416705638705049213961340519787487442621137558631286773417683740138723560463533675450589099973046115834192915557465459159336112460105184084950685123401077167591400595364815529217360150507034512168336381474043281390170754347692820893453104908538872198642011579364730641170551013935420855658504299171772705588841502836403159264800662902596567380767826801613981880016611747957788848109882061919028976169281408972606957915223682439879152351828402324223977307287671615449382915431304078286126815353184856656213562614321362497610204349212390508860068345138485272736376758573251119766709369050830390979125204908661794472009357512112232059691133808846246015240949294547540842285400137048444012538785967350758199091373966444138493461847597280718481723829814155268769414893095018930662961201596303286683186193553914141133758181045930801645069444133530041278436314233741897105092348750858401546061208668140785446201975924176095990680881038432804327243752576622640056541672010245397372229217438197105416433733786546112489304486580131722889284310058163108933300953754657098347555958007923756443739127996098298007867844598054585377643885121492482376401287276538529424847170541213446421694153540785191848629466201342075128619113178482292434785384911912143421565081617297523633827940073380050187986660741398686593913580308032280334744579924239833310476796104471670715795332895885504771741999265318478802683771947537300024402423587014100389874099219110734998044214798404531985886631067025695095795751544584783605444499401505464097697441099247238948958794828773996290075941661268515241799402792544640863183659486801551799593982458021132452044646585035364667492788948602927162226363245657819829013760513895247405947660674089354603027432150571887507775104513126662574816529064147657377529189340885729725374367266967287414346525828744934540106985872855504383709290354596207359831341564604333124410377898989018264934162733053705473668738334212048067453354754868878456476387161550662153381388444436503003034339697466710591678235783523455151965162083252204888407439350290379239494374048513374037368088717176485751689814364033989898472090095616552902060262769587280846484414068076540525552298556990570684693652632902467846162127086955908363791792238565479145949034382235487167989889318398368616627013361978395740778625420468791505799061267672106967292177950402350289669834705825487852716764004663376420089394140525558488837630146348064039590064834394144846322730916075399631126770668086980386809616375016983643671551376683564011065958665392731113783353882964700692549377026176802247442468742783653337664976947154829521501165071745114861846435793257185106179414122805545501955052634080801371098865794354678718989934218512061247241731005507690649438537835750408941127606430224746123512268349412668559536411871631989760922988897317136745385451249458126767991965246046687696744120196563440500021271390861289417894541778738699559032397633647811478512753081573349273681517216054450063470343646060791821183074374421998928795359169064130039707020663727019006051939364707121712131044499701897924338708235609776402800568887901014475979247375026010516434872371472392802903496095220452659038655257151562710286316772456099419877747431999672620305503493218228393776223868976758232473872614999286402853797483301227078182360840450426339659132096415026663098197333182776850350577607361238461947122296511174206651593934745806962925347991153944113063681145883846295747975249360807514517032478196021276657881200674352994660570720054665930269625884613328979767608776702597558411226279017606934696360973407828403057023857669498735543911277000636043999954365484376635990753763958337470974836405280941449404026598447789019908658669620812374686175961072935117325937771776713452825178711053264514271612049381471242756703507473437763129646472997601070610058042466355174213077924418834249565705858321758788723479352832790818240900394146139297933217254306108107452111519076495394807770418361936891824272111460811301878367663268613477597862230197757012500353365111441093690871444348454541070220681671688636380119865004722714240420933561020791547888596092718586316972278617634357769116117882721781850603111393237946251729751238258526962051342119386734639680731542903775826920574939943773528957490222692641010614099175715250942037729682593992177686487776521862302252503143684565762393993799816143279470515105837509897963470770587176942735412429060838346389626398624149053815771896749263025780217365820203168763260186879631616943848502368121339123755236598165688989925197731356265689276961324659077981661249269116522978680564528165988495122798285277687766042473858278206073065170311731846968987251432657425432823759344751964865876418369730595701723891071336335319987149645947272404447964621612809251853226573436490371825490377199875737659908072668145884395698531490365112524599963670755366825073328413646060874379712011738499188195349581978322653556267145559342345479862397414643343039707764352918170141851640039376050922569987731112321521869427868411366056559046232771494272480995415202253772882277358105400969419950119983432319859770278465998950251301415296502250073656226338449113230331924256663102352846719487016235786842090326504083667665581117443708829745013374595450679383669194800778948114282018493217985085978935987232192060096038787001012053620827248910486520119462538515432613821456661918475055336460308693643668507437472758853894029958000952498334154874250917214298387391621864407155304762347757521090467083750325842716041319909376854594222066228877306448887633668867469991018015795048356721541120145897102682310842857541151582981271725123340889257812889352444767968850974227782183056857250442860068785895517567662289631483228541041285663761981447882681771962149299579527909073177802935473925146555557621414319445541203145832366457857346325301863827691964968452539198140573334693159261568662533493900740416542374013277950822619282493703741049972487324736039816057254944741695200700861130591661514840462330662128978060025215871999454472432322110202231402314299504756010186149118910377112191115969570962992689509640221201573090194905698315118135449376928224774303238653036558561075850396329239403590496534068867977476141590241939502474645044990164286050999960038930741713975281651623550931674817706609838419000606644820636626387743388727149996445004166286822151491276886965254610708602508878944874952061461694845585036487413302237121259962008170601796783572037925031024907374986134496075545408320268860363414113364469796744515932223010961368585762826420124002831250445658835845035495677505470984847991902615121919113728457320731377348368722366357934419303937866512429980939613863474986911491180136163976195269403911373506983181284804153642713790606074986838896980789869268986491764389408685059025386642119716959020135076278016576592330421390401807034170113984894422154034066772819021314519932735797417527799306500747723279472451323301960931856586495029751135131653959830051315538610043660105886548356228111296714310425451559985557609998124339234711903712515119104340256634559627928489296383249469877167782206760249719725328836580073387010959411460930217557683884853402979057100052016903196813029993070654627776474425468700167541910762797117598303807463979478485409571922764869928332083167069576530075630392628106120185791324827620893939878416442777973730602246688170855111676913288209004760232516636023375388779807167146752119318152600794640382875373413356004589996848181389147376038455932236397265591099328988647587440045938925299349131939413716694213223760641830944238155942931386153691182895868029380843143755188431204329050507749516719571117430181551936474562361476187096659821691646462539438069377368627423687372891008750950574754818237456558775046090099756336957927722642086851781554286631175443620902897796979727527403732297451203937854062848475421682711468165929433235451186977647324166758495049621795548185269900606387343986111238510374199800962111538040694159478886022125493011605700179476335645336077467263234628551287226712163428964562631651812941815387814807819461760570026312103879627589219448355598658430825688807428454108097318123011461872334765380529576825685057958233309612501997772373727568677353898699116473079604834649742450758031814950743337899101733694641958164484850555550942947231700985145112736801030359871544252574218826452913883787194145126099187617361036243335975214685461433962293497940174681360042480068840778892618607658170003892892498245138373446127405439421453554024230850288119761818908527709274885231293201874242549753269964324218735443828948679499570599153160143745366707665183382112950517677939449854173041113264483213157320124654391741041135800982086668423660337787551404913510483225313787605676689328816239812436280403195223696369354459805023092413547533525233203230777599403697807512783067302872055713517864946515963197343547452984393869722079624351872307138150406958826365347485012080601436527220623325776408304665814133374022289669568209951009731127492119975924288811030994525127189506548907859673437288650966837213127790032497878781128311818770980697937631254176457445807157433079945320339912459959097215280736659410171681347771929694292187580464004796611409990212810232571476756217141043878326779730610393479429302139655797181580637317098059679594220565287986734012738264318296220260155086207273331886846603138788279644928777368722151101174111181499911638663579000276145677855499265305349592910518417560312503735631091908653342165939944221722318285806942118646911455989403965251782098669812312519602640549957605395576276100409926553470604529899568531461527040887535645066810683092212417974164122448355545824467856768845650903533948505187884682749000479247958564686591188413879786809423362579381317057991334245044373549089512645397015604281702155548855706068572917400022942438808657938496081383328419915789439212066179714633422422617576115019878386337262718852120285999591028681099111368710872346321781428777501581624486316971478747920927094513618116174717210096748340862977613520231185853646173182951286129103679770801255917350682473491504060242805930048483234250967734239325776621153689765751616032401384216118802609402102442986857245404712482520053592559397711961529964258220378679377299449926832101780869964713710571481395906183329271726247584351408091715865672223651781811265908115154788842299220930851724359184203801876374934179144476945143392043236701738461519323455990042267770658629466451962625959162912327912182961845146271135893752236645093894933657378459604340235342063122284356691711026339075926770081559164761149247646037083687542520257372070004075460081693917280775541251552557996361995583529428035349413216486237569437489722279930226563768147514631252424239585542984816252786048411222748464749895152650078478447512829263118267472044414071366895143055822149962405911364684906753477917866382737002444308235190893858701969718678927950398077347093859437395483110717187637858758696724629326666070897978014872138961932676456715163244541660111941935648843367690692384746097926804226570269487529936773815234353322342898394874926763245494594454579237159244028884716142273631409267188143688165053821872858651572217115638189291387753896971335890519927631614781363553707763584154492003459630364759901319513183774906277996769245101817205905551549785954118779930228580428252472374753382164990224367007144928566945604764429424497773133079479152295498547260246813474883795791732535387532703743950412849705985022325958517800975503797065986510466892481760521478378648882649671831100508906329260201945253105023623033044930625936957112509034912633884974104136950942165831542806801069458054458186399322592319600966495930091360347536091083927022275888344871597397122138092870981388018303459441573363195995232720976427196521716256533113686360435483982307212373175001398032265165897317023548769395463555494026413772731065159009613555053140749821111464320509574040134778490677575905726851218753738262633573859491967491913683116211106161453201357541386874070011969504983828867364914448439348644053804471146917293252770405411603981377995692367286641969183183192208753744897785819922388733732800874704804787367977199736041389951280786390920988733131035105890492813778298857729960364769506554709143534033425776447616786288202302202607048898739170576406366207840328956543823602663170659711431072866216454452075989923367184272727048944567048859579648371999531179475258786756791343642321067345828833015456509502551586738509318402496349447523585323071475798940261029570197563798917468818061029229421248403977426924312821215345993665023132558746320417439302114588398114332681287746423369080491171541457687414641441678942386809081531146790935953404468607484874359290513549872893101766646753540563066384133778787994042519381449453538730926316718045605687554619401141872386925968525116317184405337783408531290042362669245745501984057356521861807488052327929280822619253875480718133857918937217237977797644253439859888979934338985289787939329830829765284386644068162643218021338935967699400572060059912535736702613585641825511555818209907105123880553823712981691155243097678089893731487972359660298626552924589245770346195225530492099126918141446237754995090451773347141498361015489740334914845317866537758471039470621352963189002844166124258132596235580362495416180671800163108701806263052363101595254973236809954802564225030696609104079988610007236403415297574145123615166963529545331851085709331533236708446352595472552231384640114189915021526723547529472611803514447905802111287640165864850447878902292806444658799318986375940166339985357565852505954371945507094803405176434347416713801414763417204252815011747914859843080339934948412283612240909550769667838205083054801565178876638749030096516583799606876822420896955784656906794909834741477272096780756256276732664750330850386151333404085330101272523097315695858251831552468193969280991545090368181913309369638900547702420357469216087220605585313266049700297025187612245754491863710129777424113081394718703632639785862790925419459079673058197264033481149050667875392161165656425263849634602416674378580176003157900878481204257726175426368486426909293934414827607575017418676954905340863371898410567648163620040263404382309849553894890923762075931367164741000781657407332951905383307527061829521440236411711842197509159327168810420745433523500757762466935375375948624598681037409666887051608498640056643272589953706671252297804362269667189094532559748050221037606841457068032798962062738383502896502877529586544833051351396839536401245705026714969120765210206743406279102640622747965549885692681409961346953552079492476581602908925548296195009330856549363143009139756369158616941775501464047434597341325063471379579010147166523326537049905127439241490269515720124858783011027004778699227777032272719462151188130052955479673919890713316383742580980771867265871065614612225182361961563259526531489821865105157291309688080985201384752893496591635314846497266642908915544227372086071691535993221704401243755354695068207109240389324357028863558852565764834378536563866277750115143758860524704635197924468335691114939464984853025610892837552183681329396791615377165086480540755291482268360583355067373413991508598887820596654781256210928789888278938218810917371753534578002586228413627371139806697556628446439825230490857342098216094809571952140708174354531457335726597596007546938972093171561135337245712259927289671490060001641274059992737949484324072913850278639034437809804034754301329580968136980673474357488090993643835438542662419709759797474845923274074032458618936849931848595816242279404223590027459284651610240624691839175508211851305156694312402054329703530849024210523043057421615507077968200189655454287710856668846200994619093648195409514836328803294462509057934874094578813450409498850783497239050164038221469425112749622038869381644463595488366080858818460797820653135202980054119170218039453727649434347808327060742752846643975643123211403853523218831899624737111252432505114485191762144264943229400521253271975614315104572428659826803011621741414153339737563651810262637649249614107413055655608039287547401901637356048876080515352668461384405808779497769904194923012029395465464500605104154552468587981501233404938165030997834152613216838002613675208463255738963895841166401668822725653507889963370823029871866019459006732887604493136507528752646144349723816196542135551462057841520099001639460102117496688978717380224539865718835891451232981873152022397700938881491203193591070035929680575435807622350284796157874771142713526784909460567748288228823889146150687027957150726540956718213812885517505590589564856943039387978824566891786839329025282611375118171325513922931288219093100601187315911078338344987849332639893283442689211858773243319624498638077770768541213534896819131776237710672535141382703994881029670209708972538117621278540359051346794613853127886675556626034290002835728774010540091821584863699089400365227056150635402708080222896420896772295897865528256993243165969633521321736755410075061599030851065257392408752852477885704599873530970148967743314138388809193446256910708987598495630396205968959120034368096004523039485507698123986456269462558603907867545958961652340979900576223671489353434495466458735729524850900887872758148736874037721987284344528612749619151994813045098842779264943272810886353262695245238009588349693469928314038470058121760836093400733253869876746996337975157110659649375609096675197126719962171945601515334468504631824249788433070618207633358974511418715741217413432360568225283075680328357550657540658887430216833565365892719244119436334686079883274016776087047617500464178681873269057234287656817241373752649928113301494532469136603556993998282972405385593505590186302743408735321818751310818803375221886092101911144988173915028608593049100427824864039811739715579188479211132524764993919024195588883284750496059475771261594199163632864040262023989861080959247067198482144229315183096441877487109630815026286820245342205140581939107829346476872891764696229552358303856967677927239448178994152504547495728697419016919407710055330949918244903716607770180841556932864563427765623393138574342628100007942858562432922883124847097895258942731708991418170888051208583619291668089975931273166020640669804672572771256731708228646330458953133109117446205493277645409179019435890579475294722005899652063265204179080246498646277564672489158460924464391174074136862321212116038520423406408582182008552745373139673276423450645393886830042166351487838314339765280441898647995506482135818873690659902797351032324505198796723980014864286483802602859916078506600581850405514398696958585765284650590153333443666528616752905565691302156483403491432511709171736841533964464169192810100771531408453326668012287269186645665016985875631210438947235556838280120004916575129433013991921764525729386823032712307413712829331670135493876607928581262344557118445738516731496497981743276418935387975900050640484517766476024685396230861795448822546326047985144626786869222548812863744405546897151787915942700427289829409056107180044634117393054942722006822344911775506626296404028451463768405657681027355583210577351292349617063110643672281416186588007580836155853152380678481485031342933403835197538129128376781372730789380738815127359913366722381800590642779785579311402951050896337699986179441530326938046203429720646369593384996721622205029948925414693800941514996390815686190956031597231108660566843843163424120883968000938908896900247417864330796668906498359253551661352047822080348339338563917351136253361539098053211990981445900933222961330948444862117500622712465541352700125570987162072159283741082223425761936542379955453928972636738746022778082131112260787839942640911261782959560795630208736597709260923963786308594309360761924278014236134982457736748469174764916734229587879875521160083455256842871935662601075201880119104327878563019689828888512689165283680003524941176811464139548275679836347179721118245684070598586790910019442960596401421487007304006465435714225377312401435169698251818268429332187016044903159389506126435179359550916049996395650481425950474884821369236310020801728147452853510923963529461159156057378418816747956003315081053646283808599710767562762789743245832581966251602699395386871351575470939239592913924167403125407654627116121682455969177751853109509489536331664535702358951949092928946986314438645718063521949924543818368734484741051402633660278839969649635167997647136080132092220326940561595668288793263359279516289033784548427052062922833084511006755455001055118162795816118041340284368161759833382375129536476159650905371660264685371498804736732187089387366381114968712253931549452355740403873790894799625809027980525097293577132641355486744982224128583000892881005130943304638705005510155358478098136938043168781449658188373403683223427882518347180773425545071515442755267311154747714367707695326163871814085240917362121964175524119015718378695758302354091750589920018981650557307701272641029582935221428790764758592724189329966405186564029907212882689579536275706382816737313501433774021182723213843960306587401549193897206430819403504804325077384964533356640418836482026116867235169457568703563971419736970256767474827536674126632908399528271095783209829467430707156235375712004208465052597821096520093452264825858785693959599430256954639941586297336969569740680678086968188507991754420556749814410828639202635523385148778708143416216396422205255067520830074734011453805152115470150154257956532731744653634191910069608152296720998678865349565413234694567026852552937659194518642939668953676382476985607423296406140312479995889608387834483074337601101514925392313983578448420533505628257405649230894862904045156918961614707653856789809831185009883830841460161305158399263587264960321611147697002258939676410541855744504769409535961089447952936531870824712622475155190725666261628284821944722396441662761339274946245943440432481927164910057482906733679465849947247100947854892940700430142358752354557668321331159629124516800569248822269479810508602870121782170411118159844206706139359605210328361512631097088426220511271046022481030300856378934912842076680142649449184371300075615897974433448133340004347743800268470098289882764449187592601221227358407657091818486405292350391738233669374079457370022910644929093616243146622713105849478113780819848859826020481978792998006553422978553293376820248547356025397935648952180128764045295289836480975575654381925496415450232870074976499347603901850227752036398176825035918536117941524991528831510161601688569239624432236507595899079162926731194546457896618690988305829172975702293457369181937953953688930960661002234503828818279922634209779791751449467579352613316639333600949220280636409341656923946148152263614685504467695401708411977484438011876356274324560053263388488452415853376659243309327059446042512124101381099351579511530744926053735321171023839215135461327338222856568261927338648711589535072762581166062910065692874851531001974802321985863847770975671148197979135022243645196608819885584893238780003999322281188351731891502999885979864545874914425924580148471290989217230200074407674643757025896663610046807217974965994342258534775719493331862819601667321233783056623056036923880998643484547364167755563224683040507895900871196163849638686003191038806289280576871281215758144488035231489413052426451616741830926817899125121771248436378689222262429753046523444034075910515209872246915346538954133936497930623092202684701214893981144046221671012935715040980739949648209130543430166915620731449981190760011466937845410033787703463031134326354704245572130169602303649100431659104188603572198983141601232905107163456467992872707865961050576635960110057511711761246627637443624424177688049858815842237038872655774035709195566588380933786962130927555447994232155527187559834874170125504453428959182054770064882919289421565444088957680343422899484164616228845035164268168550641922025958261312064053647055699185927097629926162366862356022516044247554392085485313653370682985596852948196035249375185561564697501334697391242444161151236609910520418770533001003223665588313992702333297474316284909634273301626865390070434774694471408767377506739216146049241736522919763858516937394600823156220205329825437579609930799101595808161236224973869215098907092570301206902140255280250104143631496685120770854380676907544356098100815453364062393501773571218503089092251350938928419358891595679416146997487668439208394276101941228370119068998162324016085077680916055250829104887829122329686172884979485746328356524879263082306695320015309771561309083954506518451490492602380263658061741046844405808672185771216954186970949869519770184890300650310900483879009939128109965579761197492918294908973614798909623733317321449260974452314550247200903191951864402870116326137928903600022025267793015009264725709610621822040661478293717248581154322268984460102596764824698143435679394468320280068290326504544605532577852976870344939700654839804150985245685104078645765865999273887110201980183776952409885818311435577543312264338674649631946819844923338840478039459887098283244671628178344701248416841997083074830475842201017897544627896736077526876469022089456271349476130088999105685657684997093944935910669644970029497967189630460604042441667997285453201217532738940451748980510522871401047685391081053828937276984397034366490347198768626800387743421041266378985211809929197905437953556916162328328591737146243353127264673642969275115446888867540201851947456998456770846389551242693787415922175646332558108042159314047328533523123965695241019279303013540597539101739468632718152323801784133082637261642489328442932617673099264129777714698173065449850641250909953898896235944981055739467872696475697770083962581297836423387311081632979810678645283885559517764856283856678569757476370643610118977446841088703128790542292541295356210396038537529111240167047537792201833563102408746918738268846865247139099056026244092062863426328920820796577659622712421896577714129732727808833204657220794683451157041929813936896414037623551581354906924587970294328473485707540024836688574901000251825012551080646489382054518596264004929303242871332944220137070550513350542594463563034372984779049572120008235321046564699626997726900644064350680200907982708139282757012845815283113704759473530034091053575961624092476649083087470228290823150674145013383597321753712488657583545997074585286780042584313494158847695129577516441511567138604883364456055745262001063431369754065489922516472750716847163311929249816905553373699882602965574803664119723909452758128516687915294433831910127956967223759316359330147701799525143721832776135986727364746524019769310799945547343774321107130985664709469465758543674736597172957550363192084674234005108410468008474776425784030336169593836940985308276866512160574505425548269596838403287719885168171678414950499072542679620751320578813579980774248490971489354190219317011606857827035411516064009643256356581984330170168030919371373327368403184684224846387475456129719709182475700984737142585198129443541282874948868593521639648642208795228329219602423692473624978458931585011449448711212666101046408012910627718807189349059395395975166454646287993736422867864003097982176151239707399595818627896975176979533133890853589786288510322906604326196135727154641287211210628467629576202442356868412181959907899654536384684193343370029843377717024456561733267248359975738592469320218165521214530032508606408722425566042429561528710412216940115099294799899501797205881863677341148475832817116797319773698606975123905609933213274043337918762011436167579166912634708088107265670311644042963357987421878456307491841028026499048296915821607970159942386243325491534550375839874154588051505425969125878793911779842987020160879557353919613966977938822129947795117028857566003023016526397165655131257785245913069333451101193518197851784465644490561971685237869419698517098138925098724790867368617272831752507005897762197722720367615290113393022808604542694616708242750844631876991712786515946572973566657592927963441533285194943317628843482612563370749476121424807133665773384499206226795861929946365012748031707659902576349223536275044762250281493959051695901473140591025792006976123470889909368609428729934660458692281059771695814361527193393209331036109944017528588490573316634066535253895666582643127379215456489455930383816046019879846694490804618350180539043943144287691721961349072160490776728027227581588440816385406333772303604534640789584767352812003189904877382641432164416713190799993555606323737776005026954250271309479858907507476180112568096840971989919221390271801488135208226089341628513229079168188286019206562797550097435098689665222772458926968936388025491831349040172244895534015653527956149222881795760950882316824861356301940915977883543071926866879631011296635752196620034786905973907015386461112650137709124183893336135233474073055071420726856042874588914625731813242637894788579208613007461282593408986235936418872874058671244505016887893149405870346355906713074700745151167206015251022106206987464076440697725497063435012975620364445465356957561574027821956622884396747970496807857905578883560492257043326977847367400855164988927398037515395092768884366327102864586174900977066104022766732222218016211582212433252054534331744295968224616956766365770508418340835879404341897152592071146640438571615618340134358899243403099664785933322953526603177077476711703483691593591740925507522886462077999819254608437627570803139563535207917091013511627794943928405571386582854556845556631293306230553914811201065767237561787418364886906128614471558811274430529038061896793002657351407233928332936463524953143804052340549630724451760444963240919229511852237887495424867640230373527097721483645694786115235722965114685586424596567292657976200740818309143706951505707447619249695743065178540406884591789485240224202663041929377841999361744414794653305696963474871789995120867161014954610726456975299170890486710571216941429763606040147654604142876977519498776502682326016665704814882284843197143040466237692632366778820713621333451200182006246573666152187014738360357892982408939922817061749393161766215927459939998150597841687719040194126398577896143942578057903154575598163834803493682222444221663886987595081628824755614517885495616856160621620559441064489583823253362879207907472337073758023425431027999125893287032220947035721980084447321478268167382302565183175145789398525648812871116847212248561275541308257263856752277193037741237033366657945408593790318564542928959522544470244714471015957183878224537630860808818862736092431901674122769534699267194899066014836913863154351719837408500969382263661941317436534445798452934799567320344091700862101142043645985590643435279823742062512904706670060465663805927815512928393068624007991908313313024423361409428222038086961320795849828065338067654221907000809507327211408351759118023819150388159555006037791572035678624121413629864049602512942665148236356790764295045806291582884636028284808933367357917775663826014746506490092859135426424226179458698444058242487940317082072883787873221186412477294213731220094610271293917443657511723658026632701211394762200353716742185700424949278761745732484770099437141774222234051948608023978956733832202900898954505188177036805169617301659903054021432169236125810120298663320889536225791294597293097969320109612894884504393457273140629633969175525555883894721954237669668401329892261794701350319822470249630458216953423875322874600133027331598772144306835627221953015168531680533209819273947227841452395765940200622685466930131991213445069489243599974527455820536545682505181541621527496722380224030708136314366276178103466839209497098684364457474523614530986599493280736448734623509309646898461009324343571484068861494658934771188690668694165263531579159166235889170023942645823880560226298335125879728729877331170447949333137868612519954024154667613506398822244315198302368407632841122655788112106067093519047244182796217814480229791279240609443054765737056909709555486358660995557379910639430951310674021176213337516309599921892974977293532970097102741726200270274223753685970850082053642867159112937503188159084191277727015114705237762855880384300801827469885176193677928035367527368235781552044977221230799810624355893904484767155971719166786389842409120253094544582686213690298963327420885070795968312753694241709140861677819694108334241249794872620091579684988445823406592836693177986692932469997032001277073342822170325004574193907300595213836503006170046580462233387750012891840671552524732482549386835944442565580508379836735004425328469891811662087141371431781905356944007207659548476938813840249354597880819947301865244177906198631238927218078352779962527286175279729557267313959041998783413510741970590714523564568715230692823021909538450898803928417280757101708498303734984886700210418928934914614589917068169070529405165261202671269289607268388944666445558104588996040153986588699241137055367833158226370700468223148822368806115717639077679956630137187125183349879957748765328709738285357885846025073263646450718791646707475926228662314324732401454656234724117702717339942412797010406193042459139180108018307485870924731762515720447833627143037940939184267214729047799662742332744565629293732919489102845063344283919179482543170571905098643262815345135997702159576611953114880418430603539073655954173273849461740094789989391109597627639607997730620690754546096393291598036532985606175206178253293270564102452893502379152725418856398228311660567471248872317555189045127799634654555878248089153636351966803692208899920086045060043973329769823671714406743808868665092986512416409492818131321859533756076913284655861924391652705673896427690235427731862705553936775710157207284138128059055117591807968373833225772156141758863193544743288779108228503279169917746491440456868883406439394305638089572533290972283292109444230198467518260926843071073703667393054941913206014487401082125198355454084361262735279634492438816579186274461869134511564591467987950383933251660887895662043337849762801184488159936525959090978412713199899829478611680465191685774203197516019292248048416669592843840869213424956627569945170760822149227750688595561395295709745737190025004347594942163642668668950126477106705999851059916708424811837909737525648178124737408282311950880384289394031205987598768545291715165623407637304890239151995366786350970110406703532344096129543772800235363790523519079810079190070512574484507904993807034654496933402767076723468406749039630339012062485446367412088815030803237028608827850235456426496656655878561002839056034281992273988381123742105013769298188400106673842215838754210727485599307022944731010298677998613334291968160500889934475525568867218625250539943590983787430864699557832293923920854500989006960598406033639620239845057549735992004243649731181774645558511657121551048284728180898155410866120750202751966860457598062904254950473713647101376628653012978349217071885911668643495554714351237699141371708449931644218087711317373887151264392268945379104443486697313034186025422235931413161801323263450959810253449362467790092209636574877699955385796212409586159392538021323584110579000571137984611203115099789325026966579176831694746124530526005513598548554367438343178801174692883330719146816674567457335993014934974090430673495865302368471095877650797039777674968086954412949372158203742657169043911666850811513309422612019728923805133527356741201760263756882222613318351204622164348561498626001828885773552340923961327879747562661425859250322022761563969606020736424279530942993790807102471192206700198193688621196758255778638249800539658114383880229000683979043300216108965387901539441026476887944311016738697744849278288743043291679925302740646981191936238495701437526945142608184573204471619910316556561806687553622927901594440336862024019507608078783691427281251525128716181901361323448944662328026493267378913112805263277924476367867079996628809318915744064892459125474995825626833653337356673846686554826451939532665198108548560183297266884598312166236216726544322895190757216010833144178101549850334643724231441856389920396393746922355313756563127801169611945751484312059955419371949841813869333447639816034361375639302687815715754471073131588014949137941323697822694871439974786470879792396508650656557046206900539313332022054304065776756268379665341656706987329436953954988027036793264692034522206193845999422315879314969060606413569436696968751388193140747841035350521170075224645682635037406178095533290472693166335988031963697098185616075327983517221200614122611548421527392967180310186846269325268588335481578746561038548010913842452437527043272014106906828393519883812395546899621461003503304325871832692420437368282999770434036773569455797994315638820664408038717753709755693431731493807341260473414915440473318687879879777742697356861671925869025864542820333924076670480694016256104630269637133874492953176761994980305548455189099153228000927364559525583355459627701399885605791308981773849816173595209738769607891397393965076374944282077501259668311347106596913384195953042647310285681611888448199348398473550071745043919434447989160689085849549828528592051729371471854668543778487766169991922667621690335802406292109479064610804926730467227792155151602382576999377483259736477646036938191350900714900531631110582804607294621162111756061490208264577990185509395756594941134009485649222083565673324274793957316215749837866787581082360553593178010165890926469628446416366080494912824770210183271241610751868296440241227209817111903744394598134203621618987999024245259435493859312974210541912071242032958440614413304610457360061347870145818024903819350299343487028336176385903996069290444218567145930019987405566896557946563098082234971319577552736145293324519271004499847052431782942475866366390013573515428962559387000285753660005451873555806535270467779505995786411583983573287356420233169498281458057054199650901230307400905755316878877095951255941515277868839456245411864398948662479461485293759598733795829366616852421027052861325925727468461305796537166800992937260546682888027028376467401356924815870958308283815006394312628407931358839746407006197171750144434449131529338725992992379844092469799168874978152899598491876248077014778953573193545085455930504227955613528683858738920247372461288651883499917499960760530750517543060791118586747009800438631699279608754927579495124991156254093024852488902063628069979082094357066904765485177224725860722645947386863582423794379379860179465699665654770335106642901506869349881094437219510508749560235514659501895048780382439046241547010260149695418951354176506604061785324754033962505677760159674992059089988520348477402051099390297875877416394491775764960134250773309735397997887110490773777354529810817740357703986490908736942015790186581782200131177569580474073838684726197336744758370109833211778405320049601188712467071136978003793262259996541313644969431363343402061002490435104070626834899132638143518805605170424964653638044903563847861367928400669997011805837314069995526537767000708758628940403215219293962758596934122487338537017232706799821502346314535125575733890719604791393516062088740867531979078624087177035212325457971601901162797179475247347584429044039547528344128430533273542408751211271719823917275048466278753550090194771058059394588833930085564485446398316233286981254713697845352794876026315720894969640218045169328880586776468639645454547311520385375211905719727179703719658967009841908881134197811397015681850151786720781976709875894268846340238907926727726279583142531063174226084062921742080707771621769117118724766408443707853823105169295057801750968944812453375409150759539976389353238773465231856666592512679722676637812252557518341309899202761825833216498331114062385477015009188719209321400818869073663544688865439474322328099230745515979492518173114574101900612896749594329985792202938307573429635986405287502852815962807893911330542179748104109338735284827485441261015540398637007953440661849879832568282953116968553906537107860375742575220902982684957453077970550642354051064447187697068249531617466700261135049979167118755467611919403031830252691906018706417897858430947614384820063887478391922967458973200356807285743146480275848752058940189120494010911957989568107709993930909120167484879937636331706773109842912741538295524323962964027424983157371142887878495345012784748503626572449426282184952952695918069481398846459277734548499855626765301375224703573387900431350592968868468057763327010216552673605508152868312507872270591293801741609164095723549847207783128617767990974393250397846000871471186084036214855783532451337307027405306208829379440405578384890265941346180222457449613206205619634477745715787418017645869334349817494929172096081789102606130990139716204230591223850772391139694552815239565251572310260837910237486518380148494717553320239576767294556153237051671996743530367966015184864620471909147659569275799782629657165332813472342964110296115922918930794899098109225292541269975294781987447348450649904256651210197059702170794145054307148981380440302988518272795394972852853167380989255254843112459809664826920666041577153564672546347200283577138007925491012159454689705712415798040878296058395274671473998570817038907413791144305963049409598593070678787219011906568378754060663661779660987776337858001266058957560259700268433846503696109800610245550621913517075095265598212974971264919373418799189031238878581699329238152446934154222793168637505450565535832843074950664465080766478053331069812172848018271078493842859249126227370643372622915293967100288310487943405923337126778242720829485644500931229489019532822483453514287326634570618855495850212376605592871676119479115836381650248878632034886720547038173100376072645279777910105322666600442226599822522878972611191239410304195201632638002161822982994457773825221652322930846463944314713128862694709987354720412771374708502052953364870532047711622535967346298045031365722123759681514908694858403483989402113552899765457622763635313330989543728221539043850542923137851658618155431087122959735570310773849268393452704558889136599773031106984341521624523453966639494317356844755922356029644268251141771009030116694732483877364382725098505310125036950752402629967607602841201178759064105194926936663457593488377335109998732755330290961461159033945211686012160656550769130887411771303538502109429393273009199137733869444813645171987856577371013448317887890886400245864212825102198030323980685687396838464102150620048176823999050138807318315849839541179858208057844552447777295518447208115483512630676229993777527195676750265560788008669893673838601939218285040238384022612639597332473046503575095811737371666334237184697879204400035973366998247999324350251468644151834269266014800569395152257309476791419804852812732310303090261773219518714942889400326713118971768621876603766704126028123784575231524493727596869834334157601484422753519776490385074550067033447050328116002699880378659726077468523294115087629565399994306636859348432396134304582500874921626237664705932359914689911841274582449965658982888346780081890351916492929306575625308593759363052491461625719329650879239233735951616272414866968023537859612978170970317409743713578570193023297175111366893912704944911505392063682169076160205751902093210898593855019208990622790511065729420007963808377490823828491182470395653649330504561480735256277647164462963127726909600895532907592233033514510488183254815125255711556101570729572563561832805891556647453439381915352383277319136266289462258913485986282734589705621946723687951143747283788059380413894787429796393025543923930112412862101265964239769528908185668718379927246889045703950635528628637660855660452623794279845625549527535036397800375998486231098678838739291388873372535413634134823855546188587724629819077164883910474117930198144518562381681073748348498466833015767924948969799449420388308453155563628307495666867112621689577051600805312284737886079969326842302581678255543692360460878967452733074578255860470234581501621990879644871299308687652455790842968093101218128533317728727019570644251490561772383195609123254672552287463172638698544637931115220366565208301871474643232724976701905657584271001109139406639080630738977043833712851771614485399376776969092549621634347637782546982888083028662771197232478240172084147589810014740474365120421809539678382886234992892759712286314176773255020549187061209714171034746927307028972407006030246809548987860395194079794452403264069189221061209961439862563596494027107790603240380261394522749245476227303821909000657080777337896667875000265779397069282622216274174995243220264595703334332445200210223674770201813545599293919746527775421894540352816915397918848606010723042597492043881874126017869155360064210575155117186151346509224989427966214893770663809335346143915542351079638405281472174834822909948350079015279930796504355593081930745127304218271418778319903454216526557171310143349463778300172091257600423630489446221617544969176727570501253322856730143399872377276195320737249579820152105357966027034495426924781365935727496259402070122297188474154104388146010207096104586210962661614000567588361818684042229415993369876920165567880986760146644311451928439406067614506996898111614714625713914587163362486378478161617332785986612976126292789115574920293539921697648430971348566639889276095890168972193170260975590294313202757126151330749794910999416595182023740053953723622560861475831969993316515735735193465614100929409548425988705184361460018086818108270843616798906649165154660711897383726200356082896806357392573124280157385919768182748129616183938921724466209470152471300097838848605238120504335851447314677813788398626014724288532884692456387376984305433831969287050807547365168581105422907498531333257430928834637225976199199686112886294650439763703628125633466215060261745716518588642412557935124602428649025194886071353526777343532329166185573208113171518964903596106988505296774619614903599394600167578699200168025468782309406229884211337723074063588300978061604430224287128601380792006403160278774794548795866022969163790185505165182732903676738326550653086365117375319145195672372926017615027896229171308677815728864097443522425022463714126642008223341133105373521646931978303211952090400280667816618834930356346617888794478582231104679519564148795152649515884419005265004370984404507339176583151571763118298456486309680175032983342363143646437406032914170510226593374684829779253909357363775470009837128865730792238087278230025581612328678489403922147281962630093535868994046840934014305918315785402967603547965812514628939922571109508671434285610278072229265927599162067418727590470317623196459798825309157752802323362564896960418092094190017605377245637326132296162099903515066100579913453106462645168388029676330856891946603630504879632194794175331732756319477234019705873672328152210040538045603260886456335565758449342521201611241068202201048801382835455440042909358187866600560225141175714624774410797348721607642681994280845779736749365498262992789549291395579514417669104006423588164179884505226131491493879203745115525459984848212868608128997314267149083710259994714416365376197107170646728532537836730111238751374480481371214104544978355882522815807399846943586489207502550957334579968029353706599211878018392252963533685485696904680017930844304262676097271998838218620933628094311601498348884853461345060872644341935534166071013662494859917947641109675783142377787810465877483674609166854502936225773640497253120328150818529350774648606475851011650622480534093773948827941455787203212554874444438686561862299405025257991492102447970408922152905812664864384947990677531945724277989226937850041132421921780146928931782739925803243943586752789230286091125708422582563700574544778334930327082932117594418605077257952193561229758637868190325538445465233761094279623041035040201184563656161200034140596622768217862703701590980272081020442282507090259646370545577738756917542772640151242258034496728086378327114616577538726168911881681245753861553214910405523084649492442264733098837194221184497603585712600262863903763130969357034545762991230427565976379707746699879040136868375447527000013341940815000643686348361900074636683967058822081824189007248737421730082457942591025866836416502358259120616380494184675900746192000334498787482846892550252249010827807533653187275303302832274676729227547647713022077379509904456777006776751357141860528152932188935558130836987123862851396310660455812034086827708387629528694214209939912923429313587829901746996981790693406651489954508983429022998897923026280337151336555281653938422821789060933010049426412848045767721411620849477963521923879901176184629829573414077890205456242796444868486642060577258842777264566183588061669337625567791409403692654032019829922018702097391726165184523981482918540848288272242886967373177876270708663863890510530666872379535367501905101125559459023317012348795821076000309545289517914384969139864855221002373045210431034997003351276260233988569071432222162460818307619008984507601450478539903542205275818851446429200915656562964143474140231104121137263231789440154721547134258253734250239771366606314924348493649534364986670526817023923289787385659035202757592661897228409811640306245629962292120191100260382479657605614107079267143986935303726793807293614245023183411610903101363656520906248998520179164501165830246733115881253575333074424668319646742213659757483173752421766386215470527748744011641428060620723612188186851312506706645756112301799558525536453593339563054621989566476758458108009539380422421515559234213956720975505490145178831833451562877653220889280162998946755172455109612921967258816393159449070859341176056247437193710622469866061853637958935490256305982378578297663582584181001511378996642944018966287275582417457800327175307669696133474416765609195876725256692197700185313776931688045169856485745490351345379043958759366336531869419544515400738659553528776650518856574931614701607428388415324476516917051425488025069134116202315382833737982861543305571810469109824820530612048791407010059363385189194202624696755184996243332184546680256929163467691768532753705657437615298946255965907368912926765380922777960853003421805944350597134805098281567920955644531859168225567658585651635024207399311884925204977770726380754391411562162604716229736987274098649161049546881791926516293805422432195566819165363525158099107744445212631361756383092994471494310536388875351434643675178103491120198887392813229210237304905134029222140742605361687613569593267368321264605130831527239001574491853983048767097932545691278536179884640191610150998851051216393625771757609773482809447697106866346700814126928729350515163909980865878002507908229073805639969546412051666712991025004253397941282498719410246187978979119913588490005230114324539529014386964026831498818048902843691581307762779303151938500140898556681009337947579980916525429022202576353102303338237263703197847722045368393475518492780519025723637758564466241348945275755512477987279516496056549280441888150741181189884887192072045638138148293476533972823116054896771900284808137306343246158174755061493626690576616492785416685710945515012307750897766930379464090625140817678123488499467134112683597478441105966416835626364981422287041527103114185585247922242061536506112883891073244366332376429315420280069034321037226288300232538202521186473249559069140912607124491502551523634217142151401222512905727121411935531533690371638428547058921628112666346875018187041079101166270992953086028199440220082904030184653161993570107507799947899593507976785889499006782114789499009700498388379954090090916438044118241013042542122776071920548762417031952330516084777020398902193596594279232161948872753643483080706653744017016308809673949567913643566807471124945535426465351091659835626150086071834896044648481951282163238266382160765055768345144078346646569988695642576000876808087184804930074032240794941688429980599825192653779199384283454815564821047897674762637740751676335204778460338855163429235369283752646489742753548617770692925234756587212141035421800314085291300075590775697793517038147216129816964339599154735022889120989428738265064459670158077708656599495696559562590691450627795490169029200155871555659266474345691313357694356538258294548192161910430079214189627858169148731444705514179274836440815353106039108116426666848335250691364637888120416313390009232781148529243889478294938259790185306354354250994341970267503790418970659140774201078244254106380892120663754504717538755001510049290597949349451768145971494448568919624408047184537314877773345373178195090747745362126810911808795311807659044469435265358004518317176478034438205163862946804854757020004958686178435318284826439619983584762167756462189785728801468269680393370533970613549363352551593306509391232162897431472691524784322095037789685120400164541354464256607357013347133100620412723080353222044250950865499091399858218249629507408119795894994074407363219294305019604478274087698305967867145644426789232311577156990684900322918956769013649403672868009949857733243334808014908111846930361930288148961242378667668797094572899200761198872935135912376355621470373260669965262344603079450276261129791216950523145746782165946817647402166355792047080429895974215837716874444596222249409562191809786212440218386505561129745781557192470261264442009711759256930259623041825351859968809676179877230786005297967388283385642166569011490367617896118825266154595436535950029411202903142728944966443414808972978998773131970699208020192659027555973866031928486030490801667742123076038727052193503808613239854164911529047966528199204276135933285012457238213308092087707508264138677819070763151845829955196856011551652451869646043180476680453314875586765304780857486925786709377159661537332571762861915358044931651030380496433626344077898221827343828597456179623485311779738992350943032304511753300746505213254036576756595218589611382507166959160809159924497370885745218402814229897090219462603200211845640462695690742373088468366292147891334070790406742364137516429936641288350676703551475625532692259550258825391073154364478001574767067393178636931030436492347939899469850290722809801368440434761543725597098848186972953582619733417219265765206821404461085217255316446722036780699393255708417314159296691239154818711248066879625622087313003559601333733599599344484043508337147369696190954144271925182915724729409299377749815905658931209713879239570814528269960236145658457335751312425345690502925657648571934059820313337013081051502055321228311294650666548389910578655278945535756973786721171207113844417731700355544794252549369268253297015626221554962308524260017832277926211796769002465886177477799676485630126900304341111014575081545313530509064562322395207969743829683988463228025738213429205137201848084500811948537657485619114658282771901465580727441952429563111008622163100133724076053283758779252484165811986889411024976690172702615078292915435431213238702179834389554336885617444370736575095216401611886375131251275274108563983707345393308179574492920251140389907379547661010122429057987749355073266671169251011459884107800191287898418205459067315103534105348393533446026261607114582114379953664221544123575934368036883804893674392534553010741308897532006084692110853763981333628407392446107204829964258364742436216918163225672391290188221467919617724723421665362639857814602172372184408028142700215440215229637064712549515925550372059195994376752896086696407318319141256408743143854336724064317440803902524840196278056890930801526414587048633055520060347706369466202244346030333691699957491034842841036273745820626635263151129234984037138606811489786719616419650438084187225936123122852846993876468757549790741368286228006980042485069789845660127797600739144860062917235166425304569154159740518824743321682839254918381471834400679766173833184030233985469949647695870247828967321894556494624716809816276149145404008900060943242509795224369675027686132644684616762121619053734746348790808298445017604518836507141050098616180695276302259183989211802317751175420017875165176966160420100858539336519147159873531347949254937639842786065096532652584420032571959647875865689072526920307245258621880786083225937638570855208970819507347021857583721730738971855841020844772855596034309669194076100273838996604049405234222849198073528664414727919324642259116617301787560605378179027133220969349581088938001468449952219710158393898362697115637976155831133038410894944250531075413360131850221444381643671917198843914620121151580528454714309736533082134870748851559310489646125502023439466224173498294079285557181754700671461992544279528280073790284798857592551550080870538330881900189616793062453310220701330496082118666372887852866649889790948891296385083522988543181503936405280928414069372659532540563240954077377202685153800598367850963439843918696467410050177293287899933879033479178894059788051327503531534813768628993570394978668660511026547598617393847212779912700819550840279746665960180795557882657781724170854623252764384394859639578452267761353109868674418254778207087482689908717648747824285275336101102620495292141422730217738996301025020917019751160959793856866496988402837130256405683235365788886105284979972698291183224373441146085160435278806873112281050419790987555827450529759595441027229421110256622026007936090930075621690398696242993784111366416048372144724387344988605330257928410483736315014311061716210996011969304327720856118996327050957851889526072813539574344252293442483906042575001866033472199464312662258527312315175666258119653903247536977151716195336185880143898945433974169423956219988102157911068091934527078677655371859533278515904219893156875280891008142988415723135991062742746013778003074395668146181388927671743097865613409264785672609688877576136000175293790478565381607322270936897860987177629654668271428771256605354746651167950606470379065586932309794649092264534095195389245262824765457854314306142100973770451837160807242546972845593205861221139012337917493585082461342121953956067805752101215252635909466416404194609024391091095526249422167339311145531567251486688884608698620908031126293597796024546793997136478462011137099237789084542241506962012807184954543819301295775479293469745755773880932124418720642575184390099200515905580172523581919202641617844838041669941170541083059984792298768284591066261897972173640900685594383020660454940238320106605707470151279273121739822211023811875378549524486181398419567402837056851191517569503868034434915746567147648499528147274236905007749847448836640250960533645369523649487600274691869162688039720684017583654033456312373720683706700124054606792211893864848839559256206203849552291834552474903566481019769268877035049079721399580326612953304832652319960426815715108541613889744297948188415269504004937687257896022307486938913514344165298079992396492113410265302090352164481187391075918566578921505158732693528664279370456914877443897684074963599400583449028755945724673691620764326987605884729512212830482619759425142079116447959614880502327787753099525757375895793196073276366032866233715046221026729491368340185966527927343053998169540776721424461431917071962034911363643705706341359783740642117126664587902705774250160508104855214036147006061387850394882633948997637505484383989599586713914497805714482957651632146849820392698771132194292557748750310236804623330070560241538052604117264360001428327237647752292491043714918387950242349564605839290859785904196217545246381937361527354446217992215257552057629971252667092437405340755292292425873966056050251231891029325010456816058390660689157428133332392662901057884446219643506436234632881660265987156900587527693003847172828838262793072137587544977554999100593383179290893378422255914812636742977609960713672495522294244060099239960000717352725563555522394321410062266981043560692537215784148348814158991882889701796745380055288578888422644777920678436023187274302191572695333575475099788765755148863869187890571244408234813541898085998099238020315654286839518564555588042196195550198753311978226860466706783643515034669972256902508857807952925896996255194713935772010870683552838489931704090363661834316402305628734273471573311435143691436328680527282763667004987047572552564339272515826271492291676300919166212091609960596659405900693040400211685409972138398324258121383642447132300823424005724097804489500227135324898455201260402771370565358390960711021013451648796897092674990196443671888789077925712612765978452202863778561602141154173923182423627531535903720535320683221043025930915537198884595263992320286939585795352970862993269376624678130005442867046461234224062731023230435596510489137700114860691818721094853187610687794794421935916372207160388158421804880861164222550959308573585745125091417331537553814217694867733557967547560280522125803735421709536297175630069125877098049234474321837225843541540682854677629365865571998417419151398121447974472234809405366519474736980747732451930395212953703566402654688196660716876411051462123640640134619848497255278494214813379877527250320179861670788742472207446738690286768065667817288313768226922846100361823526183073107708530253968733412873122540406335234753495491622214766499728698046365448863325687752912438453034461790716159533675795021951396032388168022368093617442225115061054095353024332341995322531055757313671072321084425198196077047725571744059090355828664418420819633436190710417305536026057497544387160293421488598822221094359783412900026699489070362445862362259066164188596325570128845983753732131747043280428416037447103982027265753971929440490810979806713181595850684160678666183424452315199272207013498556365668966432394006699020429804897947076451542198284652520368172358261024983208533961782480704553028427864043481903167591202549182557432119130043486849963582016195186352037837608885401702399215370026545665798264955861445377768529560360286835090501487026108675166656170401332921770857751260158564107277689863234927044028085913088158265348227958905302671455055137718701860304141259794196767318466178247053795786028521551304727614234600136927866825434177115999696055924384639806220518461528337331638360634575073368296275965477809116629861842967353330450416478147659978362945731183774954495400923190043298031111453836869177222191642338291691742124648343324521221759310381657701714473371915068308310514973820530658447932135836785151824593195430396383378332495129670878734609727781714641832779192882692257791372140367728124475538641337474944198710617256223906174210511849080574800478098767397203388644208443067843283984935711798700599695339281795669313295290535400411768698000886661600569329060337073993112982712460331828712738515548833840197451523005067065927413742106354794610127453187109958024156633963795619580475994938034136155277868790380828003240265914591604265554385281872898139146680968558356408514964712939988943155627539837803470533768684941637295179581020562440025605129768698485897542481105289196497009788230809237285550502652693133839291555978485099683660438563638076664091876975974261740989382919372994701305952158124453440523867838316165434520141336188427592821980053023751963710479015027078500389366828465775488388200419275646887562054037750351170699623263352662832539592664109017586361043139083054072202547333130870539354387934010006048709866583929362742037645941981007181975667513788102149094595887703705899017863112825826207685129077798286372009084014846005529622938727065482903517515608677315428360706247807438375494629721859208151871558627044451509935120470935283389241103135455581417296668667625765717958015566424017364029688611268637578940021899477117667313245825301883875425169665880465647232721746738957855361898861587733483524704795623697670008138549452528008033635529265421028491087565178130887959648271493931319623377219145574250244566509689381977652060952735750057871185068545605528212123461049162164164821746665462746797262214538755957292441581960953333654825895900019217332653465062124434098996223351401045966220625465024318003648636406286484517526285750646773538888505755435039331831775142802568068467449233808665455192205620695005565471968461387572439024759706449402499026176936186920200547012131193866725228564906714215884880090123766371591867330867238564746939019029433825059962520080752435725341240430372273882883604381124294836326459280253135937818020920806700793585172501439801304994925250542430745361268338594443065799962794033221625205232204186833190707244928185936459229351641442574882190074595191340862709358780375945082782751250631409042012217837177188790442969618669398532043580212094032138729469660424085898832093643017584723930093961306806106975095105215777492232886631358669532782945090529324644901603482784643260175288272875464230388645738273857097173508973252562806767386068240451362428226210139193948654540256196566147173504386175603817522300984081910400761209751427022524190172628147597069597855015030675335294469508266303935227167047236833532640029148737216300868359303257499382722849644297597968092682667897329257209831255177099794266588390489524982230954725788343354366966502587560058572247738722763138714863800415944472935024964984448352940488908319262879414876104924504412067690640940984943147046358404786528840479429459491854872318526124227580281811787888082754267904549996658518744584229268967380282278849204706977906163144913927381501026749328066807736892382318047269203083700548243592052534172546862219203909232045963583966506597582287698932186176816678601138211277050851688772409978046473079074915531260442683453490623320637263563244835830313187974508951424398778716429087047992330269967867091346676174365340779291287562580218147180099649792754390409142346875057273541736555814113225893529262980484299992160402130645909261222702669394349376291551540943756457032752082787297069136493884432163520039936994807050304123464772678693082372414629220747963876755365193976175379430418757893143398787509535177141802776495359978587971500875399939768306194956561094764224158695197807912276459064326133993517074796722753280708896820968748295750235778186735335854457273973750565027395377277838024560221294884480325325182430304274375093844093422017964181597272156867985149412177710841310785971124745558453088761161994731004057507332645504041594983341538149374138576983789805220949487327095456079636792811015351228355220095117308523157423582537599764171132083938367171403287906199032749995049655156783244099753913023438744158627422915463460393552595746666368598100378256954144158005675394120302445530927747849597531815911352770283748734980826289446281970047439917414053027252066372202151824704822622433312932994872120460457158697801658093727670816846366628701441766493040835545373003013947596804857454390334625679907109894522593260203931560979832330880682547324714591157843337115989117353818469207297484170759687661832039802095213149817725600131399563603940722470847023329203035503527215286870876377185198399851339017627112727534489678454563941669289568209917605137397817285147746257501904968502350430965516084277934432585784279621967888777976625311549670443087838477906671364399680586986112502549437886759052427627425671363868924443962290991659257121348663088819673985734279802514689335630537160965744584910807452731078860251670780082559972112279799654931652067072683480642233320020777442081405960350180837103463100800468472616410702021932130540607352537200832887132281308361374929534583539386972796040514285641079819138732128178321516113951649784870703872078280354471433481890353787447618153817825569365104112930326510954813035738719234617451801723374170788588652445426560779341430928271890239428454278606364526877571140472073348525876896416663675310128410135491216464140873914850078334892449827150438763703505304251174120315123689140447955330911259517457578920153909764014068546155456513109041891976133645724382537825779427120542555111964674128484612639048600118065940280675041125988576168039326301981973205578708545526496475638325968097477591828974473835602000485817298961922749982821326587815290822595989765005512810151550273970562759416117553162238361435542611191819443515097312720515252816174411738936521390852465348247550985060466775735124029940454039460537378014498743098515122580562958170354670616226658440325536210189974448941500278823320576845985523987685551068645694952323636900647036322945877552935722812689582675221225836422901429377523725500065348536225006483443747408943497382805797979418831379535140660297573656737466872661023250967735087541282739799654666446831779571965140666167576373243766403158013031804367634509708476296110687416034090100649115449591996433530952059667628467743372130554504681604585105147364101775333341381138456021095663707221831118108459465157709761979770245649668879344886955818957004637736687786989993927132923590147028366226449900858232087785965230801652369397881438133348514223353684836199509685049945169065695458659763443262372825208342924525573992388815875198561940004100325839967329358778395106177822863763709400544702623717830371611128076247363635453685763026813967405528727807332818941521902226605626049110524792868994992081183582403552071921478880990748849295904406478688137842925886422019826032355679409237037439661865042653525364064965537244814429772390734796718819384889374283085709191521858870393834240381604659734803878381354043873019216247114177039639929517809452565957247677492048870366613292866026771906860734783091425305770839420535429170033716718549943560650073658037078511578304513902831604838688967445164153235112055520070162296530458036495356038282036985436694612186328985273552584025897277965369010567952388971943655049820518715562835169762187692513881791551584277599530672150136027685199546938837560172878725094046997390459376691813873796872321251081070681537280036822478705809596997349813530891772750540919499414524430722461055715449201915525476498233279224907531159766183450028200942986943488871558225343478204120160262166336683034639668852967373341103365564976499032688177043030468793725186698947448910565086131125890038636032766565255192350520491572352574621009861203022590838333750985670273367501115278760280642984231826140784881264225833519249009555431441772582728445130426418354417250402000760339862506998396316845684570282931831033826220386280313325720713348968493915952710836474163483861710220258137741689633696151934609448399878331451864794474715626102610598248732230043630588966122256849463216246935633333108004159786356924261782253153285633461922386377303076862864797888593358211369528717581814420276799841694423665981522908341131621975984394922193944416835927917196396948703254816682074269585019103864227893092522409708665830912774349394246009418752796579929611111973343140070830311013289362058580505018154116088723111106235424061586651041808207513876656207293915074416209149043635711832939811125415870836913688981452127931302488426746075055907595768672993201235478099237956016300627414190908519273188789765708973106724728459074572593024830931540300146496734632923715500679233680187598842552266284899599589257171448001110906870167389498756924167402908817436766096106333337803991148746129425037965413158101074505502837574985224230796352842155676029260260544933291574546497956483009219570421180657069592458983934555379563749853055081616629649800136646042882814805746640817689281041294694710428427322712740434376233344083966060717695651190998529291904086496969893151775525182630581861151749005026317619241734690479735882066632295750773468875529146444755548508308059266954042930774189332608380162840704316915650316820999882219031291145380496781406144886802507807913593443456242980848791983926641791159319139732730138411605496279632327181715863705042621049541331205091408011778278472047557195395758067012011492345930698860667238105712329555687171113177160301856513455103166813103314685406018449519116242350500689874232701207300564476303862157017095596031093675583721343078337496688808056041550646485103176558474497348901014116559884350525021477150250122558054034436317798242816529402776247311131118573049440949669800491095184532536763784579829490322148815130387255201667000310403209214046843393857873537904854577018570725149029203801350326560787400683030748437490226848804987885239376833119582129438235323261825337330530214171981176466921483741365428914446320107105764895612292121458229387252772139186334504226215587285286949212141184993253939699669524669834080240526546127026647318091344783605157098592511218019226703888285972062785114105105661094714548508495835072180383231465466835391059886429733218121851628934350597449677751642336347865570508159102083869576785741522344984297512325351415640549646690768641077328208726926884108529182834691392248693886813430782041006195815839717843273455030287030634159985454549860485477000909694129246265077193600238016008861196722428685273054637179915932739634561048683264973288657825213341160241741962570080649264304111090185879706009662885866185964741640396730615660229825286744314598221437029834377064081247181085529887769690511983152650009377127241083944388311033275219812172714630579111650733417023762750010778651374645453219343033504787071657763395438522585352550433132424029676412967942889503171454428494159770494220766834798159529239010809282233709692690096565882576400784932784512253990893816156568401424417184920095919653729123615169888417559088089855284102898951475547204468793859072185191655908533936175418366127286095955401813308344081959000346273026617966233985276222662990619097830786868899425597631250613485282351708913181795357087021453096358316775214600651974083872276836424503697960381216365429810446462877624392544471036619003976510045400354369828839670750372796843048917096223490800183390971092433446749204938362563978730483071592632888383900471042076773951349068984473149082613700056714061855795391310633164078612104112063851521512024149645136922270197767206585776397418387935205204719725008062839879998148692898843528712110266212825886071693197202148254643724073398236012356058936167855571443031520070295876462689385748792595417035700802521924576973696563928123096719043921392968347036550737720048683133920124272039982972545433218930148634326940484487766212655499218572418468159188948522739944365176182375268287294825645218141690624042710603619181678605441947046934489046529071953949027441900710193300810846456993633616849958130725996746245742033862316183070162718245328888947956960249545490034240859342780750551743985761298343253308480549039611397870745415028789114609154528313814892423312738362825158190235420769434125205219726177171171931418000113358776726933504866864633094887346564610755464264349476060195204674640908924982762061258893204060884063238158086624434248945662644679696353082182444254896059337624000011796729883197025301361960894598597624450622607576140367225273557231301312995407238064639365571873808449406832797066866381235513190814730200717142427659098768491296748166068824931316466466055493121173471086018824255125158258208546072439299307256571486836565021910081034002999964892314403917845540801600275413367138940406721616228066158740338664482043511882642952384528541547751867956221738946248737550264787375387093528810737003436425975192516591659755162821664230025248271614926631810539191920085611727452787306910251038676123326443815497209154971641700826282718330353609192673987715102465967106369359264922871578910143247236866693268779358047132598686430110596280781224569369544190057840460227618396062201527699053494905316878221297233527616676563238422366754713600598484073585200778860705669820496816307391774889150865150494516492535385255742045888608716924965689077235963279740208539668019576309196377826834338267447070175197975531607840621269504875230554003080976185600316299831233906067547754463972240613500932090109746061495307733836375765897691464006019667677335763656469825122244764838375109298411699633723925648054029535880928512704884293256857242873815166443254664020097965352617645485095547750867471222698149257175914804758273902788481504309617507000989086035522318739973556248980594239828611155017945641785701707125110363212767942606020721915798647705426034758727062749504206265206580279894748681198140187133264007498254922090152503472730754235426881806901282514937113001342694187911910498672213508989087247286476944093869837943735859838078722370924797700524001081596895242951031537115557962357373023161673585090047890712312762596761292404923180816452389857957127566895652785325737035887439986991395214903847145791918046159779755073125093761021131347511219562205344634548247572031416236222244441544472740362406422236630999494926273170806159057238107632838875329146338317213586953697897403585377074200367421727028247311986041578900050752829234757349894820551703925230677009568038227137818065505890014411164256778900279523973466411499771695089317632982361431209107786505964571136079145922839499487691312028911260772540530876869391252440877924545098336154818955730851999500519404099611980442093746105370008552029631303791590485101312454032422401923571277537607086087874035808422908629222207329938449945169577206349994112813952230945513046733882837934392833610434997334020833929978134144946663568028825830004526001389308530385038265348728836736098797035314873443760330633971442431103222486159252942926607145986340731980692773814226021178487859241052286972785368925354810958112958440882426155722530926536750096419242613607313353391690446318484170043129281784741468489070677717414752330215663755077803352316138552135156622368242108074266722049966749863823322063258263040328356306204225284283111245032578850727857444610922206646415943534185152976857612398715156171233492594753442417661911932541598266970541602162337414330675407065921118545138505172978506140277085025700622630311325301855880192118555082292604198475042515924284774753183054712326888661561618595101685408292180324948665648551288570734959385906220243425471077319349632249076623631510006569107302456087771932755870221472732516899273391204658270266675409622874823313890928611017800097899945663713013923181121881551363463949446675511770190591938364900439779217057459793835489899345670851887506161427039155809508854969718940830351421027112168400040718168025814581857257337266715378361252923704022556971467954613690732312344819951690996005087092246704465375631845682684473209439357696314676308339099114896425471614629915106012627037517005429783695030695255125511270220461389994708116213267146691276348914851377427478572229800197777990998098648782724944159879943889529159968057854312396683472484154652847925795582152243028471857727195588348794968825979672635711992476169937873029289982049694587428238780984402191154901021434074138417723800746012990215424553653184019533116955170247219631014746860785275909998385850006328868028895760280870616843615456788511924290452451950229390789315997525737481860637668412474482926942422691691136684787520807800982328306592161533197988363137125066259165446072902210301213426118051984787014394436267081998257871413164434000737147946388229395494393741414390270803016036263073501346306415957621724550598975803323194073486762008022322867280679585040503747396629276962495778441081677305800199520961233694093985887000528012301271517094793319785239677927781749470929338194095745123046741061072255005122184433079046248687404115559788003351553098557857778165384543151605612935580618494713613660716532633122083846060204553962708323879974134537455806429277566716097311628337650336915575028851604925136420213349943399680165113686001821282607297793159540890210478519329941568170782523847774325808593151894100394208948007081128936540008572576248009585250237027678840501962932869286654832225060916232834624556621298613251372663072387144426904308199197424770876829884570910654210427118577157938447314199631848909235486324067674976545750419252728286961989619431639942999111801637674264269442460789884994208371164214430555087584684861304492617305741919026637520636316417289545821856353828833983735885036528393856047595043712752208910090851471016984579266124314729607652590120285878189612230705781030982111405053592904020881493895435202976811268565873433299723395198384326104097151294921027095380437661838763271765042739914228299593681509404372580100111970904587674280186162244147659380592710568508437512164921885160617038922975010876422877975329998359095426462406924765932582416257876673894427482156599694969056708540121391487003884302492796145121063401707297779857511347092576080779550658217583022871581536519763574204435099054082739793701761741195081469314218014177300571541010107632494416417523150121262963322157678004957237204766116546660837420951224138372767917320343998825397081040171408489698874377349565605432331929459676970060019010009430895312831018940051016859971139320186511008780363957329235089938206576105352527843129571292936318043134479444199796643382265116429449322811216866721379364010498793399735768302090118605807382075692064474298015286747397409828777017315949635920324599389672438652023051274277491791987790253464427959192888644896162806343021974989857092415998209685379294312967117596460269009978648037068168164867432422551687679973779977168631225826170337745094366436378871953073775866664337992118233828198150753493606762201563166532252623387974833282377346107002221767175490946619336175037955496746606854973141393497032412108364287949478439333170735379692915395832769057054645394653324598502225500177514492982715458032082347897879487996122608441537659597463199856531051825605645648595378171498455077205542641210900383867082728802427019358580903980153494191778537876961233790272319291105739475806017521692985736667831764760992678111393865595235965614504015275178687195411566065215503039394360468688119980217144605552824278737875529700918596230496434408291297335420963870042286999327177948914032063510288315522103077884123288337832524717498049379632752241524014516532464026868655810725272729418272593116525169636918428504054226668821848076563806135215133429685628713152765048894830299177993921530012720913931673712985943318920711653422594311611925391869907749588865683699853748265906467784790756870787434430119634044645147895571758704166750527086589434823339238321157383721199462340305723552616635966934329002948856779710709767105257764980009245675042486912691436494487840013328953242971649665711155259102855719549710837883428870888775318321383754965924351698100476191170980280435822381193489512493281939038750251977246738374262436020954211999975933510486916166844304061414454103869191410978706979805258887721119529809196264566779957063095200621327520977873896669092452409086917884116883940966065707697484066878737943488593429316955371951795237954657623045250541268149120927609742216654273317113147662019784028804278761123501464414197439865216967281469127425944543035838942148236278485875521922994580602790849078049495386954720796130674926048691772586930676360919101508547661849659905215404284801221314203824983757912038800210249955847954669538555848969802636626882042641672068478568830163440496807278196908140107294856141221031970425388935090492182454068407315622521314141131199257449859875058155681138318934991861646202479664183009849176420446427006962673346706565412194584049116495129461650797691264370721091357014075083169755388568996608031781629250238840694129422514754477223800219691256571356711637875013238589165963419683025402157246578686716380033436006832778712823523940169529090559979287027038473298931895526050826624140198269940736174575051272677976522402932874902765200963155934320667558874873894941888600083886605884696393510381983055107329953364005042567487039933574122608796266576386833291360321966277099029193820957408680584180929014866554714527054953273380508884827941593005166973886229434632026096601740593749241104676372442859464221094263869204144370787408367902385248309296344738924028100560487931584129882548284042186696313383243990608240667592065192909642811474998469679802645354549547633416615777947885697544176756745431236825996483886908546212345134934768484701234390055666470982493495574555985252289128529919681150559087501381338345036358149118451742604182656739429805664759629208910941811608270293330634210193348716878258145367873198167467373381000323492264258987547778082628140749687275977013584344392150450075615824242849693202034339117241782332376737969999417487481996782147635001334354732508267927467464717204880493380799549311443361591172043522645296223287399686408359784153545692357054081839183608306372960049289444962525146008793906056245819079655796862993801374418011623283846525794111797799351260711150357832383448258153712975737550947378729713938925131095101765530269905577774887751870302308649762850895164568818872090531387483803478847795200398627100265675583618115141129975162548533254043608715178984898140325546503721809144144134979298627880841960707633108397612978708669264417594680162978493728630777086987187328169269256081392683186185548130115496611964622182032229808249752863735404881959852954023272911538836879396456134037060354377532862346255267922055554168305359606522717969980738123203693462561562197180345413292350892911949527671260274183282336167631852383081267330145919408294987385082919186439238918640333504934508913707871184095582447385700473032352797705823085316763004902737144455210417915037024989118415285278283139171442388197403488884047927758344761820191246019150446626619287426298530391684991875498927845782642059645331650383812158332026339087134609874422996702949085911540941740783492145269938163241314956681368466626007951090233424114002357150508731112674597016154871013830601814146616161116981284067359602960227997571131948602621668519979663039297902292629355830627166885471637758278277371821280585288543145873862301412619207801571469885212275663904439368112554818230969781190533305367519764982050583066652371858152684835288328530237213647332683339630065907307573114075433786837581470130579929774074989368172754459321560264868797432729290501249420183098658990161564473778669044254341591850433126688932460378556467612079595946959840037510004472267995725453833618475416205857736732148638432667192794678045584593659941863332096299340543772359597262175161839356225349296336183764420279059130059755271322405612829260525890238134742762901886497832399590054971612291358170929346914180253465937192035185470521926313176708247702799380505747030588464455439462408573476825028999347660162656796589160884485260945484403624567204053192607353740387594140612498275690505101013920951352932783236746300332564433069563395003066968571807368646745557150481883488299686813884841572047284537350124754427593994942045355856385408768758357318727905510893439345042481398844576980995540219768912758051964161666297184994944806011553189561436918720722702338375401276379857565463639922149980688884412423799060122179287712660475227743019714068336749870458342036531491309097095597247821453630537847847465555192119901942762427142722700617435611610970007975586766167536161275667715490275876855772342680938141969250672579442264089502118519840326048332177566206638751569169621963154038137097467833335820598702674189685401429646239782701780757782459867927487670710019342240106434658144958593710658340555972186804889164828408705225257182458427351291879471412112308781259745667554918206662407934638291966795809736038866268490918759042855983978201285104846129568258076261318854236947118754657636225744579259089738655323108936627620400991809092412868767707550088238081915320185185006327923560462084504806403069461379855316073286565494612718653937801967346013981078117709771066198808250519881955696902281290028083320769749632159469953271974547921636897284036593250070325364818368400022411648719276378275096127970441983416277220003678362543573227461760430295298599235031089667376610399460498343412153050392125008932523086988402525627282106334908712948423684402355871046116454219527005309769884413776658446163355770948237920709192202466692519986966082904897308519010667482263765179580576307242356799040454210712202505983955333332961093570850362700243655592285412580764775892827077679225676977674658605095053287023505056331087894803031942640690006377363365615407899261015932739286491124808355533583763009389924876689430140633225571531259855960940641780044891707300380386772262941358082775396805532025251768165574998636404853174924731086096220227872173139478612891188775334788885791385388012983870103598733410217945001205760324110922460111268213335758032032727499868334883889079262032328039609723354896004211378974710437546507401828915278495327388191370229067388891742401574476383412691492358214721162985126665612291781854483983059543673913037462225303690578580451833961391454217098884865041353322122515785067098173888255688634162359082445094658373584873280761779614117696747207995347920152031964065429356243226695736176380783401113949468145448911474244074903425979878678858002853422275872169479169667156233259311923587249230787603100291955279005093258025204386829650086103057660798741268431929076870563952390764832084992752206276908912996977000280183526638217704322707472019733352188215616349509356930719969119238766623662334042559341598890816905003518309638543562973866549255722821015262041159784528095087192699482445052277480805009718604141549234331349881215800140273200803636505832525864006619819514094018853973444073859831120035477802032375156099766736416559399884936555015127641821936555100508747424567155964553276032071844891996331057228511867754687211094833929996840265526224149605864446812019127390018099878053216925245891041150755973605149212458143199977403985377666672681484552387049540430546145692920365451660631124460245619936046554656059465521567278135980763175946042499179126126429749579739516693608958607303050269550963456527957389839258504632055116669140157046140033400610299586535245791149217461501604773674358255321824853249137230519233108472927545606634604745358005546829451174185263393383558432517635471505778472694443154930706098958718227334653052859247711707484692170743408267153527662693546522369973757560866628174778779659917505491137329432621081485884988706505632177036670798045299415502120555699695840268767871567985220316281090225255226517753155423057368714976899280605915573002287720811548270688070162051877632598774161407824948432956413429521905691264079025784178506555545374355605021610499450056971210377882184793875959711795527258855919804920451917520605535903380124368474905933878433672022718840442898670325039530481542205479545978047515984560041075922460008836423310456901910034062920353922878097347090184571623355921952143901682000266138880410358711588843614261542183350104969189947743369869441229075902767009870482363672017837760785586781027469139173120017714182305480815797329335780385146282373313199641933817084172792202968437391036045005613501044990180909383768989419179143418292793389502558763314645773564928277130464465403179209175487131235013442952716741271487992491661521191061286765881941128427109366120691045646888559403397578406622308617772423879641457890152395548691512288918137989069263903521069585248524922318454893607280242606795292950763339071348225165608526595369814089449751759839442018634742949441822314919997768550386071243478040426162732680839036475682455503050548722874057396858026251341802748084792165082734590822223591558077892270101808407654937282547717821485784288054274128006845146049320153204080593148931971295751261248618721615366848098492580252421390938741380099224948789606122574024760072644769840006728390930200753704262076020339359055685103067344480542881069382382216312224988762919645940153855222564470630575956083165784956780034696334748407425108647723212392167435341159509709048172081206465188871652049029464746602633037425152800164077441143944683278622017382087071062870614529248956869668985667038098377171233643353579304859009713175531909684285072625806534531897818967639480289884486742357182366877407881149901409843265885241956802258830913955794403923923738668362608887654170836773590749281028005303039990154958901158407473081841934043389099609725726396771689733396507747172962324412976734985049332286348051437990163094452277149924960264600975801667532055956946455234858786981646917658990326275546048940692466303954246245616436604529910636588562646965123556967989326409244491328996275513682340072243165592894558215803760283568833390014822364690405812748800751464213635714000180616674330670573074171252348126424721324361416261806666157644316967049837678026391363824745606088098374433736444343379685865576392340532776003188016557867087600800114741602852082163837517019839961043506082376501740504998464273334316517745191368772891577908996464184021924934371725129029029437733104411519546605712404734269980760597940729699881785924639728760483256507382330668920949307571146692237456419037089601139840595758250136942293862955588887105272476115578571425668239791017959014568487455002401446303144112050017576657135433021360336131264847021131081738303714158154608118443652495052691576535943630582697044217407580206334017400144754168618715623632539283162449700184493180427978472797568150739015201918465422372705158189312728501122278466892513619998776565675756773471223964903288674711251217705572387159353980384818781820279568618068211941524118288023794584997358797943991769501927172692789242114115660989376264851128298312760939755086493510861544886774509656960366789481480199337890516430046825282659536622028173496745859158143890573620338434845123224121266116469141856157693907542076361230106980908308273285878287831578919998814923479630080529141824405671171230885307468087795054093038449407221602679682390584512017528825202620317386404388960791708367462922501377008290012826421630117330937252480090171294319308971216977622807044302918322219657242446519799282765777872848996450112818620101188090257327890444433021398890069590257145058784681234300542402517888073092005231053874339674272068715518681522821718874537352685826573412162826422831345552491738335307980294172661567461471156797684793408371177604613533212900999254816056397737650403925082066030295398186145516501692028156840220959289831894852786938979296800388135179264088229235934529410260355429316508630660979289792111342045078547947004807662865856574634896792071686557229902666732761197330728762146441962432407808043757613085781452691851003206526031188010687783431028818781186743342625446340891227160306749446561987572254027686068323863106455673638214181332931606595924343324443434286865454217286344569722433371135276700645632853432056655018515938919346953262467698822074411718523237616648234014155527429721083381429996592955063690456260547087177494151780441565322458840448446721745065751253814785728359686343261896025227688091004611702406864438672948798704016957642668433759950695245396839316230246333019891335490002208730364554221802480492939898723935067162291430391955543723015229504909530724900999902599310673971688463677156826957969396758974786588362372373215985911444146693424494097365761601456323810408424922270370092662952292161523675864643453012854642807207082412776331760882130278933180637258296519230856204032414466923447071460849298243619353049340372020022007734152491687392857180942198492427191227859520827751156190500042073485863574686145501772184587952258820455841373900809748073270915396914367006340543660528551335734113785669483608180494842043297323868201499205012281940169502558220452001606844831287807903130884136813134378530784156908990327597950366395140642484998761422747990546734190795836361145674550327676382986574254373919526986504360057549412242215013195178756650599860605205766563342742183003638597849334802062708750125796123224359386794097755948933549164625412340464383389218227325456033189530277225063649590223097611342013906831816996139308281283074178483408537041745145079746530402200479470933478875749755880646311441990818077292881028224510978757702504633918047436146470495181998455089216745482531997362015984390528426472405672780423073034180892699864920258627671630061880524398413009175904434447640005398242006452181697249521312630728632222669689687308685202567836851114964504057651053066865634647996397036007086767684466749688498439178923196863500346295623029184244059135453858812256777221138103143928243430239242695837460547867938733766320929301106023802276932134044938517092481614982372235420541396490461170078877672948560949051116218817143818053258858637601784874209312584088778729000198781538085165856273046257114579722048862158421312189010543529745565294212245684186816679461144048986510954314458206131072183694642536467071810016750686979022997699046856879771146022345214009613145095069546447059225330221037037972054632975159065589930726195412370878109284641139866067465424709800555810809079455192449061675631408266103903035032312580606002130522870430352612373839429595498867594887077108231719892807415428644652359650638892859418790100526023991434179555752470337938109627111374856636313767145890893425210428268566493411189162196964627257789816023171699196628079804983674282608834641398746799381207237538501590751720056146655340027870028219552750694079071952144480244349996076569210729236038593627319168638228202558805621390386519760566166950046287230111600460208386973262751717067147296640306680467816804969144789687839219052201896047776684814381616310117292253287162027746525248445094570113312925923683394747927192360621788078096925453250769704106163030322953746533160234985966109313461799796365675335255899133443105775846407804016123809949188149937278034095410731856912832238940932714134997872244884880859787432705427380765122734216590114054752129882593313048536420302606265422575672287739213912616386408815043460985885744219016383849619925961190996330100640331454795902494711823319958166335748546589062603366661502850203717633676698179041298656858604268998274690598997903597522946328298829559254622460286539817255487855381011243832094760658463393528029348106335870835443708706525092821939800082634789025579514642465658895259399961165136789914628407702670133085807622695972989150783873141637686894337496597697975375853631800172188248402453252710985370766778927312983075424382818942027984150263022816450297865357749720546353971493468457646443162560837420642531652473493284848306013306138703935774492027928012859743406626421267975673107679800436510787598094477096732778897886514561369016232076521534382085129483215726182132110276755628814266454623787958827701223979381718381051200402555712695581736173379292385907973412717363455629290062888329832511544081024315309961902842923145901539587033468570855759648285719879499920093262139759679735729836772233707747212874151479841376497809790877933718517703819261300373973612924178691254173639189625962256269357367132744416512777928585562875940206400681643620250115987103640382237704264512420210517150483595817403527725598923653559435167466943098272374211866367544832792539564225898062989647365196599645187510079260304812241363890721683925075458284682310873335051504796058270888114636975803733216832544654989462135817358893176976200863649417013367785869294790796007153062253848715039805572780093954915324212739889530398782243430731292560323886365559947070162585064917821771083968351064188842619363455436813359334728760127958518269026052048981615112489879838780690357569468108039221480992548860456093659878218168353340859101682934396645606540395861113428654255286662464033362718707505326305255312430799918613265492468295174270283917225366755230743421281244961006841087806545984872584902192774370250743204747720020551285852703499997180732901541552567514136499150797741321031739120397720122687408051853091344442274535491956008407323558734746309082765044709041907572524475842535141049811086670900147758919181954469276373855220790435365324445614633889737881691185169953154551130754131453423590312138384705558338756989148165325591827153524655885001382001672701510042248644530108624260876141147262132647092945393211976490860442712282285604103860202843632657751997946648887379800270508228267918305880304966689986329823586538820379762744596773843849139594045616012158230088748122931169337699093479446458143734834954847648708990510891741994246394037173658345422763747975421847864633840127313960653279049519949844771369658630714864871488338920386552801333858765623674816601170607141598204047169288438259927115728957461247986812960545953867222321269775164712162079323504595033500883063853236412346992470364286313312991409152185502032345493266976607041613980698574975170577921045724013237650263095218027877807215523537756805662380664177025646865504578182060048789140287313735592412675634282459198595452049860231406977174829665043769680520307438152174107097002311116697556997804839854692493888836661611950595683453474610526907890990209962582795106180449944853922287833567490453477680990863982147870566986849755941805341271086760310387429105317511336379874156897091052543364734554792293895105193014396406940955714045227574204130787845577386180738827933589515323927005729886298846472009262219060930720911019905069317995549944605010729487827590422967203114834626337170437714326075138085438563161920874122135831244168022624075410592182973268381101126952708955734822803869118433185735814262249799310744758258381989546694560199562541696306298520075052924193526870666608552530040208520316944102852307930451921813040244259531800270687732828607897803358583256149865502845978548933173714624136445207775179051952339303186200904197887815562785030286258915215675822667012330457462773949261762560192018452617372477666959913400221664677838407318835179244346228472415513883590548070647333442128273594147489089134584202168235857213407536105559839886708753099162312572982762637235336753205376841830509604524362460843363427142961470446908011831364986244382122492392914353105397333225213093367544499424221149704283166291587889199236430065257827155710648575988575061982846706812199807608961087169565402508688185448354584294291711465761079617944005643636482001657088608484754245400785280771140016768458135705155854808982139239669035272842430808448395892614257889070324783807729857614859035476625676058364347092789627847573615092956650515568004524739564067644850375795545948419010545622406576267136413478879765260899152077614365998342575971555920845711410841419261822674194573196128185703824182590223021067223784339245350561586754218051101454665148031821568708311179069023895107921188735493421146774528993487674040247579953214005442972079309538692558694184176774743120348525673634590577575093963638114349124406815402982567755692718965675054902615235699467712526674701701308225137515630614059044409379321744194128448652784575957712353894032660499173874031216295728117224357051795050201705730218854919863162942600945305283925409284024001577459312910249212617019629696677396562956498434487101082757800719318107913901195230959050938458992093322537354343688418433590461215129021440472361243877508269907903598575190206183729023231323271803876696787833977767842084150924989123771898999579014674212962783062599452952946729059432457654697061990557095736506679350914195946964387364089444746673066003232621436224768059991597332649739199078070048262181147318260842850126257566509069109900064358380637643922742371243539627935534508590078439632164232818288857303645522208229687038252934745321572032884815827033407841535320610354813514143727025215003956358788645202463955934479943983362349267219811417292693593623792116839139137977590565875078009125861007587840192643766494390035819869599029824503979523720663754612635356697569475671649118757569243938184593314153210183078913981926126581579657149337433868046834268686793190347632966880550216691218488622928858063742206254170460999016257327317519515352737704399095688114838688629227423270981317715584102773578726931763767033538478698080670762672237885424524731357332736026690362725971005379951856179407804530428098816042396597977204539678171443420063161106139913321452405823485205352334246092116251886724716788894447047164463140757638495305250837323328424440095846306216215980479288568779706893346385588062478665662819170140922625070255791721438345851131600214438109276000366092881990597795103035508183194121767826632751011074693092165573068082415531306869719508732141968897178780602233852798134347706908580593039948218006390499303050770117738305372618390219280593019580510708889329718919560145132457714560571637917059265126375610997802713235653117909894386367408647072704600552179841523224414155276787774751282350146246024447885187563763349875267980183492736508412537146642370822564094616900669234475080124032462089002840613171160683836386020957946047356508235562979989612547736881649247681711645542059904139346676135528731742896649995986554225986035438331050943160796565751036157283748642076865283309958482238670628586739203019668735120698557066219839864411899349002266966464505674849878184174596850004816475586914784855794894869240206486307854473352646907733541357719428962083235068118338372841186564986000772691526608640304556704207314608951101404051377129185321879823765233689829725717445614196238513184419322086577582933649848897518650278613725595724554510163715999760559535424838927291169496968679071485267160030714644197084599362377938751259424783195299500148344818128750174483886427200155142309561372268108656128607702087630570404517310698008243211361044286575780832804298401239895029535332665079035254065292416724710428306259320982519971319084546506950494433795090292510275824220623192035098757531669198065673317971552832335937509872642941114320824839204652643762206813178421796655724879647440641919525285008913979206342997293976461424429543718472468288860380409386281400485410941258889678087015058205278774782513562221879112251695961036521380379490186041820018212313819530826787119272128112750309459010796153479770613322460285427471690463750639604621554416586278623161953674491961854435825262408755890142643831299044367922736054956977324161105262051233766637861562254617826011452627828024325715632643508384024858910062566314057929294337808004509400694926409779372705425949661716887240478686609381579774209383045913836016153276966149334562628304704064734634119950652517475375028626097875416424662859657243705094961758683649102812138750216296736677006224351109458287802776008603901880482102013953241880993586806787535941727305092362454280975886382308640961218196752158347246255830062288889880027085703227865880010434367333818855664123859559277540670089228670660682048398595945825534854651124911824416469257815969934337556963998208120237572444473536515308892725343689771373214981891944076215905051685190663746124698777271876973425057992434064172091441723332613114528023949354525028796180274650042841813260641605156254210441210367172528760579451892016537332943618267869290003221385817073460869615689525242913453967589042409884997530408374084500102299426938913946340727434101659135607331615855217877227164674352287834575729528470134961037566346340582278672132041808632229597551184216828108881944481573948434679984688569598467994545226862329514061862739010858881311168391715199078400510287869429411455317239081682269846889075386423368272526983705434672972802097456542446572017117458536024561530165889625896539631337897473691640160518636948968665082558101772514919523399238871343998772674258928864564662013835742704598025786850635184088265699664914009563774206209993675083235611135672171202227697027432418058406872692833448131137905149780051776923764223460381527652129385939494065524724234568724472383497936203174601502591810258846878519945321640895592708851759116961145576670969227542130735942887479796447623577409532520972457903841156807969902390224721495535907564774858100612869072197414347556075876070773033437194152474710968985904575513841498076418512396678924891226962071127646036072643972808798321389672105919964844558302660070823965098722119870423878906219347778488000749621940702045646881852445672241998542549546435895137028728124757543657712202629786688308569706514595191679453500174796865065275371547115663817534746394550768520869953457892136526572117256950250146196875929815376376835199355000146618465780574961457370983979632371713823913741899476820659700312362699386527449581931567231102630136857744960837130586457044492442677848527051915532887231967492919109871674280180667359137460891338157569061623587169302953000822836893759052137236916956994480820905441853278544781077059781663246526956610286589664527043334028461278318644561005726759642368183301546187512035992043334497335236227142209641794717836283773565685083852185199617712880057552738756450068302395907962755036691533746810746257596596918671974314498488680226457232855212357607372887168865762761808730381710629699923123739732762506343320216414363733270797245514459629654451960296512155981934130624702255855264390962221819179322312812273602373259454626265030523532168165215195504845374998970327564495835066587724417797618361384871295004003680711325546305785675053799834202302246492220026046784475360856732862566934760542315936955074577487344582152827215683395291241708988172672839470340981028040587776719607603500419661581657547646458049201739570775005296823428901278637468316249604185521573861950905757705974654931748581870275494761828923710702064520146200913252209679716341564613560464351839398568052359888010183082475402660342436862075559748690660159940175609094222736737518899226777346391542561291284598411587252313254787553076993314759534369128837460619092317541287051317622501266774595173073208127289326025710491860136929195056517009323112730824338798484949667536877609329799105751818610400683476683917482918781202515234784965782408765452306725751852915235730399769818463875983795067965654797501690118783759585027448430913725297200641255599657973575088081533130083340890647335870974229484488681230292486672307442669073014570394241264805152797271565440370418325370492198540892050486092214578724781483270382827138905057116257946389687164260815436793495904926200925829780010496344660317979961594394668987222223820190666416658724726483813153210961904480360496015894292360645511171628066814531794343580840385721270871466103934846305653755291268788029924847234378619347444760267445999388365344831678513263301711161928351500657879257022258128948972314720128699818432557049075820988245529889390663248881176346173287474627322899005216796038152832453748547390224476994082734295104094261213852559387050711444463825745933667327477269482092709151712172384614645525416002587612999320934492900312676166917977336439342361053239773286427293824719548379932470210215099105147860336964491680829199736315290195567327511323730385548742504521110986790513818168480301706765173110850329260786734878795810882940252758116071678503834732745902720987074345772649564411273882377528661360657301582996812643800232394094487465347746186663985082045286312964211450192633339439039154025744742605831615863452683194365156345556312375266597241475872978887545631746237752834070344239236999087858092781875010009985366712554370166182016605660426782906351307147627340673202378255079918719914584430757670131449630930316728312268656790115498785738441678310777903282365734185835729803664204470065359254189881630722661558666373743568240492308709314428408544886172412375335750961002414994117816717342870926699936746358917998899581121725644366915928655395926981519913417935964130862223536414477476163872332966817136740103723651495157627330933672485247427296787477502117019775197410261955356298153191204469593215244546144972179382725486265484708915902111258754434564434461630518776424442123775762584462565223860964201248192863316021322213564371933610425272541297432140968141600549886503119104645818654375611320925250989597847245407515314419055771650673791690170011270400331335052955326009041892520261120815690071561637191387138212003336626528267179266968981401157226113189197955705630854263007028258498791913998004237124025464547017564576662149584752884653393240664026689744570737993702907531297277011235101836109252110331702806920560809624055945062457133013732187926071772518954662816899413627065978625775504800525319852220679236843815974338935011444532676670809670113935687104981658819058488253736669146835016010556039146244292641407238693490194482447696625111830361971624049058948319986393470495598829523652353454445529943529464685847073266963767601787690038421116894303299338496662495161268587674275324319573610598946447682511252344019114003677202834842579204068328591096113191580358229512136177997902834808449705731115212200732321500775737460627495475500354049588524916560081960537912490958521699568393516515248182621843872421212740692731724087828539555732337534563095373163023272471977574896229339544883520014901772439746648105614643183426127728001790648534899525155609306418342380108686376122168745203521386857960239512581759497148944209193902578406222550505540174731433189901138808912390211844603939010168054162359794607389824669941712624463852212069645889991590503886893715638210078434595735754096825177277844411839804752779315240635888389038769519419845703031117036018919166361098502808092359393477270147812361725864626880197093139025816588857290944258670298640605058136536757363640277781573334114205294366278692214293628967244386481961810929062629117670911667337684122278706934707412362114142854722253963078953794871293149585045831604791360568035493502350092467121768771433931166081796689359269542300420888578818594442048980258408335875316593306514578202018088188352654367921046838188812685901567589428188139585280661757340641865865094029993368142732136645804437032133869747682302303107377142991566162538387928920133966513520802514760293280910445278237803204587583249479000971260360970312352734105342417720506075362580170054037768795774222589559452304256211019080265974362418056842388097834092997538893910049096981466791027052861206888904988101471669051775912366629915693932527560896668320702707001506950030635470179431246322374380103268508350562877884545808807787056107340198290117593813298599155575721921192406400082994424750853261125322387220989453445756601629658936307730356859913726500620207292576825181096821358867434345837248893042563415649657554567927332361397580484206938546736759817573642536371412540802383099129582277362503180939984195519832702022032722943228793172905189133449427582614749061146382511296385970968092128177142901249431075022278497318005551270855019812619370980126172288101328722109362551238525302972540353680448282717575590310300110171013444201555332023536915461987102628543834217215870607792022434093749149819873089063961115571875958182205622345728425952620260913134673708357146184095053562911605985869469122604527039573398357339824301152446560814973848345317029560856254294096150389597702443047955545939420406445674409271735340870376353642273483794801772028614493767938093576462238293771270707094810665697835689450894772637850164976417186032763227432102347204750440973651208563874312223752839754637298825072387681866110055901974815841886842924251919108780107520517533841784539787442212229722147214038174155466834463637486526639436493224712661664342501512437299544603573900758636620644198262710948955206335649218294738292696131700898090539153312689293726134219939239371014544141215541633012859911443041496080293947314551165529363752386292400794563987209749186423567663849348063148820558486023587392915655357276442947810941734446639576217483877753035364759330427810915033760691934966462511352066730794538205944843359219340527515704987570936194278985881800946347342275999122122869639130973587860344661063826690192183987344829577505607642349975163348815045974463682093616569003769529034376204217349311655920726640595330056298348631591916003105140158199919909418658663282243385210579198878956835627144135017058812373653228346364061469068007982870099215112208404178701692621035403331788025942790758952125143063397591549567968305246045316916585207478095386702866649931280827196704913438755371132769425597383873039214116311692340309668556706855896673390328967125799577176057651945029803484599890443633773383385852322001475111375983353460279457852537962638080999993587615062315880602962875139967185493359273799628498665783312420112143739353662040242984196876099982875472707327752039136824925792668082561293810476596856644540059361775388819734737631043333275002719594649527398759745009784746368022068904600948541232929558280831061625515859262115172895859967862241131452317956168311600608155016316567653827549304863661405741657956754144013076823536005082206237254100469471190346310117586428199500501766134919980132907487977657421464932529043937963615577457585355792811831548111162093295092345908915288628152998623215267123965663597186322021965016997718189502769237600672383893924329235408408199203877528350141935647880785621992193111613318145903696068643104743379405698370526961409326460608889752853434081880047873472533718370478962763043909756971717125112043962367805188734847072502133362627484225701778085850427837699970804794353550253815804498314753220378234124053637167288854330385217180069055931587132291520300656644447589416913913540653571760915579101050160198321056214469697230553321607888718101895259589863016080627042302773105353476049100704254726348396561107655430566351594899880764727380552732954842251800570261025309742236115865509253195684248764174432699152368449407650122606155146125596783165741668936966680928418095181489230759571149626615082178213246693055813797772634047653004751046686728140541102891386608840735570298574834696236299280461308413314705139751885310017565781081116503961855700727510450114906683301325040121172306051250749265680519248321656683048376135590992872715233259987685529120763714839451861220619530516331444313263175152758007185623798880205972263634233042071077268065490321518050330831232049079135098321216112294237201134328447572643479830690904771472321526116747617391566063749774698844033032017691665506670330129154492146451705933464002318892593210728313351863650004546263356111893384556324968698544537524243136376167590946207760196963246479870975339921541934639416990608459248845808132239755674393678699310976054053953219384673230744599912678479593602440494958772492877993308112786858148841026177068033234641718094737723982403997433658966531852329289051814335428431329765326944985504359449240974091794412674207476406159970583612336170895080093636673990540117333568255201297684250054750086064975038677439959276113802631359017437636636300201278499833266084767632051208905802099466680322987217828965168077356861300525266636967648672668146897708860862824143450729195641713545911842801582478819652733056956561752653359503733908223384031055233461895261534031615742807909120568857966120326680778993776315004162302791708708637563659687092550152914397572447724227565809708879199337829986277409044177558057137647099747963384466712422048267454735360960322900842333475064697970952600573271492999704170579981490466521882720115104710114445850370255917541836530013659882840588433549957004996265657710434124536081639594468024997170039617126028629379377973211577704930702389784928155367440701714921592042485602995818393673721297217302812661561304979790495849642321783412921588409645207221896667731219999573335714056608469512238950836228525294127495593691725889008968423817079214713499275779915279852203827733937374788634494391634806402575198326767080424744939420643543168710024300745820964404599220125136043531766626844132262714035717869228087009772885325360581242057839593420087513634384137218801122661358548054980923255747746783582115120415436899266487472031758873938173438305089760645585609405897371019059054408829553936384225610022393285945467963757689942121001212799313850799300985300607620561552122656414109001447067286259052039553410063664332151041015108156910005288421896723066435389006137952781647187283816387462741557230120688420780441160309494309312954938826043870285107512217874915295511797062540162745027710416296603407180732533883165766689556841974900547223197916618447173185677105826759181027643792158207197478156584438313319591571094914992538096271035719764277970856483145319826506526270324471249751293540381848061946814295778589348256631074205822092701829782680296385678854963056249411731818744772378412543886767350501006039514482794062400562876653033866187687770329682382090043059796954685906983890946711598937192060042267151594070852948145692794658777282575988892676981842700109301174326394167812847273904339625490076558513904052784052243873155707757672656109839226355146956632337143367559156120639053511421914722667695092499783127807211444923382611976814211172913370884509720044508639655396728649359205134307911561048326589828328286930326165190396781249802390658003488650849503986395787074619140564220471854699637298964139697933238578652656742753432334401672435220410716986919465759231043287049106144791794900481787057359103519683067413815648992376776401285846034617274454071159190260954387167333608365627090812790947525609354763401602232068696790678064235773568729237959146739835066972693116962730296906936164765884364250676024849426058363186947806695822721778683109780235082899693526284376475621469299047096398767392000980191587631587281493863992611763282516098064584384981662290994666721063099449375302070882090312075636947069297278034567936504228341736284344420106944414469256244684352101946229606346187094434165418997349451995783498641239286319730403527863447128338492922824480129005274422008843506788779449481747685185745209613560350757132477940070497513237472135965318763154232229556846066529750995264396808168570887951782146144840093987553753227825057758469112631629367269524704999028573130668899821423457925108632843550818303857113267242892826332189524282195704061949949168670946060879671762030335649636800191628330251150140775197702410373828492880486440472563793870592981903528334964481878839844677938385891313899661331342948691733990952735736165051970335377191597064695844932402375704038348159463923451297296498895777115813329238018338638898684244005676240737078309838561239655718038104513158057594230855753865163727518720361813531609795621739383547160023335098957194318174706508856940045958404104601219135167180198826680791814782784164049078888933557292464944245269283033629553537054235287495999274613289091545421309619551317160570173668130062823291076602124112604268213030785592880075543809022577791939997150548525559336303020578374146021343179927863788466619644347918786858785038110676375558261594993575342706366406687223281076683143623661768340781247846728538134136704761683886748122147829136901414651587984068391296475612422685017442557475057292713423014976627679070868071837724440944631153215878479945131750308787872282257417353656436807562049304719352245072129474818002073200255582464578049633665358220888243020911393699423702743383437737523803747555761945085001584561795929668685770831540722298901214360755665545486824582857485441600674012356406470235897062221987248940905354772120864290143985073723001173041620960870647218477631570909654646824241507117095496815859619347627059404340614357553623303663779977419347210612069724386202216378516080700120914851028371118814031570546810712249524851710006794260906841459087235905472759440443316698150033666617494808913917426559035971759984213325352427400615848872765851769387999456318880624817503741730312613784440229119622284200978636530984167516632690521427088172022272910822641321805513905454279921787671373077745526740066761273789762903342236606076313997257844875616186225865475830145289810519324622293419181623925702179608928244893487149346284636866151362774516333358990117523314680154890987525032838522461124100579020540144323401484904769591798893550010997234717679190482928946772821570822061438841788204656977939922601536305469908132853001587791403467870815645317139742795855125021233063815849640217198514717099259911509590795701281385383941363521947996093426527461960009135678956928949472397667748303115938183230631322597582734604611868762888656213265723987427835695222539443160088267596401169188024164254690852038833674281970921673044750647241458466266165860259317985322404947725907360349364261151290452988793148916374840982885667610430407621010669356087532411842742898365894356159881638878858294359568931079056064637235270739219841064258531317509851850313002728349055802392168202253133578178385022631243682009471643909358110010932903000646322389961308802429350293718164409599448000689147175252681758321936239654987658422183011854981644094958829873343042455773355629438047940340300364888853326679777412297147880597043197618885736568633748064643678759692917113823302629115333758338738876863846345319652312336654709146476448908129175213471360432793282291824423207291363269006914418904865779601174076428269531445364653807422749103066711736598273791487692418781896437674966955174172443079763841703343094973312153334275397498189220384604612324747122172383256097229438779095173202508167822061055074692084106980360232833972047916929778973219360446582460132719456125578456136988679780250463123915091630602623439502231166864949309917321826792482867585858454549540887290123335455570842340712855749371763808756703408906320376577412297380575140518675898247587108431338392542288560771634592525415761240966331989839184384075852909804534654908706384994179891176663413176621441292265293422334281330735438316943133700164667355574853029438845753915238691571604796321406365788398252290317235724001049445109292960770210530406703698509075781867214869173887817860423054984659349097576030973310235175914480071904817483519770994082314926297835962334763408040256535912813100499310702986622895311566758501842075008102008176105973954607976828018177112095961669211056105372710581318466031784043692462880015550688762256601601016883177508034367729999685426940514906560104137366772124533858559427748249393861506865534184333853566280992831922241312162723677963986200770407827124782865671380244030788154762457200700328473531764150432719858267827558540697039293737196189345395291646865862621347089144329994196413240962835488860057464541612714764800823569449605766771988167202199753129728418763773541422269237159404515099144970001516075294168952434177433148814332287704363976387549672068362544377002288883740710197604613126706057329792983528284552961767947994733776302221281450753472465550036032397407002237005676233920048915425721501796489816966941151261713447486709310989001173509988683539626410551286462344413321913314248507007256278149009512502674582012546073389624901840631621735195243180684997712281401917945889679435677556655304011080280184025407178404644288346654660842155360468979583238339992053297937900784312819783836189741987581487093020412940236484057261955755849258299124449934537948899130721809901137101995605909063533712342639645342591490845448873735843717610005473969156905982752269104244569166444435478955582418637447247115097927848571763697791015487050749696819817747919071535711471320065428985704099294721936236576856112781373027893027563992471761218016306401647351858526511777255091166539268749662374037196905621163925813279680403936986284327608901622351131229842228926135993818776710027893548606394315662457909869139611651600394821130613979929558955209267776834015762758681934116390789281122474602056668019416760964367184616576900647112429812100845958490030631670451464692394904784427149576913337035256453978000760730696087704188497001900798726760400341174201028722833490372906004871208241951859016851684230382649939253634057631316557789539263368116465709802223657896713145913331365896341487488536099170947611767829194814381957174489698962416368697402281486759170925236360988179762079696548338119835467243056776424107462483248146059780511234321105780673372180209933054337011484922901673714107843515925005059819054754742710372266175118539436442274666586096701084115087954457999275214656847655236884714682594674806623175754118862337317607690705291338906113676983436488253816914494566958433289358942282706257589033087441452782863739196854813484207552715429794713523993145182246307454646008307468365476113316662349620435328295582674268272885441921687107168059238478596076522316304840530158202777110250097336691893727921006309364463638326158690283818406582185580002226400525020150439586703094185812740402727944548817427011047422062035701353835250008423635308224559246116983001026326982539046955008317533393236368847407371008805536184043385900189204633193028507992907458625640455383093011174299081158505149085080317005291971839057877005567003973716898981187410898671485137743605034426338058037032634816884584614217262615652260293027018848343805495439262539538309792763186468147088493335623076251066620814124439936087967716402385094678152880525304047337788831742362364730048221433393807813761430427789503904988595448683990398378952894207342014226556923586188435995615615968437893970543500903258563147430422510178625440187779063104385715447589612172438824587009941227484423631484481049816438259707098056774974040879456598757322556502002554486191174427666914182156760125975735833132304599744720465378639001059593861136616660948927735751411205642308312745090263288940944439450579439130215107792292182669559720993761352365197683225981612751666095632610903230757486432304755437785845358859219764604291459302369995724793603535060540541084824394934265747797356544306181232871489766119767004610078131299220078613605690784932833167217452996424341893711554392405085765700206419167826451430590030359947381634598856248856688634655161445675036898252959337035400843757392942889743385625343092587326438264770746141462328002989555790398726181896132061849148415693406251839386100906392786618364160923877076991986077952071334107766182670376583207217447105399292540453488899406316430185835974663271777032322470264215892966111889116888535638090740926296579720513978244758473037602875210479761643123588494829161757652381457791019404127046731355691004339229509784892247218959411009052955119272229523051478825262799245800209856379712654709876449675647742137296241215101668138529926353307098120132462253574768971260748693681211230774356118508452631394575836033535364625696878830594019114053281015545364730156201487314940647148836563861414768921250687328152153228493259131709148396818287485768700721832271002013305328222005741281446130314727169397148581690176649892846340699706764383058104603982068730387244970784215603180465229378079830248749374455821365805609681828727482520014296558559605623026322745029590828613944450309737429102891878676601213284414979403200638931388632577179816790324044681959161189073603137533498711316089041097574938876374734586228125378793257248115601895441124548311450669873428393202089223124825777197818576670499972251084696281829698822879350813205085771611909702342967522212807493442551024806917829648164087804601764230084774893641191150739144582715167273399600842945686052011166780004616362354370516899804669583810944700122818862325345416498807317932603264677552051541572882765910676785413417268969936559499448587081515634849028610643122427826559663331981590472049537668015594340931612603879878127771669408650961758642975551398278728457161311276603636656695788706119907753438062884632003651753051277789562276148092408085658156944608018101085866927142514093347684932055253326239714754819889608677042160348351859104155603767075509383261020567503797147025788806248862364772871441395358395163603279324791930835866288514178074102872582338046051222888994804814787963948097377165571154417629783062448817851542283315668102232020169891690028393926146673169218105486708297236231528356106052451444475412804278369606852940495013339678034465868446144630145022731683870521349595105655823838437047357254935391231877191559845372975798613032747244114537499969245463774424444188676045176674659816387621993315997094732691739888309601464959924007450025783519150932229653699117883409415907832336767455079909842547249022728142741899670828554497271921264941419379597315286964393122222199896351596105332276810508372983784919726598168117155005904079572199735243189044968515529060388792772916748798136006946724153845090983506819003973431446096864762510085421679657386507678712491055286517604644482140280157321698708518175379752587845990451458211207211013666441769656986070344238583645403005346248650152625729111765914911331010851035175227327090068747645820545489417751788971628047807306204346565174371322307905602824764425758172144529729229071032006409437997464052921508010664273004671811918722648028849779967616314820498780240724770617064211069246211697168564667348124877483435356547442397613451575426511388262647306374259854217137287443173621173378161099791006686680252539759645227763369579597307460185976093831184943381274619164797679520092114271627729492348018459965599103925054620958042989453361856072754143082813938676944439252270865479045217903405553989246995815770887269390803831157698331083688783677383949614167866835834514274320031320896440446194434072930162930868461081788943957806241424061233527739767471650288202021432064501211259819245953238515851470052308727314084450834445458776122182855885748075410189563143985507188511103092780062037501815002055966302652735966103884564660638181407615281092802376440926273826512651023946897049068959617826010708084408636952064623755317606192240826650308577644334083031170769096739106938604301837799870464945833367442598498219016337213251335085785818741232796303564735417452984758478535508245116911955843037463337917332640588411378725300393837612709241304120098402890426607285082860929013766158326850394140344860253008579233000411442944969424504640314556861135233686874067518172637298553064168673797463409907015892701172905785999430474001489242141298655284427802049979544049156042506571844225905452429803392163627990535189565334617967308242721334068518658467779029594544813397333361815797131871742085465521985661384375387005912321598514495738845495179120466408381517547959187913343654388494297950786272710648981850497578904830743765489736508245570883169959718318428879204244435820963380395848616358400261323693935291323479040702643263366773813618922290882283576598022892501744908503022502282061983433604661042130078360624550950608613723589703542632532734519378481804974912004179170004065986833549269418800344218107896472152741403614307413965276176440762584877692524922979712854088507107763098154818682174899941963753061602929527477001677361429587306377230662619004825741428924399437368680518777738292997888762518352079863888242963958691710510072906938687572174699982404459647414243427872844092146195649671757517501152980368934621719708554756147313338406228622740172576799733449657838215694037539610666785673582465795338679177528019829167453019884557148847056870246650690597439947739415747277941227818504440652498999859171680670837945032019484320670406976009483830621174574123725503478363904862753607755323315441824667164784832450095899234449754923496253880859994383535037771116290212203391808532564463331759866249793315199393163620759564920465431939439101079595606469392302059899339935627825476834092665491028713261240001744428640770870870191036041453819877250640949404040931258811276799993111710927614870916758815817239684918896749021092057838141652524681551528446607368144789586711778866802322128187099091410833621826565358109768405181676011261060441427706509390058479203328589960698847867346422593228159130589721245140568801843110971740130997177588641395979937557708658465285900424803626970198498206447057296453461018106378096752276519530400078939099485256523327367486446274708495128262669027602486613297600466137563352433813712160221273762338567606320940799820925587355021675425562272595537233039540400838476010013365043376388824814929913621929073156933978590344204774054015413328096563363551069763784188963302529943907970723289572144028724916180451032540709655882348557281827725085897054402267702860693666356998383608818537508269239715179504133741931265446832555915310991191596422745545109255450648002604145129468818249717524005695893320293875824583512517761384538358235100302213429449857630162028728368787556562843395668268161161153295860967243853361034652232555779740680318973690140943298844649919245328484634016296207727152205252004303504493084065566402432139846944363423264071707444490050709591124784755031845591426612041133569325333948568099892778589526115618467464800343214021564228814664402249634765819226136235812756770494048350143958057359796717568761224146716222617425638834463595544816694932510145938115788149934547608883988565306551395283469597213337542200748523335127663909582887718297565143323871022309938846689556909922927216130928976936729563529796783777543189514996644910187107973616660333334010168383085304910881484956673953526130037508502013358742226463976789281536904547266526882794367095514776273690673167735204608341438740963417174694080280515387141099637621921299400037563284455408951306762170380907376325427857151167839782001385028224219231693668387326181109684351104968016982061034339247044543635270268192219206390813487790163991649572721548845043429053427724282784489896704367343879899897153195541660528492061630354403712984541087976391398286824615142325146919735767221171303837895401159980780976375571088391550244760977730538193701231411741344859721747092073085889611311585031060902930718392575411984835374468913944062015879590945158865725094293848503717030694344676945334508795826428890582271927944306646940123220399269993903798355660952531734417125216354326390584348510962523889249945174364789857459454166042159689020599675668369390844523967733801202312614600265612376906640923333868959834944836200370445977876649922354014426104635403375036060146793730884175908479671070608847573657276805507107489792545587149559573301081524510118955452291854152006758985596057071471784937238352538640190137165660731864898564568763461674887151462675648821888924363991919533487105363057325560667501150188749180363175066443501772724512310429007214523135439974803941306551511381879394067777312787756813590351585857140537999786238580530896135901919641018025554818247262898886948661387978564597601668254836670422264766413822712439764202551913949027923018058223088752060004715897716840938391091394686757838688275611014727169784220356948015038081425241300300616011025380458556848452156709774441848430447085480569476652794036399940555300487118938568180154819856057390399174238692924727802073952168472439028172556202041459945469466732580158360540612239857695457887220173543535720856399664702810343783976252674114648454139360709896722274204374864550424747673899056344241795354810851430492478095348724751432404937656639069125189905747796281054463729928061816927501226981391795541372147643262826048511071816485260299185888701417651940622081635616995661432469812481762255286599897094481725197608762178034156872609375582263711639205067563966994266411667605055805466618613799369489934161698337553239094052983793528707631814085713820712510994291883005700751897488332757662770679694523843579635547914020406621457501908156375981805208723705874179585949843003914757221899425066500630052823857179359586165957296528259954309273841593657665380428737273830631734325032653314183772154822680625000659057581509621109396607139380151495040078184370767884431142611328142258655006088868010824668127596839333910596267442107381142304316323572435656783817096221077270027903115841828597477477276159716430508678377902648880010784129592145030346269758497026441916188690377173036963023177910205325284095838571504438151818272691463565280642726663259648108841136018378665978200777834582751564766427078921911396767587561551921217900645618575296020766713282643301583897374959638525430362222266250599064244648907109073196721280389522481384549433376078803013295947430208119816795997816088501131117396243802272576461110068086350681964236151772674864240413623782512770614132204789705039626548155734206367206161363736573167087833841422778735969466766788757468671079302271684256690806251381801938103489940381523376190686497991099193493228118651485617032076864938829243193368966321441307390181865885058747069854955997873582759402023958351695497568097058159834198830475582693118625545915249931166288238631717864826036834168909789461893785475848656463643426353677561774707348357568971344348456408532405413130346857702333636189517269229714647040140036947942715912225658781395808605761531821466809863999405479804830118944673699030133006407264041413445706007206967802117200714488144213012876182075855290330993233962285867944704581424746563669101315280352354093786397700169068997188826877329437234992610459701044412591972812857670241374079308560593221288416717704888217299027624675090708578013872766342578600707307946488330387231609388804870186509195381536033080093756727800964141239215623264557857638925800916565320932000906204587767553445853842719772979856857545146828354405603176795312006605432744134072127490363342153896077828892992061472936863209486425621881666082025776695973999114957492264266043803969516222213186160573455814773187315852089570750148193968326489693463740963707472896233131884832810751538954065476069361982168303604709333746050822471152741301217353144167001428255125265579233651682066953021839126457510719610916518978348933538545667367438229817012205816658791271234272410974217227328118492675016568990611582046146650438002268420546475700130909564330101610007322556855371946610098275488869374544542499669203466665859049706012387994054372847926702668929175786215999333285234994122604702633296229446110652334169521046610385668519412559485927097862060875198800967023989023329775886686270679472753219647285350376550352322189771595783517990555053408167604148255151304435665141679268920616702869812900682724843390015623059011677240068823597295820723844628233823464361087276468108923726172231201848990482238259090188037732205294832999490517222890113647995520478415524641783562499723191491828588045874211728957195745686683999648123437705324963805507774852182344653510755979929372036079322721887463790590275935778187203294396383813024636523684039542533465698237029597648017532173514976759544508469194582905848551220549360521005588937423698165203687684753227602976806667409597606579915111135635566330591633403793361575939639772195165805508733769138678532540012868273718142036255099189140383344565016155302751889132341344260441734115610660043525479850924818509290498641706864391586275621221945347078112198875276025121693365188805364892369067906700076359675616908466255889073653565278058296299651704140736031649272445657642696800909859675781033579386951561420379463806785494813705026680907887381487668631758018402836116177978436589994625175856097704993902467168609482413450883415676877937221915936267795171315000932440851360012374266282616432866301901399863785051704148076994829525177399258169041151060307095924097954132182346921170397158041553408943287512322514832371055464585913519343701115631231619975481808341788476995422731196824791693705317617307479538537499479787078565604876457450937736398914680319478763567531343642261869635138568147552322467305199812747527837482332109123487501391382078555838810489647950040267577004018446323081951954955125702199290530650614300242426835942776567215047402501669950540851707302299607233018768935801480885230256791197404899649479549865407455532171440823664653494142366970876904478329752146769623765888321271388265084882475184910344675454677419251263805974927354566911099299357268318623013583801647913529356338496971747141213730351956493214767473700815258863134844947514012018312820645226578393137781327562879905543171088071763668928791844000227803771645228826358953482087912262155120464933897624327566523240074603776536275833291511551966579876672367981179113221062132243437252236559339291975555309029027702034098449680196560205641412186419470524734719189862736790125356145962797167072636571431664970829717144408403967510003413931247850552921895057695271716045645057870957204502675461812833605913682986429582831531386633860976391708165425936156109661903782767788413633672543113792409534426534370691322428986284240796673787153792857072760196623256234426830540913862307817584539710389210006796910164498732809153240277381221383185144554143601627737158440200440534033646357093078701217967856645102136499557037051900093085255824832351346595693050795193795997569793029594138042474009330916457771575549631399659634995423964834915638801103252110519089270952539557665995555550581840742864414986304780470844104845146501788604624028669682026681995447473484927307326925724668998753601128801519498881934708636546431037522746045638483987340899289127526810127749854220570060530847830299160057701356452264367907330646170559345949982954814518233331880278424329152391651777152595461100774401523108625247871405863888348991061226173200529577884874393465273622036269576508674112275387501813686929995239805485608107717600294271970972984357414839185203354085752815481934509371369037353850464790442606286687667143371347325406572660160523682918864671367297091069773443042155897682576583628658291577089514395018930609600810841832877522477674403118139299507074215055882169713800525806528716021198151890873254503049212179999878060957179224898478614330641672976314263553345398912126623690240088674260079522157699255418145102672155221742482019071630200499603465865508607108110315939401071436448747915551051862316365226703541679588637880433373106637137674455747188762892389918765118382629414803474056934583642072310070270738583697464707964448828241446015502270282555578240509394481839797998145108354501672183926117298253283759482576693366883407006850565227052380370850209462285255578225976235406925206237601321417350643925797938152051172071482555902344714124471683468620140977829122345212514692570624716593331728745707996414962539188394964223453957623977658415682416908198384778302747089040322716675317560990287912333387065744225748937649957806475264327404437798895391082609901312194628283870428770957569112792723080082903556836375475141566618735860910435609313398315644335678455931181858028017680442920840293716262941056017101959190037252153333111616066734212783096840597320276339960714115299929614907855071426524738111424906001533406812375251809129938987751116763204344050413202407749595428749326808377990089156524094075667868522910580623432786859331034769630283865575741312811760434057902711286059126010379950211188410996927595169721292126219396187383313213614649644513744536693790736521313292643487262060108408136032981490088761633617742978093006711201897809805519860420329550297112603728075624999863709924940197971645496482998715151246576026849573409802842634794378998046881156158610844671173215862200189780261850019081025714658685025792158631695186695308449461863982919977515658555618070180362630256535125536622513270809389435465176593114398456105637032018830212399808121820227260524609712109812183129615522784212102215016273107312809845108382027919610527993566394022973124783560497868307690502098009422948251973065414087290058744756296939093978229644250808769774060612774993953450039408510247008865019679499006568256737464692422963667694189342696742310474506279137340339452531423994674371784738061260363333112289594880843640215964205189223736107615766586351167028160507422141471896198176080925844825103695089301096646462436691860180417027769889576207388420522461643996931865708038612508852473108662920942709783917872892713624883134490473051911637096075984622234518072247481436388450908707932789484106127104378256970158256213135801221393737025935710139434571129659189986784222402925448627779198596077832936126186987461691583755438910439138135337180048048862757454717193933334632663692797040906386329403121426213068047805215834047716390131061374332611348579600885887340565351677724806594949126876345470807912309681094010746183830613091953960454265022588672098322150222664684695976183578915605922066269389550897172084865215931907052977300789768656610350659589163890704530335014146851337563906927279271900612816542763356356090925244364238576206056566069276846164955567561761870053455922667638431972590302122118453937729959668215162936282330598572821254011146034057857952513377889894287308066617410442278176008758259857911802940591853050474832396129557703927594080068531218129826493932454107315994838778261621360677542599195014324710051875907249114677706795423075728801518012378055441144347445965486844235408906900142402071312547633089976804317635662332234290767465611093375261399609080479613159509158582681822471182630475535519827445154099036624694486954687750403966410695525678367276169758979494665543843000532172101376223824723614858645203269138341220008102662195341127042789049839717525526983615706222806996318310021101665050995911621167351557583207126206565879774743414728541710030293872051457088969332637469642125741337641719687598337751398831031449368051405058448739308534098110047874445565967220522348922951376768281323199202626088747275377235781022530009757767818269879265026095934589362370713678906645252472404680303509384617229645083333495904600602784758461783014461183202883552410091473149458862241642447719261559209647905731837652507765859859399051333146518014754519119536743061507778225879273871531866002139496139659147733866343349155393307431085567567134015749966870971366913526778145122870527043483487894991330436006572114080987216292337109040598092152456288218115333628944079411121206415395999304282294962822524052600163586283113410584857285796489248407397439765586121047029466901177706463417791601868459808412310741351107616215330581502994128948787490765391446578521305881714334745961512738207618305562827690430268933982189217410294420513453897765370714652774290101309707397542288898214784033064796742862167978424786193793892257303447105949631276929201180744902695506191504374733575636576099894922447963257076160643331700055816209934379977628757657496935940624094823423618792822252036874375348225136629992667031715255139860550075904166020804035475319441220813855080483873180068411806285176743076995466152617985814499517172188010499200693004004444096480697397588214874345830180324823213130578477716410749258260832929480953366419876625908104307839700595302007377007975363401861083673891330922484311315941153312371706023189934059953547790843961149302644829819320718685466978202424290171403830622532885124981550511570369423650912049009308804844046167014160269974413076395010226549879900738793841678437422612031707013193165562259894233705949199493574929275968704019053734677857412152748157340820286545831131916107422958088069670461803242753808480296276514274305157771056675086028163419285195147985874710472216933102925806242439958390473862990404890416238184570485182928498375073286947390227727817706787477354728856556617042599857915886881279350793515658663926288205974384490875828366635465201167175825792484487009092261637219306728223514262336081979906825056249776610299166160494723467481623491932015591367044734834867246150247156439291760290895509802230835008704415750783645660209753988938706450182675505705610862637539970382323130592118224815731268380076727430566001164153146815143954516906400891936727700291456795136617654555711050435925039588861126516623635261535284548447419280475674455265394945367670171015336640396969950217963945923184903414326379565443673251035843352818286226998871221549482219818103217837091293351616681836182333956347955554500919890348057104602125527546184033249106932328161709303019918303945311618938868806095814529623708198473796259327113472026834775978933365941321612791367328599803601685490198925729867358838778348207938739930452387708991242366293162066858644919190874308002317419543524191519794996750603417973542926112438456496260493244645434869764311048547437745835585290854434195481499912776979609408769869459437921397901780841725016374108663335535333738307506247295703818456447415212443165683158924544499214351411680271809585648465624684365213000639030389454486194417668949612792830609629299957060018150890753831167034914250113190730974678191388806875411339267372576704130165022226822236529062198592907028454205244663145591943751926058722408647136901543491837290433454584551409964132861768737217506848954631502572377304402354808566265208002506586129361789179634417608974270580314545462066483532234733862178367432590019154693686861945227248048299573021577274946743836629946086702748308903104852944465098046140729632190958584638253200308327919409752205630713199763845680441150540446637609738693133786650049357486028795245753528507986684081489704062838891532652710881812052396023821237647937099023463812783007796076374888893356148671037763247463994644006969401475228379858826851417960255172105703765536727380435988814797952127931862311485029821508504461785444520951044838116298987332814286043352985418205469163430129496706815333677101609937724910561250356313551490779424019084100689701580284543987341497620535790289079270363235186297390084767427642984113170837848035178418081608696191885876446665642688599858074414414489936412806627539873142572333382533426723296548156521224784685881967999782673373973904056270189137984375143213035237164727625884256606248176135198259376501305393442078955386459623128011944600831303274942514129218511175182792474618955038118732180008544511207306242777426217307611981813789475778054667488912314377589421724051345082571113262615945039216238474163318459226810437583567800240790002291645598853822663942730998626751366766032952065044242552299571669618676900741649138434272052207766087935793294911992054754862520413159246524195972314480596672672289841835560134758082123491302995099077051697331800395622308038962442856599044635970797429396850140018845663721449548017823539629200667267516407754313511622842287271288481282203262964312394874462679781663333597168932931279155960772899232082772575493503852184938156228991500920567748704514654753374296237670504669025912956214982313452593981969734521848263582788107267264884515542307679297906094266534324672952410010867575355817019443559722650561793714242515098551408610916702208529125718318224757207923576946648972685912338382655350692818979823616626033763299874032658057658843726353587767458606602471256846846988100079811174199216299410752739273581751841618221398780493003514121682544305974768890079375607921719600877646766650438001698758782417839537089583587019469837427054939398474867426709266696220686979933589567552494608027094065448888573748782000935840135641210079694040583813386474955956191373158711233366574010598445635998654291432281763798722468439333577474137001744829109218211770823207362935885201081861897953088502384676150449837789393205999896064858101813432825779222297737848102924273904572501720116706349211146944666386632445215466758334332724447166803649615397251158167920018828904965946984776198618701022386600065667329183189326720909339573325818047299929950550761628437610375765434897212628107365168639363063181643097272137135372790206167510510539387354897801019319688098552104161396110216956492090467656013575675729495320904255521366496628412822286302529657392557003582841869821266769871638986312460331112294500224598701844417915091524529380127698055299589564015553165712398059653983440718771596659042529403443986582344078619654997244986273773524988294037425909081689838116465322483109889456345277898386963626020296410104438809762547690075667465905721626914213460723291220425165077926018071283933553282299377482315565053271017423329518644711853698421562712618507021887251837906128553168821763995722319298425461205812481028990859845974597133104410070836863152158337751480033145693732337773181723496366131720822943154083091145867623064556067498836110678505826221432694845727540918609619484914909641108696518433495921951352948221311109001064890896675766586264096400339085068145296339581629921694888330050103203272383607723863664348917171675851612991141475432057509896661252076279182133266504766801269178346285423091847876864398804499131354179826509462455644151834694242737735283181225020196074999990246392965550342797209372337499723801111510212531566369625448682724366319765891652521621118012182601292479966033161448400751998572815741798503446394053346748750201652601617452517659508495684627305194292214442737774724818566175016457007213790428573991776619217947271703765770904290818680614365830402631741532555644928703743804563903655668908724590904191649636628333846193143023528221039413208192958807957803342680404558299101757414802207679682836065746913734024169021536155314446977099189995816484625454281232715674065084284845946607035369616174036340702064921872950375632552059129002368926486366369510790677089334637234978068209005920334355908390015145408725056050619153485763475370160249082507747443281821231353757020668387032524627226433759476511604843761494108795561396673022492929253850008407192455733028288131216822938103541918874566965501531601022988712252354923594790896916247707891612679757532938275291078217061908432298496111818645994843672465808193768464903528777940290448044865991538268127876699197105913239924291805300543554768189163849746749995043627979128067220195942496201672264351017470803851499776679098510938311433302142947656939379978862052859434772375534881158937204817854863577245688655919903265854453589841745482363069176787532917736301817329841390845955318149262666785517400268410886577353433878608345929409776036817725317090545494088113044262696388960225450336434240059099911959710468632306894263185893350942136157123740138718346671192669999356866286961102565512310809736490055346777625586208056200934301484272182378668201054993496756837488267841091070026794924293296335523744826619565644155429973855175747043870785939434130588491234318432927276750556181714575292773970599367827787654570816145217350311842026573811411375502241641384289777145610259495596018172941019516043264384248922887766679795006120946145646203204914468045568811786811997584361450924269200539504345343095510454276842399875792181431947778149071623166500283021361408104304121642469388605624561263543315936146459908743499818378419587345269398212988097560992129382286838646250559313135843554512477419185199569512785418701902925144539543936084510533914211390810039302183925954854590620143677023692202943818700676451535903480346710625517771266762959407423332107463678356046898538226685149069849069479152859367768313932863273304834073353253634277459291194929808174767583671419099422943070718969173666719073077155310141258644528236063621141944943588609994483387440407476337394231537204925629774957245187683022989045646781757311113672318332465043482604683708901204114006839072824412445303422828713177675848940878620709899678074622426432339876095793390599758612483577792642163793967026667522346517459763016599553998644376622359212905301997614326719389147069078496364014871114004724472993811318465046714797272178305227013722176781767982223401030696830644130375334144042068245902767857115444212781081357760216524915696974082425085129773621902689429018598822052613720082717452462650220504697470847991955190222495370705146546960068950042102766866776765214180141381822956581989266775619427086208276417764256230846533087240544173807130166146958533022065179114798712138064227375124826055981891229279126289845023928560253568208783147606782406751724107808101540265391883667796983947848463575008095046090644558564036539476627278645211791880637657863194744318005530917670191019648891816398262476176735645368596221924346839471692144516343220241922928537123285932613517888509721923799500501104620120945606330255060393714442461990131543119058413296731470071884617595537651380376319776384380041342344858536592495915698790092616142182296060140385815773139246795021127625432327326475504958747514384020547971089216899835484740201701304680006669666826761294654736583572782310768393055545627141229265890377021433340929547083761028071743583809521451783782121979491039423501600128495165942049066181846317974424504285579702458143489664897560629682651334784615434208680477578494457392352821008487504697675752655379632358050283133598814425890672472231774304188611257865542533641657498863737169998144904617459340356208643710249093792229793101151385330974787258453908170429930768845002786018827266700173332050138464436802094705676377251149846170860123525257413856392959042039821113226283196705930897512145617500690182061219562254939430546602095593183659026191936797344970126073658340603838396934370895494411402614739700029639141120897070296018260056204199022294185176273817856440073085395351852230396663393735276584250406644858697949731753027809636312897061249368521303556783363736051729924881975884788252099178962715739059658085916932579069830210681909153873344721442863282084440614188646973974813318726792880572062266953951252506485772330967753114084814841496782551843479285675963908871227831944570209849021676603249029157370544588441706208556393684954978011834553009659893727816719455160871216789556800531625394977119035780196351379639549331593265328770888254279813114156170067608091195894865466826295998467081243593801665885043773493515444834520506991157837991990042161662360846914798332560937184013032615381554498021528917711602207735223668656857756806773865223621004711693547635029937360960902599863389939754944568564533607885664211521988538023233303684911996882804507457063481080768943138928932954058378014525652024791304068374287180363947683520817887057616983507937155612541843647014997187107827109674315845591416168313367639622439899629426458775324706597661423253431544665158872178275456977988068706804623523340785028115943263314070588170808398912003955960087710615175533376282221506532247377373462384261320559080440100163130627074333720609176624691905672816233831806413345141268183637064498333658271327929168598248898533104902993384898728762398723164310679588827494522595739093324632965205014799690661919772051737412012464463574887413994998751114790230352443096543590335765153094680903196686637956618874500968535435693100142590586979872908373150101230678251659251393373418041856078667768783108190084101267944916938504037452854872892304767788272442709348637584844776670545031923737339903910469714807723000664205435521728279978296754627118525318482498923875232665540182864199992011132072387327656816976034558627402032291970146003310887527710584614009792778242851687510488090279216865205972811834589938402942994445158957525930613982636767595136956519110636966678141965455484919822868560193267532497670319027085249664665148876804428223366830914123329642486086933032294016293181693999528725642315202087511973499365676496960799129728339048106352893456369694387537842558055003961637852793625879571552884531944204388991589743358960518735782546218148157925492745211665226699724901636082073593952853845616678647858301552272336893605829462326964800612878874308478122367293980567470014171442399360753352324408004944352551893172982125000854754636527922448227951502024553815066665408276812410578965838303611046136817439279670403970991364099477569153527361192028552174134305419342548114339164742979055008998378008361504196038815931364092718167836517355262250935820549248607676908600543637655786647262554406926455092214603798382112918985087422133267176071019382204029192600149301946000332821192402021096688895011219900733777691125527981183064855898395641258190536731183517885396632081660169696274483329472434238464066477800121956328532136383434947675130183851158826391894750091576407802493468965066952205915910760954742857173265402219314201153178100796205794080417636983003237574767077400719353048084056848947113296142442281774193862441217578734992844311352447722407484385577914943311895562303964984137988032543927549076152030900215650308612363336684595829685540051238356932896169763025428888476069611109035798156063621668895294787394348345946916680403058056701118984590093473100344920924704256078300476433460523197178190918521477298681666803541650502108582312102064482780419219510067003715085533885131525564753364241138534080856175110088315492500151189086773441536563328265671829900473464926898796610416459430679574472260529771900949634931015880944985286271229588174220333268430747695003358882175616705375617979615912203908613818898539790116044835042526616867992094756021806906002583302537491182251262219874906997576727938082838480699788106503428840224653029367415032456267768982049599864826068594686521323215210186502577911189841414387375457544289736705147361313573178648088690580343477420389400841680735481818539598120303589408271059036854072091149570024323689155103152261814046102433253659521228609364874939959047857398528090066246229262027817328468319325789846160239333818331838350324084671029655529724041040603913534517762978596094312638075638266167874339752635408825698631620676772801288675335730990470026625025990527745153130393120088589584416382500597410790153542713777300236221414780061243599981204149085996863350948423624363213834525472505164883904248154265679713896661405604179018231500283450983116655625507602693356682794494569656298616759471022079827378645519910623524882215172296576443309542866336898395126598870329084508597858045925509506257386791450619458570555611785593812613054701616570240643968248166658122447548495887512842198635810477403504982109692227485780455936402731870513912492166026088143716166828986657034639826643692881569613859633539265176360317360366701919203938949930095316603158691067139141563815620155151535149302001980218576486043242689086174693322703114982462312704548966538278827431475345733535541383175394916664375353507820119786181563960244674876692845882935283210037500353466504294955330287366972565077608427027517398503597023064590885526473482467201168692537318043882910805646052875295715080684940007749600996663473849193325144028774927389664110297726902951380565237321527295091106784146115361631223604153616383240939088598244076843394870939381484593256686360578961406563357599938999901170149786951235699874045553302616830133997735607542166529425915024384124283400783945783452988013966411748193786702778613629428199873635787033618052167361784134901352599177060606610757131725993173972757322261155369182541728779828182586429018207402626797634525820119141898812077837709880012509031648749204257968116323830923691064756009930108699297766924454815735809836105389848004882740911957470860952675244542789777957002444810782207978522032097086048859791778498919747752693551142996786066045473989418438076934197109433191398766748189905267846577496632068595347300578172756643520113239976217884516628255782296054703049536648398967581161268139817806695156121433001173926043430778926200659500620844565003223056467796319212268371845185305331791374457628253983966165274075686385255497526078520879094352782136172948146712719626214465273084785856177897572625040669990234757901274931112431076721751439887305470099944669830256713554470547409892228957410620926891954302660155103802883017130584433710273353351413333370447549023333808931040149017251618892597605801520409884150557821638339922649240475056420556166748586079602054433656847528491511779092481569654467967158680111736745958967752071404062693329827618580463672686588499403301411058064027574202246049762230612887402029082960355531922358977895758554192274476929763442783753353592942749545129270360103054833899068244547540174760763934907560038188876329212294833502503433654685373947460846969129045112913814169161734151528490476995887530478162522847416342318716206409633509643060016403617318867861330930744286871120970779430705178702685700477974093796776831899181161749954631444947715117942260534699934864164313359004095931028667892675366294393750755008746223114165280616466465754462990382920517381015388371134252001717432521007116083235397370673245853819331157328541803928145645606335067097048930017551310805963561357452009649825378061430566606406211482145358457414820876866788321257705830709146597711767187805414364106148663224044339282552639233381111247668058446855130273217277401306271683357738041628035468556425885175047956871442152143182260219396122128607062402943184527260602394692466628748370269105464108800477357536406839134358189573235081444108761178992933959471259759493898558899372955078076809499015784042790246492062017553669573697627844581168274870137946283758109192476349847334697877130746607403869352796332039359042367469793597218070545753789021492242147048343471541293063693318078724643114825018415539751739809414873593072950683810912310421291062348685962855927978571841640722795463134202527314525561288964589245685233280529228786447687712383824336879575703242011538403275658083010479853072226298672716774102429159135740604350761134119642383589946234614844348749851811716330230656497024432811464711622738621165963262445013244996145315815144432571307344053748299674323997332033712864216629205500825428413257810261521804439913800535719160710468874332252384701961723756902781018743203716082322537970892583053880605666763880106794803692409915021237540870770515445628649262328753011901720494532901792811188229907134290222780948245758811383782639213085967756642507775226666466900427398937888870192415652848880182616686758652168728148997705008427495057804537863487593951387132179678065113496438495779057871168805709431937211982094468890388038713508519043376157548044294951385574641578420738825309735527251943479771840157268106094123704590036465468879034156458517351459502013135713256619837017352986758245040459366555775682497701300933825031929116128680470537540024647155234379956214738237966428940768700452324494064047081463685759613556469853078894319646949345888661105420185415349237737579247090802058805389755619041118958858006826579381051992691927239435018643616671989947196920079030206242912882991660946341307053530077078072443461445246402236475158257112022274719881309234240879071987261370238671639468965411260169483961613138084392268955544223366594585438482026874754189048437306565791159984213036749973319041684538455120627750981011320994947810626595589108977591997882937813712342615390965405089204528978691901528860446495448421146897686018486151071148108681382717899601544266875387841531072979626794232339680654655716418810486187943187939900401162139068830038785902727424789124568358586881495127924804696143798135220869628563123629589726066069066587868195291738264612397443656705485397349635669839671007663482560329137110065372959456164581619057096396348732568315927885554654481758355238683230772566106199926326800143178039386518539833234986504119198785998868455069850723442540764266538972574896485879449081066328637587145725274916061777486249487506844398787410554677074854408910866216596473575030742528956194693948230220695832779894875971011656938369734960340803239634690128323452612304946116163224111367603813045473747753900856926678716584152846912755679952785895709030958122858962138535144660400428381576099773371304813741416863863732314406085819469677098584131741236161078945901107284017599779386986733339660656216959182377043958149952422994403436424232472405654830481435287055010749041129803051950614701816876945328936525918499674133466377975293658771352197102366653444155128105232837159161004891787829226616403119590970464302634682735542489428684016096828977567192339352413696225802255402297516837006233297181990502897870215137514190042783820632048872751836181645538316977703599704077429069015804501947029482166389814293087884772493354205250617618924844410683217770477325204052064885734434539595191721490046582434035087676956801948079372790598076326882723164703403066654298059353055008105968964825589429873601561072459020788514528441692358793215981845644880167925965862804382423378825020035686353961602247118204439491716594495966705412092762116883504804601308243500914244394680611678062570144708632917604541439501315552278810367647272592362901061428966077267701821626130084555883318517377144561821445182613507404214516469417007335089733762138613238800431179802549551896283738744177082232527955434488634052813483922665240991630136529698680323885782543396900507284186294232847706420002235190887420363522064171010793666737465412186076467016780407346335166112908153663646558292422971936034936947657782674449946915085385402705803583961802256731000034258696539758352980981958243632602309431067062266376513944125794110345048316232042029953597585706379112098176859925483136717343586625060625529976492417854867974914399894037995151006136463715463197915790552386301856038504369312793546937579526994415428327825409495227711759303645860066015000231405586710982665407165871144588922081447214154091633215487650944413763504447077669982268670855249904595524498368376561037440193907253382760444752965931712634389011827780593550796185051272254697719237242680378576374003521310419623258527310708774850945773801709301025581886657541545904824156758259300123525136691031443716124405229496436244112510668670358346554493396280611710140690928223688837605056819494189027459768835930089485469923261676496811074112206940119432563417088717334434170746691542077204882544869559464578996203043408352980643631429469360694871049009159489261931346118894965412010708580648118592825274631732362237681517463948123538748935726314873039917463510092940505251767475914712380370044915493500409059271855276469387735912694476352400683315691354487689789603695201374270143579750196425624129581844397882620966712294676585821856927497789242708093983784808141269564711032031154122271002851889648754226305397746783046337919999204830861441643209987033585781103669867614983834442756279173827803015580898262410062539142827115194015509407889797048596759444847968331122361545214674255546735353263321439803974494521764180295550776133307487809203363228202489791856803431632483793262741548239394515154369138294723905621721522184464763108992429967957341995852026328558966310017928912028529296778943231229806690630909265285924853695745085249985316071936112359341341569745563926259749749459953401870980042735559909944660483687353501868622642171961633528426810250843945555628066614987186417605301797842621709957941653474273349939818600427736574914632499507865714100228562983396057678066547004370521175663784545073863860673262357366080432568546144524749048669938273011366554352507466681018271136806980810915682370221926078336853897389799947504871115683319844156884868259561367184188963459517355582860091699522366855418083447778482994329192940244984489900622675395374550275198276145668589163903832268121872251106525607583089233684994434167060080907458256869578583602019144652077082309763171614108686254722552765542648032009897242399924801847947820872326106774231177132869972707338441967767588775334170407845018163125121093587640402840233978619641693942683729672081942341367588747044650516259966901376525879789453092017863426833192954969506454411421905866487560080128102910690095634569465431687761230763066908785386245943547939605417203178245456278609127790258202389938101834184907662407291360227606214166910243232087895514369315509953094613463242126834312540402073557586697645694993239117510915664501133821600912603751809608166451874379968358256917601289704555684086157161843121402797718089999400331859804953792127181612742004917083472133904904495357732451828640220192834913806071030341131710902142985678361215373097433809582978593136925681475896198786747324223649784554262528935233341423775101270259818312485991441515110553833468727223022226435335633993825034890255436170773134974525178897558537208736004590975177723354123905763230607536392966839224504149815775120891891761403132014039076822980113183088398660903886934913914808554339759774213076576738201022308345853900306096454398503254477619320290950335177663852265483981175131834312944445542113462446251342557596144631978889734828305305619310297505389220329542950540071116044675947343298690835489379881070523615573595778396844279723362497210618750635651178589342907077141008295870816872780809647641057665291458363626135538905394189536485749957501233600445172267627008048039414325267230680460286482211176653799770496203373870314810937194659997121200254527401290493608473403939069040623475717274274410267926312137720942853833898822456196938880297853224058675071188576501642629638350060391369073797157471845201013296839125062560745100551521727433687404965270691071316861239506326960091009874702409272291718307922427964825985659670819659104335882425895161146981186068495403093950911999649102463874663981557933578087100280563193683028901244027492683180558368897381741033458948677299999303934290570084590887928440556315227785150637882299113736976799584429161984342779198764630188535781574965791310575563665465374897247184040784326619531014974778610792997430714800898853782712064272609967200694672005893910232479732194937020620005187553470230109741127912479682721008063741280129236427077573380966055888273614332999036335693442247207767365429671479763516823470375189754735939142680043402014787806221845402159418542193328001924615622684790236853268492920418702681600939646148467099425807079918103712127961178201755111010609206686488115162233104186314526858524841188423562413715788305091500314275726606146560177384835321455091052320724634675086587956604066885433726337637542505545550925791668119312359666959651735034766699269223719675189032964197858337049126443330452217234091597710859745961955249182710608113920664736571320513690687167872690876013704447502274145484737930202801056418515826041799976423642022651041458768686920512474009746840137232385422200124870463880670552873810950149165469078163938707128768040359119132539518928136511871364695411504042340353263808678940853292661987011722411074148626541262440039380330266729009431498659241928583748810775072369258430797491478539663798773809642783143376993799519526357930566820518010127307954273671914389217150856603570956288765717713088850670219539745412234218403116304010028143785755160645401035488504923114075195480952249725786292824139686189439519515631239600602473847804358979042207307519372288996232267145843768645124854574993448270427641068775928438688845237842116071688086012793638655466532196705138359726137228839317836485968203369336544511269325904090579651533763004521665702714169154544933822876220383316497778848184403167226724281357632704307003955118285826102075093861551584346127390888855114667409540808750376129256729081685899252217010162961559837470263899755692906984592955399039443274405792364750669138607684255239131645838994833237344758687852034652144385937263560416254382511259278743411362679419473607274600999926312426578856278589534852428139477324392510958090209453282803546569686173487452620478510538160700448224233620657581864945965609817242085671034597881408873519088181974191906277185692441935498381976022241240557950763577712575613284747982045066834892911139351373747538509019737747830753613080831351459233344570796151176604057661482304219872928248840740074403743364101362400605041801577058494593538721462470788504061480483763670853919420719279482361811727707117493525237548300859303304929380452513264981055630094835311550452381453477351324277263626081274415329635985217228690188777989554533076574413750190652899602445624876759118247077698178162319209501350454040171792966790771467138279168431579275450782828543570252245343570201364270427566351688865613327620726358572399609018689862207479471352703303336633214258903202595533005850201871819958510141524624919681668033442858481304216769908942211455368607025622821522276317362070362620330189334364161617720416164065330225587060186012665177196147142359116934613317990450845708557702674973259816394475883004360915237628588838867295945255753685920121552261311294139001697019403718557815309208265128579193738919470377486633875440120442053378978984359561799964577156171226561696316551228264341532648735037822533880099250077176521844060097772066886491690421333268472679751314006101044966201526820702110175627976595109841562254654082455692930493515342174537892802915211295041368944848703251270061259734326195038553713282283730655191325752351938532645084745538728460121575477480079485652630374002006269885146624290014661309747582243418069828946010604665496442518291742996790300774596306562209325071575995199507891485411352683059667771305181662670125889192416523408393511552605803065010732542094068549113096033536359974290301863319027907847197802824703209738668806813446574071983387893008662241401345251196985508472048080213376105180832290147038325859021198090115740092981243124670044752089682960840526073835969622935502459843759337671493793137996377682863272284016838696425675763443384110044667217091274927430974711628604963108206272549926789524593758355719881443671078482444969492735161855940411065196994834747348594065487332041682633285476174695922649523983362383794189999746289820754550076977484785976979141545985963904949206146979899959720371106744782452536864194019687632774060478944392242842192643581286811458003319074820125357835718542764145137992500132623058355051280910814185385927469032188094873032938602382877580574613729017444936315760696982239180320127047090798913497488585063111394228525936453063611820897212447045095206989669268600506879173915614971373670310366498983559493163090619260632558471554834764110078054202154897967013637036239363701773639894644485749151361793184288491266896213898220896099047669090688259520389671533886698870608486562917085863435302129560621213523381670951283370270197128036018282177464094759627056752080714452673451312151250367913291196203142615580583905660429324503315459431389028644452142829479542554013619885274306760302236493669165608697648156776545333137864455049001190021865668413010745446618069765039936569260193457524727429896871295406515040817275237886966418946067606563879834865142638170616467447242934839806715301619497237588039095656647169285760523954940482013156383325291658006524732539123117245281633603612610685246385503492007681975954678526219780864527923197354443187636273726703503181273013765001040590234471323563291700962277336340745009210205590356417406582376920505228353849715319471867841897156997591934365352757235150985376358870219023330680851183148555618949189309778215818603504803459614780140219842732863677227099121142105912649365533258308258446389183572772702394777933848077184330937575056087523629514225160772799701190985763700518275177756935183204166702686335516805493878152299544617199929781722433080553128514699195213840187843332109733322523221337209391207210288889282807631917324076151996108916474965162065456963253280102723043621864513683170104532305775875903765793443661839584403485626055940154334437081560772255873526219657440360669191318899803568336877726014910456894543992020970079482450137803620796022766088475302674120850053313949093639257033562795429408826507867900358264415354099668246403401235725310086144897101092292289744552338174078922530910642796156414271017259897945754157564564694167759807958610543685243119489124531383668036142053777103313698779501451974999750188943174482677003935847154910101688673378872200860300459413873005000937510829711217317341111233514370571385707287759643092577679612437851410539213475501570140467700172042158458819063574325279639419166795633880549428061836646749913698316780080970322858538785361430276092038764623510007528043089891569070567318346721640288579095421036893662993288191600594608535484906842132283785601865539750088672828803381375118368199195610182133690204720380409208772068137076832639170653217916769124743920980321495356447001367167726158615569749807796085985704724779227940320764375821171369053415601575529666693970401721951120684884110036396197669737971219250795363670704174919223525480965416591713120044917032446395628218254069147884909660171101726467598839244916491996971005004457992652639221173445583107341853136895878034143461037427524569662425115610235867762930983640911236450522370390236358710372489289718958840015175188192468163818396199300375271957806334246531451359825797243659434581858942946304412278834239736187364943959729939184350695056058170364142722985670305827885850266501253433223549290666373745030491471302137093816476228489340097522645756545463776210987531678581029674323831768666706619898465026621471400452026580656178915525392785264080040591220969429332231752540245981402345530217782204354353133377998400376088130300818021097701427999798461809205313394402215126222479247714311481775385669682815898249113819380777077971681550281110363166251636768224056818010252176685126764431942954811428611462644859312364739702900782427541222776210878387081702185120750260675020799070907162492702960585277991612917612662495254642110529804103136436024887338569857011853228645796879758745970894138262097859250898224320729668022514927206781606043775890855242273550168734736346716740181371962289399882570784886908978167169319995219367415944419400596255807762818056657338995705001194709389773410466110266560978619343018066765737213081158914461681992709154540177019986765672748120894633441826357061082253508646833793610029853918109709008861916149771707299805879334990387999053107208971388162150597515643836165822167394894339773953012434094982313142893592541311742905712789742559584732348366412638693948040514430932949574457966275462396007861909179336218906493317579728447857011324529829104171920084745257263773573450610732030654253478070013405853679332770456858048541304095031838019474989364764230506244853851897294712898971133250458049280800936379189506600221100907533347904213689084539020643567760640934518754003140902975872406459495770649551452997278636540194664617276767594279375214025094390816750038663895488266810760127821028508229218860655431994973923481704721639735276990253314978500237812305284725364057415193316495454648445178993415591078070082581211653620262220516171922414291166968330182422416201785864554230026162100844755077462585701665063962800617007453996510564718107489190501201729835968666500195348359185735476890054768264635305019811291901085403415622214096026654782593391762985879759531191458557517191226690468036528279038988862785450256253261265856927448625680236759069859517561966920289855600315399270046029215796234235375890931999294658287050717945964523305923455028161176101990079261002006378585141100244051417867300617462396748109457122627701069864299146964005334791162294332870010105012956828715898249564020819130774663069791231319077567638201166964998211574650413134608739170225215046740104327762865852783243625542002483736596784472642395768297238804744982310261424751343731062406423403560841871270580111103753205580902039081515948465648832050048423357281683995639817334979350407412930519322661020388632583788176989852230001337259632603087542222773319576965609763205007045086234008207436746217106613213772042477097448311803332434988211512527004202254037420131516343631573457922699303911069784238952163586109051856814198563389800019023944410737095443919227705036978708384163736198368880925990988194211532251712497378259244756140407534077792676972584588486136560855324049496691566174588174744592843155718691121839271015151504193465051458619227425637717591973449983625005873329284915623450739343359323495955828110346467966600495644351604795934786458983449690052170478057463425517101870716738217512823320021968849554736960503539495543642704798176106775348488478772248931639671266296348418148793630755218795650525101399323888723590131532980588188302655603016971182706078451863355542662076061978668829302725374213009292029959824031469019715484328464132506686036781914129669649041751731829873105240642567659045605257221249539404734280914266877619988404135479620571047591526574247053031800372753647061067718499489702423762887057951406332782550875464672567423227854589431790138479615409038233574193644407920200252492955924906633918102657895837426723292433367716015795869368517399558102460392521881591419184077333760969191815415473344980122980764105857136148470800297936949209262813954001925111089174075538740409836867417850203111143271182585526729203649765027073365864201679412580790825468068447184136586576942148638842622268534180525566440571403187187933772412241757855342825864747910306246729122543119734249924489723480041242158372831629006162100567814795972618953054521176621000004899900038841958305706836820964909607971028332918184318500789933100155830752079921679759582298431721468367523853691887852509491826918444870955592529127261092741845125667347516547552377214810824879765967269709214656155062988651962063719023070150701780037553227852217048370703272344926630235956720046924952649720516116946071401681604101226332479734849639263033332081591368461057960853299957601321602899777540120768429509048565836328457960546130073650776047061049448081261169829764000870474914065743150211420726647814584872065108223289457804458986213941439365184433709043001933178585216316989328728621154963482538227808321957607110158249795198666532495752714482515432093188942351862156036005397599950485671714030040053334038926417089507321461321660106904667747079292318788977377970940805571774134324607154097299486840915337098271365220260785736051875790233273522808902943984031377030729788849557738986592094399130618063187194833714955278853603579252132363785317302708243077998679803691550870037268254480301618408447914236370186063879232907469012282430811858064747662072451845608803414000827729162102342023004823822676274391195561060792046695704122630688363781815365157902633563219637978437071639943140287756846714058698868656628970961471119346293200854005314417383810531012478383959715947302796135926360528129207290734950509361174900606138318535546565664123902962612954054095298249396570781464740033644830625285420131940103977648415746706664982074793189459150316274873911460972296431649225219005882308327814831707601397248942189741521074842168483476928834747856506082500938419572289505823615563383668440775326034191331107547885907516715346344829211527121894147350627549813512734985639757620431374372582891622383333385790264442757211105274764768944095698493118527591783596217333068739306240984099313110540827351579085935511859450785148331597133572100489786216093087515947334906839021800181220797040216077640025059342037362830127519579245959966859609203137732740434692692226634757205128435445222643848840494667205772834351902817074973146990865318301116806939206864805713568068273981110743539434166725545087560196008746582214563695195982155612066205970222393851264225262232249856752283161089911984177644177206078379954067859726833801773277711841441655081807489391679971590352156505344889909636683416031998087003728814243587078178416679106309182857536810178481137849727345535520266457858140778944115038704508758875618118934259983452760195207699981891614804566178584190109237079698299415692808139536998936316683443024965313682587262160439302060615632948557994877312069846854010639107874086152238707332448079407742350758967723658583673476991314891911811181671790496538645539349372128580569227741643427578177359474951452352832130437383229912288751287211924065538323610290596382826935538108740513420412257198459600921252165542256063262685966403812044409688883346383622163406806299293508406716232680141956430668779850467932333182589203172998089649335165086080117674908424110086785972813185167308263265634968692439383965218313389036496898113024028347329459617877115980446235666387520342668628594878469952671282662459419274279052453555572700983420795437231842227991351593142449339393580744437691718487082429807215062543416023349970430746010052016755991816411120859255273190301004436604624907699514300916390772660826873613744137371018204228309163800657685366192917670316282934349371004310893967779211380620158816357964240463877491023231904805842635769673702213465715414669344142707354596411475592959570506768072003317577389486282048043793231518172256675937426265537990219943760133358243208793339617301939167783306423985337744078333845411483621935005992147662608632553215138162262672020307267692787699579164420087035529682032718792422490043423635124750502098002003044789014893599217451897452791541492619541476534413426969401943028892657891505781042367836482650733067736260047856493563232289863843879750287166134107784814052994978879989763871921874993525736856684827255671695377071436346620031421794775365833014412415921134005137633156381740045023627059657463873890368008875438445759313508515118932852365595496241340769225765177858036273643057184185020203192534538345759511531345918477140129811589439076827869778131164882733446676617974207993270600231772637444429353617259876061200120445305491872361342666955791153853675305124615593436952320154555065234792553390728797704848878627042565718122539397710442807965642404838193429395714606391997961838849774060487330562088498086223969633760375414800153588228167453206488554446206638096324507412345444000246668055284410253414480074516627838757052355543241731826516641223039999160019407464308652524901659770517948503910778751806777103125180701439749165228962819559847560160477561584781506747770739196102430628002496152179490205434194951894625605690488005293012614014041719040490013454558732729187393538852452545398809345862404433670673040369445195814404014345035033191132857266589687780169967957198748311504957808395103093720950200089737472616941716279324017801360286054370031032740481921947754665239992554256806172735518774775470002295346355447500891358234859342603622960327461450243479201623808708662406205828212432266704462554773405969135032877696582306109539822523908989472561943557927362452176971229169879064592075296733270403507882767953383116432662454758286844416000825051346123144998693221102188409260351966102339788568584271107474390457971425065114399200138156559263912823855527246768223817567487853281618532917663550753873619105230166633151158867584762095443167727909203645364089195613859166055212538463915483340634507276704062596116121692662535854374246687579847873273373674192285712738806158448918724719695433668606166292571743871405510726707478320180053877130236213092746438964727125614964353706539623605068752043923448735857180295527770048458496438118754692508056149116485376552438613035995006850680289509434115009887721934470871543436131766312653079771929378656090486660963058134136005429883181595718986297563248513515975889956668036357153272647147210584644046976384605945905980110529684734121133183025236624924831500294650099746652409292437202037834707498007283120673807935391831777502070974193263892091992115414789996744155344643428852292034909416473415821254304241956349492786931472468088888806970384600620663554986501827850109913720487896212381873088086368992991690503091157925342581183809446806263879652495113522379795956935546333614692109829948107444943633228696546602697219210248110967202900337448679334261073412430104160257854233958974042510144015608485827605239757118386880853685417336148595047720929045846250202511169639307700814209800913890345781113350603267444606986973756731646039066345479188428545304364470629468553342615426725799027317046706789065773828447230504987325482742147290192280193891828193143905467244822688652822223561130186355387457410052009012880754363177689586511871682044264687915297579697666126224259103340645885644033150398512485971060481169827185701808315221980536992015159536117034087491305718232629947286066305579575243969910397729139532168039637224439902449143135761997817290399688233161035031422678895367197282880559422380983224824098360633626822396819643377240502000255164660960746633765019634923901431610682817539147377232588708559847484855796097572762402829258975555810329593140853989146620703623138486375276865474552026931472584392510194570357854801068103892018213716980756284349124928734067128679554165646799927749742109396942397577610998439027767931977310728732369515472989028043130311602643250398073546378502433456195427931214143164597360584253516698055852340951876871381054881473033128290423300011699634570815249567519943317438162145993249128834001647448319475760964183697750535269109403654709024605827862183720224635912223684504816688277022585330115235992736602385396547722457077751065135406795216415661650297471469382122514516878402607589582689330689339596648184917818627986776396884077025921854999027971263810815038528049527712864073029380391652780288266016501457065471540569342125282269099097807233709004157506551106347975007431004596554430569579408155560061530641946544877355257050782408122220380448509605952876588668573790013095683027640930121091514547168517848039411833498374766088938105545250928526825485707161955482783995960516584974226575319156712360078163018638853662937267006226978157366151462919386222808467998273213150014847011842926147491212610091873932420591424269056306944492229302391046704143620460465896534900669926436224455745528166190989588054310639947864817049703157865654079921673024420196935844621423073155813285737871334785145819742795385544228111111109135765858392037313201066308103439257991628464941743856327965559475118633509536596351470384051879183897340099447452495395848042650215318106992930421878967030949697880720745641160352937762997472676827725741400495629415962059546399035162567943085665161582371383317800786261864238921753784963089613053102303509239762427524884939385807624920460359814560029789426667622686054249790600264225909853528220085414337053790464362536098457334987458664872665454119624676768000612207622086432953363896291133419240602125145567302143493916930054276688669627436739870751528393566789226310625135444308753452887654661567551353247393055320394331065064617001353369483524023737061100842392147875075060904562262281741944442534240824104503423763797023159899235700973242059022896999866763385901863449908126673956835321900771551748135088819320253534605758272908954733340499827084326735046475340613229414204355498312792470215230761291405052408697904238909162504291291916880091592467197208378970097834775276980476088165520318591736621881479017697413255196558204619358594881936620764311450845536364292453830087314415388150960393422950221238403863258113864355000813384196766772337245900052129289885989530811289272265011741497862857148304380817743785888160303228533898195795069110732526433230324372373750904478470342861254542119815813762504519181439424141676388218947350014091858320674299631408751775342240478438702346581296363985882050178660146466080739250846715802459009864521152793621593157174298728388348540645702302138651351379850141855765500204271646675163882281776312356414624512870433419996498154818367922253906036794611622194773240426731670926493595544121213792719628476359945878339831856423334041611356353257407024031191342957432018080498715653688607078677370317004474991308638426122070047863388154101673260877029210942334999044465446347099536617429458313656533764874474606100155231564363895786155451281803660951129835751532892670844883748228615947625763444451452879748602918533671295209271898027616745846380121869101601912870497789562858956731759920700196368104386123522421548096550138912273750993084005422683864508999480386511007711399392685805623518407708438366603374935016060529273332220997368731346493370895808359261628240274154721431921505550478977241963848877302174809212103290925829971893280141104975508313853239490102800010534143141544959921089642872098141942866681842718864285828370970866728249196214880247033369767004943424903026527692869686753839882567244193385278446667885051342652698244020065082408118684797048306750621302965821956434634041824433925448932752871297497904621788750133650505396671814736801782980535023710403187022473116323365244154281671244116206251343748480675808182205116927687559726463269894528822111043238623954331313384288689007737787179413027152109930284515232650403058201430842900037721034132793758738881554073409108369765619410691035655636145742287446380349858881328071875440536932369709395829201124045306713476824231438656557044107607109888948818302371323933206289468935692905906377047655690907718007033794498022623385720889554294023867304440091250554503044823041843140637614241816190682548632996593393230811338013896262877990249854036670617668139697810321829454313788705176565497713131028885091742227550490818895357697208092482670849974918587836395954566198787947172248852655085612423244909193335577707738792333300013419447914615059952428159262052015173869674513272721853965526212487894889891422398301779408239669518270232533686449006855740421933421919394288948125024100716475622572937807788297721925182141295844184411137804627523286414952622363926298549571735724167997168002680882454132717466915413030790643031493636098909523833621852614341791317021221353299680766083977306914118801010446661254419747528954588803615919453894203310074934997000956495126417444586478311483858537582456557093524371063769050514078373950425899368694032056297890265303117521350006532720983059881557081870432304786498199127817859961390210640958840063073287994079383509267457603559889318843289810133412031263698013229600298352996691341193643856447301237406814823609325155092293931874509411314520386686631806520882602747956991901605018264505966328855085876610046388749976949933842561180150005012849718531377141594268558798710731015236354754721512688975412171311322618998332285771253027915108320625855640253989093615440585581235419728882162442866077822181173026339976468720210469598899983573854818343831683095959692102306366905137812124576848763158697605443760243986000941096100303062472240205264464173278677201694977417913047864952485372582886167822562302016377718418121672188142314070319574141683031523520140340432832901900501826378867666588983256876380560394969011166060647116164519159169896903008258102684472474085221222126294181790852007319778490118138915032067926264017394758232332115885782204858991561819720185014832713536207089244073048392244052090313292933831644478112056998488279045172470766497346349320482092116346512112717034453120410963721409479061779284656216438876364108781939582116243333729594880217683255191900363340658749072821488243502541095168416108720431648166885423043783241841623717616353454785278359312718629688795769776874597093016951857577599258061704249711018972079367052529649211371331271664887917317003200044428501641680422547592676242575898483775265345538678992157569581075617156364410156518945882273009507088931827899879994195223296343994083116646062175900912546561776556107885624897048471046622413165154071748502145029130620032599344783521279127208282860315487228575164632711639723713452421695358184424812552524564796615748009695367018249995391118498414232856717050457552237956325319167730974524277709626603669830645524126398550248400805654384889166428073455478058896918642425369313997537919010324694535300178223736805680411051053962092516873755497730824696529867342477416937340993177902502622477501401388293561081134573478174022496541323660086036480623518559933296958804670740906154558153909828675959744295609481333398840644216732596171579567633572191546925910256079184128147775008022346296261697996157969090436639498760710821466632908614456753172025140004520141348558526560177188673941009269041100187522982114623510333811592561576505972339644425162937769730336631036277593533427116149727881980808512685207015290874580300515874909276824420710604895311661654006308812731725523785545262599178567436460357930465318500686335436214345352139081466005372243647697728583834466674115766463094178413026638581083644629390117791917567297806455938916322509044806864685389412371567067848329956807659351644099190725101334711099357885995719093060689913157682005966599210738905699231327921439455548948721795187387051315264378368351226751004062204802184483946975290053572384353986338609515682315897081182705529021616455582365800918903305203607821631082240847664599934199661092419645319526896682463704657240058005183656657000834679566293575560544528374894476258828627277276951136125264967131539760587341140923902766433930735741406124881499616734601881528930461347749563166059784757197601653028624329368504926867760333063402919825302786799998103158115720784083092911274329270862661072903700786391981018881773041459205987667067801353011290057454356237451325785955148183001082050003830484395521281728765680791701056093792903589056820246371949124328953003364306450952005114527730143039554716929839789772013183264739845004682054834319389978650699410023382774609881998952549442183468897828968554194346683776135556422223859485460589740584554129611141114365904816646094552641688898442920704786906766297714485379425548397416096223668920112419657924942030234929907219776729905351063509532795419129823728131907913801817517327321565300380569109709297811157113384498063717214466095941839549981015199351340824454151652589176909536333514048494530861608934536376791755816096677470439124770149388505348262905516681147665471045829105519880854934011627365534762545540423851507043064876798114034994455368178136050736574608017065820361795128835602536128986353677006609149850636570617960257398854815286625068836863339017973723362019155336978726449333102026294691880361325804471438436312292983998961412435605395109665571539656665393406176462284639015881009613953416980585136223028965453305054114386550913067191570385072168376892814353432573118410159497305399165887684861301738928201958844214343630419279749206839014750870908816655636319125016614906879122965165604334359632028190401439264235958424608456911638490589932195752397350002914970701214392684851733447647851653465639856808736412944878967584393581430696882990693083366015193351256466124643218601131897237336519669199239775965792194467872231651781132180097306860793786996303746883547815126648978552185893435609904553983175435687445066877068995219957735220786848129140561189249712695956648116832478508666250419918545482642233600938168240668686906766605568382506154926413420595165411184113787357360800234747870555398404457281067158287629683476781777582831063561288602873349245501804321344738161795285871939171973364656975409052419726333148064815288747556607379136766749120466213849443865642744315106444920597176062638247234767232844034548024808409661192507091215176239095806308233145761953515274366802292898193287152255641476101831199636016236887218041224552436331915262031597314507252137155020033881533271788732729495696100221145698399226520310547520335381004202786730321909382948221697252305280657438907951187061341899407550456866354992961129167196724237480164938663185242728079300714810481977768343948351182126452916994007157757074071966807405287869219558190098204357401230998491819162478976737451926924306966043633813873695726281678927996383454754563158795635944713033018212329727939379000416117269147374113043935822817482124849257949991616908192641447835181074247543862615994525184116757736594879391784323209307944943809867025936688755268226128137386007892007047827564538806198448385005625331984279411617804548938639229692318533260692103274961524326287658614479260486458148794757537767103167609062778236941340946906028367754482530071472079111680781220767346422323210623308288218067897361870330650673241626139747007409856933491042140599173423026453985566043233655866714506091970699730555237449299741999027504900339452040447642496539525867087843427693817134580530444427867169716315639073828555631521144403289030074020768036225636422334284699438809135620255079661381268434148829103270539479506988139815613017189378967175239998500535942028014622176952201829117821935292993915545937643932908595459171999558865655178847345385923037967556811422529305774141156103754952971047734945751817836059144454679311598370414826471587550519273311295225186471619042281270442287338684175278835674864916298895938943446111077925341376373618947164474769454159715112508233021372263757735180936082817212251479074713155310729765456213393681868517254666140778019865617602047794893591097626211046663540077760923089457851616000098473078594875299577714883590414038982869919927235686795197977186695834619375769587369115514322073962374576310414619001553317796914220224750422273006624096224887887894504780766855362626986751919546042241377852861121737710504648035234578519345244144474474589047610698086979475684574842120478314014036470389894911406925692841367382341189042548382520215430552911234576995266606209083194946842462477904471114841103514547087563866930404115862599898567676641477551282434168800127408923505559014810734781911417868581001457477335894009853318158926787213920863504582378074430673747634298284635159291939478548763231316228933987129875257737714567586702619703947731899376112438599765953976245851313691645645595289638935895051215951274759262454451063925465136169272186056821206112798129778173668407287037939978485844606600018367644066112848772119545675744981183866005451231378503409710227158744826056312599509370704737746520337637482375688361131092885344311688045404074469435830708040481400019925569768054054747986423996726068249825641532424988457080794985180049723662079371279325116897362785262055846985577918418421861454318088163467999752875110099233568948529697677865232247549800111537831913929792947999612099747252966829934792471873099407588874277700706336946011804407556126528135463050452039877558511598237066337328866329228747673987406258044180197050652175632236432352152730038280341883822868999812705259289004035909032004997480516978681972190659126766875386000281363720922920422175592612070513331644397018256450090951432943565830959428316343242234584446363120862169820599540849222535697958637967903667545498958592769940111893820282663583590465647640649924809098022560160154119308215033248619203219163236512461321894489124161891021846564678055611693560647692812254759393116917459428885998475571662500367348329440267581292339152397724956592083126312835654316077889270400474893976447090475008794574579773931893666198134733260444998251995427697414691511861417377606532681421302603863153384957764493560135667502927451282225961716072842956452512027348278808282570909217241797009886791646608607327185984483985018446513076959423798738863248146377199900393332951989281753713977764060652838413154719869247601675009154211217064896116167014956032650462612783488080121899025377707330134193241104469992077102083728441464335225719148078184023215708278162425354321278612484741125155540082178161611735148743573700399761302013979231633873836887507155468438832926844899811740217457566525343090409830183417120266142911760531187576351440793020781504700319304899998618372460239623583200940510950474549042477781362609222130135594179205709883533662430585540112763566737863771329761000539150007988351851387963925765782104922346651971712481792870648005955844448664361697157821257263047072523274593468513492021202746892630803182986320218644131413045364350108886860479409871730778797629415889721461821019667249961471958948198322649573438349974111776821743551029903066603179418977220110773342975895975124656702391922755436653389030274315021240582842977530937200519378691167475518784898790932117053002742383286890064002269449559214859722966834047355968018632531501577435650952101355338934494058072124682377207114773199777831773818185204968681378619144850126439918707048346873694619686283924300130878259860888229257748450080422450189520975915814524308362297553790961497937663117979174547112194415671752570290653938469192418532067629147948758495566245894106510506702116329218355070765121123092241189236614739383169871664621940431780489905750154854565051234056639562965243069794408189086016477309830497120428054735350085220491579377443962617161528701625924015796116495265775378773504191859293259084946868836993932067873983076300925063415477231257983752797827393011242231510592885288697873430110059552526649392939645379795027863343153621900405303766109639277036211228060900420683814190830276730699475589853087803225080699559456651474595843503346835196290760333220876602582216711879433136524531056770000911146125702649985238190595601237871288544228791260356012944173168252240415586465448919292051229032328381462207557487738201138491842479731871510499817644334837217954624904373002475954769802334929799628498140900646881517304111203571523419968574451134283034931204152140291473086552844990935512468706705062477857846373463316964056444697656255515089763121296866857902496482439959608732674833046850566793789525449390964141901150923051291454305725223184745986428257879085001748582706072224298533976021633994216620110107537121600420891543926480272302221658451371157729957957231966926521969576399626513863027220425821110996569397042325420074425391184749638042064688461218965401459549041097015444790335620722030781446277208191118358561222976426963428754385153173094194487257718023091243180987012120300308119498171168436948727280893082243360508373288111676567392817159934097378976855753689204342073181743178287251987017887520626878549911674329738092051650292731500632429823510470793965141080734916863000440436984622623604838104415120225104572613426903722566638893730509335454254623197674241982818366042526588572245048323907898793289390913778109108252181856831743082969600593172297272270190474645180125633126186312606959160413891446469639541973681977495021988690701365123587335396191085152820718131818326825221752768818797193196546302750031302653285672987364105469182492609266186789973037461484386459318099629438349243854241913175579869110369295710377061027664799412492724423416497030221547723602086675806287521445585689986965972241115091072556230222292668433816337230894392337245646366584950644286071769123518106791837148348489264754445783446508772277519920653429148747355943581903908780479349596940399149246018085524659609253880419127482702734666655915760266949688884124934864814509574116842227937723145368159812000215303819262719556993604518575127006241869044934578607707583246482017820827254887735652881972798700273557570752900745458110127922737485300157978145139931490175788919259949318026214199919817495425298734383863335167202682440699503993701234996100503839387058384322183863733787079736858668727760114975600530857363219876809306382987127641594455360987503870047878963383660351134208984485995749419152170366510572452189881107967767668461338968466530146373108726316457643150369251224830153861069583897119579561676451083251380686579694356860772869363316592849104027376946478560144093640970131769199196688276047259626434292665073493975415141114466444538356289232213247937505571568992259290856505607008978445204261971589765542657714144110785483536385365358514046350354124656097781296942243376411776719361199685901551639449672362429857792854131784781313932143586470192830268796873605584764805043542760983749011663478744321445232317759668981419584804527446031204464771861918242946566902521848761544454446746938628921970489347659785088320050416552752605167100735270340385216141929086627866174210987913682117369904113712169120393747642416391068276928806696227223303601438567821065496328209691852814559864955009146734789150459621522740499010184563178687660350966592331905007992552459209746314356863921184976120953565907525070736671241090526846435192166176422029428479313670143216810367410934183993434913804784053773697331778365899391272241255074061321255297450602324428357055116806080115226870363653718454391696126732290135694311644663362382829287484591775085630610061076656651913085126514985557622230422321025267720229487202500322432011108368057953987415674574404448536224629519984873777890917665253240196051320448681756163557013498921129757854608637630888978187449656772135449990537866722445319542790807071191675793884736041470527213113763027547829854721846092524284885489699116053559057506867980163769296816609702234079536333760146244311487233344983510903282408480553259755862381859930027214009999636122967798549952771633793196208752751732895603428082346401131724138452966120330353091799053541834841178887548538049978650201191666809728515695092875435750373839504209612337341797220673193283350442301872610183286577541980723746781289951065513687660791583429197194844334973803800201872519457619671851938540759805547598758264166912992248801406062955239709053954139767651564066567668864396665521896637898500994031499147256953501238526033089414456552317382248828705183815020570125843551530906553341541855548502030315815072395610509221289460304593898621015804893684008254631338099580671750550649048560543824662223119155230115328630490864101568971194156825968471031874594374432747292809511880764768091669544193104079994942163619135994851370521007486455326037469224043745353901727564816004099357957838316380008386554540369768957462465251528623232879337574601463086416381044116116209533248440811130237846892045763681147674586250114342226202621473684086641468077189423030844538028747040556379192770463040612077451962812880190704467568817535134835620932769542168421170527227096413992276337130733477442421755927352910717427938037613556146754038807807075778375727106325678479110245294794325050193559040445993383034466761535505504961978539201752134316821823640236971334150253955616413322200072577785263343308673563336436292502907206864645222536206640266653237194740398147218476701655191155203104526710968763127843250023265020156191786907662615669819244639751731127673543118039784598706554040052940295180443202781946974984946392341334599741786570316667456122212203581869091118413910961596509165652606708454962050568052457857004192621501025180955935968940780318958574587472388474866775817735746410633826688531146571922592267944948690268701274237962522628489313452880609843143468876280228261342094812313977138152051749710781898138119001539502877164895922308958336281925314300334916400968934992715173812290172883322008143167015893713494292372030744029431165346556948692913718807427061236240528661584289810037129619427678752555652241595055026205320080896817129789974860524605473177344229446134063935787298085648894907513382573901662392564277103199273631410220556323225309672045162382630325809967067902597964356347287535561389519602764819429954938445848703682646926573868931186986053146460270475015165118602085375141715869888641540228367596467661484891874024490096965093277090389871211535871147577917611521088346645786349106815952636026175831650867321840820835460455281725189207992887983372111569640737622159779526141937567833987659641658999365127450770881516591154795558663139377442701283194443306364848516805731045608229769566343575415103859471904609232655072784911017444779724554788208189247324198185232121702585270862572076598730014480319579050118266320271483242550849115151432954975065628958763299302754506176809335133690096521415805669049068262242595641665916081937675683521854840720424489368734109313196757288701196159299770974854428256074250059941469731520564508770403429757241003052763214691886118201549671391096669219612383663523739208828022625214153293936605979402450382941984460379211368932586743358921719308622143859634117611779090665231409902329065961431230308192347273933271069781815996717845656908202423527899913011138498310731897200777641919629367912287928024051041155621117748048210213226044848361019914339951259370590830146836445469033038108690788851603773362842984073089055352927036343248948316542376181252123373208474651014078375883777543360183074900716217287413335352333124652325693935653321172458011365747091949005874516335046912394430295393083438329660077991804837142469145857171433693877857824537483646125331234902894023324570221334495513879726663483475889355900307494034789480683827724290015030627543538707475153248674910594104033694608369680989135393751626286531680228604671309737329341584585563694647982552862884931012612419607603933561213357479868725417754947191009650082233548188915901180039422769501666305916400935865954555064281300840192204493446638297759954359182366036473800715395422481699815291524379542140988369720879220533594866558263364945854087327009283582969341331419719218437954909508541021038729550961364680544532351796182904369007612511286729290136202201210380619454635148044386910558228719119596603344721323543604850957305919363453640123272497343646519688663143594138481220994103200186649406253414513022627295731972294757420180101198924668618023967276854345774642390972544090825491397896853129707737995084808029975646988886872307388565662689315364063751378798789074645264140437034975342736039408840051458522724542326224792937837849848942436289550270506351955703140435668510367371488645901256364257495323014406258145459479623829010962825258945432857846122966516987545956990498469233054164474250000863675920781136574755487791415587629722770694408933448247173415564002466917188425082142306308616162817002760822589672302768548252223495557689220612412764337443675869735423479302024897444461411143999681578313849824346107921094884649081826732811301231635197402966379882464605761194715121900284416574917841156129914749857885876605001734044255389508287781499435824333379905757256284413624722587988140147773681200192343934156987040423376724376017165953768724060461477970800164975508905252179390384978346055424091235905289368478299150106973453751723147818930538484689059079531820313119533420044104639690351485886819287158968576948413282446444280097045698144474933681436081964264881143292148136301090256798612423725201023981630002164191625173341295674389215108604450556649703130337820209229988737670351002098843777379414606195958235242197143242654200542205855423435673201420910551782467885770496076019782330233390859076064736046437568528253301694471261366868089101036948241742323396292343912283531254953362788526628077891349504027136395099432080592836540419444404060150475155254339464110878463293739045481356275479820183041912104934868881278191414899741077705755552019050747142648463566449634147945052344253148206033726098281576202696607417591561028450169178343071518115437251187918440707668997543212811265730957347343530450159244004175138044375570970930557838087779965656832811299450305962173852478502592459663151714461700481824573480789568141945897726762360821537643925151229069891522396684024929896556027731581933512262439727773052420010009022982389536595528857987892180501043703300858300633076149689487379015066454128719797010403250825212629102026845794784051107296631775580653551009446229041336093162414096959505863090249197159926606920355570161823917061678636283936085173417949159639660854224033863371153314855144051356410492441902620808241768950789132001501644739583623943665072134525915459101128969615808023142475745462253703507105692228916473974790354355510961779624157683808927004693175221459689591128935122722309796729723281802250602269862539037284959192406103878755575982357892295678058495881810742982044029511596033365747904668184821533800002919090936694001798558528838763179434764443025056824351922299961440153498665158012925255738351576723531242963118851335900470030380142083780862531758230022256410372363789977641070486843227959067340526157331933867729146944154332020776834449364208852179487442091614128912277768282865097636215562468766702364231478269931172593751735443551006431297137770494398353017395228241081497821392645189886510574766605044833315167652866973867192874885238550482291487071228095948298640408595306881116485194720631295812006928494205824672525510463545703803199275610911922971631758839980938942004329370276001114720598957911349191838005254308524710210135598747492073265447742083117947149596467419635246592034559522847170948912606136223206782023083591166623326215116006534931056761273146692108132912508435422813743509350816280239024715742318531364044904253993541768082578914927973861871681674493636539515515149684421116903422119404223108684403214045904367114763641727127262626324050848831500986991838641055609480975098430544529740742333318257836166380262988757205147485027050829934456519291177536873695835337129557882636841754300271128853594463123642520470332624988441880071098703664607338298312909318459908379178435524864003530477903351326370327308086054308162826078319083131004044331388502968913358816792590905018734855664754571635790193090352594335776286750335831410690781286762748732513241692382322344535901142823597945873756599828264642354860725008660002821723173350096951567605268654239191745027950616945928993213354445195130700962518567714684042845538364213061711691250173651464044318591825838753580352791832422344295135027716487139830950469791017328064693802617770890587001311737118372956876117183398173245197011355494802959722923217954469889630670844639769039218948108209073057601392485709646380738407151475776394425010349041828737720701369574965180998554450758451893282125704154785469835207225032472055701683274709538868284332224000519596333805971376417794911621855935430221525228699742434923538634630584854629506580865681263334799406295540638010968847614912478453013208134923159899607635631500281057082285702936228906286818519785736121088883892124424931528620234947634967448111656062130485714687995107289111873405412116651301521848980796815331254625530173528791589374395197902240030987001942567986580345759531496132921189727792537410175103391863728131424010673447666250608933813195376988034915114910401965633559107136790768575585734890919950522624995680905269942313190853637404574376963811422173639044234393337281595919442196423448506489867307667845504106139902578434419733090238613650603872376891913774137017423876124662679025770673688281025074035391034778941540293233641259795173726582975440941222229050755524939665526625912056294908629906188975246451145681900126680893798537178431255188137618891804360483128902277644219011454218292219570759428293254654983943109384179866413900921724115920347612098644109952803519865823929432570948242025037060805776678761645029082521847208034857049373660846226098972103778772997274607571772757656368057672104221443542611993121955290401072863839026231314529671953898480771160693883417155701111186275744640873776414109714719980032718068889076589804708049970822490813832871345528890898668450947958306063013862110140116991970280953461034690991104874217581130916028723388809429577676642069508356337851173070231458364017208186784927347871582907330700966747395813929449469328008681112101791981305005754100179785249754958799036176786613261716826788888670015345744501888493644399712284275568601012234911841086043026716148406886430547511789700833503369243591786336908258622047099902448543875733495723405146727070828346019411472568942134610829140309671600299246274324288560311895026135938028450180217598189021102026776724685081987987100929370148254020544379121981642648637421677109846962357887914718523878270243953729251270781082257920503189813972340940648451915855861471070412752099873075925166843237157262223202549979125453340594779851767817676679031017482099989239482014458961395215832894653066243629885358737269663837099751155672555288914977673954026817636139796427319850316716300248932373511106902239187973669179058226114908122035321417393481419841485041324794761428807492040723998101606420287631536623489028819592705205980202693540112849157699092693671072092131365628661127977263621841103161572607131112388139761072588730977443061154126926163032139925523452788315652428599784877312572382164664524616004375681725281083863179359217928870672274736058862281082502677113884533093218609913219118881902077856600391293303592883643921073121011749623921684039799104983160200661982929271979681333900344529157718152885497713168897890895297784281174333179071991037689547111227053160305750780552871475355414033392079042128633952466027992218195085893826957212581370461547505699861070836455702190403925024177757373268607302533023136734989666659783207493115152804167861479965106873290582525358790593652950041702356707367296729227039255779943630880273967174084743806631711060044012825349385528779352106051687143398100449002708492882335825210938244550653876372301698368800973354529244264957537803840787706626976468688306302198167328513664254290025529021006938820341952000502052504537424225515418403141356988523960228996809185023152916655513142813912805095887124365029438688307294872042353736895361197399218185465931191504284557777558770000682972304949139190794820392403005277239480241045942678726717696170952192964083456068965129461836358746121486024910919206571219010919623967681675081147245588055025048618274545835209379259354050643067196346529724968989276460426988532313892049327044500972737054544398044755621021047908355935057104870868595513532626557201842440885926315103720614472875006986307695022696856660033880010375822785543653976888658765308181126111529731287068757502201238146592058591772654350403207287581936862331653519496233801370197010441706631976233036317662825911714769486240536003134485455978632939910413912745200632547504405846363545683542433671128578721669296513956209363460397893183509675728357673908397430291915611322186843208612442719150057908247237794586951564368238443485491678065409345751816441195697700647043345367976693869737143880768658440964632421167157173249250253188240252009927667540700182152337399895828825209045455895479013745136080776289357378326498704452967019438418557280824855207265290353568459529479159468162800793409726748989863545688720789882513198809620082403071753527933379351816241002804068514112028600134274085274854023142361811469953237616344422938254138953865315287958048932997911482261487633111442430551620551488802882655532545563277646827130773155740523779708451835678186274472102016244422924384264261172219235116639575206335751313056740003056993548402466618748033379546191028681952686159942283004707686838380389659095555144291834214944763838353010474831389925180354147315314726602551107557053676937216397696507022058300710283647856412901057727678413638458675718682496732078022309628449794155143239140620644657543063282938164003897851677473615656145256296680676910558113184769918934928740120706794523040123183757331526122495240820051751832607910498934874217103967731290649286381480557272726027484257000027510101399670724606137676545015194534586784079999430152182783822532130557827090363559425468638384277816851843687250089505322812484701908215407124702949679859256889594770505195479001904941387328751562618748001218589325810830135582762904389513113547423160038089159211638067701833821895257631808286860475839446059153517785085019626491295341048277633698392995801824131721243260120512574275146860104577439405430201335692542084843174688583133201825041175634140946515730598964287934228829148699069113998459796852807322295587823557755031533830920546744988669899799995845353813861074965566842058902796497081952432511889323430979606148638689437859177310991683228044544541158568898978489240040216168552288236923936614801032152796484108761564378033415156776592248956421483264603479501818279413080862236189982659613067158428239344555137772632956027360450718581461377836256974979694260326236868715774570859028775560936652556947248606470122049087820235572285656453839446502816452928289072348755812405419458369815015119310066894811851483538150727296825003885630891446726768106624794745216983940699523595135541760669488202664019960026248272472047691329541613958358311491797482941257954027803144390828858498470644649156384580359637042659896167569441511690169193428829355530708109561384326279603650149503746275761728908853729435174047654958724504024854953127982749475245563772986392625270369770445589289512925162318325277040031456765070769084011753342733547641261600959080049788340147622427990699915855934235228367070401888514766995333250766162572838954277875863557149194260082999859803196447100106221974787492614298396287857363686098884462586797881793562465514207880408831863469603959008135011137146889557979547186621928243458101896360739421421940666374138905620316130435105319535485094681569981399589584383160471279672921261194496035571752638884057966506513618922391760637521249249220559374348329653850346639111369126059710550474242527394465309173278946862509764544972524772431492195960905888710023093133955328504732567533677625256892236652825667027634870273130099512536075391928353776762270363242800397408338448271088683348647268275846026384934026146965732391132226888044091300850773901165696590539441474464188558084446941173853561638656965486551954541323485220559497982336974068175149756524528986024111234308555947817893735215073257162855328309248637900864460311915758288221761030709579673642989969772043115303412089905351444050534816908264637906033030802679389835300699133127332737403211836594266683870539634506423952750584083717896036858765549882338466765843220183633095387626747275466329980281478612860979181906534178395283496931757558772288571623700760595952851738177615708481409498760561554428990415014035039681574520683085133385125791402036076132865140587606626492918743806296247211603895978971332478602391326248385260918489221176593211016271374837066848091962106650466780915402966300968950765675723303928171650781842657468821210629447291511025345387312374532200202765949771729174563003941086042242353925533044335490146737099519544633230117647181686910941704799561371095719063304809247890561055133062263085034465494272986596614316113498931756674713085578790702036263023344671580474777138776558847330967584399562160815812592424436756672735330650896583328346686704856847967187374156162969043288141666179192968934763025137589246205331959700017690813366087264449128786882080590823722545121891685761355370721024472439464415333541011580799777185326631387134156351598529688664549814286218320084001564336385384856458387535541820266586145045596970781427888972382103709649113848795458403086439016298104810728639118274185906390756666587700980302833020992317628740326536625723011272428539337402327219945746375211473830760620018769237133070983468476562758673341086122288667247603895813214555043043804393141932775275693607969594677521076899237576276647081951464594459523666593164775211338819877541760327274172550428624249698562345234350725757165803596871317750272022358324024305519623061959474832677006417963116840926613086119381268471817751961284238629770717439450132440230584134464713554424616100554175925450407812375511223932513353685657880534333644467168090241060572187179187424309796891175060796154286085245923013759367212665626950201702130402726602734557616565974668869501219361085061067787366014173365948683470338146714329673446364343970747660645860642433223508988575011149305984773290388110572059665174367217835634734084622130150861789117494464396085110422336817358763054344749016173676974902252958875484779021511170295847608643424023155970556642099398926338043012354390789386926482493705458676710194114209433309518806352936236988781859111853467283462202935864467588860834136036066446564071196812023610994557635979982047539220702358150589586330903384914409723007615028699391321713557505828702172741888833131977708654795600391181859587417444153493093124244431029645267067025862110743297138322302747192888233148320908598482346865509063282414347555679564045493908760460520337559424290406433726879626580773491943092269858980117171858296459390475154485831936707511900352092128219659311505721090005414028439206521970451468373054775704277599380052811014755923210791427473916409815771070944186957095371746629540141648079372280090295788836034708836809680759528151048930528434717016108494048039328168504248572388933901476300274520715040817701846701415151284317451842691252871938546747666331175378267654700399404276018802810366928672267689629561492008464271674772635320998175881493359509448316737549673079064713097779240268786324134717470597158250744134097848333634324909323986120721659401021208479391511673554515568692195665547616950358140621414798321135819406859311710239697500982673087970844194868684181174334534358701991695813510395632652771555871254856851407799323070505928865879097442704172411078095865178831643658615869388446392524294962218264076171753810440590150591821473658757694890835934309027573757645490742599986561013352884259469729094690658902586498670283624927030874658011264451907465181492124584136110437502975321946521585990678694576810069394345488438164635448592645598699491702862794170274023420044315866987336705193759595684955050769646735059756742431651413949764667911358548726771668889465958158042610229555424228157274234021785722899469792726036155266551135915235303520188073915674995208159584794847689472584908503641030614879098758668842434758792524239199386394357571194562358225140916928358526158754460618087491648482182561715237829079972540724993414831389551647648442161085548838053031359753100263661896903547266737640462123736628891518375502670337676296977028769221360951463618434647260824039864220582393396064634115202429383093517462361978241254590812442532351172713028617849918405027137061224074716383536868794299998789239262114449342430270393597080308666886258693038869363108131728619844307382598074992383928842508609759005037601461228898110527989595634212361113552282025048829846506016862711650937880755690384725638916651217480139427694595417840916779907058610400015941397712900730387455852924171780187650606675201923838177836751154512906123793305913219731447494543531132737868592018222306170228331126075588563837725985319564078894600609157648227903829057929610700984502776006625887247970030162578057261382918121090901969949726857059075638007994500370201746927112677561147093080414574412823545352548263178666057766874919066375096894051921643447300888902441153312885394220421754135510579198173120464009307750950710799493906948192672812561122830818530496522393738891897925129315529426359745572307597811857310511083817890618983383715794571021571276460777919944838251361235951546008874485676185819282624371745695946198892489242265210084158711530848376588198678442875944831970256388757555013179325296880695111285396155969946478772890453441521505845138361671365181645596525373414191058086373867076341169121700541000923280587573277246149676870602960125512159852877506436288293911880596507651090223482781535928306557494207632891363285560060939081212932791978809279982938148950727108907577390092484482273914090660615784807419807276647605850454169129258471922922704678274320031040980547375531434429886446054473303021656258781491745035274207653754166435440232353012439434672467390483606692471001148890234120015941730862300986354699358223326519490028830202870743216681633057432956592446665555077903976038952398573107075104906806108668757189375515749503729648410128650901157417471081878309054545774628404854240537678654683956905704231801611401921911975709592170249539076447166160251670951974413088860148842510760682909235264846513048550673538462958944295358508995636872656269788045110610707458545533949918559502833687423036233687277301970429022695742066106126063403500019356882105131563362037027620194465280067103659831687403460758073216263358360220337793721685369902345819365790415088796756148758319323192150961264532997094296100607823216360071664834360299975340473473439510328980567493942002613262723395528684530582594547804838423975864661327005721842646307951770494883515329519414499964993586273321969004682245133794434157402322224788269220946412654122820250956734099964009675387660638382472654616199576082418610667494775029559060314789045070217079509834091061920101845655558123769603913643086813674862569960528404838094024356339335790754465135371810545769829102723663028212339405432409450073864879437415392139254556296364155942206237493389153642515345619002648943381931456164688021021488412418890656504749283509366219295959434437859264702047310679728118441045399335799658531131203248262821402944983683321621046859605386471601268310829609875744503117808799546323700063699276793806611163359849498169388646507059445199007551049872436359814938303103448239004296471915090685674668431437851666924761939792132918137165641869220765862255756311940226355150911758029685535451406627646112393555424841254004883625623188129730244156358294119610702941068782842212237713276293519371094666635429220036015206923226821914372700110450708711031490271323907999877345090019116522786202565243231909453487540422296592816412156749181797153211645137984008560310373224121817678926016991631734131457499396007192631054545249827111810835603719613414030622603798761072214877473315392665502902510399065434833032153835326882297408009951618761258361835365905327306842629432715730736241000001161539093652584227951914253656302398906634623487353802693043676824872034134773644898343000344130596795231108329684458510204366257055886434064585053738259372084930767969837837629049557617310141358767918646884479612996525100551116227879150810200530240916372647432643448917219228499974079302275799584547695073496199236092465755719885263657259806104609818564257164644592346624981182549791081923966728170984497473861464845951827530681157793208601990494913577884061031695555640024776823483582115818225844388377998948354465375980871177838481762930868071605223403105394902047382834022887966164678056038465439732854711980388959182919325267501362783164662233036921461957755335779821352354827982975607609316872672681304802705480705361518711819123087482973533376684185080732812831180964634171488130204917833260629126760508642783263831907773116324352266686487054389495411866162892410949307374325888160793318329381357468876640373620070561608973341379502585714883251901510842694698118984612564072343043116207430000190493400747210400078336729015116182224683909449190355524441634097777667638235485215428309698508759130842801469065752988613839530365970377906563743956783494818633681608939966863840461896047432323096956924148461391595760163282008189476214008275840218512784320527861062570863457423578586502428407931180511853345250367345897586089232807269170480835072578977562755525355957103400111967525987042364445501773882094496837974325336012788461978331653841998115796607730510274875180831405866136212190251259383673013827331861873723029200297878864784010953933335616184758020612983854869632438989384729080446277605852901321680155916733865763522973027132383347357788691984545775534822344105343319453917421209138383416160844175081663323576651091486840706020155231927065308498339141843390317389836226255761498820980014104598761191951331492694214047224998707876189893023627346202855897287076379831421950590697952018471170242420383536894157859792596109349353723596093312732301898111994163658231979273112614422597684657540462394572332919571544027278802117736781212875302731095787120332205241057510472735563288517498492846938932213786386105345098617770765421014603070167588031114074740197380184213839247882540185886941934996542105098603704091132997616555072351639154912519604239113613737285486522872110129698959440694184349704950525207959672489356379002050214980984199329498040089073115586828413861842306156006738947752293601284611697742839037516872709477203504700062138613501180117477712772679140727699743598449500365828105019574639153412484286559699747835051459460279534822622952814433983454055102072083685763613526271224900968195173416566837891797583609238780936269722797671443892535261431370148093473783355856825490160225300251242185608064707930826125423461333725208008711138663620598344346782420415863227784890780375314586600168814359013778652268022915669905447488297883924649995126958404931048239473711412682955110242294103349464075271261555242683576308959054738570261112084735227197363405331870676827386854658945101196110802182852161998987020142210743139256370260117621406527523011815945876884550065970670117391189403013923716238583994553964703000087115702087940807776512823248072650731282995943623629383850303774422814747497130393450916156070677977796170594225939688430296473435218582268314760786169298151006209892981770933341167289058047019644494996737772920919991783040190691011367860872808287569970935894053562862420103824656801676148787129922252896922001727641232490262914335439787640460154613584979005733586934240535265393868172305297512758712682463456514844406395956203665753815640522235738814420745948151393205017231195182882503335591285559993640950166807807585663443777197178322803825147917041193058677602624523676383023247387229812842438892402501870211216561944501970935939677204759975877776680706075989289017617673515345727107589189338087751617210907591542304458980866711244239900631682506312445488807268183843818286712423938754873293892607303345329440925609337095025098111378827900992991983818853056035365279752356720444548217106605722204907989166784613037161250574618752244079279398523033051061780700221678945707705240269131960379669299104870020847769126344035199127570894164343683597558533667629259867131322031315173746615224041207017634410270159720417307170905648446329227193296787937316638640334645029481661461040769755835737307430127079810169669798015243653632863484356056606537302185209792182940687419317606369509767055734015813638441783996540693667703892210691920835711878735416970821845447495665561571452307020197128584917155658389965580011869607473501014067924393467554509716130338850945694022676754532724821172486425485909147724763048787804827864035608874598273791458809096592382848570816367196015582097896080476487262414186526276260544636457232851597923279901547864093138678329007448209582487762563470294265722043831953995204011327853877133787991414093539280726304234211137045286933316788735826513369696696317142727807615223939213690545343875604472028302109067184200084739651093814980801887834572965908089402177651897766314227749101016160843059491413410630468258474817180696894557936889030966350156098028744108865372432760233989113778782251984583791756428451934649720295976042577029847936837331263348032323244784159096284113873236450380524413323198281236597521564277214743480555161325587096250469479626383512869484565862952487373150160349486683702097185162229449065406623053017242318008501980927612239212139964466297288370714049965816742711634356976674428042826346827163503241684452354998917586823465945088204807588785795897243172940914333022190247791873601508290840442215593338759536682968283838262224711783220242948379424565370878563965521308478154491656095134628242231510549055316886305290328511022913853265095895205542138091435702675588310211283614734953063353561915868112280315936673687166497470247286543494642510495039737093460770493715865310592345100673236716150336839032044655726758238544556530172286044266683808788351315783576988162912968835610063405388961849969305567342267294429817469267046114722986811328057249570472431497140001925856239179674322907381279541738036735423116919119771636634198239531069310781878709025169220871223110853311024869432558378903967248986582809746686208153628328031451413247794726430991860974803008148876749372855671016306161673877729212355006865507922231216905017760465527934136560087083311133908019783549158368494980470305222345231657857921428427315081174285807476394646941514255700484086077839236629275190063458368983896829237699242896638555183915454773055783519871969794169687248332296207325262136509175533663102154197210623561515955684172093011721677547601447025601918363812121990729160231320051623165187146375413302927013907637211622560920818238859627440047892016324602060671445961730590137144118299666311996268533170313637861664643300382010133625412704214724044193691145562638661210901998274906912289292707104806438403752372386744491708226747683343983468541866728664441770313849047937059302337747498534969948246279070055389652586974989001797004427889998305996926007996154719786646231037843034684669476178628865204705711594822780967410413583884516816233536074584482709993940330774775506869489083311999125724304661212844873304561558264458461232918040250153617440557737682369738561929961207238548275577471268068432962086462661121917062348961156329839399328016113279183142874081563598039993352849100693519855658240782425808822283687022515323690364850856462565276509186076121389073057405202778193516438464678287888866743587363349626341187146152009534205147226288593821458141785921775799300693760087487659999320547506010017256661550322876711742820865058299614441499247396878026393481463826958590624636473842309070237471791320623601492193204995165140972489170400488733478973790013277091409464470081306717975667613212406052343121877422969549550103019272248417783100845793894653346500613176650274469129650318077753173522972816395769880159221426576256595896810349273618543680918413658083801093751980608263344071236763848979987355355931190954222204624235220086609371350083635008027084216810840361448645080514048737677034373434633612816572690071857362014276076095719695988654143569317777676496238256633721242548629397564157743023029964429021917237761949714255427333415233651560778286706528400442886565065261852051149824834935285591970123748134614296847918355854640443904644538999751446023640896106869223475673312831940168101615727221275081550495735119006922865536630441527193443611200515104948485968827332903800274034350711253021379617888108857031774263265015434719968947039187947411745653751819596958412855797188005298783142697585737673636365783305156462261458093262171866123107101584786665839339824852270554885988313986100316688981373467595098425970062605722592451135845277676980423982117838706503270257695591701178212752992982562022364902552302004556599614308974293008038676271198393824147955887219036032144508931532076307864641172088102533590386581668525331698850243466981041515985537254484329743146380044240425031005214437951062295887373635700195208535722130045495966892245324877400613030664516415375850831437296830123585298144239090636500184643151075026990715017241287720416160453793216951927195225288130869526484079307096061194486466336005469286276770405891155660357073560523334991734186149932007234386146755860891454112579960530676468630315156363152720983914693000733064068792340857337404380615251606231021552149919109714953862684242850054873919486044756380309745051224675926292411510893358756830540846277396458775903035079818602246809742871935330360286491308938578207498257286708523702318043026416899680550284378913268302261422105457766754165190102506297855563841979695225507611626188164238887945600793212643033823676641063630667609650336845250936145198030767117479164741798091598941308784502650423827118500641692980635690023495575501084458001968038863457854377526125739620384948751095302713599569378286001008367176240736872893782216759654952954684261380628593993792145287162744189414330877191459403506917434758688054083368745688906026197053278180573167550804521383830466315970506313982651027820205008360550674253223549817884191672738241074482316726439045750954755473222154067819002211084466103711959133486948292552867869000082355412552235843590754260868818609555115152878240346369071248777664121855300187191202752254796099930908109035796118133521359400820620012635898761006072600143646516880373814861488163268215992177189839448103574351489038465683829253921027410965865730457748693910523856365480877062928455319884429706843548243589750935936012112573570891255710513520562689870045384171003440666127321353860975050431962955424632825736763685931641597077889234017520056097378183157531967751260458486431703866142212430322706084307143149348514821296352727721503862922877241607591429363907398866411836004157037969914715446680086434182417602104387015806025226673376568512112465865137977604003672622358447451801785971493562924501835604557854608672913977734246670422482010201188051448760866633396139659640180409530194256857204745191474324011570372374368327140567291807387753935928900675988313950621400408116146965148244808142447127843997376695409207898063498443386013165782590833969579856567425776602699739505483903586843778821104970806506542071841032081626909567747036451104358177091749851276251737438107235106968908459674393948600440738225702440129724417027945218473451388540334692010380917408638960284054732232066011414897820470664372929932814170274432754346045392183789468240032826135722196118724139522653511746064464856084833561000220185586640991242795887648966020320561278088979575707522207831011221312744842084442249349745910389338293999986322269240623902543783324951084837467004145179182708163264982162541283289023581331979489137063260240518748992406136102294812068964924829992875620068475933324350602661972696164027468495448823040486101050580920074827202601973904878797355877159180426477167964341075837374875404343604943613201052236193364655236156574522851622809352181497425706825865313181844401020718579167467299969287846269667150850826164692353620250585115964617890207329665767605915510157417723106616668854957330290528656284333976438778896202595070758840466551820320556709892262795278385359327437423512242446378958561122562264730045124113605567963889385416407972630414959811013557585545094842385833987418704982220920769088513859471265237689265961259373663267937369566879107878728718325490811966876184151779544731021953242793203179956526365376468290830135983180638075200815360489889288834156232768067716055141519303459580989967228827745121720331662471383128108812428012521908784613832885702430550588973859833635670979513759858864357888915605587532557227282183216078192504405254750992854189772679057064124959614752572537114576972847975759016590165407088022014391908703886643146056250089031242959994581640727770816530585609446515159788356214544133579164282148717188047936661474974209345290618725246841064365930585672130643694342892666420758084831872448257680878838016854928588207478829253052179462915623938238555174559435914458592723353012073684034295895103791348730662478505551409444317322781965319551215015219334445244244658115283325329702569127957643970523108632979476861537533886294027084232776960331666224363610976931995959078181814967200732794964822978534962435029290603012681764793136871680877692855046100392046774251851000311123683592112988965186696715889879261076726617672181054584466202273589505640542222828864428273842686373922862717226376838943230439087823994689352049016510125423108973362149376193018421959403301875088294902521915304294673739322281392152207049110291748440607045320355916535517410192970400943939960763823684166748015586061301877787239994513637572050357643929945598555244691409384046691125650437327629842462552430087157923389740578142368189145248607431062456141463417864731687115928584185194053182575166730085841942693402877347496337768694659940321940091624844796327630942395298425451842896888843342331840211198359580533970412343925261224864960761348205397357121026532550076641747493746847145837774911923157415499319380547419945199483022560794712965105922029880034852276356719796331849920344282896002476761806478728399184983361615442999618765977715705567356238128061655387678711804195889000566600792886591778666369006610661793440176072920925370554527776758768017589272663577611914239336382843928450498816197133934042900292477069732196089910821522655264755980713568066663875006208895792532967301396829363088355818705593654660650613029074315090495132847424986841122007346488441091199881392768180740017876618971888574286187425399411868929852571567566857638211886113422531487971055913889945670061349457402705707652007001157384742992775042340025332744768299077480629861835004506527758931871547462473993322524032122724617247676414210585689493459779446280082284247008179529944757662992836884219564642007056754060860008490718475071856434201217038634796285246598211473194617959903967396722488976013951341658979134544165720674861115322150024616786848931231622344219211021055062619895721071732890115102129055249088592091710615464163348185458188356376173174547484645696306196381393582824074906456631338954552475904985310756878685643961709721294210677506982884420715065566236134825272987004362268747697349402931841303262848713921180096438841712837132821596746521162524026941756272479305059369793998298465786718560821045689418398000035562602815306578257743249408425302816106156650999004993281014007447374701096291268544047001906094720334848475689350538232994711682108827893058300372855648061864445546103289937327833074983177305687030706862425417934840293052472743445022978364073266159746059187347411128687572516506678649751978734285245253467885849175658082883574478118891146908405484730433818905240360312729005915419032144738046483653391456644146497218334174192458623201723865807410097973589005221244490598610853625917665152905489916754208242736673992869030708059438963349102770682323298152462974450780168435179021998082813365964270411620050473241973050776349731951344754514895447528054618882881575977737572842588924274794731110484546166807456231278193803985923437989684055490952127870780123822333074252217980832630613891410916868729005105277766851210441766180571110583205142811702048280972033097243815362909933542357813395053088098800931498081302403963294841918392911979713541398291136677669303445672224508690304158996521630525300402047471300271317482468561898067863614714481024743680541698315483809907973332306278938690430869724775263107870959891234951691493030630175669195385372897217387299507068528732875950704393319385686088022192032675511527352908576398997718632159947434702696722093551517769074110409286364404551189541534483629005239497297796502343072497758531086714007552324688846194403917615974531301380753605127118687092141172413572254140316012965814516371022811080613479528250375735651327679685798278584825482680642441047868313081192717361918117191652285929720034143923313007608125949896710603285763217516541913532665980133340643589371423562983042107088520843061151785949996790108045771939540341579658803619035101722107833788158003871837026600141519826717150163892084873352441945366520905909553536268368978211453627305629825921971536292783184116790002609805394641986705483081740421973786033126736562976731459411936395191157641085160773423830790239298583525152226019141864868580944498157670559671593577241711720962222219168965322188315287915834481518440852663485885841467561073649208846735946516905075205300978295715824026880938621735538910111445826368415073024611231359640605325755852493839278509177481931284326812990120672333145671315129923467597373758486513284903802046043505774476603774229653273437820557620391981792231862787396686611516127503822921334597828601997041977102427592118438859516954545324275177540869653819106167806921080525767127360626027114376097662731031503389881100226784992557353201400358635519230242728645930059575617626808183810876760960894180633125827944875936640566421743705793264583316642117500013098615447758011773115056241330050595312589953254239431089828549258350622286479905646245894537984378819827790121498756255211694923883664535291344257501154643683104518590016738213027840027812560530050165497939432052607811836333391374236654488312152960860911739723540482026563083611190093644159769098290914828391093926400429779366225827490877114967991331189455629809695905535682485731200752638717443015025051459527130541760046922572972243496381313019043203960539901087584760770006945823691691890582038110619581891846617751494807538008512945819449510551060083031108369612482754239908083478617681900753701314043832449435401565473788473822587850682264099612467673923483453529031063990576661212253815621454121566865773138863386649125144564944515949126373718040032387988615886056616419553384978390236218078711782038697385840005975795792133874983282371981290352564664779498996209739451494580419916925462837451193230805295584663175715833251907848746000081832577197401551839325759460941412602940564472925936517524345274044479707604120083835265819736386469269978224263954469608635232855852979279971177455689332726933984214937557071497936589569704488788198881067769443696513244859820375620936486754591462949173585152330042890300685818777940811213989334369278320986552413122857692105289483429983167530972151980566001456784582435266839147801637216186681407935466988429633902277681829039514449273519764331268730390398825781112232975713967602113901052655497793189548170579180389531458451655211690683070260992711288018857616167294796485925863789849781424247422861494471933479526138465228627070715829738363700774581993646698423663811397959938733904469799271839908198190890874086836935343346704277641767991023677909802466296611024587576918588954479336471272057545747778144059224472033470796086140698983319500481209731621438293635818088247955944384395585355809608536201570291454928148574726392537480800142562522013615323696618759215666493772483815662359559886606119064934403892752132519187532999204428628941336937801129408898766239889515564157890183590070042619585405654496822851341656795370371826661938798738787959023373827113139949778621804322392373834093245104176581911190772885424494921225309971110110684170408706103036057977499053585228650279719435648020952880348453600372610206374377002130061355119720886822213504722456907546691398665196681690569853670360280599029777951966614944926563754061642308472604409003201461445964785975876196884784933931162795500827663607485149586226558201873634119781740726771214585889537126638209666856587819578260096518235797128753116205142777811642601359605589116497531117978890441523594594953012898350127583523799935312078229443242539396716657292682352399787510400379524617051431345111372569394216674132151959949246938226163195095171463608440427672662469745173901597341898050222519790666672450639150609818917974023369252972123015233797444319852271537204025849169934541013138511248392812106512233429022050956567778581637832276908132540963868185745422541471065492321966497901546515338352481854357568580281370759358355214105651895944246138410352684098162651245532952993104093115927911283291556890604272387555471952342205784597836893940076050842870156507911572851898425788899284599685255531913446368258254384840055041804847319897792305544402865173548669299950201636427183561054440199186975370140207243553351734094580094858896322952166457070487173508417881599141316409504351773761720668158982793921267687906867231186535187583861049859003808609305002054589463658506275073580641198972764195767634525206920635183558587750423924654574219329731516979369248437710464728133133509726473315061516579075303290414329259153433877340435607447350110963502494419595916405799253486822151011365408472905980355937654464251268921094830427290554625639024385075599691422742167455934133216095159780009826978931059754439650936408899833083141526033153407387435738834214090689624166333744661255076212596291294594279518215897136086736159955497998868676444293711312103306916110070810185376913165004774389754791277683352281209155397231805994401963642518309281042035060438177325418548353513070175140769845175756944138746224561058170884508274280824146738872818112542504669870186359783763716276861806712579122406493223776091839961060224838896518165003033248920016176113410014235477856028841573955652308278418700154374225613893770857211056350568956975414522325340804693222025758168002371493018912658897880140667496121162663870970978769751489759435164508737606390647409061472117097627570495652508279736823334370283928303077283438095818090276920354948227634605640043424357343665280537319986384278141985873326526507131061989378260432214924877917321511105398739525879874420596839094459530331817608648573800184840121082958414961332186688477948852111560850633076625460103577935276493368319987337573179174578233112136682504809732787787122632605712423711963786856094354916613786054233506184976259825283196982662651352798981811128384489617859202560076778016614950782689616097100514486360734304477496390803131180891904132971467474136281845303972901176829487566455414198902559594110182651726175630002531202256919584411493450527502083646424604022667625867731778134077379427871456373235415108337586380314814351138535540145611870860950692611196175425382730220172531164819853654658263826255326205628441275696176462328893025082979849760874614815930103167672611514727081833302749243206951983858554472342544074537296323688573566501726083131808437571376658562798728017838010624735448810739416986297533622087876251517435302748933885665472086031972499958950723819837144921711363042698410459284700275516344895857997719748047711311961827247131148104950463990051900991184534969486434388748001385735398299558906114856242330105396619424659158166831270845111502906651281421843011343904927448876235873286601049560507132355442093558180375710045394072340465867249720621843293810301736554575343515587807242191980759158631337044009497509924503176692493767746977155517234019556606140386692877512955100524401678395509605060496466646897073037502343543715590489893141335227914984216541586623792400786552895713416517661305300328108660311283233363686481964864123138421534473205489341170887412126715197133617062485587572081311057107992542446065828372409304054301513103779693399340409225081837534531130201537285137271535124142926706670145356830485834331466049158363278050809942806204423370193132203553736543762709059896148144266196099355238317495450362917971911353940356941078417446755625239720500013175444975366345793577711136628382206132521687305226711230483287743042620466587325516569862587257406860426363197008387698944302553117761219550406448842825208207814580214838461353347801661142945387068753394786712768456705223278774751576725402113672004964904176827519958256921870239248074759146538792760692745879328955207749474670679868829684742543146533560842358624765309137951308296608443329127188705884641085264435233735962224049778057837968492555929739753925287504321726664989970514180656687792616707412795407074131148436555225680237004523474317377443639833373467472403522170586207002229549012548090719162662019380647151504374317270142126668196813966444064863566510735493071990855733495588083253347314004844542887393885974381956123472723638612270254844469138162770222211932519962575088820716206971747649194590653452036105068709007267113187487866891795096398061856518659508850053154984411517060015102959956189974747720704882717434516340445986271489525315923840413166864766504192545445383598970678282425726215575347788957508548523922791122860029617195474095438754610600683128954909956972163109246302943056054010104427245376901164216228678307363142153346971135246627448699576651839656775294030426829375283994440927054189770308240702550111002357683845064824881403411652301864734501111887396173869054454314979543369847166997036379299357708642197070369497502545999953699114939579316282658288812323323837431037285827558404008274987814433641525937188460715426655172717277129224773866487252831191524285824919242774759323989447072112579943971974269265554458993554722423279872322405017727161364191623009927065211903377578749745610897668997539429118610957729818303686223380305712390311664734883709918224122592863237537253526422712291738607889101758868314485928479008847466452120251365731528305096380087077675382441326842512272006997611223530337880609612601674796527794897486423354777059445689932218538563954519959453425150467937680490486559128235108860137147270156299294085325426514456784947038031399212159935989280829193792191377282673204217528911379255008096584042427248069930033433487288002514495149897486922289853642891783386328790237026052442445552683233114264770316933973654503732800915188977354535864430813808659901752726004937691683472131300656909633801206803946642199785834604981314678886486309538117472726745406797382496254774758102456104282881168907799880582860814596114106987034546394520591887134828318688653806838816058956025809251016032863967741049866319238318237432713659834290338886360638170279518235573098603473894118199683183768602239160502737723838801444163833363980177945092999231001132838966554118464373258000098134396584581083646014915384909364316264952388327367143841055779523866527213459758963648238759301070220584041549222080102833845863816877376009523368400372215197617003557141927666716793802567113206449837972563537109236250036705998235946544660409927762344396875295720797292910631715645207453279756063019224488763702977212350285511285829645583143757175389476685947206776226330148598659482621933214574802349124556024976489874549656677688961910397052563783079665569324029053866042954905518613652981939401038993435428157293502043024474563850817352426017701179606175561788717505767369128133130885583151717861021556717328930727668788990635851282363877836091987879749679362615584021794939440620256740872659754407854739708611770446599347410167122017195578238033597745606447059570838173302514297295766338300126015784902459980160589636251063671949818967809035383878676253045836482623812765787957794711435566527944703136133076492076998467167953751584515150846679155109022639556047815104055142805222189267970438045025524923417555824521900475044814456778296370853212995116459271383421057570448716298941993272554180859850647901134531511185320200266574799454728157449493390669220282151137615982678297247066860730384750018094836057133967316627961931987257681503055560877409326972543139159798713836325358949482379328883744188585112854829340545784658048126167241716187487415172050054048297937003689150958746672219971238337423838150462910910429325254225004619700752601734954570442425266824221190564239969529222558387647403528786957139339687806968717429708013168202220898354747213322143631084738485838268670044938126161401154811481079815363806530517826295999384196715111894144578316619450763080359986709799905913472729437210527753199519074261213949086850364457141230227185646096138017604744052827554402675346795050402562094347791418831897812879166966311466008090988870683207214529901514251573095886328715056658771337244548135202775302179719024809424891143941468098114241319621810138568819549059312697604737848951700550401940629690118780820607726156457809773950218499638623609750134377652539632195760608343605319542562495359335460349672456566275688216400823747660336081975334704147980385254741425156494108578020995447541665765400432365959223595073368600862419892821426637908538961055507606831934885998206946027413522840549931227730203757137516254894124081845330061386268646205246206317174768807171663008936549407864595364352021430433157990054255267771196649302270339357177348128150846645344572725078668922768635503567844401497016043093960406034788325993842380741412261191387921484582451882971790887931471018686616952185809981839462221497017161305309163255764437775259411902694214214587101032269155190661059437087693010214209395899173558895098769189481551657032137132034440583014636752209248994249626489688719350611998467166672973687175872100136522514866494596265078319967634365851056300317962091038611242618038027509094891833962465338356338401450245272296537796031941550359629812054160285221770140748977133434616141161236497840268901602309424490690730274615797195782765253389781657426832816909786813372064785433662091692931633077852164433246896015501327087398766223948518523568186090500940327487013322641622672905332630348638081440652831962542134255337851237024105126284166241910412220902208307047508607990042630377910659633861403135995138460653352805061503633228751007344480399627548038255384864230349166009591031652294991356413957750720131573339168137654831047806436471199058022509130638664516819391329054557883537780804212089321109580685710594132662287331814662612892918867364045263165607600211742410276715831974026573439723261997633382725767069217194342479605203866533760528776709041089541541021824554699338687369805770341766649680119064470850981815477930025568069100638870724130672256306243470527676640066145926459476979221092399305898557013941701696516512475680118141612207312308473678881129603616033069206115993020693215110668308151158328211913084989198454446053751106536805917899493078027870115470579701272464596510048664392489039940059020540428957074116868593780250148596238665456615715174473594843029597286549154661850430671282798550420550350255763943298895864832922739243010848545729403076648100293429097635235593516681110582876120207370980609789463504516653017229683865808487856237110316430152915883074545874070427271668407784331422112866383778451379892606626565277072178400392311526218250845357681622222975465160483509549071338997833848924428552493443861808175509514308656182788606304916450342120009966042726249590902368015559706467744934518682937103580750062949572993908269583489760620077357073483311949686936419153986544138699805008416501494511468353219445350175002300766344527856602869722257567697876459404660391735777946014977632807322776460618671161479167069026514660408892431254637559502991152871577924122144198521290118027218109883220373902332419528772374471620496367004272471272964690529757998602320238444679459889189101949703955271119248620041267833505754879025119162047128111774083735120074254369035395568199643547816692166647467573793331823733935582236466041295482218219204838869822120970401339726334151044004137381038860401158970280698490521195154852209724919070841371979396468981385061469465712194372175473879460571398136721347647104367547561447495416017594120506285994243863955463499653070268674522597437620553709649912873347373720444070807858864563007892002762923964452623041655218244720050657924297560947136980414457870834807254121005648079969831807523095680616334143332899212188778374943462588561351262455491097751600501769527554662968341646622362469037398448828326737783389173961824541876471558585028001151443366261305544315771412606433709376441471495015233592172379380991980540250633982949381826712057561756700547912098631122317026213437499384158639875605755592215213071378898860683651254811214526598460435928980950653665203929085411905770545935437062751649721722540738162224495447416353413118642776900554730148148726304629513480112478399355844672910947743296429153019567545385844472390826508622615927288605739366780494468739973533976119919343791129976110205679391278211885806170887855715844528325407465138423609121323311944795138933346693556528049095287496682096550783222423357672034205056070933642899111153591428750186329686853416672059904698537224178106257309211789821729536804550093309366356370707414080831817121625361264838080628518943243196680097708289675316530953568442517555526468520777930122944604973015665311687465344615561794265866990277459045557346988105783512215507159156738662290244236124475382956609399482173722283003122739974822772247978331174546055590316759891878074725530723451003683551650895317949869023401227833644396780596931466830134160837053169474660233217164129362912635001074157838945040088615072051126202295887940553194817297862405010276001294095008446279114626523506616569526705949052608661809936078691290513475267165395715714041379776265613923349648577301514193874399234752091151760405195796227928940670867216994702305596875775445081506406551399414286041492778791812470643628690442061216603800779162061883622738899119357575874901334622903025268166140603069616403467911263877881593811681193357279777946846960840763052446311817559651762292433271088639902089801776885683889461454079943825757259411607605953786237672519867386595452307221599101648527306957287428206007531757791923513151135630065377618342469737163153672505383014335676441618508358125079643364604790632807907828681346528802210019816340040220496789664824905155962477419359734760151025984784176099191708370192483348653965896856990283666949350573504135700940213032204398647260690623275261912140205961206173638848464617889545649214408263949948761787271306375872221643522879887070494573493813452226517539985927884510198450303956789456755570463526294967204577871069821793290807221896292691450702433618270079649839832270664062816049375203795078925863144701386091942564846107319376019438005784925038009678030179544303775606869348104114863001575730980797333763201107567131937470260645085028458474045138515249172571314374039480306626157444553375179975275567589663323220443403207416059676160714059661795773372877449010550318992525855415541465837917269247041516173051295873083873971015868351636748571600049844392557305616314193599828082743328656907319292523980581825350110860447057234397877367054626867060628138704591531367613548015124698140027913119848550916166654404040665268164483243247616276089702287656331223220235866090954212140362474758196430193231648023002022232654525670004204329235287922050138237365728295455398507950266956007573401345982029774680047463654750350404955650208408574553937979365955334359108718927417277561846953129618209137843874919495049872557039621624455271773232549319818100067949523531908952163572168938533568241293311645810696834002431131451813029987169460103906813732260904572048689941669698824469846586349910917670677535495056677547556035295763683143937897702626481209196792557191892001286206639481037597758800363226037212853665493599539610669165305158364219254896204255134349813789914470217743515063622542349903749288643284004966940226961996449630255371061480803121881102257357237465018859391567496697256259809328359381247611635531091413242450224348671503745862828286729094125082315713274288170731556919012943515189337034683484518196903198537281864370396695155982667134687611111812763206146769940551303426760376136967943121591568058711100761321429398890422445039430084913130657432997567552286067189310015028099369288732296619880608756781073679798740379774737558616082804971395548718348159990082883253273497817519896590506699511804598120947372753748197772311617305754294280612893990802413620053402924981061720429328481936914310159094367184109329890340827085324085872510200268129468104710311566249975186162956394062178039661840849424532586307509814377206423050091814878642499978435699769018039860867080719462870082378387118377713200005955444339706642847477354538045703277869529441729564800538339266247676540345147226584950854904414288623579543126274560217770823742706649733789113926104351966252265104968370059503545139398153657044163289258935381358635486302436003083658287066413015356810622380823601526298488282571373161534160175558873077430549336846642222902113811138224365804386446330842070521625075122378025392482148995228390444541618119826980643308637263084248109197998776260762372643404693553786490019529377012105227394658420541263224343120909995697595514845380059001266746224623384295920066297188165383369077227419242195449514695974422777627109714825815214294403797935958463330399195351001015414385171580709761901788433723311015887886110976100610827974611441847698506249602736922285983765871700973687268921628775564802990984854023676947430220099279892955719993038287248192805665549403679514579172145363535495684216100402741401181492885378896186087224497878446453869657728013696196095568555492659069381730581322523566965614451232919920885155168478645247791758120967221723344192440407146120027405457336319019136967968734431824221695118949319352841020077155559163228813173744373012077431605711603199368740386314795586394703593689687785717451760248749433295726654298717558551991310211647152827776911316207670391845312261804949054714653343839595483346512218554649952779311019797297672094138879485316362860850195038304330854980482812411651155415504906394282154320042894735184948894628750011556855960962397621539711014097315863552388590309601710525645456164883909537904920971281093770277161676125284859870437926220554416502149381330692231562108117023438835456424890488991068787724445254905430244385378276072594502240236973544644223614764787087227685106166622461870007806170043189041799980868662394639247038206063822462681089220426059228885429408102144515941723715477932783054612008724117004508693315362754118858920664793339253273247915895376039819639100729836354122588646277921142654177328829582036722549668874305789554145442220701262237592524169464875788866631977570568271897899503719363358125172237944756960271912458983881341287306861504581223486454150845725617409627189470537706073429780136110629851623484404580851203029361446943418822212470687743202199049402958783681761732089720160048867703122537490040343823342098651769150544117002540252306027344182885423205965061051303048723621887899314308554417833690244399251292954787498823260234799103973170384023577709807340480374428941756878970669901312365221634014884715591145407042155255041254473982040031130520131395956152124275061303054307540820176552808242162996501386809385065742175454202216593165064891553406593745614700587488067969254186532225513208889146057630297546846317213332541236118282428803992410206181621347269615740781409264517562016342254487909844539942133755675575214327273050154991317216155708917445564548781629383793880337028843868706736274560025070132361715617506242893505459288344741935428155948188933380802731534202255458043640411446942270375475675698627539633285505840775761621740121257131297024946261648442791070481991225606128068387120916238865607849163873443854817455612214558015925578626484513214512424128925722977391274959274367242844065888232028419733225833721447080555300327602862178784498191978159553001179913399280528991488708097375165334986716354403225449392596709623785653440270568450424113428315583534496073680967885095303728714656094148873834879310443116534733927536389000074802999197231238447952889520377843659670172275955802404800947487250141751477976016747509716091195101658742602828720136021737153639629831270399597701898164716225827525623090410480019187232152003415755022882127087718087351457553175586146961214197743286308247815965676662987810742080354221344270675458506626143902122012436794298749110002082986531035737332760979396228422362927054240423950641052243014636328894910243125271813144844502108360248900443215599688750269249320196634946529279846835044642347226171931369514639632962560293338689953344987647857402211697355701180578361527466471115449027112873042052024264993098861939673807394370690285004395502579450217808469814682018389999183457122244432700299531536566849685056798006681412937924473779111574933833351779900249464836233397984412512739288493014747795601472976375581521142977828577549598166621112895345165545538473401402450205384684841238233389646665687472368803011822283824271240524355640484895742848956632594595733085183707527882695309151445201910526748071102859266125605971985179687833477264031944347949678794071722679455909263087130189397066491421776592207641825494408996093405874360651084884989302054027964282013517603575762481159942903724450425985131263321312716461566952590411776244769700426146724947397821392498816466443552717577010012297269866157696809108112784702959909360327540653898068648252218753921933858973728134908199818859483950034107593395684660048500906754447084441464302621111369976083975962973131778647858285072564819205659345111837777503314045892261260782920461899425344332169067988693716437969407753710635334337144319174793734700419567404276020541355672530424973709809142701728998843357767336629453896517558438091862329259118651962693445740812276259243421967239356408986331425231671091171482498723252641784250396588848581810524596948904129247429159480023568300181483273945312534742041279234064117620057509480007210897463498531207981109181734849239716208063876806304319966219863506975861283372600628455871293553533334015248870821705015711143709722463584463384664662862040510902367916890297857346857249025329532804675614182450675375929436208048035010402573928168083114377059672946089095305880584470000704710176193842890581778448117776313401719657086614758667651937810526215901360530290495013102651495104754079771247154029340985133355783404517622920314574975162661394027576647668635989788401225715884397804702504583254709745119758204091163471305286008600371988900366167873472266844960627533284103515096773667261927430854093507059361687643115032230911052660155466725975212628211266522414784612756402286740969478969882626702213571784279286557092977583002797101932110141051360022964000454915743867949773234817528656112737985585209069919818654337010259735982396946302130089754853705666508430955663878316429949303687690008812701893072322962652627376407155388619065119637148572198368889611765085450678749993130336088007510669033007626196402821510164694249941916066331188406969050075534277807855223928281570667101029817186869458757598358435094683525120526637062668669902945688169720468014427018571348345139423601071628594471603225751469571670434183600383970903743472581705003674335034229193193845899404435145180052166071960306264847770912093409882801869793282241357071102874960843672269468286788549459960389203479356330537236610109278332427694247202613591814259259900738918297592968015788085169335080841213659254642151674946488463408368207564004129136589129509658274484708383370587477685835625379134107973892368812051423761747061439313627085435993271385642189327466636738516147842300778714564201534279095243315455579160951356739486772541765184513874538634113277623054801899173729366696352436216813410858146161319069133440399657728208742178688101404081328516705646686941012223068070177450267311711416691824678821741895393402373680755286623051709177475877172555555634348836918038224251074137315255249725399275052861426765054969203071058670314649815639433591720472632489188233348964628550331107865437511082105220177507695470839205228786587350323461905369798863427419649260608021854249833817782498407116692351183183120909472164931068336173335057514410884528693809732106838122358214722227333943730996118899771459148343366359643426291928722329143862459742369764323180012609052360852181188198162480498860272225396265627993711827904269912611988712098238916522028583465512064156807138226270427795934382030450795588304975297662877510797591693836596902066121341062936890572967182139951433397351538266826047594274355086304430749919519528074189895831877669154889731916151955010924462344034716932691670616912150941188684822664159960476940925578165582904554873832349392655126628782151473598991742624350846130411237306387675183106641662207668065471779404330760867150661328439840199341182412677740995598303377246770509318785178503205676221756786123094086352150629072499667359504756852143487434638956570690704441599070206479007474176619306946030839132948154082888598300710595118443638135506296943151100903748497238722815681641338152980515524711130968303741297018577740908030792402283641346832886560825048779595454252837534595670327977574101224334383476152778281753327325551729160166229768061805932606469023212598244541856195247658621126667338245891844059339083112577516569550348534747169523427945618245231452256929745072201682942948268344934287871599124533622159270201776118205171650993072219151364296538782053153575070796003895191832870246291979688951251842606395795852931100139076273427072370211361847541210235559801572714880918614012486989762441289447213830335570583234759930008782517523255906128497048510107432898601667196820340449226244210753290088308467337116088667928950895369089674202437354923254637061085831086688633604181738474072304301832533545690844457326008732815738423014882552530769008061897575494382539505668399580809611285793298129803703481212134214155048078935321684652517927637482733763107151234013385930899830335844117810325823162442008555222353580470217351626986810021299853496845885481808230574247653048638995284290074536311646467821917347182521306126291563805427756254115463596671497779606811437243071646893296700051185678781599504404111874654607702720306876727230407409736039783300901538791014268425049671885390202454005135300406805708084103719398861975889299980741283405796540537979130108067904487716298764326424293166697082172087407931736425414102472022332834103773746093367385580830524821240324499663734294799533260411289297489726636195532706424239976553737062406581288934135758123457856192108354687190701623672741138750741471814417311390893493620488153397581332377051038532533397641416278191207258276065216492119682832890775743927347617334733570292715706455402246624500314666514143031058574062116332525892115658874512274206916539260568827396972260170428456380672300280190454203535647549782720453972516569509471641407748806543847458210318456849369020508011753935377892964574537329603072491701800502410847685590564540312108920891137059208836807097459642967158830151078877506144791162637534318099674964594156622267002780480199986870065362210399002025436801721170150590849343441396439171895640312048807134214597314490835307161794323459621108897915225880074423753944865413498856101436644689729573147803610454966056278988892835217590026766872192760395507095347339195719878356577609064701466817540285848614392418219691679697631946906730349810048480589496513670457289716393329796019251448447276282777436392287102856215823034120241020039886205750147607516621318701782493553056892132465403887502618030154345540618235856188778381151787666291774364300897782006017953041464203120189444035644054348951922575891045916355321823235070519088242422867217021192583451155040714989981823340800293949751329045466369556941291940755574606816097276355969062107721337849963595745246353691702306714224556549611367507083772172303608131377790740537013936217220805002906948975811370496286821353878079082592866399702361810935153753380239575704463827626237144913278257113066778707177716326292363179372062793300892557032637137320411735711041827184967626363555357992343621616584204108358745644785823152945101409878635050846623532080720161455046803762624280612576101036566218917242057762531155272247028672845197347753068114285237232997195701535564306323047217945080826585915511455254232273124830780751172835552582541844772564056038478189190488757424661442291234264400787380446787672842748530935821696918297229636355751501688663571202614449126184679107233484076724457633895166556766822128535659279615593207304710775582941668890706648267901588949262514729451469000280600177080158358751456231216360914972139142135903534919458003947356634525856481749173165392350056148638464231091351610626117632046002621301965131066009239966319667602182982946443735151874614666981469147756349985191238508034050927304533009515671397774166711526834946970755531559662923373097167111861599103448509694543740611543470436317704238815454367083152015465049181763490520928380930121416092377591970543937020595925282598473957594166052583250255714102863205024497759960163247055198980682785002767190900696940338820584173841434947442666360005648977664448366037721609933009296376132424990793819245945953441664822144737933512903770280986840875168357269527376266876837405397392158692447277246799030570161163484395073593359429681609712363351348520437923137319990660015303379775724618611229087037304410955650727230309693764418695664144903191283967746283721370744798515570650056799247585876356156352965434545436028611353237099684254541189056553719752550591711058999570691583665568090003174060623106173743493038371492948003599853288869648478905244002175689199305559461750873058275948905361468573758971732220947093354556453263930299092487590866566350742114869130889424085997511132317537409161408058541567423888561931426577466850822574433468089128303692428170572266459078445040794022518204752569596167598818806238309234913548629975618004074194310291000622430359334385806309921785673649865687530673803795464005751708187369110066957111097006172480020510839127399767382371460102056055416178647997679414387502075588492531135678360968129399480091493163055521031899015149737490225685603504582157134436989502266641147881983235357562213352305781510373662974724951721769924024111414988248371598079051406411408964302473377294383791090521610509173918842215987349657096016927342111445698462812120528331383594245782496416091184422830553465560633511946686409757023900663652244299755020844873740970746862924983777719949018807944248852618595330963916482389389191525565614394851015849614415931281028070752456476196711032588359930395256794974349851457033140740924628990357136449885971658512586145469241806926697760738394565548124933096102875937391234373831998935863754830777854506778898501909635700596665150978667494607511583584971511259451541748027373272383571970385594585079636222210668358708265984524579545751891511241713610579036583348314914566865238394979489114133837015813162174208170476487918184807772001405557935922436447332929880991459200250643603319724450990669714753955765823668872783460103066823430655045449823571169240361632990428361137237065333969512573338467359217275854952268325292582814578535638806561715165908289862454347818745645122752742009340994267142173127695299767872777230747495004248338965864091095815976649062611043095621733605345381306623844910250082063627312232289852603099819771374651809492019051601385346539924399378894647906089049932476279448957911494788491192679328795620972497704550494775438505292164225966738878973864526841364229077300232460614777645877492788097342135032549521321620254111555564425030400037779119989900648092200491825145965807199457413158075314741232344441114315368235689958816428412363410893310909244618635578515596200900441821676725130503197267937474427286849439803902822148104175559622264116851102491011732946936444999878969324843610654694516570272951121506932867542054144842491770371845814939959960248066058553342949339128799634975591933897287827661541841299057736649006508979298018532448108184825495639642385478752687180414463444466949928115276848955484666635534921813573805836264116617362194326427127434477287894122318391467297589571720718018556407101521366904624084536729468540381041383366504742416798925824106626410539356246251549128816061202956546646043333812213360540724599908352833102338845112114717756051669892917883680622678324571035485166007053933437622934729636361668807934549373295454434961092755210409582657197673880603589661930079819794837234396344526199922818284487769686402327008669652301308332296493410131109864904051427587389272106627947588655502642250096309160002444190493789271042029261363895824986408267409327811013516617094611127749494567459670266209029511434867744318158185478549338422237515967278663527296551343374670792737670022700385498746287130947118228034663046696034586407245800368577143744877708489267471244737254520090946121121294980319867058091674518037258836108332122238901587912972984970169980214400567639099583695819633167604355911408507386911441712375227758647297473456784016447308746689190298766624783496582476328410435887199004425768664779212644819707508583321155191312171266021227572645484234463286978667051732455896770456416679433148825020146843906185987276437152252397990188286307679071421781983454873343788913023158950485292241169196287035349902565597967234557577697185449212761341873997846372412474965930336139029348253212507179524869172723477546336241184625890876963996210964983144135370080984541299777204822007450917931739684142125711397587584000222181465749487152421743856678291187066280017817217968522780492829576223120257049797249848445120965979977325000442150841458362409970814713159392396077029554557471468789320814851789793060569561771046280236325356178605006600682383901059087550712642277093160701551652207243860369806421092897862313036465944938815831366917713174218068138368171118866003658230598845550216334574546640537007964541621293662059346829564084623223452597624791289302339278716517300577402255459196918290397427341471828509520594866992842788147065318970376878729063088964883655040535853213993805632918061284658804730599734066967158166055126924423611619280617445774679194274912359491415885851736993270256929810806125685234350628552656231213861026016911144832128450708417737396693781076387407859696043516659562564268398219145558673995682322886367118001716527546956527652274594600881217903193059396528819266862469253413459282644653528982553277864610919136696725867218742442057198232463120594430762272012699540740230397804397812790866850308246462969605841911987442693361826362975423935581316478445770739489550611055307141052361324135270398196787367670475564389045015264844904045287289514201385002635208557985959028204894892678316383193608533363651108557368390662256330365878164289736107184125344775992339554191080099974557247344853155993771901774451058670903483309987835780973566633939521018959396839640958577427064393485668735327121326903304187426953161494606276577213670883581455514175839425480906454990839126182173908433359965985282388915190602964128537896100808188506529436100786871635748649469301843728204544002787742278192451363174544646803073370806338258424520894145316218994973621941412267835607376656694908378479736605561504055594911067071563807522816288407784918267701917326586238063393758154818683727864040915747348606500275897495630001195454896076608463368745049249517628495372093404987051272921043922172788915830427511584821524180229876874036323289407627236137692474231816070544753671906021904720152110244091488003565878809759070111384900688380189966976733027697109182518415189767421049913530060656848411342098627775082615157746998666289703502510212985993883082706860600675718924375154782949057677193724286568276194793492141666473689724846442488216165321329111937144695151573577768176667416919720875726632492897616708632142409682879174593726620582635859068619074783744708258610997951244085969754406182153440875437730209634879242639288093585308891885712173315284217797280241194010076020419577575789870705476973382722649579217847169505379040988317611171072455893115682136822200434481292450999264798605842361096553111305879439117267751727093263194845246267330192927413672742083024676107633445959076895506943799617803604848052484975651622097663097968954189414804172218192576737210541055319252622172012699519643395053621895601229033986947006116418462092321181633012438937277967081044821868317121530349369174503823814377029234866491449656194533662587250647809189304111179426420645396419165993786894239940746415124653715767091753079710425299916301348385760911513962800118546515132438728701731363328280912412777352478552960359932416724582991355733345712695148530851959713263069028486151545674626968074729219213732956771951414707913708113195616585036828921661532477989511566302624125931619809936436087614183581101527637304989554283049375958098404195428313185142622140931711058730279141175398955405465974468040160385594611430201978926254774312845447034007820437310831717515645154541844301111108851503637433800152341248622854312058653565522831289900242003361247251576974005850448138344754398270172533459580204837433673670287043291035695307534383561648612747932508931516050642627294093582026542958676771760087095786980243222293813673278312648793880501950943516444365666560567215051872395508507150261143916441112838811160746858153796552441861048936367592719156396735140474708581081258142522120122054521512737766450603291160629368230643684475264561617876698960586760299650109133928185582870208033688257177425843635500436529805454149382310027247665363940061884691434038070946178099870957843187295079733142278063598271796046344009229793749159346733174770689367159034357290169524024815253390845859238252827744321336122741104211834482084673417242616928437763893090297903227883610753813471434318376759989941813988568318100460250652822269811795545003945294616352448986401355668282351208091238425223522942819063850254724329980955833307281989760321754227879639920563686528389144940188908611020779715938622204799728854641584004971150190223151041622810143285444555796405745878102766235310529043223292246922223088131490447299560897704364849030463683409836385770762649525115188156721860636267136793730492624823447790120583982588831321966011564268829173766974750853852170368205091267765354691440272031948853603075235934319819997925457935348934166193218062394787388433894017742455903534129509249430738855247723922856195167664290775368706386230655818121681414318487796875690403570699670830602227945080442348068710421763229323388368368386924776629407022072965515170730251305867735813916775631074463329809900940509102936269475611946172173962380680989018690174971029469893715880376781550461339291743622936751429607127421917653923438527142713859140572494637964949662769921254060404194553226733153090331726962679957026194889922475444715162544442017112903138336682876239577599020768042042838695813919892211175417987179712525879548696046418810324938531882274140920696001781058904834163261466186071102805468425000356233770567697749901350512628601411808785265446384074819271058773730884131067773351632912244634617587021944137779285579495493269270579615149455683863048256205139671970721550659038458834735905673411055788778296033993832182944917124009166963730047420258824348607052296918644910147154121299241705559160276607134442144442555118333299387104882785016507328149152484366984077077611026661732600229940395604323804328680060676732935138716893220421003153499466255496437707408952005635257347894101104699882516756141940533318824528869033728184250485497920263813109503779172074627098988681358729824152899901805819475752095172582574700010209057635439627263257168954577372461682167242342358164371080198514218301038104230297441671228823915886667106068037961364788954663296073959071197407827238724189213174710441280408377153583953937019601745456884129129926593090601330620738810784800671068200486360752895410933335238644012144416557221594208212377181212644386998996324921389045437693732564697404680729232184868370647859232626754952737331009041657532542483262761905210384584941421782098288745451247056331166283233308493528765241028823783956585853789968572090754716938634473816822028461828775131682101303771671807199519245481664311134723775964731157597561436092302123151092366249684027097575241967037769423190256902617101132507134114721259515249471306492345929472735372692221222172285314309919555296748018174525005078566278757611917419362181582259296344938700054310713816307485911181463349024922253418209091191679502290916074229641785584509824958193916078719178350239879495987880445933010669693901604346448757705669976196966117389704226757468987090109141348730421296701721417126081341313354211432456878659650657469507509499331252457810973671473865158922065781716661556348385178084286346723224053885115428821118910872924820374648087898206008027683029527322231719235791452539157101296458346404825476700936874142222115108458364200193244755357997821433469715970914511125683533409766662663474069214766261930917231099982164117347812505127563599463144022974378035912733906093844165490464515717948084952492421649450036410131989862367996349347788653056105480484862512024246283701068744317105938998010526978837699422842403930609193877341349064082452820462653443470383330754020305048920249034561739567263809161077698001675242410871769106921270122881500099885562781937866662438241812485601372251526901425806979425804553925837156587928078608617593632365075341688024832492146091263423193034213307944187356463002031246808393506466219404530855469770658723498855008950548583370983589898137352686054205320731129281201570083860019994643869124132139795995339264441169226757343260346664430763052169463505730979899202968090805023262470879594437048271083618244009034229764886416113598389271999929291906130321803031214329708000568995269821586656290384070513856074429374030923722564484297041482852694321322126883132167012954834591195437138760879682077532663027601774639845808748840880850330739221188341111931222017454043309007040862741542053503909831598476755584358245889372741176876884733143811049031955107314805093776502560366136345430997044142968418534799227630994368559937728101138216244430061617675791058208657023949614677696203311553633062956722505063340102142809669201701125474313341215156105165380034314353855939045116272616054444017187182196618997982950816738904398595509495780895389910929888992278705222868770985955963645323136527583176775889695352887413055558687958078931188939170427225280109294016417646839457447009346258512195051793375881158480352199897416531638377536990115507085252244608942172873917043668324653996154174232018049433742207952411153511609645915499970587068211816465711454086608205210258167237167467705077220583770828655740947600515848543977868263854100840842636742601629969672685964438189732109499656641084777635872741397517740515900655906846502697128892579165695365121055667945527743198163990160871242045797244744852845298604777199018041049786387719876784920759602485843060752005900582561547640042694198432216081197297713132699925530188387843169469743654977430718588697721195922486930737466059228681514337319282809308533538318832922405251537124889144166384409003313864077519644637791682822812915134336296464662702767155448000750871763581531485017565383248898467408948190313933802411100589824791053090836613160424340664422487519855785989396932735055699371634472429126498905056879415119482725595888361805036974227526672850158735436567678544503458804600487166919332428886297218879807858659817277783960535548934738730088155347872512039670273974861332986024313600355358267645513829984836147229663586331095702895826820012412065230494420198392465861598061706680167445014487574974552810200776753641964577036598416390996739959966248227516102125245635806324954398067307702416355038536338353401032393676184037429707032268057940329060929441670101868961355030979677629233445948813364728545159627720001935033576481999749019639535857475874805102528097607664523959107148065400728807690719353154223904184450731020045559440188688387245294691855606869327306451563661796646582567149089268896274836507395325744820906240293831411003080659940480468446946050501380667425553288962579030152934883824334966357279402424046041979766637928026079899834195062564411677797459368551430305220764870197297950447875410008855777871706186277781350230957184162729576517159167658315433999524264260540492076031444312044265870567592408103918125515391640910546460154904314344868832861591135322407560793587844593808272350266912622609205132819644132216533685699060012017658204178673980241896329898592550728331271542553218516299061534109476095040481996593644649654125863254913452679782943563877291541807541653330696182990787201102967435007765368120457709850267992197895679889716501905320299018927390522855022505346831197203104031133443134220066662153462968761736450017305463072106261852944349139522202953278714546290076674477088602712428570311797504905892350975797420682929185465435135133573585432646954183642617807135473685870027700935897736992176557162220289560020345247594306588015502067176005837768209703713751494322649213581937009806872062988643919064989509410112140779147918121610938477101523614258389153022837898650941801352008537468587695699575188439305706553299748986441921859036233078916302810575172974539007863403062703258797698446575183131848217953482435142229349843806455943152886041263859288867259585731870409458884112063551045922933382246204090495649473249245192179916818844149226726965732788429395095813608447130113051909283082557966268074722379109343198978610246397417457250687336093426726535918495839278286249459105779616005881251305852456819268960803927900584609671600799626175757369300965720799327833733957886613147434629106610605094750349783555907910837185790328621126195005156652459685775944794442142310454978359373277219067080175051035579077517050023576071226343957550000839067160029853124692450746372623078157225075153966974092350224846246264812832622230565999126358759850470245537674734683221098472083088694978834435586997779830885685589970167928935371201306932357740487130026603175836571400079997184725066737853201026646210552396004964091480021142926943094941293212847989064360945707939036149103977331510458604862206645305161890308025344061733303015512530950328747626473931262308060422345427108799844028521450748811974616331847396502618589442398457820575903709550769082540194372344456866399495024631926806488656318330949740952776506941178945512865700426537942638868637291390395136579225326172095058691609917915382253398827763687793915837498274874872976173690985356793690307814744022035194400138202929752922289348510426927261266888860944543932226924820261269063546305258549082572302032359652530000019471393191246354789224834299908784502526461692549054217719544667610984820571887053677580479377188531341808223323862362665195040521502764058896069080104720369014349176723456369752557499078409902624653802449931557950604047030812580089069217796984967533571051449776524673830069992713918451701997145134898466584030572650289691046119719491045982531307863423225663407857359504419708049153286548145855435864369735710982735910445032196630174781201528502195306258216598260755253200819851300652779843761113802607383746344159647667233037202053369663014714360182431604587977982983444861590081185297500108886909257267236453636009004573718044313178697836412237328262780330622703478454957955795199113095926054060994869677679835883325047702078841507624067652005310989615079892164084090576435995009117942156577456006652111354676159657103983320383226651765359039679867976566987873131113534225975839929581820423251400359308743002857806424641630779602071347452679481697636031367918546563917301694901431231455184465292258188022223910828196534573882585058910066775533140572112368408978454874541435649288620482639483320297118136511167921488789395367561223215555454369581635713200939925118823705881404905360440952535611142671945523089413539204463073273573642174568205217163716795510015154918822652420468972476575329463737879099492515483943449316805866003097670716693949598480676355319624251189418830207832012417915173847922316017135326856758858510270684570866145822022960594126836116488254890303881453203408340478206922547231762081821956355113105343848785170148594386672608395013293207566953592014643391592817380398790991798591305742815575558324050993821682602220322702117346154309535705562317092307448539205231478368187211535169096310920440996524263092499573918692667595761871306994989718578180472725483821753892505992465420250412810618234316248364848526465061366159845639916133873100267413643540536762637381859980883546477977046650620988233117614295293867721510419333110089217360315183728322101626404250714410066798357906917915635981612564454704519357408269108372717243936862402351598620026387961690181259216163805892175365193794574214883306096304811844281056495432324454829273932904210946031137578656637291906712100428778066627738651627853717203613253146739179248874280707636446335967869483785292929008651924291330080255955582552846803394804689620525044787936529032045210530288825454301202539379392143208556626153185639734649545245454825888025528018590337006347960575348711182439612237336508639518869929477905003371958824907175094075468277457758231517417728525743311236535022642247548428572443475933060412308343261227734347153590860702798557249472450725788623845434821988020362738358345797974909855212179835192439418784385305844593260906907001641912267965115618854560211320264940059294875249263561465293867876775194426199068016737837822998979091218553387382326826649393581566769656473299355894898060932439342460644371182362448131411858052777523296047169013213054804528579839559015752171786722796563116342148189632336913225216604742200771114504024400458854107229145396667048640438137714289429381624731962361028923139062194439180987432737756576728415373623025540415737505971320729479541302085938293524337474631182652982129985396394637501579361635183863207711912416724503646171472779960908534733511757398024722656767863143231736935434475006863451610173936439147761488278926499605287142574048620666797183904858811335618972894695322992557365744626175536794671463861370875011069259871929358212150040695692475140120813771038340069467613468220421843925198444900503718801401998849153027479780907556142593217912817682078382563045177193180397296960527878751958940576793570365195641459795218460496741468619880818134302490529785153798972328740924010548503696961802405042498103058341085548123048669552281616902521811680316795574171317927593298608315824262370135688402435728411848788499539235594833326470179951911562456210113907418781728479098544731362012670928377951049502727699003601410245705383478798519088956758536671810928006016529909259387516899234200703238279755081354067011766765602699502582638655776713562280089506980981062869560651259492134911478469532016224292464589476285520530006626429788736423337337189949368923030701624864898415781249633592623945349727697026405734305812485638595004084947103256872485070803857422836575981876739314462375381586605818319245876782917925393697325208023731099767080892851809248884592850108029092182410256399536427120966055935757169758292000915938228201291020351000532011627861732623482187555621105014916134042691332838864037504523268821410835572236268834854732641902289058488076767485534643251242473502868810315716732277728863990026657741097087724209120492831555651346599518349426760330954780724925214181664588040204029490541532009543782568833908386450008631995316216824690713557091394265955919641311393231968336436950021420350103943218240943102384020203072107561698651449270413633116648377730212767711484528622347021774042655854340049637552812108804916304507130947610368835579221493512574368198053585691398282029576297130377207492719217824834297033157148520659915886099830402447081922330240437682088201381120319972510296225199212419633841216216615290272680582920434155962988793837461855349974874214502719323714720597929412344805510255849362394585502696978544227230389628262366225670475601047866244973494848231524428559889954382480254571696091981024765372433642423035593353443804498265752034183452911523949858022848306994414676584495871299373028147255685479774537174907624230775179275071880497872777882111824261935619110456973558759738621258556843113369873047633122691235410678418716560307041143149515077933835866731226815306974857220014810569572645736475934333890763895000074642388397516526622508308299113560469414589283723895615791433894918301534988478256129198635078466516462904054281955373516304465287243872984849039084073693264221102855242303347413818078491409714264748462324012930698761764553168980425315778313710980006823340500040656523547758940777461510045410569824990163260318365937400106764637730626762726735568055956543081589516309493664480043637251356790429767029201216327890552921670213509195483188274258127901678386324489575671766494825708173270137933972693274276513921411310551307825551523843614279950236585098433803496910921048648973044209916976720428696921576424206168069586267208788710929497539544399931579606415967390510074403929290786201294903916901507733028629893282545028200394667789088023875225117070211843096254316578321437284635400725466566881988338827789197198670534186326897134022872478135832677524286349778292523341738326558574307283983972951608081505281125315236017763040734396627146383090354627621975263247997968703644339389410409009280636957495568473325747220107008517546657930789068306803828781281307898918751340941495764689503534683622535851280641787181633155326525891557799573076577994032597165923275262945934579480388765826140003969742798614015073591672394351239646997774513518395727576203371401413349555740514779789054876816832350551813378997894793081086024462266367779041180461606341991782784341572999446416708447147778306704091836837713385001272106486599040548199296055455263462030443542426235292351392301317342808536769929580996967639179681026426212567712494271715403244717480021856356783649735167739829883919086551151488997844765994574640266642925022964792202515550277129958325367676963941648126777827094745924485418457405131785054317793684939513268254535508704876181423513452420079205600891284540733781396201423178408308207191803696497987281069051538442488981173867352642530706346405152760962055572682478288613363360777486973869268954713817338942258363625490593843810104078665323957664546719680351352182797677090525601442859696957494058535994871412219383815356353260657330603330475192312416995888361101694318716202592344988022438706302603221613241123400832197958749403216829327283049888682900447997534322309042486309061443162776618305264324992861544016379688077150413962571185021830850594416794626890504715014678943604753412883195045925816551441079821663319417220754224648752444173546781278999981174089430432153941060570850450859084360181453055343308725113749174342900745493927562202879497630721918120461625776106519257810570149785470058488650401716238502724304328843857930279450478146490270898860637496740777756465025673792665326320765597359941848061875619129675830735101401259347117833047813026431254478893315709059972211190307532641237607201938391440786588567794797011135450493255257090925833309821748175031907841623654548855224988760612723605605146633904684840983649186217359272234441455263821203701451628534933993160721499321218965366776808408949222471419891434070789324898566070680063621286345780926763906813772223836266550306297457114216143616602231206532397567210653408958939231015805582009931198196316192609378703185462809495579443945059682849537267321989547845178826335145281953439074464740342673358298387088946062084377323251746600029444132106754126220830138601010736627977252678247545325032544219049668815529863782137009319230522236916877104530843089854464902582402054404559936139456963886028773633859425417561348433389657918547427286673077120374099932923562152596988189270508545963934510993634819180194693021635831049288100282285798297133144998203998640872411530702417505385499215788553776936980021165723862604452211341525220982220301523602290105322420188200186815074741607217602638228971582624182446413441233812921425174299815413022888615985833806268311768390641180911584256379359259045568570348766506628357593808863574413294157475930169625739980556537209150995055586100109188916357703061096224166798335399569983661905360817160956376418652238622073331207397914686816858663485433675555153502715767425135722591911115620575494972189134469027377024530845807070313135972404104842186024944136553748918532625848317681146236543533295786507521124109643126531207397148608227213662288367069560719899169586201568730580911278562118195560240672378993680854771638193718008966103307026806119343350408328145767785159306954349528579905470609469637561922232596111800962217397732300675898679800973397929493828883105920839302996897695591513728392034714054295955311023109120108129790827782298510638987222627322677656102766988462774299849737896952394574883468151500228779666164246465370825340133057342452030955644945297499116533778450224446237877491012302427975996931005391460147140398897289295807814527896298822142249246645995765827410159799304393634173335924449494072268330994827070225328101998549848134080587942661639981101936810781718339206010429589104739184222215489666690466085881107548637818284316659614052010767065778632140988998598095225850160009679637085851007080308812080735248940966912471559660068852286358612698236019002749555568208496098688271988425367128513691802748431677702842559476749767354275000379790009055789587711547873382399265066352873859758803948325436552695119387425664567408279899081836954541611456716776382156133209498398616851927532758735412208546155222505213022390814412478703183857132348694430856343468060206059873672398977541774982147429368779766440497543869435922992673176898450057221785947145231740214351471229036894080355402174411811187048991421303713365494211143619676797306939033639815877938517140209339788330250493436296589222805768472306896287674600599468880252855929914260226659477758885433649566383953100280091061737653128523297900309015201122746917130237008356208978824403037305429424226330753488211660665169471782556925368877456592340642502233703169575532592427658712357008469460049854579562448882597624976089790307899864994717772054113532380714033823307553385108905577605664100377975701468832596166599869162734007498383474194465045307046170890424597131556810117745631883924274625344952047337963894315496969410819997222408621540734473963656949626539673904687357738430249454237298809959661165214256106311906085709230413081706043484596524056464187447897590844157392995561936748408339323594957494735836796807390265393431508300770485659992864594828644155310707955168275462614365706007115707458305474738938129271764676526468987457564558710901044097968686025676310931627776546252850168141487137951789134503160618813509782630628950707273492697352610981080219469338802674509797705024562061616079867126732224768616071684170859707711359279070045591103648547646986418536608016005060437068069481721036686525257350511933526528872142297144162269925741095270562969905208870393648573323261838939864461701041548375212639786647498162821392697076588179969151943364675248311793278434465367419173039280642845866333212882879332187113607476987186403177669994200591882397218586192233750904165687191115321729293850019845885003293566887723084052373175334987456738475213775291552871105741441667710587006594256722669630861498296312360890149094091682555962452170490006821186178537585665856248651160744498602103715596148861719772569914083242923633469619956752195148092256224344948268959572566461822319825746269591401238423685252848579144363475529048804383423041758066215494579032523124752183161260988259798625425862376661184361969024507226323283280404811207916772939422176019058988473784373085313866728416355156557741824983855084939054708472633675632900978137157727313978048261001655584357537650863969444494689651312391208381446183115616711441594659352071292542470726191886998416737408187360098694390273274005928539729321534060713553160986136694720440658483311175157729434519708261786659603282031350288360102974402111971495746843455180518080838550741849123654477107978278920065852560551584063100933634571778947130483959862939039766987973329853229061933518657962047354513505502950966754690713019466382956955839455584233819921998040861133970265772947142334766473015075694683467504396842775796319033888000608311152183141440603638741584885099187952897317958098291236869924560462848865045197585712923405801864334330295980306613326904045274105202298229332185191998860581145901582217639524758898015086734089959663015421509181472421456061039628311020025964327291336311597798387312803193870341471470607357646066224167514222383965824464131425525129042633035791985889986543071887809378329298699405457376678101307625579756750534381467856743475627122258256680722798752128084724618002419523069370018891727657997270743967040808308713850748481367574590165121720570324282953905705458813468776984008902033051081983641745055211986770182964338600715768928786655567785025540840248999348977394129870407443319542089825617586264137476665015203325479494377879928498345633161185296398258986167099651661680239516193400652447793742703475986052004624653722981562815067524898532641498632244460231806008462096134664816018365383948588692956061673103612664717148183067774541824918564109758823749186155370963751271000103576760446519851974582690659535419750639114518699326714068079092008485581849773155469493189474459908287556721450797629078341908370137884516006650943389793474436898376829117339760391168041363938075859333083030281605729983448996487117676723058040520866976954725121201034027332132201673286461875241417121402687130343972221689604547017852832412847106805813741142614123164182043691443850355582482505204880856440674128249158376046244244988537018941899079063780711297313725147151622463356153868157796873138112378097931334879415492221350607985845212936230629864440768688840337978758251780859265641206149548847617876661843882280886324827283535621374689935451407111501312203787860993674227306901895026045461349978542596647374035522129380575837285859376362546510069287342095418587725463042798870475104676814862468292862870593572315324089734130915133954356722631503209173659220731016338437357283370770685690253015612402914194433116921569032762220848003168882471405407865558002701649826553440038852089273721556501647457686108846166084438511288856058536383688284833072107747331378380681447393721774719078914373950319907580940989634644204822523430609353136424590822872292508566556504712541774418369226773646730680671350299898386765654679824351350051283366267050478374312234734791202825918824723778334115012682831097085735546709883950288007465106431537621416583675911445760359081567354592680745862611241854693639701311718383398706894880184889082597996824282695258517465418998251282010472254373607460382482444398530048759174642593133612387500627465928817499425128096389755563511300386744154860966454061362884220610963888369912002004569316507195801406440369694485485911564420174414182065684670351608551450606800701451296109634740537074619023622474360419805954586513080702283312664606722187273117266073386666573526980013928489905149522026416469406532445535693330242734954727658056288762053084765471364459077956448433297940777833027352726614207157582608684591476518961055485612766694276303886893766651656477250788103964970961084872795808102490175051505704315575085008635124152212093898397026925744795609043895062333356733907730631936373478449609144406107630608647208996111401367036854642865369564628715370500906397784295880461431235076694336319318220313902535161984966538001497127280166134419689611251689676400889020291227268483519078870961280101092789445079445486094153786549832507585672385016096054980509473018476147931436065552274962631897650197293387895557523612936549850715665919014717700245100615344325393927211283346097506805485292751997235597311467115108944484274001847458459793228591495920478103988838857297965148405228724152500223738109866932634652164361852628633880625837432919312807460657817886122175346878570253996840206865738047482220568523212695333804091691807345344904803402418203176259480232454944328130342655035712106754542086166506856726743079087732948975976066620982250519411072250630329398871670912281218149159430671754085828913522317538780432713573005165757248329164110518921540357155047038842626480264683191349051272404138595887094405162869936673616235720360936194151890659018267039264690293117464561510941449139137946290739706788462710364612216291705922317086810832620304740860587139788686989678202690961482736492445434334038866955277960290105997183990914415225394418835573409668251779404643995315997136472385954018233948566526231317901182209772258323936549120627697006254899570127622068349251757882420444787219018323996648853986985232108363181506974706961281881645237909767318952892599627194215062393328588306627748919064585958934487451582980295229963419094166276427700672501562813214603967029755813243041860825575458012212897368670360065675294216062017718036812909158139633270781195094610177702492629144582959695463225205135615824390268937631969824241419528990348485788545274757260334825825636282568514030608865748609831492840976539162114681391665392396799989622651876285515671067630936149287778778569657519975997437851567171144388215747635311323838548720773989358698929755731849862712019571292204534562728432396459435186703068490942388186226511721421773164885977593819222276097852096270678444701997607518337260086025776583965358317224635473145547762216082879967891052182986422175868652885781859720559536805804759924717743983553726035696530392365838972853861198057870790325593207356614493362732001496654681542686798009270244116061158283874850572943340263952558439246285337436629065717380112629538186048982537269066405438190546270122532742394933696160306687700342670861492304885239097482542847409294397462877333519051202471056449957796541049377378025407041096495952085696868636895223114712168373832048208692837111155244735647055293948168034189799082753893638865196196242975230921795794538546980827788723578566203633749664925268104460110664330404643167219161750819657871176755757117272986482566272834110663303761909994278201039855675169034225059644658284164601133790642069045905581024788220669482747476543739904375100279588380345689572456087331195646966366444323582652871733203738901029280102266427462821744605203489610607956156159532813866539309284100255722365122513265480190893200220327680030553888754644992770906730005311538072921376406632060366801123307627029902394104414330708137415979385471531894931223639408924578743419106764176572469782495083521526702812595241566211609776318773305536020005663315153970753786882967480349319873871172592861538750417406778668060709271885710064597982587776051849935537901324498706439521556349404441896800684307769224405562238824361269802673002213412638474995595809573321243847278169773008552939492191006088958892534815411841985686023955349234309720699481404627731365993966930919349763817398389430041307984890514507107475434039173430236581045494626719761831341118672592873285155458806638854114626777091101360049272044594027911262105735340063643318092772508984728838158283371544075242966801714666320167104466243563818985572722801200350058331652439139939764462224549632442966968242865138132400582019101230607031915209055860084281246362234622700324996414538371509194103117485722261629160450481490469732003414194444456101575355976947774498665819603971045347490456306645158146464050472350912454760716109559242544853373472588753558059048773955249532861566203881455142334671843180208073101300587704325388773434574574383820158576112202320001445554314125322253047024864217962440607597903043102269126615967421530679796065538734309385363399973233146871364351729788194353053096486047318978266549866205719630062214206571945189747743036478247870165808879962378548401715216716905365838263245137411621973372051011510493982875986235602546872781951141652536855669183841626242256188672318140956091189232491255733053081074259156408632426510447811316524812869730482566628732503974320478001751034429773576543352163497760824015576716593281965423287465531570353412540590636961973021464938515187614894787226489098904729975969194494559978249185174280931471986769673854541262224977756320788234966775547656574960472040921340963918956865942071293569406135729447644366198143262917287772207376369867670340962104350149688976809962758651078727653382469910139756661616083744344715737319636150987579735825470537160398575290911759622994174655326379136257715655049170270207876311691602913233213675877813143574973637346854720252479555077495606024392762369544079700119814365290884722203971021198138686719365196881907468457351830439108830130963616611905655550791754342182906056820428534378450097526125427047851625443251762414148626259374468606819329429895667892235930620250251906816112278291996234890874454291686048180234934641462860732793852504747841361146550787986417460308984220140734234322250459333050678443974937667142291722977153658246192929794846859636400198229331251922179317287518119173935882118097036484146073524124123726492056941895376665953306612067381654228065228852139876077379199040440217959175006125497774715401064561885952806225678254080653530409428287900273690729406842564674102187435699368230748697055559835748103534170240346034758527232176828795656556227287397404612254731628307121682109439246504081318516610847022552329237142966693486618989641206715711051334989366904519975360045433288094961466623975022448066643897276859118093848354419667429694947684314971134652943937696369456936754051347760366244545948815824617400778048407413399375547039280925428462787273145978373584784099400193837676466863125480554496685494472927698504949449827884232827180155812221587930251308622081414698477776330619670466705378830688664245766546196883939893854278755839330703329934026671755152445985350905900381259926958476452932236286563262822748552560034180690717655416418868564639496836841551551878611629243732215203911439008379214476188885999517453611665426906627552798228457632083350472303813564916843661215385420663949487852814911277677577814077612118505105784358305512552408768396671961913610052407562513804719527520609866949066897479193657158130686348186655351527587057436272302997369369512765934682066372270831181125927522394582374032040255478960962492046889983793441234448247951824159237486896149213460485433468154935517210712588279690337404978675965227254424662575864994292069979179700530136463078054264074482146118337665712565414900611009380553485495867492924837153491866361825342340410058943210271771713942072519734497017987545887116764623971294559387508989511192777358894776820458448114062643852424065313110870019379929300338363162798923110665201586415524045709467033125286861416462265338209652719675526703155696818581060996602358286553903729796197107301838365790286940961568233288001377203287214229445858927540331732682726427426945838157300621909026113305790353825228921363136083124546500499257242752999591785980014372880507100093717950093516221482535857475905399307353668210069304601961192621179946253964770460293005201639641241983075918417138697721233827535942685472030991235502762966080732685938577669712649721467062534785120387234342258087099766896365738314798308564945135478844150922018402717158959916639778294868501145886408517617375773785123468474667040190894000672601561608284911546211909228672918002957038151030458327331578086582037586386695851867489556432177364462609225683981258973405318308666034532902343870466342355905840392328027380331569573396436754410104201909617823001296781536441123594651870176186364023255989890042970366919047754640207641892773389223756452151367002848804765066108386485991743275904965034060863735254475252717132370660416908916849774213057264141957697824047995498752315336344338757636482050873687055780253492306005061241822606486053550166619773444592795910895362501403521641742788795255965135395393751929415254306920966751576448972160586811292522721620856561552666855532128173173619219319562270622758082261582349777677586024905412827059955683787459673512093851237904729549026738925111009138329969693629741686312828990456436463590622522523117794790266313157120139354685634741262751654916831699015479661038942335999569582524557119136132133594187231559725336100382078103444865978890637943364155412029932279584039907037483579247765505097645092547289577964385111921003347060109757522029204718469109375123104430979810071599282443803367106963724717025606988728659291462049212815424970691637512342083477881006849861254544903809432245948818936050782019336201046561561818528163682780883848062587462659443334257089080848109053127108132850804035342527799701625352157143815103368640648234234686020075506844297726975129911658347135135919641800299588282659444225540078159038564483911356604379332844610409147510923439248933690238478224841144809006307194537627062955486015528170054298212159042299686185820401242469145718752420089990123111650633859008252968555310072981180221033432130531147606482114675004812133068509727682751930125004021143365455084567660668313427086529772095219799109853775670422868977234697780474048040442882915665107424453051742551869627641352506073399426021502471091881108328403606769749997720322372176255626091615911063501663886796157149121717447628961112338552214469134709967473248678702169822687875889529552912045611619978160707398657542080892755556766381049351755985630319537563525589801452215665594089007017626728874881275927808366147638965508232554293774761600390681552794690204586801197215963078395511186960943241381483769182582967886835610887366317967371593299690692591304532401741903380007242985018685203179564279723137792790690758338483962064663452448982799334063018509284009222633962889751030572541900357080655457688864137484626643433211253202132492790855207966337955443930351507928397206827150525831016967404307727506121694872482756980032394313231914816610994034898020139257453907483676864138077127168198786274382819775498317519600060312211464898462264312618858912031779516533501546549852288544497057827035129120075941232558956103097871715871639962249480891392633360193486674603883847485181115140941400287733858728441097746040628032393618590659340167467979355831505235024480260882355105310297833079755033048906856614720264288444488431569013132458833781606018407097230240019964281655882097136247999951993544148056556680553484211613926911482389867987863127949556728927663792107923527065532225139931635546161951632572371690470040489335930098962121540374245104446428071090090011628086601954636504233545610130736963974105114938741710652504957469355346353247236175752064736595181441798345728657370552390767232872250264563571818537083254295791305287539927969242112858976491525516464717614213845024036636845287764596222968597993107676349063990725505755666575536767068738368471064717865218978653316315272239546637094213926808429276436472093303312562468325670437127485823873450094415363186338919967767946109589058052557385413618858221766353398983251481109687281071745988957942077788817234084622242565032600731149408174816583821918730668489199784783115465957242656754659040660806454088105751012691161217528095006019907054828975384025634289482624503099433841884436620815665327794387677294621814642202419483928956037482846450594027751584813164301812223060472367645221372583519756256390596366473305968745826195338890067653071098921592678974369661109148646952984450962731027941742667485525805670126973281656879038919877675691937206167003886594905585035602940844804499913513569263800776489222697513240419198711056740801264324238606565431945283606371074810109354786032973323471769822314794874708708997003789831229735712339440680480880405770760072499936503539190471861979579353314193856358457252073840152269821935683019945956083109515783955481333080202801227831060561295823928028653187724507094452788000051157004815848830164171470345141220802598269401772652028375340377789680329458425975571880197824240902422040427153607928509399280971005487580733713259158743928236269830811918285620587557031811350161343733508094894233002731815122017824383907793634721526232488365375867048461145088289041548805725473830295306769218817921286960275600872445305010123270953817617491328401065987750871998706168529338498027236890179650128721155172271535446768705157992413146698801579491163033351476615692826545215353080019332294342105789822401726944668213749407529982167574613541960785243301993221608033308028957791620823921773840708898064891038650360491226626882446466394472612310546129783318573849092858529452663783926778385716035790750916915500901273374466764196775711435385815977156459596757662383261442995315608844687088947125367368788066418693850707229233349855042048751697438005448719395348385583130456944850553831531772342149968586264714605197142103646548087958827184951363438883611503728733321037842682419160366131597553561666494462818862675964185158898266940931764600866631204958044496073051696330903007522750965446462240015987626232008817643344930091849142181042660139281513730722249609582787487050334963882302374504536072854190121278079724840759322219052528999532256416712012158697850708297828622403685987066497198353444160428162160022424584888753430745678558261446635293358313314537535517740679718011014394891375980752801030652167534871089616540790673967670780290747562906014976135150992349807068200203452706467814399885023023752359047711404767270969058717961228167847807018669631523151642228710550581358484200098503295225423698897818050489915053456092892645517449631937394190948535093596762450463742898620791394292200262972322892890026158345251344535379072964509016129501218970829302197581853904936166433134866272585145577715574519516913628847501565419783934787997071754172978874192576675282883527092826597981763779312967811492262978160418045655912090197516059386200581296320558503784003924545378230290243313203638325410540965019148400185710273299738283326936874927626972927280714539558427753983680094348569748546183288718723392460304640854607312406258207480581254388724555148524062109115645526453164948034005473016264147545301010310117003834642132956125338354141593347971659187931331747865462329223882670259366024538882942935085772998249304576270331185656046802702927551163781967186266113798089938989096153188615092073363274205311254077908431142429055878241613288431157877696181727307674599433626553471640441242432286625058903300251932188279110055476188424578407016277712495492366854587990097469285622003522763685584233484835691756545405567009496470464246821211989328310041765428586325987980229862838137594258048390456516295773091469272073962330226938437340481665671932923517524969031158687153159327817971767133770552771800862998399077286784502402018381546766274056536300186638001577912898190730654456155966251352418634055445088634575254573861348440278668527772559063718096970968977704240092141058488154344109959962584169969777521758463867696178096294433899050781943600234790464146014062923920971584607146380570328855731368010461680876069042584048076177530274107461665061680976777928303380426620891105652660249575576516533203405584352619580670646611256799242675878287176828107513976939866509646782221033550966616508667098310634868687484401660964657689853578321933122969917227530212139240521903901342034913320584871201809681349503957208418092929037492630951776572715581889178303290880813931517906944547825101359519937215151791672403908576987306464442586576546695436462861629102426312506910652242349739365964326624242818319103189130853827942948061950161536954807934029444154139706135314946881490120532939992831851616929615553983559461352634638922402245193089574199746323128953910593148054112029791259271260529442913264233342003187646654676512725837343336831807805546604783604377286434566920182933016639788145102958919465642931090173595473561942709263705809736818379302754038668567790448084376179713658610561192801866008369888590123621731070606554853896277318628353627521401415802883360433810341569767876443880278419230100910923550411353695440819787350736442381089176978305678673374837334040225231946505816889686124567917369765483036760790898970781316894299164661468733327516544178650105632897550156613757298655466503194154105063377721951049362162455998329815172007227317645746216573371146288838138661995319858725493065891352799962077291223809856863864116055349818756460646393386120893246189122053036987168218621584703045008856126986168163821508989018866107724600595023298440247934208580011045020287054443765998269313220656062239117639542374160522460087392176677755657417297058691851642796653645937922321404332045588657203164155022724513761988227470027583320559989246540747921577374578669528053049610156784560434735822436330863402865899408713089462533814710992537144053771997829714364137590445192864107048929353121937849134569025263554427727189099484672315452168467593604773102083264114398621887555948745386398227454081653516368388325555205903432576984416547336289746156207728480429956386099660734914605267509550737984078222447580157121146468402636709531759297753573126742964969670851989134078063020898557647972425773616864163641551337936067812906644683424918745665051074924416257140100810952239453801970724171704074364563288858422488182870178424341887889473098672440845891635084284813931780857993605817785256663130345722517259970478681265635498832761015814171983693121743735741795464334151832513940508523179906775423041726999913550838244127208206590135191530774940882037521974748832366837262192335254345109785949836203726525668531107158849583944488354790489062821316610654796894792768071391959321337792356359827306408797027543524416363361089450982713463115041952631145617965541766054574132699844540850584670980397584016028976889314555427494909393461164273389066571555607023347762613853035593563504145865416626257739801662541447836899737677433103302189736348308556223206884422186386861829069105046203893498062016728522881380596431112418326216726997442702334094756417771211287144950547280615416725628173131398171538004202259269880931455542654222698795119046530328754772985097433503382869340044890827138980160923177999087876559988487580485721992130281023479357165885478309831002548424826050564900778255421687855689538895897351497566564123537389825995977152588948685891019783556513651588616170040426643422360855819855526687686411199673915243804672381165289083457753664875478118843635790788237709742488579365132783600422153772113269967671861236914906273076866665807884250426703553750547209449012510418447675408046646019712044442683537663806985825039563125472686818034507098312194146052356549795738475028643828369617220163507679657775513227663853618078984988911398106356739479451323292703409415757729241473848211780546818130660288407329873196399879989772433085335291678900053646623561403065827210499294291689505664431705335090218821578702820670573501049193679911105196913389873271723563197784329120880084725074087140326167681610635328401323710804950239670140268034958300625494869875095384886237590819427667117525655770689669657798443329826390559109698221964551421942804745402101920283663063390405958288699120381711114142584405956811232310204606192365794136790821664908831300915265351201521885329073294297336907283617651798159925297771247704020836030377476836375507339836867823461849900812118160918423066185112377062454026470582016891265970372143345619507712505922087474445628221932688849780985535735183887857207419505654870509653919172913808867473148860865109033017252116444853662281245601597134214476952514479192425938611322801667021827204406935474757217913297500964065650377208095176491385534286693938993502982625475106582601210154860974590325783107748802518977119848205632982943191763672546946540790539412685737858318807076268597275562602222803634458700399923648068990850538797493559585880172280090711057945060030877251729113254638613009029026133162556488302451412169268687857945665297160210463541534221956854238717073470518156111147959046017386977937581360821273620741405662143270374634387393243425521067970864175972562770885943477944074576821764017020674634227981692179919076648147482799701091644935340737870252759657117645274789572476387518721800797673664311613872005056199700458202203698186616894674194589976316388067259205781376098027481094668444056887874303400991326731489745530321772436172499469423800541661743617826701365756723497825025156587036348295149342241602429628458235905450402272128997372911586356632739821838301813649090846169993741852439548582080983186814799954564249060307586992672733853277330773005102184037607603088905621604581091907188911302681795735284015153962869857028681168297380131471207953726116249746456092127668201152221676430016088236347326932000516365546372351765290623526160661695391511733994752677757318854563404578628369816738997019312431489995420082176680488431394249024791245736387407291074521240011302963817302821070513096546365932686440991521572525278011630578296197143442329970192132992507786775738638571710760441830025130771988287434066748039644868505991028083447877442160621744971957465442675596442191324977538341646307981565215264567037826548478364361337300228680513556185493343312302311142743770967860415986027921215384336636977768572431846173176368784488312698957425457388008857816162646773516131717796009620087046177500773686119944907764526780848528757363726117802424878929710080021735755803866223154263893720289553672951799562566249289501041482880478754823473073307734289998817483985541923828621668990754203444328088373724723297415693055438121985763249366649785662181880866492172491013649704080627785474657395687539301765856214329414706399783136841692997333172411833347405712037917036473145159748648265803325828753114197766404677739801218341037404435919635262272321828450110511141582259252721692207260373654481773291840182146517941430974778001750204266782612948141504106048291008770166473298297245659528758957131308639240376746621540761509088565788198088960564395547761357418413855996580690344831182300855142079510937040038701685043193962848990265344093542038053689633858484023224522495228171104523612259073895992501920861689718552588959379929882748581660582787333029438094204020413008455499983836320341740340980437396014596585189250930261003246935640340743035142928632762874418728522255893506558060939309049318361412660806243636577365719435362653225747449296123791479025908989515757386110779375342588268801588816639623063549847631419777358147663720754958041401409587213115929975305325755603821108119365904893931329936261050573483465744386634159346333498919433654465866835589870503547736588276531706327930927074734756692335765375298557593406336964136666629418173787781068517105328546332559318260684658082620745824296725934050173668244334882795258696430942965462224551646932095201389117132708759316247993641247403003904691752381152950911774852960763857000130216927972422581006843234780581673648986130810922997800317616349574541971946037470794857712614834836421733631048545518187744070102366266269046367170105604681641458955230636328684662412388320760538779909739661859369744467271653008832719408869737391942712277290966137865050355345667836088903239770517130839210953897113119004955268168569176891269243151904541170977102815385450757601109269454659187359196825044487633328830523500931348967396351445314852423946076462619181063310456579516694451692178455992629451629385123461406718251974752141066738039455689419920598673333181847067847766757745239013096195916818430351326673414677828051240785687062058147338261511556144481112422821685876036306592794711803512871506169601644742194272330745537842028151615235374973131767794476652328835108970350972897194394617265482615362930236746930998809712878860720131870160985378492572612904602982732935167826957581309079471348182206242184920785255207587536586765719968237044749584170059507952465543299156764780516682255503121080908521688415637280640342508625584453019508396720087375603372561985893059906335724485541028125393612780376402647434809747718537571923369022550033612587930183251240515935279071068759456478440693569125240608940292775228279418132814000751489612628715431423304364929245217222100413619838354308951611619410372123479547877580774959999797251782298425768635011377537609518754461417121260166949257541809640339599875347329247573328310246484588700647037103912284178056750923611316639163635869864763798496016037904815595427387177001428579976862075323101248122402504187635443077254843777898911836074709466296219139337877779773680365463549032862373554055279965432170540594345393698117088485148106991465652099033355648834333355660886060134268565673075306700743383417980479147940726945170748978638719564631421814332824873892838170416194107183208628429194397711465552140561084484450848740931351883518673944238011784746903597479278388837628557788626137083398230854137596433327289060610975804296216054856410321402226144065658642675069356707041219280350398607052962443415828770237180888050927288514676690627756699495553404315399542754525459865275494789851627582344594693778945423413021321336741961883885013104500846459617986638085755044255306167750030714277343990577788423727129203039599021750696609652530153502281381349900767638023570064824027302229952128882722637717296872728296510848042726861906985944147584607068857073466799229126974500569782194420588219897454709434107523131274244409475656338309011330439993705689262716572898622926520019488873438413938424023639082263381786685925530900141799204224492929091561522788021530071488807233101515942209336478203826037004482611444982437297745310079082406045140440026269311005196761588250165323740329868500970178161275692446913688258348385917616749298346526701704563964235295321690693611087456015805870792342362586903283916672245643141058792565091339986568216821646486318546659104071638952497681173564859712860514508403795876966361884437432174785326069897474761412249636985597983000092963201797635978931762970028441805225254680700641166710016235557793565569532246788627550673229490722248713312649674202466671401775328393114973761732751838033999244737188822907437734709244254522776642690865851170294808738497177313826239090519748114987321693891725866961343568626112498861645897683547535145102750844148932978198322349895698369099941785028738825187008248332641267288924564465272261024380868588870668710913291679403130451793942468396306303134695419647676811059599164920886205977384336746807490798730302761258172005631325595453699904847356071845164686165446226738396747797057271646593655868248724196972771275131404163797050546630655554563465193905474873542412629023429080782330477768532323402827115339698142134769235621479587947969254748399953349953159259253988751746638064615193488356042218047069986504201388939082277218421360677363228944207562690469063519332184617374382492360410357711792978414252920329315450824410825222943782679501688840394413357974705312904972058620545867702670249131327362002517420334468355584909401005244071250482102175948928457443406307993820455715677936990508874472360013272462521433083960792163375470305183395900167002633254810926217999637037614952778914437012294478690189629263036264373995424881814489675531675636540666035031661619380002978963565783976832878253427324633115931914013548370015008368580391647327334632981245132252604038725635255265455530613436198122995350547092058314742378627924385638632504908350512999585869004796812433031699397872462677798523463631976776602908645162509454709695056804969801050856070903181142298864181466056580957644705333733635299361520245449878910482665548278799548091607148346826367565112020263619293397222974492982042902095091413751005142601199098390024743638961826357234610772182040689482759191742149606769917315182515241298635540965669924036457285797895777258084614917822313743989161974778063802000318776542671311564207516733182736650396750183508268402415874126778753057710519620742626506304584333959387833146904955272307518268653983981653203101266212524508706679512622349793854838995432219278491727422075271390719646614379491126736696924896197455915656015922930107287600157521568766999866611879626358517618888409731514704667105007628349622014542504436693950203508040810553834560394717701198268587068430330084900589815434359937032243026342401449058828888820935357260166393280803903939852029298821606095666566140462361927960061214862870894897111653667032997845843261259561656835826550928710557708038040260654236680981608843337303782842110828699810660250119545413900876451624707245893362452236504388701722036513065203576085428524453962691396204266037233344564798096187593708995943604991617491103643811486161763064182814547469805852160864982832812045426683600846660153974678681044910132893655921403608088527058716265016543069424939091608459098933274538196098569532125883288424980570159065942886178783493916564029753416242091469047203767197484381138509600830147102066728128351203856611084078625735278390463140184857856027595558853158845066015839914593297154537711626854891975024469540095072403133562157716353930629609577768940181180084534965418472757776998470512283443613503527117938899340162474701929099027182941817121901561001968721485172303281865740397882965503853240652174196242075191140643689880094010132981880013110109171583164999416177318630693426732727949536863707472019311418307367568109834408869593449149399112868268202979857754717876813566455426383720151766097321709827233556412104669445134227767063646843711522529695033336593971823550337883492772832693423740412709380850051698787970639086293602790111112336652454476384174305067271494197648138409476568744772078179138922411186922901691818414231114192911338305860063184743208760108806413019840242414394988751492488215838006150779949212584153977928270186701406959855884744389244735723106698716894641454311292677832033881705915201559706855236415698899458716278689037043955638550899695949666820207872623668452094309234687813941724941136457869536888373101698355028898689688760806460505710779452483367877374863985638123360816897820074730064275890059753638958642520450145479913847870183608149105530493603582588049230889702087975161523470333044698016568496448442319606453794038355649976525839377265451171066246069914260156456173327313984236535815056257703501055966753055432934098560532977260315786895868873594516638407722738354798236358578768895232087478506900567756172772852490844864294173862063307620663394931193823581411466066817261507584977103174553918184180516998160667328378185722719119611341228529589233292307596282991555704747634969694212140678667358461428069961167583620307631906756248317850185863041823649857149194012112898802475307189434791608173107983893918779691383211972436416061576492234666140652426682531144530534450399993776073051707735624099678024055875175737772110424722038579335602205555852975200045171670285620050342000855401855468788474478884703245045005643363196576713925747645316036880463633456439583369412327502505751948465441869526571868493463103705087216975999835157943569384542322603991991302364850091644390939746886281870640721427862074175402663537669031653236464591530272347807571145211594816507042889359648432570299846874115015804642114539356253677743199877108811834148489198181309276513540080901944154363798991910102671484404378162739865092920068831270742220513566225141651774655674365854963845639718723116698611785325304424897600295791638003729008432432554193890220639357649081220345080956092328026598167441323060715861768690730646186160182459411162835813221703411205711647617123006232676379763646348106261310113635681699198225194604785019627909997972160678965919567125325134646733101694140998741780645599844922339421628149103210117575557310884383392755002450959102179116222384368057487022850333435468281738491891585511514775960116239008995185520479872509780535753012682742843806280284273644123846005812978652623790582409528026657400016229987947608989325932371564416811844961105012256535223482964578178542460029870083015466964444623428884847127800919886476473903854382051932103588384121146022132545563293654946291575384701698295793145394550473039567430902972480921746695661996909216126098937805409156967641454759173791931315501985506273237886627572660965578974215439857874057997521267369050345144342312552282320456372990815699762347521817445852637785753806112748391995490828741309382415884627368700150997992064524511424555243762183217945547026915710243915512094492894430858664347582617684905874913566325811009625926022598385346197391624931843958243747234245214045608674270237770409212540719741063648222987529745529452591941492371188830981490371665041684021635485732263242128384852025341216125524970325685115079926346148517982631707041870993961555111461773553050872544691405192940646642888721315313433734042207259352371959380208564515570979541942881097665956654255824758385562535856913577845694481059756850804563231902087995990675015802112799393715566427686529050787934147684038720443735969818371418394429572742182747211199698024746798804058757868778468479754321806605019353669007751619516767973029575813643115093013774699339009754955118909350716479208967246621955257498865147366673208158894580493233743624092532260930121470689674393558112107288408963663305134611227720223180988127474419462553466144588496334652093438120729501713340139829570684591269713852443248420308155603575627308079998669913500542119444682210027005386419105133957771041980983798997485004179929872314678355574034333350229773364671178299398885275990123283996508262758463939588690759364426419127127420769161633786524771084357285958503076608748830374717958164823371079807929452388512420575349953558729688545457175670963859398708965342361187588141525654619785670476537361725499266438471202474266549026583292655409562280427464103012967210482869423126672577118478978369413531969790842041694203957428958087651470016843914437882818731260093988388973454249292408964863606857179041699128160765187993442071250050077061180212061334274148942073116761742394826554375939373595635214818981605301477883413248164569125575470466786318609288897783869927036948705702111959993822128187928267130631359741048852842109444922276050633911871690160916436647869479970490678458374293128737869593035254595880277545661688622142376950827917351742174965349157171577833773040405511937040872249528208434092908513474323432827698738120405913430097636124854461528254365423509752351365900288210963878626430227283412684832075861040034096771845408673829579365053188585181544964671680751668088203440304116070664850740719367991471675357736577553297513284740538091466652619517475786531110619324345403277546036709558735580511388201480913840952221164398182795477513982395543995867577430117886004333055123903324023364605680627957328927084648490890097830992143575977334467543638965345116884349933024327448294358177848546630020508048987323921232942261863296386804118234374878168379072231357728696889506184659950374362692821902823141299018812803214701778688166834057900738103376548345622481446239478968262538286837789597202875985743711606130953076015640397529835831626350670839417711915184136204710651221776321634780331169181930288182510851728718703789891726367120976306044144708752453747482896619301009391856488622559183391455406294582369756551237150027807647329819373604053197180646969473206676432428081460638081722593523638821193628702387332212114060036923284948975377589758191062257440819667471679939325571278291944969399441877396304957075659514837101821943830798941804762538593272389418616028216264349942866599931078659412697323927209229032345548741334988909186572806512440982769268749208505884408204618316413165845026312314980455332744051151506913657265398421936939127376302692206637471954736635685884785183221900290056376590386046722708791513223882926197858625077219852589905851946949957652543360001040286083317655235451020328326729843432842186829804940426358465974785365763664909725227030357976951277380534515684213168900967767088457224812446329300779039056903277071613478495069463495798211191441400298408691634280062222332605434152207694556473563403410254033346405112999489597810333834841479183319216357692900476453447406025537611750923128247771565375808105890869003288749547296876234032503425771622576406072653125421625974472046027017730018397617064881026403945374030548690213639222818770819322392930374184457175700275883034929754087422415771552046017282176175932164942222626974490431077917606652220921659919455001685628502698363423963202954657401605909038671153502005220557456831965354289105996914972211697584444260991375879080559100859709993799986730933494696213701783394817984480032990785570805248249724639981405484765097262595983737169243597414642576175062924004219920843884543301377444210161475583696237749247931713639042252490512502453691398488398951759662750971679731484232606187365126519792799531115045997194813672816232696610836023547953583784732703289048395016596062519356039851474555096407911272530425489304658579036899309232001637858872653345546707466874118928670043400580506696444820990297535504483526276036233961147285415004831375791991423390636490382360776083436687654882667617012905997856842472752366178196066106203068426804071625041379407174705122231099273068980278581188498167398623112723604249387014155722139487744803471154759914629040356623920768281189444738009854815045068952905616304316724351625265031747607476051159481692201214048472117447779818926869495057568092467867226323400837346012230944969470426043015878383562706906130755950160518120410440402091226720382422960800515773247823865500086069976219736851273041447604779831745996539922702874930763655315001904697231718051207012903114391652867659206707395530500473690714948147767561911364740182748524587060346119379854568901022263177509430172767076078900903319302862636006956970734670154025469247664582663022444949637538767335943337880116823895946394191143589855367497450501799582051335476069919633460992802117825019468112055330003638338923788674334144696124355892312170145355591397976473781164600654616136754328616508808063019912302764654908555697672724549790682274426346702630548548644850015615549055937398384583862241523499879711519444570764967574897503141466174469039614891608705741359170549116436237213851753972520738050616068494750656637678065280510418354969217940269951133702053770864164356594637963324591471224658495339302868487724175084151976255739566349264434773104263914013710150724997033898917491780002546767682841524553418042235486089463796100168850986832896625915183880232260515509394788239470907606404017264191302284293195651984535249241209758075378415088423072201741373635333564787446282161787868842977296124453973443700119171508644572213616348108639203037607523842616769051331243840431665845740875399897102487960500624637543397732599113665077482568922580990944648794306594531838149216252659815006475215042184432594363759980323961100416527814196075545393967399747691401176919934747245385688609216148712893463539926633434100481152165072359576951101630530941774063669529736478332710174686015370771181477884959214108008629470656084624139797203806060753149027097719379735181854652944863394992986117520709725460632868842457866776432501541431554107235602312487233092833802575974839504153182549362539581453312688272221018817919181947157037118120776291607413422320139113218508428824356242132205299967849774351285176214629831687349099391513888901421980466454118719298715251783738702684404893563674827053590531151322916657752320551346305178588843904320863790933551205802211528737578502967914680599601527831491905464795697774511266852940793076374831878781670583837816103769008028206507102945508710447876943082522227715010421523022264332345477818878001134769293426185414612617548822567496262249655625557507793910354934679161638287480469438714734026270800810326115923671732813509343795449526776047863059906632358970206047636632114956265086339644850444323166364694044772904626394245048680452227606961956105835460828774888459945517342748207747953034176988420239133540293813117403894110287626695310931295410215231464735813079772065561467521588583132287219366792620772229712932639428515649208893598606459582322733512958416511922246574296320263531807734003493908642499130395678505194289884891253299362768182525852625718283614855782920955283464904808517416197447216747286711453203434978048454522410808089065825845783914631516631389599942384367630145665905346824148998390257412703604536714809645463906702128978294706449254635590701982245900683539492140005953568665563063423318827020991354805061747417541451439223753136282129377355873762281050414692359025542758316548509281134260200967711190633135914674127965419205426306707042225066390958235136526393761755037031567534146527658763532602926578134185924325447073463031070814464971866315294928657483601796284361535635932561854681845095808804824256321640316706918528505216195077783680099631016834871075383052506440685185750811451226803895732186255478752752114747148841130703725425183564118663216077253266190486251875853763943895350930420501719258955771307933038690540751352173946116457265751415471430104708813494783047564214062218616517257511026880772425774881871503046400447275785222027295350761750448526006294703170943895121586767215742047258078099707878374330034932033545897500956741176033683810231728241757350630856310584862194389106710613354092632009651862797869549267688864416525639617214542739126085830172730842914276748494253748631280867952019904242582745027863622177411257116597493294276502699511340427048672873807077869581956307184869053245214320146574215100715867487069541094200593909403287770101004180116677886884064399552049578245899249742478694911914804770615394398343965183717041171907459118437666926345572159810812215687133383903217570675164356630808494539925750531062935854905076158252627416249633056509532415560159767427443708990903911406198849063730295204238145263616292377859555158840505035592599337518851616112341996152451700741284022039752127883817016326743881365155328479331433484688312164041696852035704705811564938901456354956330423114077163984841689174720415034284858345547903361354694167418404118546312100984142144782763760289330291538374902185981314732802207735527301286285065557586651548415174211263523983125201186752176117683418479645023744776855162204506381361990914988154023193492132078453511932195100371191106168614425074860592598488005561118595071948536228755905005632069947483925065687168399059473876292919862916494864361757908107609628888680751209585558310249389149647814510610391133272574271673090003894000197879600412263274192439027027102499025030246573978093640071850371018479835124845928315121356397984656848367899154292509997111109913061045699864723331249911730356698771549747782876832773532064020634263459511433937900779533996318014787045342409083881562115618487140648218911360260172078022653315165167475691294967246890690942172727073728616231853313242934239421054494836558446582703556285243063930426992777186737557141081713175173971674095429034320781784897397688386396734167719213769554609731212781795503888998597993795447232847218543560243678105517878848296061236895669649101791294936695655725555463880400849843767117541268541889020605222587666387955455728405581045401149424618747960526160176550540691165463733618474656466723603869291907954486993893169822538350675143546495512413945515065636625449204970928059813377568293470210991844686642678192204312013176740762793087353548544151471625905088910008619961117732257314571714835764333988748048110437464104679794227375888330100747673993433255136128268485440849476637695972430693297819700009592043635188162231116885100870472278597840711171722298742114139848721114758995308333967373973567450572362569202290623844706496059465853365114683477132655682471612591973986299643046564488741779576321870641299519720963857077612166941028944657856290132429950848790171970368393913947124254661565023779960585507536404260800383259475487104925577129789460405224845728955018183487988909972899115289805424747475667703603172492812942130544667120210486631249410085892616973897327501522122900087386289001118461860124364566911653776852289612399732659097740516921677582925899801707707155479612560345300763831552298536424098042175299534779821405097062924859354132329032658540675047306453021696371732735004076806499843695113607921580798560727101292263422274111469508234303081388031800675883176575809968244488027770755078108372133086354335658218127383797182234105652032087520016347661991264434332714346248655952536305023163272664669070763964901903969579722510598882361773509284526081517153776728436471966401441179178193382761225583186771877082440626758207359208532941150031126749536718205901725532589098195390670225600191015905482667322762978617672281893753005965846195103903430471348947876689723387819878216254707576259878466112415472286684126324448251323143204518850817165181310758448410587687274861552194357969063335121695565618874419236802301735874120622855459730737652598793431006236226109450042709767787659854288082328739120126968497471350915896200771388002547482588123401682004657289787909189625020639308956799842749433583466354998282564694807102181861371430529157202417558689001773324017462109017528466606157035948563095457059879821149456769814036643370644146155458879911507247887569726098993780567317094807646582251725544744436435057279528727019306951545968989139664591945101814687688514072437129971161480949070283319490287087165357092338718408114060419896453662108843448227684758070098127463797637956592047133836085187894623013630210671897809487660463440663810163953400257025751727015280455822844303483309398240375591866002240533117360292858307962002542323879020644621831648312810316797429142931654010200937069701291579724750294286662216701551242130621678275218249430766217426048472383816103005125683802548839981450942403820219606673018318355268582775969698269310405957139673727843007596221143106739340893953790229569912985349620418762588979282488185793680225522649713466416588560881343596473700225880528201597914461994990170718116497495291589374512170635507340011927989949866120513717410876537790729928557089406513668798279560421768905789677782169027018386035692723267981077616057389959295098421767956943026313093014854755588570076750534163490517163911036174025962595924819852288982179118858906578950251716287127844513626162425443026742286232017198945566206946120431353575623925294983423481333204498348772135903246045569151089605499154846166241608556908339628784644637285117690113884255417196081466071369135956196132166994928077139628158489164524193029717738912322871563148964864420771295173836356859766289806438672915353812075721990985675328670592882720347512267282995098875555233761563853340531213929440951336682769003345365930295632582472730619331382251633008939133655970040325959192312373841211284889718883515112242000416349859087119524266686084320013640633102216600537347484817631673415639573329513312185290773426302934610893286683116515621027106008501564900448576151398293294333432344216133826287653429879731011834678231272022052321811323231046340053410926556239657298357321712662215884999405347480651332391974053474236340481711199430292101015771638696321916174740648128042118796815474560273421272804952617493783685143498351380275476106419586224927555950320395461407122329119810811273007334380077813655665852181694227135396494580844515875959529503582884883514754867336335235044137864045206212161183919884018843835581705617829818317362354639697510330687388383499838045169245112848995748082574948799492249543844249239672616904798214569657020299599052069539796015649045118844097417032793659372090473462206952027605099762969007011728611763307102928289367931703160004993388149855310942304075466376535412651293529835448708754269745057447483594521781394994670362573851365035942122734231343018369881408231753703166414747612589293430482521603969318353899557748249806037931319944827161807244450895892087085250966051515103354907743834585729122555706301048154736392151601135625630551626254336185711103062098996897313548089606148965410536121556301549173212463914277289830276373895512606791650753905305406214965651832917783341345826147643415925634009970430409611437094739437856328312155556361047961082666751945433445345806177620723342652004973098362731410841448470090071241144971110292021831639669811851451105870010959527967043956455062926935367369965917161593300190829775531238422038621605616722075409216351272771138691944499313380257535728355451054343952755259336105311324039301546331802712654344715210768441185117586325977548063772350580917012420890127222638367253460033239047785765108508806487557714376531543043179569881730471981038898570013929166234694996290495653331529229144078150911711420972260902761871829169711086023907966223739343310419113804163389072786084866545632208758524639119919618535699661290213639556291822472321041245863143567772154293754340659165372584634768614573625142432996040963832068572429764296550902152186696875708317399343491265436082110284571198827748889065851669195793723994436954764621505836342542937849646462325611808352783896397885883192023089232287293543040446687339290339934555915913389524196777233734080915976833355889434778726199416986920441893791953019063336552766856925122003884095766915618410615798123702044373251831495700279771473081505894582889298005524734027754676650778827380416270650658318426765444605514832138844085629386452840867187879228971999383665831196798343527938083878823562174199393752812179148257472611054851035386140567134744052301669456760390737104333900157660968615710160103001124928930599304250793848191517305387456697799012234817167830412353433791037892615930080214715002644237268338941521057373991505603592995867172775995351844197122724292120105030599181902913727154101028476097864590620547146689507712547965776412402823249787871233314614248402123952799918050963358677166110000686494106228733147842761593218595962092127801991105110624134075568737402302541699403486986178200745341367399088769520910838244900512400701380867268606782934460088268663104835786849672340171653311071391259048819853841966961308489986433068316699618872432101121812617978205254307414703971396478550535058390749147369277023467795784822647281265445922440563152016859112343392555250469617936644760609077381245105635197769465560840081735317249092975287631415121595847286527257261454883502908054277727620646421332029154354908520221592320245078611094654358637384238763540569279482346548306745209325811449711430653009924575445847422984521579344658331374973445339512079653162899746465888023774310060237721641028592596543404589491759868871627233089454311812160250094930958155701557724062515488540149277111067316096827004875945604039307814589898039053402407088149890889727145930364243028400276643118175361078057862418705132570714458043495218880978774998943670041165927855439561849268851030081118252762644428511730575572903565410178750939679577114162697623742510793201267910925540049537578710912231356865808033658824085697418901235562103139605619654302929780614487607412255466961587177504305478908717403690846775365598140272780310606944563365450620099225756521490918339725705521538056656756650030954436774538504873794438827597649141227204513244152054984217977706270868476351680016603497192258426214439124427735514528077403491649164109980135163589554854375915761560311877013422001347038807745580087088079125164285600277926313721632218988625428786436370688230485694642811858292576696261757994482081091689814228286065109579055314629564723627193701512238386840324787101584422257781418335982813848720638638793975922930429380340371024519693360331020204345667689210578467795361826437732153938055603091421796851386750364093683997097283867768586268014373395011424248733889995755130091878661756378270839575728349911461539805978607675078221916917051478866157394715050576057525466410158403687250306685018696009036388148444283704658132341734271811616670111516617613195980453740840566651152827562935485136038287209098449244027392714915781482550438041883718300374273570751017801971305145402722388564755258177145951772795646164699839559007590849553863616638972466812005999041749895434179756447823591261790711490199183509536085603353396484280231180239086445686056843104883171289693614068388771140750308990869640644343405163675895386053933846973066450510245770432644874353159994010641894699430641147537073436859129482235587540509225616245823703232938857661375712518835960844417344700400529258194178950464694489482456467316692321526805571165010423454061608483224907117313505033121487461057246169018067493162300090139625416318361674819985696965926016748875774753839032431975025199900650034731461352519270179674881862287366638764577579426794840553324656871947497736077117646153511528578560810987287242441799946353372392149511463672066221890513589218952533130922051200240897137277382556433111435666675179901104812887226160603287752096755036434758223204364346604134013809006480913955940306245010235999302271909451192182951386090104790504384989900259862917402157943380454626440281053438453912228536723712632179974222431195833036601393096647295292415986401677434292457725881275649747930301322647404297311845635580277537619498461183726789326175436080383493696928486082530918967954481694710446084770245773230916115040008098590517961398994318688542374714151067512120137952210910530914840780602107515666124648032265184047743628958327878656604504515347425071104473591138164761850949054860857247395131758528674870787332760513940319910693707951824781012374664390036774535692043524034612298032726859909637200679429157603930860088395510836098377863360780016410837773539748144324864031109397698790379632596562735394198986743292333802821556401340131729077851572206534699412498279845375080771969090069613185818347115201163010051560311466320443085673505925064199760701525295581120527989544048327524989931745292372660741060757968708627929538034684084542566118320556112881937578497803283345912186660936633053359853634776744247780564471074279527908054785116402756418864679606367774270022150254399338245893765769514023582095522530040758036282322319879443841345973386802942337532536397888466079251967008486362717769093005618695556441193714295446572841356985194611085279514628973502230951584723882726794486400722916798790165752161070912700363559366003131526605654799444811743880498585134271097852514792351192024655162402128456855915497622061248759632435131456090908323419828762160076363983172062320037549238130418625053846593941744495568996745333856576255665910859564210711409967752896348715764635738961261400571616687775030144514516472172979221133340819668065117754213639817234378035633086652625151552582191328328063344359691293243285487638008724715512949641155392717570437680537226064859565018393304676798582128669895506281161264832928500927208725849078411138294844425949621828734134472683271060176518880910511284383175906505179834361068684438740588757520934128177047702097204852323031112872919141103986909123392314311687724789433943363517290827399281953774322222650443580324336686219878846150210978487152123912139507977969658544468429139283513436155014194813358460347830640706666089937547086335559320699710475032611876167071810081476621152479150240802556437794768652420979839469188649926990141624966152078844810076161376556540159268177816800573958320611205005085836002283593141600888749350626841059747286470346453725507026957056550025905172815861009308327380192476640046518822384899314859907846499535798067047344784717351989289538133461446396968637904348925470300369143587524858476768846622456666293927028158964268835228157041143959298507953659253076849841050118857082319090708320420370252853819373469125895933908724537831445659667364521828242621216349925603868605460283178124674106502326146272103404254228098980483686017113460171103863221634317036711849032684920784153486785312781701482481829163231357743841808991633741695692325586092952388542775088895443893810827026877371114065768667389528802277018742826986382966152443209284717424507569110706226031138832402057506016225229358500433329433816715515982582157335945139341195894589434538441377523743606352802974879419896255663308923768960658712060892631041403953588509435071656546520054845892966673233342132728149382003862724306245588682429748401028882080374974192822748363990663983388159551745163435746688391662063594125848410960233581806635612295244070260445930202568149827562322152790360271611633902172113552327723181971730889139093164469744937436495219731515172720022331295597552646677410790529289100695439140443173137804689148859744132370842563794598654524801759593655907541369400649544764251240147296049936412005285733645702033143265167677563079559431344334500615988857959206824860804637347217314544798220483527134581071331139377579441297631569541758435495921106529062773578744075903305328436121267223274892684990751866593246696890029734675908189144624804464244623815933494129083304739704923688113206417578013223255169328473650239585932325871763897747120394498002095407717664666522265193593651910382934733031065713525199011366779829174814398899593450028720395955741735305886570578348271933393362313123986904276188999695852550760365085464235720839142395955512860028255512788277077398416414771106079567938666418867361230453733675933273093225688428219686737655992712638848904194828534328729883125122367912826813314112398372895269465826917391663776393737401437913324976275120259669798169750034061688121229353072545944984715894338094917924258867391646051321833747121194613237223833298321442469142540897755217340063655576759147668127108667039028107136661474077497347646252483729176557830726251836121144098047026944885043721882543089141263827819457628939938304894096381768388384836894882555576102907607815082622421658535337064585401456104078141027802591353103938682152806959126838090242914210751973956190209856003237833574230360183847362024088863847008419155809008346302358195258730924887633595694193023340537925498946707646643733281413444808034303797274185465179761068806826689061355125492458463606154256724898580131389271105369858894952901298628087480761775963942002734508663618026342531326673132008932794869672587134987057669421104245405663413739832920978271410971780384747429734870632479380026643233601176126062501662800228948644695921631323468963227515648503992713539319209300051879015540362759539606935083990992745267584802788449071767939475283514383224675429577944699235242093167196442777702406171338761634688616706532273505849305065260860741552917711474298174999221126588068999629223847830189334415235511142677296322161766298603023041928553476169435694766974553286863269665522530582392649907549084877449341687533119138996649253025341628248797020338958945988532524297557102021866021110727484940099067129172280575382780297421288205048421937372453407356258197160115700102227062479645300642247980880239254041680003416520982575847959231409772658462620035110402578475041382229717795311095533778235888655406311068852800361708537744725028220241030796883485757905114013007829708322855152762182540657888227260296187539447762811757539217245429248330847971474096569134977253465369561576808801518782312544956459748792046300671520413791713308537399224026425328979415122272426156432340597479528014986261605496603471191585792207871988631963872735133066750614709365458666925400359644372092597063579834892825664129770087959853228115625841575890811950313042518059873820212171477531210699261217325375523230616038894548991931365958400140929765144791839221914336564268878621331768723761410586999013347245619048855549154669416978471398587096340052129785770384090077218763566789686273254868737975139567466994431649325261712825368208857231935787138494175972340978046981995164363615073609502993467149815259195814927290874452055217663835530076642097002570516216109343181634689059872863385115613465359316373323663912372237080970051625802873828241899906712270763853120892185900741669085374026321006184401247054523655728667817621530240567727083011548166741633707264111478133667082976382421208912386239617030378837418159453330936754779924763394495641587221241273163715063713011881354177208033804506430397785326375796377222645694033817994713831851388726549276240312221809151754993766827232856606835308593427907197710559478299673616311185694251849077212983522055881751032996558863949468955444821893969939437707963462039067534522557260508084613417245474332916756397637003129969098079651009060636057372657030273519745033978749204139824003197166023541502016245756656414003007179257747036160374719377456675534105122443132614366646270006966813960205777146131194059150962644941383945835569682629361918337660500676925302773809330546706573787760984002962233352662369205829918646394379315466029010739527085313875125593205850620927143605459661588607871295888824165448248256823410544425480802832143741164061468078351412853047378895526492730339788951016011241333735220701752111108647978078762282799563279462358261913777510442369784606251334674571070906765071779811882396388983240252893670540681247242540926294392446698861926787143489225613886113500373536796490835374333557766574982406059070994284701210280922824469675332321305134653922551798085640594826843974132132025646455094961466405734064335640703963415913311197249065962884609795952069422847211588887812363646833059298443466051532207392071799850977488498242197422047338160241973465030903946817969621361032970000122005016817422638256555555563237428866126763242568570318985932376762086177462727555271051752756521402013870083951483509476382418229293311390688591139027514298209981880648880608629988110244162030172081094414659082785689371437727731063363322303176782354580777341578216699816653169598085995449609190350267052209305508731539631505224038916668788361612435370706498033360170279949598414518360303115323067799883387089175503541504617630962912914799732962127950428799542023496460875038821114299221945682702096601811832434184723471275105919203596560371364007367856680924143747177233959095413003965094301488974329041658688374355525585151552587105575218937868189472028760322464445538331593510573674082769862798658123291168007772653359327133504429587219410995532244534026067323556350400802263763307867145987775930608199974582176297985256037364432967842806446100644816659582705144987312159083018310158983565978879047232582741731403125380905525485541571340451797608609902455065319886452605370828084497967277214722468107099079245906518288874260497301712802301705511693548633292244730890439942915764621644489230659795466004639866156575194294402066256343816799271534285932761160715556679563889146093715327625172648768306208835320270030339542878887536297437647499605708105656012319693987621544674344497994337553775459299018614695044555258653272068022683140293782614934662459296264688902884366008528258490279447098404700821333253220131362274404311219849180554795108844236629487933509321993682933769667420262279218987518731213001389100015353761575221325829709211486770486562782070053251487627537058445961934538757836509192345563118619006156092152020993941351653082700778634474182725421372884977812490992139489490038150891516931117194790172703223126758870937146165945628523936108953079445947417513450421309253780055764127884569445268847259619155962343445542615971634660162034739855917412247915252168523539142152074324660526662854121858911468083991936300750246068806675362771563975356983622454984337285345149146721432110319635456096516879194608358639669611847026640274896276990676666569241238304839612356214185417486049873620692000441854067142086628574281121823163718585402800802524403903842161152719497411459837974502177600280598131594318823895204173010909394849126066208286928781049726485939874059355883444226830438120125963175738937469966714224125644503214493847108885663302551877374268982933397011652774703171126228645406953110517929971255779931595955320691693431448167616169967741291070873679213078435518308668098520995315165396154114767303797674419181692456771461881800967127893262723218545017153658445143575177385877456818530304454091398622133678102154360053727909432336141159439309057240838168185830515044622568082663464374947754854556804680817767928553802968597366730742928086242090516951441688307888488414495689284737390441159559629352404525472443755923799335952159391716961093678854099487528493182804143623166888644957757658633074457273828667953340646823092079383487527447808906480748567913622353286833927486433927093887694017562991926225750366510321597663142412940892131610624220526167007377858074738227908101338729170180680869795378790850960261304432240660721883883258053745050263782051607437660406843821922348485542343484720087003538709116021869809420532563459083129375091563726771470142524369037051342074865675760986037891500722244878282516480240237202442072128249650661544417124856274431565336964025742066499688277187917019793598357561252038340410441795704644695960478613478861290130750305337865407301671843458890663020055902086236264411253225165745629663547216307401739668217680065035019205209044347941170969969636103144132316927960083368070696487413980489875542395502241211935451542521615165947015562327248947352417231547777311456022068901115627309911365428422965677271717234075011439630770673025026103019881581625235069587393002796003631173089841999133065368282826916026353172377788660656406130065665434185961741381057006089946692079014848610179448998988012533520610250807900867870181804293551984920030796782765225547814560459489166680500342099928935294703610207723258827977720574570371376544831838976199778768366305287614692388042728185523144764523754892995163058792903978510378457085716193311913524598585393124284099999974338687698923153773890884835766423017927230142064603743437349132074182105951990885343706729078121402099459471832002946419054725164128958117301939042032717463040692702114225695109730287617329537804117619292553152770301766845380661549422476005767748736836096647342422364950360999769826749675385939856648992148609521349826656395605174116191600951674637624079992188667218498652024936040066909081659947385359044439932291988636385569076330347505905941948916261150305097891764259139330563906065762395608550901252755644180133215561553031089243928819503621022422640122915212630727510901604671067319043180571219999241365154491648128445156802901524533299009677669688199023205607641382996447072158213546397103524979972174005293700468399772979197735211020026875092178638742105128847526684720747402120830435405750799956192271797267539449728767774218274148985445470823779500697994551581328335687253318139260381132077345732975766166643953029241598180644070795308158164252390831389203710374681182566600893344946783249784446631303371936239704890573984912925194609971313007870277121581364537778541399016470178151297854192979950351649830171621553243307812821436888856555694366649944955843403625525048335050115256056192206991695614279019542240822885633175006534771251567597605710652448789677383150514667087038605599650014055383541595360758442260409048508041266315607970034846762572779505425435002872938250345944543589412358233294427867935026953490204820559465931663056639711909163761931458516987716413495846846974831053874210030923638993792310726271273978140885216945901251401671295884472766230080932057671864471703778550103881592394139515494057071587817655229583326945130699026265468438841178392002699681853484891836023332875950175062591014710067999816669100236341133858560772844492803158200368494285773463875844670890752408948503716000105416064433981746442255832096315527499717724333411381780831284440188011469864793671434954697799480883148762845276111716434548241296486357383308964056042553899037226038268605028190936380058797719665481186281405674674684478082390928394088974371797126663412854633026725894842207413642262212415064018759745674490593248986433988412388102604384972319339214303792619497030533858715548233429809454577295866064030774932007388673317982347649023079917119896431731039656555578883922388285002788815088600241405368985275524680059509701966334308542241471574833469481217056347558486580742630657473999053919779624892733820192049175506508670503601380315365800143096131997366716308687755212234766247661271899971591717256862929479538547724995427967818276499984832318226495707215179995118498708111206659292958141465295616544655469065750361393926102996192656768654558610099455107182174708810927378687721533829111997016767978010519272184942874640036385478444225769645726406583795504568911713662091410840058649578420025235825750545562575581825730886520558186737822819899314100935233164750937793146297357125580424145537170812880865291645691327655273802071926585805862712576390070012299469327730573507627521972093848465028066804945193675251364176027780129903733211100921620659069932452720628761713804794664404358523675557461458081920813781218855612884379219551790517684784406962799468639573428366012210828591681607025978600629477202351207895874028677107562188121993494548000970072409430975867876104722777791576569714189416309145488335420511993676947184148910487628533998186635668992977649915025512614939156350377638207357940420522352184548712638563649597500957495691673391079867233572946261099715272076244947543470569647676174750293483780404484769330370980344514963344637732829766309605147333958599672100053483060902392134020979081532508802560603889337645194350135753267967188437213439923855713078165478950960612718872412881496750095100519779369144907086585302258306913616536201172076473682011230497702459065076806479022987203085905221374456106283074043859404964820924420445865238361849556946500315806793327094140795477277023761412698120043520902906355465752732450915530429086912112435602864670424225140072506042988243977432010475823817824343744208103218631247338053069415827961201315427014832533305833795291277065220598345316037398175504246081734878626643813963606171925534164846920914807666219383016833239064754839758407989189193669992040171720403294331919302900962510821481874325877413505152316417864975588108310502575946927738834701409128663537702033534120454733212363538937155757295104948356160377654071127750941215516707247965808621926089743328266458040847849173538970717901708190546362543960579002502105290121679403631121370574770246811806407983255410252774791673478760328625177085987440956073803715793600503447742499897259131991541221710126448258101671411828173438641799201713012759912278368412276934184815271315956718590312933124998279735708789886060388477550845973022551972909473027742375056126997560815405873620204543619457605647804252751763040388021276711078591518170614469991778811725021389383109304954637358256423717257950315816927580082225571037550504145175990221036323740475088203236131360257438197189655038657085750739521691904257165075981031546314817274557213973272343892131827448399621793891409722546100184634538647366846060766996653628478271244705660777129671952504857531384532251781123828841739859956570146001100582007353277002514030648412114157887089642407338622181864022825683281027525021569623018998025543796030254470510715684768498672075847633342005913838351838208774905954729187964367038660447702726694172058427380222946296687964894398192111825709053424421844039743708933916436193455679151335097358975634581549822973093514854209142331827511749762524369446202760599543459605345592935259456780205893122787174719186688092986311196329061943686021821274141866774369580024133434090171710315691825809159479300153165348362599517328265256189571026135461762522073221560994610738025512806905801557361027825721049961524641245519093225413905407476165978970928198658052997651209918897881373846291775019969675753919386745275397523294861766842956145751892295720229951378023557171549648110320863853034922792568751224994963985612150817466562574874193777057108320788671755233479543045376532605472131303554795799392563863921488714968402952956344692058809048351873644713657804813582796511759762112816549019684666906635919779470632366227851537965409893225525918577935575229142932655072499236942209080260014908019439565246680129079459148531363306975406850799692622794542570925707562631661379992109635716306094164211478881390052531076038547732991812529968126047389816700063531285757207177265574717238413700101448020114034297447896541997619992844951027722578742336135282547863107954853597804276010502318773882493172982469100669147463316210853923718176094186450879827008451245755797610983246203368722068380194511032688668270925368191996432339942280678756818260879341531848762625801116094270734550173187867863063248342050036271797262480341646446559567346737535665871925922529220186925326862377631793548447391930055034445258940504423157644988183765690548671568300021055120533844307993628590351251639686019113591118127500537893878714175749139080553518108276207732429826235066070963479258629033038216927299405231136458561759372565222051814958866887234716854260917222607489204865476622372730903436674744627537674721688005800528693799903058452497540194382446664842256813516288944304288235379108611595324889515364899732093970108096533831742356832203567815728497059575106451509144624971205758287091117581133548876183430342076882517579151890383812426127954817020251732591357663171769049546415561925327883020792002351767532647330543624272663685979508128561043275383973931989068272382410493199106847000796191911879350816818349496910842175275191727400758426005772453678458418193740546443597529572514693660328700121132437955823010886743582494972125901057901776376141867287967505939220303107661848445652084546285460803784733192579931841068648722297392374815883662727513319546355947744264118428467518108897951560159016156966407169161884780662676367029609853085175226992565054015630802999822169267983673016690682593151038627621823060948802336483067576995269862862869867595323159805043356540802088579670043831194941415770015538711434447596591609247256473954403007942398489419770027485150050045140033680170788047530167142624800124611260175305609598409024139624991504897890716639332870337390202001355632542631942923213592099144151214943561910324685894328400640666097228908565591281602438167163037573110552834159507063455895663259629760413823322914555471219252668915642757739477466624277070414691018893326801929752769789411288293577747922872728277746812400487752958919725175010785571054643725816644059726928756212969800270222571464327764212920541241353722248851127430007663120567866499096954876603917242587010027893261420474172752638598007945513645795455404479250137650996609437911122021432871727525801901251198011506223947027442454838946288930871874874971770640480564636150071329703233527413775096522019267191859874571466614881762568989158514877433574898836549887982087782604097705855932788833664939316426635439089032096270436565008336109180504642230710607250306062506678163840523926452243939536518994340222120416294510571514233048353225857339368079035854306177688664002230751259219539247446235311427638511017442741445310566410825504586072666968519931211334409309340372078307950642082992467897845949227682028396027102335842979677676794640445946912954796020746611423544462264733345869619814126779914628701252774991755941668462611555389183175963387420931020027136816108866457656542153425876084491843153354258517448293748951954718918709643121355454656484738865185787776957301910156420262842206797558086227431428777460899207439518197610838093416027277469450539155433961281182611989745548084352740101893865891238901937972540476132786808065932614884751791157136275984515236351412832159633790719262271985930160829284822011343559216459344931726829563853783756242279466762293289650720983342312912376480556816414715571251911316690252226576692281288385476156493292689112484664882287640705178330493797725856644337200982568759581992035145077527101199717258215328689482969566446801201566299153841799307399430553694109401674886654948428110612032670710897270766609408272672426524219767183732459497949118300733053585848638562986215149081797645938421678432230151572810077272369963888285389431953216395974978733214041925286450143785001093700204349224686065159161013738145441979660003951396447150180438216368059958214802077078959919914929062964944719232378101386518917229602978358472615682784449895732115881364016027333775790728144216866685632140226193933260455884058602521779324426827393009180560942211735006902887346683424840530782248630675231692736819253704014813884545954326642696305397678068904128280415077974136828232209920983463678199057940878566090684659472532781478125124340609629316375877411853172739274426079256576973458750266826108159751993453725304968741983038180624321787268023879583045883884407281384681190919460227680113051785297571525813605768704455576617230865657466051284874104872562088827250204099717959075205137544909352133163824483885208322333511279614686065548965807913746269177648700642005505866701002408825844907253846997007114525939881007278660301431336261492227200784810296751193397792769000195485260854122803331052139631954548225247572637484181664259038626757194160446612909714682366216940407822187159180244475935136437185404819210472483172785653928235143504989888230793127051946592064226046302072948806744161126920335673119800242234172602233757084804950474003240120285444417458783265394891780730329832268232026171463730363248169471165814900792900806205934376326171193953279225981517470553008658827942314490070936930734626342696988747898596041658631043236957336562604460898210824860935598017505636486799961567693677626494202695317199662103595309371987595869785388119953635535524157629938900441283448380394435278391857226939989235162809714630909096496727200252641457347307549368348849002915113290960128719375085628233158351242984726338881816437318325686119806614832793271622036257510476083807369814841584087864810976545114497019691993556087085578646006324244391389426129439585722659481820302766858428921814388298607646535469973457856730108585975850615308238509605864864213030112349784037554830177885836301535437238812760857300844428823266355528569737005321507171771231053700857163686062329094829423221524626390343321205090207823173385688072472288584070274478490766014467292279719244546075715837058206834496592223612134950060442329228264046888933863656860540116079595701786914665165629104663371811447891523221479151216162039975879950206749545935605179849873868629780231086355016768357030934309833623818206837445248166293595546580944252472471501493045077583348947348679358781187819352022922848132804707957684996135554520141696906547487105395629453752746168605882198132123057615075830496505737562052485979291630371539863701922819720899014062646799869685783779182557423901376566745124934066077499331260805659918242006744708806770319757963850328622548127391756341020520668034516945864770081391775267829693701700761273919840227789818541036378649450461595868817082762033070448704797494180636270863688061793545939760923228296466102688757637020587597772421554427301203287313021129447052310247280436871822111049564788618005343198544844662611064236557614983023227146586479106967989165483980887382826487245502524968603757431143666879891478040351958431179816348725585740275763404243430728802318174998756042330226256471483827331085571191279227313115348712620804903369330106571020680816184821211572779064714907090705384664993517808503709355592433518623565394648272162046272176733061698756484256327694138436699711217003966835933776889448387182770659926546825629883254700143388027430267587031466667105632484413391566386767462821754199888162115037795198743862001781307189952867946115972489943804614168552186401468853723905460469012440353646627147372150723270751759717235746584404147289217108750617064967123303333861977447479525151315671883025250601273243200746457092704629731193338821055996755508582743201959435569279377639845696753432471790779196051266184647867273595942776933644876977134003201834991187865685494621214322465421174446092630555927369572794842914281131243033146885440248493147972736736484053631042493353666925582681216558022817248430440685587905788172311699617259989746883094162369518706530485384122972002644810390616616558592652745043204360140886417399380418313277357702491085921002318510615099394058946789154652452670179987070416390973162159631547828398538138768024556237428927218829534844369822581408102522696081270327385279491191927225784379298604382233103729400831757324990793035622738629056589774967195139716306317489526466619598359770310717343182931532555194605366070751195820775631029767649393282972878640748144441339242632722255187914978628064084755132651941378428121237887183103233358704115589111162470393905279953800962443806517782702834214857760338512457766701674391101592428703447761668813280465612432684314417587149906155181895581588838622866383721723226799939179739784211054393052002462548772061925124113077579331546680376257809568519345230155037648890723059036434767172084059348593908694337222596175746019941269787038632964246266039560875956092892338787374350987851910268497415238109813069654653101313911639049904176491542425830053268873253994416782878470376243178726799246936238073756541078911535847931283542275958430574609399151772232589309796649014861921800470166018299411846665755836463423051283979053614640112786804284104085309513726047553029324231174798848269407798176983844498730540690443732535844963067572517658435380054470442089551868028152973406796506295668228950151040804621508330596144758861094968179876930996034662100195292861561912386197922461241026361562252738278799501599032869113808628581163154091739140660275749519786330728828066291342704154571260457412220151387544593538791441748776849364722979975728615608879926320330101971535861997998231521083001835615848689452531527206624113485358192152403748023304573222533454052628642909902959324045972679858381913199071650873716010809697213743407524303158243035102207086471204771738199806244605710979653365104302653360729212801723726796629160144574406521653553350966291338955174852938071746143215297653887451191932556251717140062134297187477993420371988375531005592130201578089719584310647039032236089030129654045882678465803950226497350775465184823841258868470086888788227993755331829819397459181251159514913900024714353414394057618201865154470475410772952360601850514677665791078612461020779517188129985061675836847275487620741728602188340307060895760787995863648660973769646990601957163511482201624637920763861573288704671272755469410730221507731368316153043810078025215947441164675965627768704796282972646695795109761385795037685820058445762399064709885888326748274873132842170537644102266886638405342903553785770372353784852947559419518598387657272552193135807132421090699920230171180240344770265081471664787759694528981219911096366288374632914355620452696210157115244546155611769205165113377610061583978414089206932895690474011467453106121545291023930503943357603982264061553778017702057422588035657642751228093161617483257156970778324136031354989875027872643708058566717974494349208316620752477352716821379460738255605428073127815040321658677244616406208129305759891027094552523968402590576775427934677775744125122873645094435312004273706322261167497483139279900798829087278903404018628554910952094329982178679735403052179631813470419298909053932171010127827377002996958358805482405573030228749362568326411507527110952554290793356820782027366691665880437137837702737225003192333691050292363672328954924061459756672108272129385085366985557510006935212775360515144901685282812986158925110431668497412089292846602476742559501757424353708350413303779890504609928128042099785698423961866464227302845951601967304116874546829012391779021224978617694421412970189355215802108713989056701541731689818702824541278342145630673255064095161047226884011378035729515225854039857843803219052733342971425381076346509179646825277099190907888612697791832242494527638049251239112791068522976439155467015447218209905588063795816408808808078052240233249885566162843040370652274162565033949950638251938603279766898886750960439943582855963316533657372402376677767620822582084063738312631294760253664074108775093110699395593816820897526000330199447764918286841101537197188455587509328641006154274997213618487507313301942153800604202692520637545494572549343233741575672706873932944592083030566379829434200355096859863074250318826733140134452378346245667546599135793495541095784094708175175098533755092643243076962535140232472572409913571679865670628550972234163915363698337045575909769009757340398348555810059519435731670142777643441637258785761349760586824822820747102948628314553206619897761853800334446095727702219119077202003566932060161762772666497194400465773302741865234502348652064260992045639016546809483883049527918065416620357108766628896152209557461895130724313684309334841868525621812771881502329206818786575012282479344092721939833850599671919966007381158774361037748524956926054468756797998836718807302387482598819065925623830255905897005178436184416535596589212121532076226721115770256249727543562042718292940080569510601968549779013130784636228170730193696952173891772330007488490301826115414206164721096175247042028772828110587982451579356781521996419805965164728922588305751030426952688957585048966986375518976531921989404193360871368152812955776940613697110018980982883619960248983018515204924951229276914628933902889631917140384202180386141494530137148705586338941640611207318395919725310746295059435367477123481162937535366823909327210374781835472171008426680620433428707572800050411557161244828911247827051897734237590312960602033255435468032775206081199934537137026976983488247832747439871853617895693314718287839199124104663149059504499829626161571092429252349756583127195310397256078353363587358334678090866324436480792822091991410790439302471149775745201657257096828303379960950347750097255880682587061577240144267655715787338752717399700363696491465358327340588350165938306175849122171877462176004411185461672411791500863735129816622051149055238364561124581534290666784625132807402605531363821849286775414001290917603057714589811625868204479892735338266620476656701375017440290917260045291943050739095913073754678129438663064604311853998382426235798390313862887130047379712533952804556168483474590482626004871747546548907652017197066989073692998633155013366043963342664157892192604790371425654792386053240825420074914625015564257771158192307355216424015776584716516443993833630284378255548423318008148352525504074955414833244146983274051433293639163406746847559811874430068816986287202115577010959051572692483541753378208922393144356981219361551252615425405700639719526584040806309598865956614703538671760419999082022100573783529550113032189306170997286682709582293604880622926457524997250333885758358346160439918143246576086173016123180863158520308289475276279249915727860735753155750164981184385422975675715559154188573487793282241274199506623258568568342165439507345383485944866636701052862262526018292766438331851872544755407864101041728794585506425913060421423754292562575044733861640493590665728285403852856805863659495515553901933983269800279053736380281559954900286300301701808932079068539502398513970000341835614964481075288128458834162033772946990652552203099453450226529994775475752963371531797096627017238666192763453691453064733116470413405487612708951153478905256400079030114406707278792105904441188433430147461269776846931128603898923795683433624404748372042052138061201535523640493100661050686878244246627713865678100860846543495313123378583543389381387554555136622135855548400239417645642597661615999959133660735043990857016508230326478224519276658468622767192771337421370801467605206548027217023435339960565330541807081786206968986249865544940934957560211695629686001838226868711301449210176830183937479149499441874117167352862391918048674432086962628845678581086616640580751672121251067486142948542048172762967911265605285410380983116585562034573393371794796618864906597622008297152562404355186260224425921162347757925689596598570171100941468074760176878990159853024738983159435167324536799638670597724327708209598389422617931473153520311814946306535912879966057946278770077591408151547187451006723987275863253730211793072266210536333366674075167837098645457017207804819055981470527128030223434150447021950970021569908176912518885804152955651364576730246564645430373306547265111767568097053242961313957483441941132624875781850307936636268843230493339093169077813775271753567571301882952102505029055645362044990693099538927861235489665865042970472799319421796310627867178415495576672976069291871450420066249374687612039286726097090021509107397963426022267132762566955206236071717843124794172560842587303390122245235857300742292808018322020162117030863813597928441071744420865346930556591040952760204698023105690635733867786843139681789658316294340241669692487781197400761525783187597888578450662325483459390430445023353367678380950758668887982342821819538793544133052664928913544863508002017987867882818825585004277729325615177034187073010024072174142880532468215837689874811305065447727318468681543836404386932128769002913790886464615980279603994061181072619712249206205044653612284319133644614771995796663152158874661132090392443479335320853949288766060155391029755428812411036279287796335259282515724159301074030097811599171002635544093380773181282820793290945261119222327257293165304908096001174072138497397816830079989573960364189902985688698457246075861247973107105759364375915355681226428967402753797850027249318671919151659518229787475095220584810581643881777631229712341212814449100278585345586686474527697059373852744742040613650271255070450179219487809639875363139094451368380162437305590758165464340148358781657911348373995269972115549524012349542825637932438114890723667124066320987264838539398450535836058849381961722502292560195847485318219318376315894886567776555672500204638290406791509267057709879399296224208763162935553136318305637121129406659217340637464356298850308602161266699764447893517368749616894092114367910816368289112058238082929257275438935312485969808900687567896665465356231015659658294262689840302284345006709839239801192808610248001904072779407630893320863262974139517687865867343871591370956912422032388457722810790630696811637840674981447046099140188714892924680095011953863328388626829083591250980623871488969378987962972239705658960673447784589131754984496204585089822155962392662756837755932889788522751826257185372828654242386690212168640620205221806674980840471917509419454602144487536576842684028954923074182236332765404776834673448049383476074847855342149929415731733655997283851981759191254921738062082221464270878673368191983975949889904673527890370069398084356738972652567591500607375560379163586963375618025465418518425561119693426068276230720832411221412514216001003737913940124297532329142242086134606648864351652708916451444301335358363723715598050849122332948436968975349617619989178544177232865204771928341924932905459806276249897320849513347767598771651929626986888134511877648692060818646791708027780597023707429944343349906089864083514335200661225266487277232864444357617064446766040022483409565206794539010992652446794118869668081096362271438651696758945588289720053295581208940493007443824015906098337782073624725639794270602756746430035774260723464453195029408427970610491452958566465480217066712489782139606724393010628022481611207551280312425525282043459981744414543814052608337041747753523121170742153041202180548866282969286840018633238495596298588258367210429819422045366280189952562465296785294701550986136308692353699833818758135929253268617209664583635861488122682402537372243294659540836230888121315030116470889997715249668723814298352186441580531696740962801929656695564860497407924485983123181619356921465196952588918892486303346466212099689874014029951280004738960298511350051263577394910340511719364831019616878085719651179908286200216573423098042352830731692884617999417727040135502762056008478144574244818889099981348454786521683553021350429768300033175595504120186216049288426578369849836749729679051211329520345450269415991142199773270147402302570463318527229475612409549148434439645532962883690648211694412727554659863182217765807336209342633045760679249551402775806184947568383390445013514918553869012557532567632837391182980913532306522335383884975101297018779570568083555616207086905292794291907364568874081249322323871615858320316129698186475733973090522393769122773242015898401229437556691679234538479579429129349825599714020465576250656150485787934991268180646321997424503640618758087097549967450024482663750230214156524403067813079993799383291219849836582252928397775745894045711690933171104823089511161069943429858946717637364648023358761269775319078783982852858214607279970302449143954844249794192893117358508215092736206401848236683035378263127616824664285537959838480329936758548550427467935527938294542435757220626080858423780676173833348261077983666314367152238915582755413445158827589006869241450040358816625375504587587749385007898756607465025221175113058768349955915993340511755751483595943470713499404975752055463431344586068420070970629586587896026836007994395028769374306518209808039529390270593123533410235644026416339365361040490161500948435823421937640219510329485270140395136677793211212932260462806164095310874672185584634538448711016577194818784000958027158980283845023293278786875480827371161406883341622461044620227235343883863838092668068103193674758204579283165786750124907986621786011126415340123788534147816826334364681144074621742794198306171475116857705437813520706710353352871938500450928984123453920385266012740132106788884547027927032371671079370288802153127601103405624146532261241748466237761042306278173441272844339083784035136238009381850428155310077751900863073439815414983597187766826589609898127383214210701646802075187061865605638135297086459765103590658397169059753854988876455844561839887569377456297125940570693648626972407777796885505165007044628316121411165300221494030750093938376448751068471582177585585282099906986684392623107664072563979049916261116066900066682996626646689681075192762119951526715881945940075683183946479531524564117872368378176486817287378969374610862101847577328502898855233133783491683058473941320280188316099764425467726551605672345268145815202145895461206873777563434460676981469232969997140404421775067909247651497107489636316796667908445970442940472498912398031498587713724364696922930504752840232594725979772435193353572484921511930632720570943724204975859902997634583080613806939654340507368283569555255663415369108309299815456577680179482017966325596971867717285785628101410021631252300122216476336372500985360436838812915502900139586319597848541385951242632581101731591789492393845996156913940705028911110222233043776864814150314408542086512348270688616068238766376413450454784951778871148012379800541303999561643426238521047152095638307645755323413996102268046557913497041125973475971515037659461701920187029807505949289291142013361461228364511720492441459371769824009504619002576369474609778786553061312257419669932263650085179550376227054965090366205425879269029891212678483289010361467393316859611419603340690642341979298061711401270052123763218332531160878151073210801130563496899959161609014154437039645725241453551197343842858368555338157981774838428599942571617469844840075742509982974996446737702280675664402347418643629581328040474305851839333584490877696330338690360944774787704398782831468042470866928081296392078613065311846017403052802003040150502405237456794396184270661772209271691918710924039382129915439895186912029045420615629426408833872572957684961424397785661576138410483509736353513915872731054497874809459731795793785315268889259206541463948917043889930230973434549270687759046892908599844529657502756409499376486223398601632951938987647541331472040125226774091617235547341492793803834581169045008456062567389877097204938136221517240861357622768877083773592583033668472844962652800095468148515303181860014689182499326824488947893775776806814331527731147985575071612805602729925893650386151122664732977990004055519928647822071949954258122044483988822789207956749489495133072245006612476111637124498682211560609462251054671840620046754452760293139287474640476435832804587268387020729630323913579897183630184724744800373747933836542526389089370223462421297464981638024773331593283368361997054769547026707103214904945256222906968973743505861516856698761510205040601827897271459735247242049535197248695502909106269890153118124467778944959524976549418245913158841208224551827822562433771570603310695521078174606390664986079056127539902498048777620580041780767179250451951346419817709651865003497903209524435950387498371880352876635059777181618114233393516874439496526214860181159381173318270138784519149119187065320778314226943751892535229110068618992242663989237168733693864937700451673854472273947401024761729099489949643118731718346849542422428542151454835008260851458254476024177572641013472547050877930758899152034780360587563924285276371430481559039604660553722892703420830137589774718734222214656037651641921671058893879478175492923369081416923597086837858171128179447247935028567176453821894598923994477634330256180153372237353920472764854619021856273287953126062353274599525709871559732757083888982763937602778246597321829481760259071712880894714907680243779797457985902127636739648371609296483792471650456280098044411357395795950194450799830947395732057053816533908145824148196723364229679056426273275457835361282675667509033413162557608830713667625190680144527746922488206924858625946322027268482554065761736185979896807251612138074038272612094360600834549742114426886156675119275647061553497099427409566480458052551824565851200809508545663430682808984726844808729240520530014203166754663992911831386807411722249568287119663036190084194397520329294596309342345206150944986086538914230937494585954995971712755003932807883571635460911461173717125971058605306758474714336123141135625624467091965917363617684701015098600056778754175346503296773244911337863440278007651171919884998462275965935078578129168815151159797129755943823253136633033924301613124258690118148435408126198901980276784547974501388249887835942671997760679358736570155053813884288608915481503669862215738011689311583607062984294941372879464267956863127129759785444135741274737476687040739097676870323979184693122475626882766677457297895632117103528252360957280585631111545862899842989271109727798073694712814729162635555529818908269045442127239695120430613600226520063343100228100033699126161930838321060363415562553695234432074384727310563007045543535711980344516290398879193360545038792687661258030124865596003185348914283021401421636648796161937290641944254482126168382559365771764446677391209619462792906234016825028322864805635844342179139386710140664120097188362326851825578316987998412359700813377273577099208131175217128212473925383125344919918801205364425250944746717975661501008031363058557315507707288402290416447735687348589407515912591676698974684942522249448641334661058948783019558826103001633505697050622676440932229723661541314603454357399017679937407487629292252372060451676589091612660039252616151684388704777745087331371342722203079740960007419628771025703778848457775628780072618857847707801172473831412628656484995928396237328065444578740404821437353391741733636479842897801468917754443752810704615834781132761639600760403608779264729137338116155400545342461686780874069543999605632491998635406052916101551797265071180234819736502987543627355579306777140984173874894832119287059382447728333441971778189105502006531126195834049617705208319690018420859591367248688177826969566873633356009805237228541861246096811136583334352370011633278857319768753977010054983043925819525342930614270027138064692942655250810589407776579936445045984532410358604365751714017168981853030362732337590371352154852915363577273100647514433812104634268924170380231445763768532306621699968969738828078939472612225381617833942582022066020197277537718122729715870920521132909023148819866974284917955793929447876601475452248485183459038515664667581458809521961621069282455176975292169246501924978816502567073150670720744698964299112197820371606034804641561452721148192624323812798003120416247655836879933424330839012542115217946008273573425483480972937551732817236179051269304985084100718859433316806006319139234282596451212280132111611431179028972606458444668045242298284258535855020287698922443761274703512169461186822603417723254820877006945615872445529548873038799606806231484553539546841645410431608319842161393575674201269778621558344162843239786136812316803422319922754043367122972464451805217895975014529499000460277700622273296856862405205131082010467697053866540788986618313097209980723242663771779289706752268145181230816470932546578362767068342213728726069910908291823314409568636101877445266590644610282678607157829464208201165670590339163799826054695135963192377219856047157444537885395422390046603656449752657647981680102870968976929521542875986479951806544632399484393172378073110057300406846178369705800656201607223174361407504452425369983787088169573524113964895430377205824670010344159554925852694184357359299210136905842639608067256632790858860651361678310129561739019804440183059007058314169944783095944329367987808936103525039034906054928321546900807826359853466712287587512113297769795175529511899230646122014298274734653341037424246249417887788480994914270144098523882442169139690665226437744368571141551826322326771874694267800347637935097477127609126296199121442648823053991573872856236542128144616763236724958430444570778222711866599319800284189262008663755665675039550404329546689016435298143789245556288352710326744975673463935135167509410622412404588990188626775922846312777065847629981173167340513964027459670636195826754747321624189371510566683056497437204114807230216605777176668243134721561827839194196624404045889484276596852182651336769453787159200598812432146156461251993580741425030336789968734015628421045072537555919713326845070501141148524547202041965176180107484847945906953130264992439163431673870068521029960750834280736567042642901743253698702623903066847257417547104107999252424406822295222189967053410402994291991163626717751186856907090208914422142366624832499320283320033411567695739635698404792899895764380346813417538727985749261786485214810650207845369698731844967233848150817077049871117485948479361863561664968523315840245439637840929057913521776279492332583908769591796578426575222796054816334314825233214733844801658306224429288945679984647223031468490872919112855366575192038878888159344142878703670990154767821861477979888951698822988966423619867598393442648369337841062677403287707089674994494985959672607760417082858588861880072214957059268107535217596482415414508472882903213278198109676635913514512522919210206513209669985956581597953600534536358395555866427367703553987442190981621710076109426786620760682143516979642700747965825743370083631363384805506757389066950156547519756507564928667814567408020382368676776219922216680079911950095196124277362786056742404573457136670273584682476142427064667839728289780629263073455024222652076336890369048565936563676701754444370041838581676318241749916866516750004178036728449895829448964487200942230672327545326027988739724646946311361016372737484823705383522013332245124658031782710816898538263590189188917271396153339787591295694988967224657999687863228840221400447154380656736900130393680107281363065915698780969786617835712943520381094339052585791206983667434653727542682445398056940529555410690455602408291163634270263282259044914705862881901337966264009325206955836816887714146997526922678772427467506175151078820874148607905529224761074537062627617709620025956052058244329239850946102071683695002544173760956643843837424128642021183797238638448026913702130424231214759842593789075941912867496103636444311085466725499813329852073590634124014932334811438240889208481541880480105974925259310300217285889066676094636526144159326954032271942797117992273025285989839345513009108257675693113608791495540082657786386799959277401754744107804503602736514940042974068249552507815278043816346296474759511112828630390324556597152501641836544196104330197356693407738931132459808279374019967352593124251078339284660451953314395878775384384907421459084934790787889966849889620140847252905995962304694266111424031581224725926514594687172939835886082598936984773862146556078151072043342691520244791312338382851367000387055154589806426566496535858995139816511396492053323086180499317897474122022523330155566621936124820960721144833606684090861790319833778395562322554692396289917559719455616467670520873813384751525848328534591856278627945297726697373222189213398616135183334506442858195721327201807134557319730514035377370756619169367976462175946859993262558150262186155618349032123906771028649340077243940463742618065111072584412303156182803886619173895737473709729055403128436259096015836483553398363842058915641996782131910194560763870985292490317701686741777403880736161859446625105068175254995070129021017489431617399370101293074838388860744700941194935507076318359908638600594128464509783244968274239648556671605971373001796527355607217543972089683825994918034602077022850974734230412301960656321267986117391758463644470778941149896693644677235693733346446155860683730553028012175387356021627155842003887297011633274729442208060622976175601835325474649783765515389876452562854238016570735335864484650676165735224684097023766652031686498346913352409407673284694853447287074606700669613128027872106544670700876357926354472569287203420415099972929818210425682453884067513108372215088815262489442205239764187129062758379861091259427358304079338314075816335038620127654716942341493242170516262465182397321577306917129846934004617984160366139892757959520346797667879889974055002994832372186591639480032517882362422483376688620790738139186417237774599805369008971462406779087950583173647184588072900386330306305800108603148581942846129659539216676705403182459953840134838267478109769228917672344413252082781278108919646090385480459948963809618200491001808714303409911801218130818825370670282850491563034037631318038700090671511889389640276295877547638723255062357429822200986208501642649249476670022235608391524001936687212580688775225542964123128937302524797408420743193402603806057416241635649454101901575253927735370646140262066294537105484166026548788204751379385969969446216387844282117450425311810078561032741496665278879056136023357763457643154224679259734756275945955714262124790202403808267769230277330537368378410011572603968793087034254211433033610988011009455802194652259052947005928896445763510599424422171360034071700405914593059567448105860831575050900581768759570696270319498541163659413509098150253926684414223840986277322240196491292271761850815302886412916889751147670556588163691035772712727587433720642374762029419213683355106639825726292213899183197172495670130235833277412182163055630991949860217399744053979405697199998428269634742294597856369510706560515040551767486530649357298965637821810919282041264353941913101344057988370923293497976594905348749394162912702423641187538918293218638324279658628574924950547619963621096401869530647858094755219109119666534257604830969375244233349401332923848617538471640244510129941259943043002272930460333804827460241959979213940315448848968372046125835924923919182392913520750207650139913902496206811801716517960212865768367757214527700545920289049180755542535844522535002660786382272382123723776758508845846643803622888661130028472124906511540582133804109692467478229338634448094119999110533973138847092619460998019712428235130804643953103927063987418687427705148150519384399665918963490928066866443118608218072076750979803437968436372555934236512660172282487356359989942634473691620270243913840413869546616032517320792180838690215678960083241050353963403112265417836263799284065122109288178947651375599969733865984503733017566380963598652546753367244498519624639999291359657037384696150839345462885453306822707701799661111611392089366308989542598557107507731790070082793454548571741287665940267990842348418862561837525624547236817719287671666729611973177762347498750446106490520264478108360930303295404797344872287461473075960643033982267980830523130413047055142119981319619825526068252122486251795604578937555450150421581958392677198451991934292660239302657890327027914972539503793822855051051451548757245601052535996396170722589156818921127814386202601980254939774610833924582690867901316073116236819275985053243425017471954855414500867873112405754099863678266837601901120269174174747027760966256011266910366037444266387283676414805774532992808614563408885212636850282742352781461246966029459854797727873934805235000818712544768660458781068196679640148360060630797884246527898785652688799671889240551851595034517746142299104401891502214975281721335952270052962456881314898242135250831452677724562705371812483933522937347746790989435520028538086536348130562855113836074687260408744224550878520009674572393616547166297103123340113599833330607293490031778434533265248018512623555486671664649803864655110006597406104332196975515695120386240561203430623472935810188506964713511753292206538455849447380592077026672768262290566889891109705730678092805042288921706379881653493767495858903534836459161894244657581230654767582539275052945817809825687377323306357994734188313757796564785420414367504422744626216188555834860033163644603587984956250845740944066184528644839825031389714655044681926811613830040955907479231194034884590435584374913001876197134894086068674831515226646248563554580387325728512852611236929402494590080910995380937213175929866995568631341762263696416985976816548265908037128300623184049327988996360456794893217326971892304966473156328656615946145860688906291571378868371356493994983537108325041459680427177030967851355515662095574978899780254414971647275864463678003443303851033331344277715979568758624977653026432876640568041957914069295049194756956185358543030201452739137229082644914636651950698965669675043158949097695719712465780752060125130997513153529537440903496465446924511554312652588005925160303507721461082757266875106091023613640895971670519804033430718149754489047229463087955756277154275840180707507550987522151241056055736348202898753141536876443302467636889825861406129853262640252669422112151067745612663063252047583814864903060978352163702494269437246732348820252412160432487855736879280246242180316523580122229895969539320504872359700010438285288562918567629135304834725671124321258435082524714947405912593033685888748516720925638379777063835522375717857440948853867822272169846828941406525248422747921507252818235766794980419914087424320083213501157163805628419592868746556234764985948848366226118964266522840085335929246818663983646594416667428924431817443927361055072110095290632277147956337014189318813302967893079966713164100059353631779602801004899833392211463611313957977875386710651152584117607839631235087781972120792402941912034210094901139946876770331409763452870493087566017195392765666098652866156861221508375361630152765874414218658818436470636433415729161844012119063552289479717319599929767495647082284020266589615517414724902707459493172200458815336766855038459310815940133839790170943153217001444104029545698723063809989787408081028769120559628853977737294681239995215589401212530139150109832837952409453707541402371957318002268190597665569536241273893300518618110436420204406976319799651709596309804510714636926287078921875248540948758072727343851464495692402662254888893161844550361794107507373282498476948290890618916475543948563339499929898944219152955965500563689693319042357592877531318781188096505738557576015918441699920101434819934443830261921303288795936612337583333010489380940809365491166314288174479060708866850379070223509326571600385580204056752492007993719398500107890000904385161064103158059073818004352842222657292517479408041785252482018367681361494174571339466110511708969732861382971049682711891918862380325722779973590828114168029734776814342447793085845760207478998766587007761590333258107345290728585652400481901879234044619613262624397312480935696491970580203344696065320807772376965873117509707382853338407872859123126090182197843559058135603462556681743542981371018771632501558722055142636792889718005842312793364933123735234305054059119884014190483858200747845896136402720240210807058021370484726509758621626197892728918085467927172891582898724006146417105865311313320255211295798101486743430400844528556021433247554280833439699619186608883228180727131113115849547043137931461273130835607120574708680093559311333821110819014696195449871689000792536135274980030817913319906374881151257101283069958794067769381106121052777702602907558468084697869188264979017510248354496700271222923987617128160111849650593667887483826795980153086568693959005587968838620674730874324863127979603702085682500724837431537545533830299721110932058113922594246611945154823702219784040127123466503083505488819660342160195294410715769783531313872265526574839005994163589509125786361988308420046331051743398004688477915519457602883122378044878236162293876180303561021804339065178815922894920467256136680765605873224188497065390602256964057735126570427330738892378887700045090214215518135248517748122625409875108665066203279416464844892067446076586970303333542222659919503551194871794665331377955819165139427424003174217840087337845158270864785530170188245713691118376241963392238068694596762556947859359742370981148430382133949680376213647635445521911079321850321636849764381580660480959186517591419287388574033860006118080485954526771602826663124512552038343426254369809251293223913386753874093406603545593054452871877879535025787622120687239801861146915274194150601760442839298296191592502851365893471838543677185986788506661512967357768493119570541169388442669625496133952845492886794555152174945921247010386452043267723972230999476349476088809736673363624657078814510183204670709781476982835020899881668443457648736411740391644635084184222807088965075237099463269311190291274899136296115115524088011635740460606807120461678587802235978959259849334014935005398141334654961157741121889372863120407796386829902069953741343933514615015459494066047519048315046128600672132545963300818335707434309720810170452933583430195080110572255253088507987478028491227617147184890718899792223047727612771835543906895291473163127731155080799683437579656689544930806991711320781151859340995249994517349678611789157558875228727179901615498311762858716850282967519167335412616973815100508939316416257406621962753403737075705107318456779339861388319666816892526966937351590440209828496741610399364006780949314529750206555002735640612691843412356938882552857306839685870653302427191390851708600287737608527085984410667155301619750193810108902445840195416799670229599462615451689447765764357325757396690360919541443965975712916787796374449672442072329180023716069548800300650606146026106304928704782683144971200963238700309793149726343740117268407453316583141362312293403331104280247640604571343826929219609302947532333447949128254159221375327763942519110761224082746529005313090655544817418057955929083709997744113747764319959665514897947362355684020759463938626323198574362647614734084946688063738012121424745982767092995128661697003196837511733316834281141201220889922242681727996779687237904429849989514812811967967253538343421474796690487895816179898701061913899002430745025621929125686692664449659164952915393783350676541246866717980150503539122702317530700862094636040369429047323244160462885655181685294542301677948014928753595050608558757138183434847344243104120724308481247988424450704430313662484898243629386503998759721286156092006913588281720199706989156259513055206831811484064955580850868392502011757535430627506228887929617761084560245207251031953794452432136911882365615797043282772884694328810833334544611242509417500512087574732606691649915026876520483959341710638227773991556137689714081544421043450070926363637293609695367589514955370188160685279967803532281271391713745117790955859166743456138271405609046174325749395312600248266299985248756398390940856803057511488213009223316695498022509918165793787168064417639199015431210479407786567749879673671616613523066963488590810557079147472832290331992871232679732138575202540791618060069633459157315020058859408757665465015921936232888438003034043582995217931567003355135993591093499340220029451533542432332730868653533883569246599980680959638151247114304773996443889256427486250392604215446881248719124464216970619406130313642202693122018347451063636995531971173650180889375351901619816926689278044169365895535531709159983063005502742886295744531501931405196141846022987106335528200329047692046114809746430595180218501309463415208641806202017507426392446200067958975632732281830179621448009339957906389945498314246871340461545412166421337925236062220509657369360886830683714778053407693533102601258517432849423489645579140807323531417553694543728273918867567958177073174284552669186015678123385647961472980801234995779870257113025929072927947075065070608606861225577958956375338719581643548050532151627120895797562171600122634697063842786711682776137551825273930518164336918782610128675376380401769891372095249284150203739714190705206314034895207181150152318805024969021882546031636174433064941263157693639747378565203058189080424157881022731779036581861838928085972702081441657125303372258993656786958625925128394242281597312129108281127705537896617334331515242258654807303822322069338674055520386245503426244069921439724060315834113015579773704873201289238623400026531484492149691690227824138487689683682674245484033250384855145270470222020926511954040669848147180935892267445034511081132553388837140459049678232509981983538546764234302601136745614716371305586138974910157658035905452053481429334847958740714663360689865568631481463127887150305671304688941443526252801322707034915722334793897274907393814547419328399331889201492235216712284940124687463291978550378951423904324051222013850728243848161571518511390138051291228484591511923835474775922137750428590725240071286834837661083444991169133336801407188236183013193789888343458822866426457962473525057783901545010487482112642388672333631335556677010681096934454509069473671843065739820705458698991263715767160015924723734554923802875897828922327853984461505043888596069836024965442434388510157058099365317644421046517277788126346755485516830816080573836043026917340002857959430143259564016906355780521473832550607862544444130660468055656575891618669828941465137118841968550788385781667109021976002620611699802047268262314762834304896326757992649192159390336555104753183292897453673976919777502304444471395318017771137921269624350545243769657523115549323211804551986032625419180365181374203207547554641280799394855092761950894237720220947693377985543101407782774816832863824211613847699528040867535496330711704144944463840571083649407631160296592730794394060464819175350067501590505480503390961445395941062519337441608058064899020499469974265193006262270826087267749057550730063787145394638036871457302294331406656323537255748049702310465753648020128328567676919888924926105738314296270969618655583078500086110123817708447152977325533799764341586324316780955323240493358874869806927883408277829904511083022820963452066352272179250233898142922049028371378765600401762171906520061087158968974015172669892369603550467771937280602401649287925539479816463531290484650984917152200270263915220161770979175270936802418448081508600353135629252116299043637173865833908956115191700531210468833560411193567598548017301592457666105047926795730813398729115928973294745451116498458175564950242496678102736103731708448232932429077808656875396396918460031531865419913356204378827905470066894101704123163711756919820842291525866325741174892875384276884783663741428657966679871863543163588991840863658746731574556814608428048948725232870675915037887007278028474609557379250150684012201144720445590782979378369730546300262578605250108578821357824963328608085542173642265987110261846317860412377576999750513943605211034514078266227907663531923813041471969161593063331982053046011343767007656451423880230282874436494259259816727482108592386339372313846852108263013579395679192461511847586678237353830482648806744693499782554955322235874168943664927815715998444509568062202521216398569462134760608463316741726804425727025424456571635866471529874419130729777667540601446722907158921881607438143653711368628218885524592172973676824999295315129892481147386867579106806014133782236085641113320858548704128345649661340501425446180818598357673101346707489176166260171222728602168320247749575780068017684851321762045294069929516268748736664120558556649304752931855756614712386293025657628793363899010281815424128771143078762495923150345268281486790261512189055856807359481532842003844009673836774696089769005889062896729167714731777690457901026095996775415727307090992797357752700774914676321261983917573065473636929629430090283725629257009650084328893180637618015242538066831269818658910811770371519320865569265721991578320198278151005489464893453293106402426824244439888561874599755627311824772487222289193173996403578337079429825026757584636818292954782077808307593732439886521407848786875428775330804457366545825368282723976350674281447393657960503698950328847344519554053708817249916382661491419508836999107667158127912279316982064474396204141805173824929591081033444858136667149256291547550980717917491368675660205038904862159542303702803808974387913203379755748186333320464782038826626995115009454403381321126124915427828770400188974096883262174300079210555239051277958343192779350826491441218375824695325164647764575214998769884030465201421868819197704360459373617895260991226111992164806338694176075530318348946446515070504061791962201209094016552942367406317265623168768729553538667494925234714582799508283297190195706236741169577045549507113519790303544344619702784748117076368778088260098496379143931273193434930281172879161198196652912315265634900372653554829585213040201151039193502486765997168157598825480537644636508857433933165699262129460222025673359533226606685012523909986266662184680436764984611120354158219605941531860561313671991494066819244667231254117017005138902162429708352597481325241620633231507348968017972857719561905046824879613335754935160484140832782295934975078225596602592396808298901816044046471180201078293170518407054346243675306835920111133079524131589886714391373385514801776365413438417588158441474287169765140012870897168841990895721130210099428400004900825735341775094616651463956305764335981651091049552541876433126213090228074784484508291883152958863291771201022216150825912221980204274311655147931231051439149362138555885680420588682833930917460662879061429107896598677470698493273794924744748989440476757972600797672643214302969695961315662972888146986588785478220411570678957687204215059771648826922493742322659316836319369989024104014058148446925959151802705376392858632838511348215039628996535014089776321058954096608518818586532415466844346588805649491237000122194538855695492591693268785579796644232831755713085589797600241678343080725094180033107912757579284524127223372569678714361110677666900578986393249592988430648357965074293732785140504741590795852037357312179647009869220209959344267523046513863775758231988460015073975962039994020943597298152589367746045733754432272714606451749978117639435800446288571700322303286104088030157622897802280667933296149817036274711111126392740461531772919886306865012754599683588878515332875430332115950752230497217611373789933825221464954956020393428343072965505559789358306146568273075338745965239489760002340230657091222079378391807701214818847606831032973006031959575785563646072388519489165594589440845135524119906192400725565908307528621500609183422188197957071979682561378799519240863497030867522388557148164850161683946866876060573953332803666695014343373930012207620705181388089245549368696489127379491298192443081582593483039754950746244078717686449876525702520614804346509668238461694752376059877680794359625559462843893040659907270976548317297012562082886059056952270161539595268508192834708926318446385738794563306753645654624913967146610468201310115370683494604366211286295610986807106385656233222329442943629285729773202114509774144055689884910463933984359094502557534217781893385868755035352823904524286754741751247041904735552074540526173928175340235079937729257260724051075883271905810150606518080014127448177838105584683695336792693720950699023111686891808129767200497518573132147391025309768212406481868591627339278396851998932020544066553931809993621525275867196258477056878273277831657081600997016695209505053479429005875137162427284986314920320278115873549627114530002978241881419136557101916063462490536890301151661387298507714127573290009703467701654017302002468823643990848087360659520814408039617242793573530350576706895603084071139941982531931237175239585613444246320297854170601751588186049932860652740962669020766863588979497186975693543521316879474115255453558371972669278929848923661857156679405279094677059240560840942454638012613710513395254648301537546108759572342810147426191527192292100065122373033997150372606530280930559649113353409654752091241053565431827162943121907373438530396050665466396890141563352905511561102699550224048337263955605787470499289420217470186454625088638704010112634406591995506836742158684729363921738160385763101908958819499503814559106670440623406744546318999635806535867121173155014580966409885343577827029050099648562329387115186935708872493981385870659918700240049293295985321875484189218729776466577652704665543202091115730473744550195313002824842735029062229812666481486395147256446123745160020203004505116254997676517640002782728245553373476196711418142768778584442140362235684790598109106281501485499338038086350986893794076295950430997648738890947748161819466231726463678146535976145723616471701515729411963472089952392230440570040696324945049968658901036371500084488836304714631922006175244162433700560362576830773549318757884507500985585619416556591491465727007955369351768714281316904531377689822837905887464706681572366136643282913070126610070291331384314522676802823859198803489088100266562145825322963967085328857325461679167242694081133756068912807981473989446258359543963968128275977082453558081431440436665735538889002152441557571348398346972852432903579720792961182365185677456324707791641123695796005679044509752157563865922906481037729001089279037979313366465360996257147508887811774302143405153397839265232214741008353100000187973286233004407032095189095395374580594977766696111225475380814900588385719561995264144521793922062978618314827520036330742087117531740648291605186906768533023848533984626615293687363159047711727961391152977467884419390793409124112053101378984066616834309776528223385683292505374849348290130088804322707666892171955102161549557671160909699398209624832106183354731648420818470023877811654694013866942425019217837601574874897142707404755948203343455533733678154663556648188403983776511647923678706803074426155271957860943430931886603583796831975249241868484318357950533241759205626572882627057870653236018665602616446165962529132078598055661046070076779795709429052449875626316142965312204840344781802675119303817212411275537722823730477351695196824407861182235342672913247237393585957134298237767481493878656001122965473776174997852099561366504850600398522274855898369643113467085764756950148073990694614362455905730865850182828872731622679300959724394628314998916580601561776548394119906480531854217563374440148842794238739905793374497966781669656343389654998505494054392818253526625655245843446104717175399482088948231023309867955821028935232110781960628552695952968041934583400056168148636709762817864741741569788666859078941696005243900455749945372396415937396687245560457181681526651018493866364066758865758004822515906394857515940504862683969101849876606286001178904272486602783157267881489587058961058920857491371169324677026237831183994675104625177276717222845149966259530345248408729119397698426619180695347803360132614310878515354494326300870484223717720466071796793528270220541329965019481644889101193578581981702378845394568089065234491111027816737547389148082093916496360578598603086513611955356109825549446265442448575887289507411739340019592076059341341410825806370141359155733954544080999732140351199396147243759463466402456783649193224811627942701108920280917289745314811197464174547636400619534923573335623475982055140074036496491536192348759273637214540032096782699564627857186469389415963364295174365403023246125322676503599643384888204880276373158920921908537029117563720206502970572730163669525816625909796284967900624330434649314954782863795018223561714129559040956096233304083069316253246626545186476949790403490312153451673929922118697919595883554782489059954838196492486895080834625457764319329993307658878010996601455355598104607760464127530358500583571076832286196379095806385301403598633483471566784427114372905651726136048534036399105710516076625230402306946238884233269831637255015339771375345652722728653857109848066889447267950708461319042825351985738308615859136420335893834399807710358318739491213887448287930574491922797489247235672826279354586662305649402497714112479704871913779857643188655097788522469408621902203932702964456970432522380670450510968408206917215942828900980914040837779936536927683840082265480149580361386185185944843480320924887640999798863731490409007941900193808209154210649097873275431428479542277838330574308743859078000673630749648171533322718718979490324635920999554927702614918385447320724631904840343764814932450072503404640606420824535277391988405232912117665416386008404038012456361830644940624876788865891946156043849158852127510867647234205581323750125722905477147020320432231454707373771869340663386110641039611806677500163002179208039589370379419527066308086589812379240768449293907932810920519179704929517812792623352710027436499379978375012301821548829495957978987164915833798282978539865998157828829860149175453047511140102409770887056168150931785714279159293284244814855802618443636610120400060649600923606973337711913391841088127319344968831863974408967940954140271025759338055218298309830757572768245616486990606994743250749503363468013605908178629739963201403475666480555466192911311201486439683461144365023357816966604828139561390152757690921572707634324875789818272812454886889570977529387553236014916839971698490145456157022715480863032757711896370198404417589604763553667463506405535233204953506261293222769473778185461805147516244486968490887407779252851206495972983361714930831200035136051503693018520444560438713145877087552165638283201930511832721679721267472390642642547072836267093015683556071467378812394456157391907747592265221446877125675002360605632485294611979827581984366151494359887004826146814952482109465410797266043790134208888029011297117875684891034178045135265791032225514326567164898081629258110697565585275507995113708936387917061001587886992174225854879987752627783261846854670359392948080195506947359349887098145668418195185935244426767453328736522189651060546124706588090634058522354908281992487241642613443088673447099979922090211201850818387700035874204980944974628724930172145831745620058657081554567787835504070494278941480393843754081804954113318768481839584889660946167471762648475542234679972049767954903748254766199173349112693331357021245135589973097569923381330490286359091227061891607401608857760260577768565258467885635360314535476869168717270565997096811124604779452911878410415489912061582894350567676533103983980512837913451364727499853263294565047168032660932780450376995794748672561768090164799049106089845272337145081035269376113698587468626588971705998849548166428937289963256846083329564955245359585202542707246643528708835374952009724006699207575147603899932769289855993038419804415865962482649754455716966270525045767977856195724763208890857313821212047428148696162656927521715635539833964431668070349925461508150733063343578938986154907515010545624048907511747980817898271659821193559008017247583082445516769464097247344737778914985785619647711869013963091048999418826544237163636808653034964241965483708004755045324589405276694681011416052800984996363414720887245509908073698958507776403779374340216690434886550333117947073617555794035589763344879130705505069077319845015466020202073952794080235621105292745952295814466302525052613047326233406475970302097307386328816228972812524281106468824934010684344260107189141086527342417952831308892945346621411316266648612611241809280612990198737029686361712193186410564067187897476692074880340668202581471548883336306479726745961154009182265792251713513672650126951182845679772092429955187861788450251000952347072369918673727854176521358910338628209545864048020559616708076700962048832623007760070545102919151189127683216936350104073456599243198769896513040756667014134958214883803229685050717043861373835978757288470544874446356154491199266556016678840299607380921639990083148254866961673250271136679524764787716257394865157276050380269727636766027589295618362112163075797996990995365442183923662168429677912267146344894246447323620745447317863900254720379867195960033400379391577628575898087138243047394150704769205674053501567580220379480618463295797319469473551002337082397264645823214971336565227644937378838885232688690235713219794696760213314019054269460770920378348834604608802534271632077414213904207456531779653498567126717175349988675043014669078927258345996243612655205261048538503882977548256693944546607224705833357417438406283500261637992045164129971342209224335013031183463853591078629966492761530643721034788615687554681196050440903738189257929152884223255985231988661836017513994576101176845120975070630137440696383605514207640001674603982799906524246187576369175185951287065684718442690343208854823162959782814414953214081449735483998019832048071341074465614468469678863224946958349810139515973900580727620800575909430939629716018969728942221880647994916444294328449611594200341986582451759126169255396853037265546756544334720054576715645779432133153203894821363401592140264313159829365672421286487498986935059634046803342251248214682324627334509265616617335822893147773608144949423618220892463403095333693283387366245529468467122099737242693330063508644555342374484144322246059897449628117633121158815894596088004145519579459058911594085319680815948348564315464703021882783574778815648833460956060510186012474870777043557217653411638840136685653945418368243432419013261495339444481454773372469166060833049999008064419135918929122313513109456723535870608873719640337048837118126190734664545015038202146156490851340505591517155944821143100289280237731300909633349586414892447244203837758368628260022487913340183234702540838967139400666577224271495212494968871109062801026014237010119094318705519115495770669693226815330602866681214017193213864422480948192517417579504684590134513492673350476395035456264379440474866945964148058101998496317567863028614509064650352609597987234457571108586710439608282333331456261282842817905531615288143042239565064373433357143238065638351643057878166946134036395507994266039200341076284898806119527703196697430868565969868780191983720006238589493212998755328827446597563122370523755993418076504068208027002521160743674262876656866814610036485102412684116550274256416126173667159424693857985261272659281050809886915578426039694674548621116627850259641584057415398826025116156069686263388887394367376374906384174024692894965214140216617863839578242447011651952645409174458040232818721338503289195526894600127598174727299001172024100725451141820610000156551267508369901031310704539736176432131069408079154027662861171758863901946277555154816483176204740333947019286118015311946336324895337311167011484557146311583708287993441775207736251844627824182099178328299185338594754650858981903244594003694407327740657144681971801241113498910683544281668692795843407599693135315434451054721184609852306682118017720651468418815731811633262372374338115115451200555936245092590632982973562805442269188832625280186090053039185914472678847712522895030719568754268639689253809394525318568523823468198413501222026978274633557929124856268558710763301809628904912688347702482643481790930162020532534539821062820360764246562823704606621155598900562484516085743830442864233936270468303039289485064844858550827169325518528724262940957390432310758132747836508381528229334470470204856802352038543147621153080164990020315069568220111656827946190226551726281517949048787634320741362057391329705066270325687400993758128048777898758290820858889698749602897885131254642328686891924096582889546836092842572932836315050894487911507687016916568390805590942037044186154206743814896616739655189290156514743190755142068572100048047067925058834810456484714928962540119786542984553920443996932005315527454356465959485126669372904196310517100976593356582282104418972850349469535373722623721699041840485666163528992551877839240121306307419899009064610446525555965441867516107349063922316043270752885323514648145480348001127507868403144099450609590631525984621364546382217890939769149967288796153034255171506076301963823133964859659178275370389789999818951784460428127623457974534627138106862383766925428867043599442034089276359401265559112291695630757584735715858631625758217531752300620484001482970090206007606519262289972769359333654273878136646068612947297679026480191296904938121935239436914501744637451625058834471665771528661435443157810303027604853102310082810256869897126023825943364276194661577375404353877119440291631079228265356490595141575377022317535581539993492123778313233274565868671532672392664184796623824013546926686852841813569532239630143470497939425252041050356630181638184977391777623301143415470645891007168085409820306113849459407768050577205676397993902970100098261574967378759234697845243493100093693395650182148219608817727875408978553963638887757180242204914613819523677707845521277815437422018180520553090006399135757528881948149104786451797216876355323240288734854407133447269886708163054206683987216611181552301369239637492165813990195388040708624651850028548667833095961516728321300079230426959915631437155325118805764339157132238387512177601440624935904029078207920920003637188106685125173690193583303594069149027964296986135733042650814896931725391541101681756029650209693182981266921359508941370440290306412858564055389735033352935689947445061625668910960240108687359077851916910506338287910041879364180292701165730432864370431530261948399404914594545039555200956604270219695066008968731059391567410277586129417675921049309224233725344901423651045924495140240724811244266496339483526175055969461890153759308009888153478396424125838557745534269235186115538028781321859537893493326195315244535337358357752969299855691399254055748854605342189212552757450842836146287330117912020986672300198387251008335264991788819366965738681454178354903204209784001081489868635603375886106758577330248897993568350787345601532768527064098002344389632808874042004471440869952362784259046795117594081551761371464932720329502834406318061776054037131096388397280729369249887944876945457423430755113950731955685900583802628927774259826922734672430613137996286165649740889355224719795472302887224586040120675779953616009412206636967212495600817541928475274608323087180991478457099198247848218561214300049302783288598392021754026342507471656482664945354852059042950450869906468272592950485193018992919389765693913979903810073626233468410436887395992259729690660385847288223300800640633796673676173542918305059068577259426369435187029774556385549470528057510479421018325261490784327157228716042864702577561849969884782802095282379193247673213406201156738970030365503904743773890199136621854578060291502923721427188199526631049708078601737453058638078031959095372329906296945186498401126850153533720017870723909734868918253267142127561201386647133097768897704882669910522878982064942912804801335523131225688465320621584768553124950912822046549782689088643607318174786529045161006965170108692044908710082035291223325064782646050180602909247831576635264706289798918294490041093388541408927623101986368657002676758731491539177152851652029307995833077406396444655923910558008316274987357390942157745597010912655057631110794326517014363836507201485544283109211892061025950335794897160189110147416331183096528277637144837988608257979274273613581618627597576719274243461820722795451365061355398546040697738466977669986489592329123184425248463087285886324338523073518040111819547268055468292844593025425803796088600025850521148710044650575879176273111276552201859907290035305080209307676200154988545122057230148590235433502267961473568933440095573679492147520058211286709293878514465874350367969055238323842163700474228794124319484697181374134126137387538301840394194972553995966100541218784832651908691968732019277269531119592304076210699695323003069348209966366194199825965962768978017080433162587095490522975946200703284400930249803458039019108951895863708777494956710574638966138834434134225179738361282462011918975427964156448783885179218809605620373534492923315550284999588850281454641543218943263700013476633795866796836127966368790996153284549985289996156751374230792813024346361763219967396646454556562180304285785495063058976559807531850422803249028920562594447601758028761506914873743915216857046906112674018112041383305272554087590780139245600077489761578860071380977712411433885936710642640200373220155930213615639262802537337383184010199887939654994099696046203377804876586761706396780008435779707988773245145518888804597300824575161582347670612225259184353917333170509552986497908746623639833237874676468943490551489116160717700290221474325071260052325080616641664055841279032568575467262294750944596019486710099321615259158558485607616239656235233211243958609345304639329453686845767871847259948697316850602594739797146023527088577851543082462676147019891617339252276253621165239284444683514858707447568204393708373235097533570322651959559029104074340134902607903848470998522948128901567755435969355789281616129836130860776741597460148646404907646705600095646026012061351197804583100254762583311500892767172467309630413680830265155545519411107793611896503249943687742700493167405014199698396407236953055630649451789884006934047320281243217887233787141888975343094419291818407487465867122191031040759901394617841310598389899430130161374333597325987340493392568563385269364914603875569854558829785992810532204519842174865416133195499060196578062538600289287737119158931622264408690331612208733666538723697746964665517032232748647320043849094329429226370192621579654705428325240585660360390590745616282167441374402783556180179041655210983011813665482122894633787575251767223957004204078353829130215908537641310713388848160213803335962547314046987150083353903642447096684768563265277002350614689234514203116270987182804590430825151837747978109604287829967631942692211741022085212164851086602620938605411099104715177396829512322902119374278257997005978677049636538070530400278118191886610805475158063368138538616291720347437651905067039504984233944381401102055676966003361188352535593901979579681356226853224263938838357247573442681368146038443899554950801846784366844666134379261037353755066704107680802052117714100957515039739422732582100009929637339694422988757463960952855466918235615905132628223426316064824536179166503388770756217400382930738204774254993779434344788839881506079537606103508225558811444115969334330099587906162792555381797991077304659993204135401532823962193245081806969944448894360961582542253623778597563633943006595238389750207807363040371716397183671300396503477657349952907257085901369502383591230738910762330167837269182690993649297677138999718419727223468019849505587074783663434139972641292976484655665439616718142766483055698316560661316386490731771722184297726913668782444856284989711502742621163465182433203010342789863926976004613444901005250005862407367727184420190571587665737054378863194047298712718564498914509542950226875581943493596747387959978472432794236287607804764266516852019818424666465265325708063683447686162778195194890215868615095015949833404678108183841899571321072346531400374556474262216943600487108315437332371112555030593329430697990128946713603704267890847881845303397190808307523709223130250152198840609692256382667615287874858932047158990472043903978578849169037677688283205553601407670699528964694227986987917522644514982509754699561742441872666647983835508867577333774735388010677591066956493784412166916914628459617483709540272313721398552127167309550947071487656016005866901727880433537755425969339738969714452371071131815576408551847298413343697171915169633782356340427528661414239030954941988247086763207884323746322172743199640905810207504690324620272151540039708800902138842457224106088568399717805948584303083932103433760086670665461792725072868471866789698349341162131219961015158889615572821154099687468649647768170992297968123080735077585517752865895838494434945825012075143335462533609261119232169611418634835624668131059425868051558459853764923016046172836132259703846258699023642155379138096565973983100784965463496021216014614850014770099581353820375415144781700046822533887046476102978651477764288082268987110339665789893048619951147255694710446716666889488508903099610719493895221159696173677166492940049662284337428891511485998503815113844930927991103842346766975955988170437359344904012686004103307835963291526173103873200985116569853676483729194458151471699549949905587351316909125958922918303297953847811366559319298036543544650277081940658348171125555730400551220759670068998893704784334465533909512136137105931510080485657626400160000106173079254751229059429541840873083331456860270191375048913546095936639258369551119235475832104210177025654245599054580390294066089443319331151218061560527880882277070325535732701099253740919520518271456853698670730941330589527158263451550095397274796027843372182632757807521566553103424359791826831820842933964302896833683976113081875194471302070864435431299782277092293520518492634710028372117319027674740661002442265486843392065658852608354871576667601415744696533426813735896917874474722093578665347408704380363299420492157387976474812681719580703211787098339551423439845192061037259602557721009797296560662362534760107122343253033751576074280954152892457179731409995816287070229410235484096559617764921590934208124835765270157342030034890234330695783850788423682360552806690969901774305444042504939370594851694157364157626916119217908156799125431833742304846629020872463166671530426123112852396126045718466287568671232037781693924484032226290022285326184324789074053943464773706539916102600597574424198272891301511447828919118497752273538831938086155678798358247950468348899150540227806139208412481245020035826662134309578130906474327707048370264524665406070544922712060199636255382481117057575937027260108636305532661787831096350568495911031156872882824052212320782164623678499699384787005225696153175787396058525944968392378349174135745934910427771319919468843765529840231593044614144396150221648825623395865820623639458382804053971835605933790472413903948956678603972352025199356678101889633620682445866279156413695694542890759843221502175742013725913016629203468643155156463834841841671408549983655417040153235921896780112624054127579345893252292016258802545483553921618048699416240749493039461065079280042224028813647836484969425147694028012860635393050645427029201961416233995585390802290346755585911326373931715338532092046003024703852841757771283583583922334502440533242237260476281255689697055756612874888673097158425003992888387908141919929455586013223008438405811669661483672229711965228057531839977480553806333309572452932431701494356655169654957396641694038693519623081964296153085472750712586302814977162386539731605634567246780423556892659757814528435528798736536218979646048890373506078173809502109962102812348208279039054185370588808513648141698803598316402097045676453434861978946939888589247926962878108869479300843575309083842979778390199881553388589202660999626427541831975189762375408485546001725932882153122361576890617291989802791500800073496782003586271633358667866260118058754937855615168022321636870601658893580938485353023715978412379652020449242466786469086531245509162687400067446702818531375879705521279055404006125906420148557879970208764984193461548899058049079714047381283429899069187718375725830639923646331037173180047684257802061488684046360399467739995048241305181669334224723546611137569454342301488422119637015877254823061274561878025336927261267440684770898905999087171936073208143357272247745664159222051340984694695962220608363433449463359209230325819421761906448548334922672446494634446021226567861795234269599578163660221886492409071245136683344998080255804338964118857398003258219028889630324068052192936043084803614731925043795436466847006573383050004166475395619099744768445711450933413569892795558895217990394590411373569870363038523526938253065305324250886898004745231972230072248402640104509243485189577122137886221443778703664601250422392484390842911235518025905634190043585330583170193695809706670328469482719530629621076147406094985642355285919192017153237508011690209213353821186008271519475520754100801718515490879346105875506540844724186535003111131079434901619194771505128036770636951738958488838481416082119260890891242074459984541412624029301800082325447024504056633469195154892972330660257148228092880230777169363727311418363719111980885077788159062566429486509045613725691213648419675482958171926915533318989993087566523002872243347468641198487239814430100982543406781519609469291364757697489194136967635933446724428748712812794916900184966451107679010757342578452349838094285177538335999635400546076583982098038525888537771389311640908597735126650205443008177331012993912569513522458385330717395623570409567387409518796008107408954637045830901831019293553454743502176537718239357508298973075623143922113303632683234509355577022579103287988513085757088866723267491241429771706379012968756939461756452336250126136839953477437748853272025326877870176343592467744391294956481249417838891179705276492550791966707948495401717580447650042159843257539030809257061837586681779381568447861279511591815825786668895230739492408070152771730749680673271141456836381874186002950012582819486263364758050966857449633748573683068358837667539766200467997523207156241889516933120535996889405908820463275878927615712051715446991180639704944940590764490220688682677744675983981477333940806759029690897208274865193150820508454176912908667818218054567511727510601799734778954667158302569745935403137669949967270869660948206367714100910712296426264475681419081094970419669757960415876846783145902155054296932398600318163677485588575170872606769650550826113307594470951186071585899816594205440988256984481031141361451853737675469799169603829335369562300126779436873958969700676601081182782396392119114335407493050629588458770018852498330153729654314660533589764831217777944583701515195765051644419267612102133424635691914035813522859645424080806741742073178398623222961412355610129458650913030461139644920319854167099229137186701146880732614897879592879345506022908199610623963103179278285655807973137155587703819910365441685079915764897405894629035256414709318418323800178321036218886574324296743126869945938114379707267688074529496307512463856826153233484387080124698683251102164922757472258109001388620710803174548070058970762058738755529887141495567011931049680497010128009737183578152834678133999206818273820016923073697848587289020254781576892787322836866462025225521651214651513711805369990714719797923590048071930300580182377294798319718778817058194886336413294471765638216563454852188373338678255243539474012377445778893695700637982781714650840338017133283743915851908978126300875073837567187296870477275756074687070244291354880505553084879028416954181560773727505458293900876595243413970600541986535596871592175390940182966286605019955172803039383154263079823577499159432395099106601563775705919817069862850234222049551058751953867299023903130449370353356489133719920896242649496588190576466229705843569325260792434478652778868228032064711615216309636731616345106413618167246388101240158344646191274211931136055401306175339556039289804067379928977929222529139828773406192572351288995979488485035254472762501245627911394851512625740390759898547801959360401506182963091086228789081142969226363584439725109379990039201466503383244709151756737609237188358074579516988428281310916291704886111057289696874190768440505272057606319728199817447952224748667375103412393528206942606823607819205661313886338049536518506623818700758027781722921380378295748163911854502080385607063929408852439598220990666760815072114201210370607429009020012983859624549971488148011263039309268211465672656263329776077176821641188585199092500135574354880700445252338432027900837372023945321856669471983662759360634979427877699013624118751560969167426997002709003556282569802230799288584103196568396986728202624948559277041085119261648030273362263808105224550884511077303294054823113746434913858191926949194856379507387170464396347405518403619344776017605074345108582809410218295287934781550383436356066283190825361109876175655990274140433738058556615987288706529983911929541690360688585169282391875851926575237654993315989125019336192937598499153300830243746330710332629728677454521539456157349200007635415469256295801729475002157854833808197509841788006150685420324367462767103024377924824114288737876252228934772210853569380177014044627002291094084569640476038598430578115552201881522535393175243743540396885441328687907147681045185781675908967220950294588671645773305068696708637587663433999287768992630959676025574322227901273884544168764217955264020170651987528824376467732122537470144978262134773087891875630531634877005929653508358612020252456555298544529304237855741692503820978215151977770122141315043626488270908574767445405157972653945994202439980811638081337200585701927756557847961430058469007830507736892641866029241479224049296760149125593291990973793524376193322445214384945845507012538573850433431543067427982160983778782320104131296104522474711542126480696494009522730000698151013511006851534575040495021517378119178913806961774828759216906693357287937167234072794758957403217274456623754435461007293442230864243904700039962522950153155601615848852839333726157553860580466387053182637980751957220443589056169123640421939482505859011957018164070947947652332356562089260064817243132696893258608672840789693920579454690581329967621035664716051475701530329544931184785820113461482373715415791606453702230155991766652681956237460771953348786119389584322180662918226091146533983504927870997429692778738271659744681422293392154444088196924345704057715593531228932488759303063872016551803890187280344294452640242412561445219858067755982559334751920842548357848839039251083791861646700122175477999884490105067184379374683042573989424748497355586195522083308051013946534536490057305913778638437962345783894175827874795903882666870522038737183534325468783105568540653652801710432770135011486276444637938391951491619104350155584129433159746366899389312169776810563123207717611142814770536892140125187248892444215831750227797320429059323478890552210790645454475715678283737065820369644844137609785094292750146003327435043966046505416272340941816506347109430225530171125037128633765836155158985168701004584349423734970101245775318674382115802572399668020089934758727446411873070293854335525320256418524778400862655025060782958380390751977793562631452509853729213827164608122129408349207694599005871382691171014715457855501304288229598996223457682200331490733405564401147225165892446517706052716889382834273584935128795621288549579316483916910702779693122130897634820400420203880832499458964088261696554527496004977734182337242685183973215453031315584135977336963896269884078553380798642207636034030355764025504263451247330772476905060165205223111998188776920015926272343187516416178220003779299521608126218888175373210458695439480302946992829978768563042849109562829587664980195416118863067450944783843163809095183702396553769847719661948283834004321738685194243085118621982564438376995446401399166682689703168751779504021245321985143413324403486594894155765751236698730805698109040563683318853304891329447329964686159923949869006477077508568390169937994876367200269698305473063328311772916355182856474163035952793808562473144064295218191133076421743127834690985033053718509804200560104283841321270923371308979442581144255507976524098555508674151147396580497089918849326128596790636495500634283758563376497678863726373060320303386533311343869092608087439823629534968314215003144892594625691039438788012511819076344305785555969863295635166319618986073316584652065417015826323194530057974372461476507171604130116633586526677982680945709786076984256091981233260151644293743168853375514490034722384915080720966514008282576479630310838602118901501658290895753225707919262690247574272450838771174582254521764829294883860322740324797104972598326043554606664137073668119647722327685096895986471976563333118047781124199993286520462708877524794662336710442762915086552531006772286354883346921139308556546861828700522253382781874896527154484439987611335108660451812005010268452285278876953761918629360711479224073215456710604671591574444493575565952767916286379324537759320529285837771855932827813347068726126129329773882565932906381908023499278747127104946292911463338836498233505707259663883832823623512033403878495530796225840720500474394628049902759961538825475256446984892922348468574196063045801866576615064007044169221443112716527898713774164349601435269177574047676169986145138302433406225564569490984509249410063564800428790546137188896149081240325146047699404058658168896913105631032119390045709473980483153603812640517912620706203619568135659401612337120414123807948653997712344912840018769695435030872858775634863024047181446964091582459466763778084701957790945225494849980198856464588360460281296004004125794579117954851626618852365156653991643385556696484466618731380773195212670200800221950661651696476028228183949957946607779052530728543234314651340361152999291174483070460182937336324823819177629365372313400197866966129995122118254836260442312759347451722091041929999944272488662406443603336087486504196846242507792388026280433177815743905990466517501962601181035037696133948868312961580370157082224798631583316313655725300315410160318585375361092159536928430390081500091312238996963373458385236107360344546956186384569438963348955108742630942342982936232194768113399477086051128639392189002780308462127304253854711716885092216985607549665091978774425675045994878379936298913118165446202239613813494623637202470171901039577740529936332553851660255915639704447306043250522414283614471117295375370589561707767878521206878792053191922725996960757111823789098161462799372634940660035403697587628267072110399254269885795677738723808178461752191432706942226886188700427817298372390869402720829530906974155454215040043103283524215499364186410079140874267453035987477927616048929365249200112006611327065132346329516398965075714672002363708424345174282373235443729832005308842185441616776476646680427775353673552545347780624151301290715056393225340498700412480036137605322709190829783478151960197198530143073440658160039087039442441967212302715915019074162692062641375205968580044435981032294420137956889951887822430820427924346878131228892318120535342386044258891225411190521403202589565998622842698594888948996643649883276089016442680794025712796043965746647966271424192492098516819675698112538682165165806087299616690073062165918300697607494254355862870162355226852183242468218433402192351376931689149489756291929599702745331051653621708393704358394833446052372888165432042599728664501172768557026068662128132579876830122908521486309576420664695232360656474569463316557211695188197016304457344127219526147980446933291278647786762933917285643180168310577073207108441689729644684070546223353767340641181932844003433225725209428657202151895749434803672536390646672377036666546825108168126494266968990619886942663709204998102654446387933696273682816684921927046268847270611740217862445242431599515951038048696725947723190839056491982742363274059771641863705201161848942838207787026897497501385365004428506656662602208197372695744107229966067159324257569992566236076165268764583138826723692227631490202983090646222782403946969572836967301880759409061556936248250521665587518816347684584853550467479898476657482817214128612136817681260306429728850356911270633606820440290416562351288985193763785062646085058220861863969100930649744963886710406496548699608076259479335732643968248514685567348635224050930826331595687191385864166257940722904592431556976786316690950907660970252354173261461121263627363852551510050402656037076078292080620934959236073335831818284186149661917404359799945252228232224030325007877856186653044251710656385595799635668916199714246450418120551822361891005895991288667985293653600455534013855285909960241577481369181862573871725942198194052113516769871930740411710285142179857937364760834792509090908999968229236140878590899515225182451502627984602999210474230344013385302008605879079812399165713829175516373716636013546534303244299161452665234592794361701308812891727588070295835925922813848982502017089243738776314570880196201145288715315915456534158520104356351579221955188635018437980854927298685527415204992704553392215791771875993947965447731960771273196589293802633970003412668243379501157445355063137671932438886954592056741273056338023886014223772035758481266604998768112025052138054295140889124157290163390735023441085318248863910774015896695440005759460081716264895289494530300206268006867327376742051386630727988482611745346797206560419838315584246996683984953644836013597754657591372303168751377217270099924674536376080176476152957936101082384036810466229826882743242879880441237883489684934591142827773297985957274577124099202146734860311179780347350167464923955672175670957248077240917270193749516076278595923892629836969628589398406233778092961564206081876918423694204047694991754938623380434209284915644150492500762623259226216870394262419423302694956150599059407763833550941710203991025564033896937843597237537720565297736866927078050728916201863258785087941218734299873219464397344098634253241176028804536239929259742852272532287827209945690400972330359203978636051758151882158476346830577959031023637161673701979407852622937710968298480946920397261152448851369781150700012037805575816260819895800292381519032526137876691184852821343843841454879509892406412320540189399958806647830817615390385523136066894465445180330405881257375885152495298126946704247613237360049099681088685493363629470792875049106915204540322515857011289870809347240218000596641742926818844422609854897008139291976191726586017494798249431570833075956998995286336292769938798817300573067504997278912969945745054853427844596257855748957701801283466832703920599174872365638381983217761951477965868204300103945911950372940838592033892322218578476464238171803100984577074508296293307673845556901866782692543843604110440719905999178997909087757324216210778386799885630014232453881558678034990075286273627254975737410858529778103787842709117856755518747604858637830783185577399113239886333743606077440902819587711539633898703215192390458470466215239362847702929028622724468392049167694283464188976070138930698801418145746189686727600656235094471882743362049932153517743781858990504766748204017060565488928851505242415850863733243484146247616872892676946849334195336677547092189736447272034922170820610480757844835740322680021757175581764911610053666492478783410408746754133737769636531921813949560490657634945124758259647812275301851197050762351112110086696511597116505788299117763061555440221246163452879309462406082490789402603608963624602336010428095042399103797824867456302580427619243313333549000044938773944830364289397091834128591838635472182019178335242987499393997901873849526034911140011174601961639427654153723954123593660745262084041403610224377669160021276295989402087678182941751080516576851840317804080229904390587343578284213989332084197588093204714454171555238498653232605166524039331348188336428158340653212065158332432590502850306085624414688574974602701847841015367413118082303642606239060298227975320686270301752473974398802742030803155969447600200240281138813414292427929732366962501161889872738324192246071620768831855100594776001532643917037350449360834829904424402174520575680818643222881630702748037455006066748967515302082990486108406345108857555249878254104996422056071542754204999109095552753739675705548975658482716064544521854906939719789471826879068533149678915683406168575221377010311440099240228874913090040439440821653140857779350046926973222260380068430951759280595122530702366260415020538690834745517849967434403430230345245153307042076076091654368634366787817072524670406375890653909532853858593685459928337743971980541474992839507655632960666268296340274566283236560562046579940066952854253385151015067206371587261426245694596087122287243661160455617333322216908028301853108208187696778079875866830636305175561629384738967237605231812111569963378306122923677061501659320542966578728887632187268442224935402666780791483455362232201821869236837917186235842551752642514667668233162536924301669147382559201002594122028091558360850663061217537887327437255449429243210598569527182532655582224703791851952558277324985431442046852138638831060095577995923023072552134898367890029479308725395018299758754840625996101502345984175407870049811878683241735675697076894037186162657888958894107608136112987960265627416240307696401086994702366290961184433144815830355256056342388494041701213750493988275920485226642216414581843025881659036936410879063207600329664891333159813967470940996592679219774259418926703320078474982577988378536627952376949574460690149670613703412039378266582846817759588908961555812704765431132421425851230636619313041530766943504128056363594973030480032617700496129550453858237730780787748713426897113189062501240992377631008532346437275648814519410853336744218917857455202931406343144493287998117824778755044577081117140599385950551154547114669485019427603083414435493463230310077575563281700805842932254522178065918356525914024389574998552026455583213164380490646668967886009273170881364698462164584211811608844351352774365143561199928340674925308471431757591347697631857900334914242386876855987395302862175295109862943296092791596265823598018195263803416427759973591966660976076225710514761674914749753664396979946451951078539186726445606314425825948019161740784988235473156582958066599997258123213462615347359258372652241947366566667938664124796485872955032516280119139653011338226830965181250465116034513696700048023043912964809110322741638892159933235868873622445352659963857536655681761897582838777116992163827677716732502289464439180789662358395883224972217310511762446650494554030845620261215333942023129559216021924496317212218117741039822514503094927177900587243185533313741394193260991126471939288656013288334959266164427956903893269828161334270591133570171605032194313415729531541275234535501868219825978815190641372486970396485987716371172850886132825452288443627262634962683734575967512801466952191254665025929968299232089970175931898321192931320597563340742280497666496038942052428528401767841263695518340826894972969009245681384493747850613955944225921199414441861935881304749433592209551756773056532765890892030278640986205186324017576724171471441158817240859310096594862987353615149145320436840076879959340964611864649981849348258658160577567016167262242752849729361108345344251635374278837990264522764170923896627645221219683395669438560013247105564901721218661266635010603880759191422080277256905380413500748159880719475055920923553120810373835548017936161113079234871227326646435817724089991317023700788423982120001455949803804854353087311214672970131230269368343321005963784646417092756820030342378518579320337872062277727279606432355510863928712901731884784527020407338156061397072845070853825149507166685266343624335352457635968647171691325703259452034599908261166127495579256356715979844930045879680277901494576876316114701606243894367677340791323256536993850229718471905079640246096877892715242502453863644329333124352692312617801963368965540248087427434105057429752286710479897554529264711947111444185788136604349342426006998622939501945465503114201619873680451399416162999730262227050584978574826280663137552246280990154857313223528840054721187208736941440761612751825835475274949188792935823632103312987706061807817182397016434113117622169434612498146096623111165085369694781588255986972526796111509410258581050609108990358068417708287647756502530415046955367078843614675234699911405534720743611524361297249480098169418640539937479820179067545347919008867982031895285806664354636320800923954017358406608570121145697006376096574678197321719835903212488460042321997727834815103427924492589686892714055774062996020405972930932111358450361057307375721442559678605340970952845730459465941182969761866454920666372301141656153135838987249633247338688152245193734263230765671363327045337711130614996439567932966744689194197166622416221976466357845578710570352528830987389785335709799975728634724842207592466210868641620161704865461077407080542287119356592840030383755710368582454453868936572582611671469410123265526378001979988408944609770468651397411756886360645137792475490455826594340888604499948523663845100892286742972003748691011633521383067346585323903006541759233488797132083602783696209916129062598608167804310446328895021935297037233726527016109329537010825738185463438428383927377227198526698794570426366047998071863363215839220268806459349958457244259343335082293577530276364273729641532306455686203297010832594090026465631086541268773101186939584497056852953565897943282537823970878903419362330058660583630133847607326431666760652081516085708558304339344409122514757361640539590110362045045204549094532128703737714215143376018621677374091208360602662339157376285867727106401192381077926808165400237301851950068316415921728968107414958334176116132240705856107264113834022033174334167237217205379180038088532627834688167538011236049998903247912946782190692588724046248451957400401619721058156381745002652244117407365710547447921142081459618393638307901585276742209485753773348284087973276919963249309474612456225835996464343308723305784246377807157924559431556943319106005398203913073098412843507409377988696793972923535852763377338896955217919922964342318256388448594142683378206871423430807000094518283345716049385994961716965816922357142854578598299629465838884812184946486574169090857942313820298264479405438517379830321999871940680694566506710081298914879497588744734506012453980946011868306132129382086541854302301075100346496385957358479672921326928538757337576344799551360318557235383354039669563278100045644081984656254051395893495487402357369364822647363403662273398550674168170531581725476561450657480896699659649230647647563540465808246003178666824443779713207784787033102384577146013776702555860263921060564853038197314706743584981507372296300545635515383505038486948870402880105633753470236924428322825174800596260537397114371427377700440650537767653983872958806041043343273114277393227905740469273155893563873218424759125041622340733071048605568704814053671866680736371856310654053892447263440109311400987544835398319208638698315040349439096935924564362318592884588419136009588335640944498638186632307402806123629195548132249332555171852874293405004413590257993745279576970727239417536914338737984326882189115151649315731397997050725464472028871149911115237373881518906780527597011942451250825586486787549607474886137894305156507663531692475781579438267613231766150762466413563754411721416108223905372293560832711975454680492571407829524183197586803373328452659273823787071484575497442315621959770025968767672226089550740776690426485209748128640142649090308410155641584671696015041579029250067341927163239720034466795285488794966218725887300801735998804215532497634236639895932627237653813944466293509953197088547146061399205196878734413445417153164362230366348592159233536637711061743947975420085156778246271843424208530449068552079409393058721759334566173784255380034589117192096434261751485601158522360384922063265810494875437910487059377545733930650665828193415651784079124857996521402853989572341429030535736935964135128699251500132626814611378547687930887764949072147262659745460004174396631266380536458856423410238397321627234592500340127514123440890446256730121163035859078606688082947395089320136763499112413374976716683102762866254858360380890008989561786033017851242377388411062475659159275004857888284090444230424710857532512106538392414227024105418934859074257401577604905574860851064213427585436163918597389844967975177881398226138624195688354530160954249914827143886799622292504656026146104443855590511633412099848582719805925945612031785320849956144104831496066338056919053164973536704108308466947943991170691480382725791202696166575316344877597896936587603402253009336133215163983684219027371373903799130745147930077935471582144412457929055952082146576109977316509738425190847736031681261405907968167692194446293730471859143587232840916934093720764104616828531691682743261038694803548626087237244671224522190760591530222683776757857560284984223640344265860023124026444258494794088416871748592497260297949953624542067926909195081931664375357042124965617199586897024928942683569381974715213816900584223491605705047678962500517301488370506562825605029479182102865212307802745323389238318810275946459200839867762391857121952453939989379025754577598491474776304415761155433645636357383384490699779630656626525154755489676632153964042858683835523702626314706878227388001880390043284861539820486183736173248691285340794960201582964614967015491209547117541908421297226321624671634500233167229294768694215987797456305287376666222807164919061544060413770018737959671795325143657185123359151913020246183916246487057703099933170314361972574509747391622710856654362126950336073445767686117730652475462777409987527199721741693602294876567639701956626758015629886392455307040227254550118365096069856474798204196826051018893043055697645513055478147062123079731374441402411379675919992301125036032147575058829019974846805748128239190078995306708926958456841257431699203370384305832251948765203030144908552923480937686762822844484045333914271075283951281011666359853317158241147083978388316676724031522990886881936239264577272790591237082410219279400539349392715051897363979883411477429442621028308657481202998473121107143828648565673349704682179557215368390676790738812977475479961770272026543680446158409192473334019598168995454882963499646950875130629072123911950476941218158266231576182389810594196596437770976881364289849262623737199916747621892394872653433503671819509304738576610108787052204443839094220623679910486641297935934529959521084160964991349856453574987468059947270834131734226188333887281034378844014141622145786596385418733947323116217108228284725684675724600346494100450835831047872766973988962519823378052745273530750078899451239923408418300160157577477776003663545956745120919070464820799119134423745350290088364103003685790628296160018836060736424621381360981550139866950277739719133940092846826748902402559805906390167960636704002949166012495362542106530295806749369798516908979274352493641502694100744091257015223118286920038625510090585601366802998494983228882454501694157337673315040845096158642861657984523298014432602769292310997640888681236869308154764459175531575149193801952565343605118328054763743930495565385955282408597728038478322261469005725289991678004777993842385091380320146217678297188374760633722133028680580730836101365009284108552183933009208174051669051506907090405843147076925339190344379359623153854942598991875625266595012129996048053592515749351616628692225402748946199978513314366292170353042023141367991385405660687290799970605357492694049586690787109229327418169211021773636133904358871046123324929028862610654766992708351626577869018001825887062714620701189781549500988188824503534842146093992564091980283085735466287743600164270085846173095213615683815766566978050884893276287539545267349106879255161503737781072132319897101126391960776039568856216975343133060128025796366399018861395506828543047245730964680189651281774265485803489035766443438704622122142148079928843344334575243390347830517488466671492268952358635333050606924033190203540324113357169372053983854840729677752981933447307825056128598547265402857506429769924318436854535123006443381538104603188715908289600810395626192903889637792860981204604065471399150619548663392450012002363251937577068460340440654108982264097162502130663041297626589618295368448572721200934280740065088568955641206105313238689738986243462301102379452579333734331674506989514930677319842907466407940282192235813269945665268130475299725584642080757867901146178708460549964024042979588885273885516752635221924763837839717079690393727868041293791660286628722424599096966955324860176612378513317499198755383926857074578086563066901813498295507527784025069027110686678825342843682703958103183386753364355773207666284340075828532508905126726793670550627219105050519304436956027398216095007580134294114289196178890518496929137962402070962208236301813043991707161514160892970792855379939357232889539873110083682565099250140299473509361626946458541350626572564726035545504567099758824612986355510701098075602790250338256869472410156404068488554571892730814166392473662620149155876640832475992815876532104611716122366271374220870833243943937531824154472350026791511356900948737180112884726381133602612142169177067330626859210210269951768041257683940719060327936403400900068666504175098695602020634867398703483666620816839973281956677840890190579659101632243853402549693853158063812873934027762428338235374851263831982905714424825573075850939498444301573622342414552395761333583418178749565283758301911388866092460516011257180600685181578990186722321131890184602641963092878531251958401109333038444543550365523786939584860765712494918916905986733084216951003917382081905471863486665834674260597768000120809262317036160749153790456251320781719097765393282945094792437528858771604932609943699210843418812063685806177538052650180623989416763264859115845165149536688628877925258853537245447565336061060512730005576372612542169335595266015976263970846229453017256265422715382932342167082946841441137515238844291919367407133816599092883799744732905179918907481580008397980084512643530117946881621479879780361665877547508628705512685305275463669703959703815868384057602287488048103739840035678244453535544940465098141764850990617047633441217748830729705513661702321696925157654251472625043706987580584395529932176900617833771422620377539507191106924886171168389513101450494679070285772870474562153146703180573317660320571201117847016521703567119208810385955009737093103438139037684010209698534413359829883090882057890219251469385440227815264103947517880292595302714561382882765785303584812619569062275242610868856625036815929300325829046878336098911479291970027367009051122025743012212519014658734138047165100842324915180146840078861748462458501170830810264746929323365517884430702935528583667570211092248998560178789767864558803616604972889114202358526132918031854816830664101335872660627437434794940170493902682546991871758600757460024499058684812305215713850534255153819443111744563805438125593178988194455404491894027610179066127936713225013134526463054890430420233700818537495571082152691502674455823184572128336664212051267179987395341177073815959613703061077960161194665698431612137674203718221357111579178384869991701374252054471997171986099076809254155673701786735822440158156152373311989707630120885438515864621426421369313098079207363559740970888214102378963325500370976459607519928137078684566418476103934366386022560650204132593564627585098640800000356385411758870240129509606822469765018150877489840406489736960824386656477621796626455020089366060965619441524710665089704857014173371994550158058683431674646517907426846956787415488904532521647507564076166034682779654123783256236134971618821773406313461821519347972009954143002739114757940400821291993500355987246619204857342426408037711626921746273904201465803469775494469864956341738498372408543731628854824702303806534034822110899835659535032936738720595806027953882542740435014088893304628058714738647298939486540165409047289848321513014354308731580341119044938657932659388894180215274533413147845290900430715035491622676014605032784911251661379796722573418504819604628858546089977870146159938938894948158604990031385123117818887979173500602408060528783057182332098446285902842912670387685529817615013973765786629650936731239664685328583411462819984935346875552842807886880790042242315385397644783045967045546574856351942975832581072024223993078028231540458288341037807426293449064209303600096336614337093384644174993928287855756224853046982786322103161858258765659117371843817019826935446699039633227467567026193744639581787746068684275412705814381813373213195659037320975508872589727977120336931128634516578945333134290391249020573844084454286692869685843651338041712853205351298772967220700734114137914790375440078208167357429037076613058321952587822535955738382974499075792487432420192380250106163023093962416985122834356461763272131815545414668314597300501255819374287203163537162012031797934650682579984052411398492904564889859406665887008931294923396143494409593398556135227378163479679147760752487297851828526092157274270830856191391374722092991613260632339703859703085590652264781212467292122147651571254569116138288296637013611195602068145408973444012370943751595444337485788836125112737431957775841613478579147089691886632071129265403151315028831922321180111835435874052869363531322105989751697973100394469712296671136017109026743737084028287964308311032400220410245246278157500598925634555669456791014135163747727947981980677894223923906332758478673998545983391885573384958812963746702325318520814382900562694435823950839462409642310761472874883071242217680624753872444113714612884809363823516473554381302214851229104255280827212366466570757090461135457015402064698203514869126048344884875082289216851898912705434011652881905877950588916451266658738570929582280166522642848321232598608896604817958797699342911255858923846005174404676253231157981403849107741468367412305739191181859105189428809611821706004698039342440261309574188543905679147860400772706356457760982344284629515566974347277959651692920653369317202084608124691656428881053332621069035497747510288578102712677343805083093310374378389156341265990581511097965531343065976743504472867734380146093883884647082907134482461585492192720086586432991844349088822750876460356420680486804333988542377120729307357821931942725652651334119650436671854158578539961690412586321144034002755767395486033354817327789633603735344032186795230803665512890653131933630484674147438262800689264510881789439029161181138050793779242063604404802736861138611196548113230287608471176614345575445545485523909605241068704809326174218159441529886847257423394741439001145864377035688532054964577719682507192356255695090534407971772041450288937078960755510364329405443545885917719986076013378439052720694639684758630230534762437679040520488558644534900319359023948291477609709255586901665790542239264482180577477494384268792237730023955954235467114881839354894430541699009349574671460026975776667374475490157908352517707733036101631879253274896978136890297853159008907053147694542278026592079687948873634992417902694739686051674163510422347833859356472894415324243044236497504720755054785175228205089081208330896574052172038396017156647735101281053897764976548639750766087769057507289643157363875188087327708122836176094727516120646515646427815945491520195253940487499870090199367124114069434910631039570172080012600672832523842833555787307971755861410623707806403568692048277876979368885405182313218677538587462415032507511647034925940312336855026403310744449665063268176918596865103172650171188096688182890002617717216665610385197086434869988009087761423966297303169449353367700040393767994830618389877823988413938821396987287144863579270311892009608174610506983709491418223370559294430316656826944226250187404838507517404890271386256694958311711015292932385905084679284979221593030939616840572816679215160350980782790664359299479442900889944389572479566693036589187875657694307211481175862109782897824098512412821567373680117491046014199022503371232773705005411407608521150185807008649181404957439375701720849860243181793979398816090772349904723152250428233166947664839654252731725026741787655250667379748239356550730572609977842153051133128321239313834422643163210558170335929473853980369956421003626680382333573790320154517472892983084663449136205589265975399954008577465590999702583808181095345192767099439369816244960298124017348993500332678071663746408650418150573166086566570024020359295669081115027182275157771215189486215010667390931644766185467275982799519348442020529461242415698728045882040031456019059300793827487891613902501306625659400625823793423906538869903802494961940626535351064152670677810259307676814966622517691804917979001688743160345511071365858200796064243458028780695728298103708636807120206608006287803724088490556704508782705193801276568656120124429457138200655621395589189784120462755519695874272771050387395942982650890838164152293814143150831637313515205554546280468661891098051050516387239266557246729925714579665154895762792059888651118633041662403360423496940931102470483325431710987016602673250185668167431000116784515286134729766861419556812078848395348914790229200671384488639540307401398749921471834408007743290546698591628907455485542956994744000525673675942939250884146326929527993859229221200384323628306370964435219949794972024186936245600937504752653536361737584570064286718570241780150929978450934450193939458448312571254372128454753788172503567471416299310720883404560940939028422604398163825113594566265012020517212256131757292288351951183714398289452014243803821186148182676701290245993523434494608854525079138037979063575856672653022614836551847025539971307060117376530095798315585117855040155116004558530956014059273931140290586338186911654212258314869575562406397366114779273029844095721484687928965050787238788036938647496533499394143802792730715868998530993517934747418424096678062097402868601773940795870337634338929954418260497995181616708370745812940290711358517855276298707150560936794552570732796971120044597001254934408957276726740784068596058999653909972719765120069041889991049965346767812085704238514571295537854891078912332012015714197486035954000069762756249884591930404752965928943879551023109740059137595494006952174806819733155990304022218436129896115128199112701166570299215605733387609290780912618539068982705642122199689849676347735980671726352491259492720628799935254372294417553588653130628982771437755963407999027640783564234425481134655292079085816125761930321811566277837589640315516038893592594403046721492412915659995859551408754194322511833064231531605562241088077723577709567986054066205406050188513322272115117838672438905589343340247975856568848700466080390512327438620847761680663085217459243529095572326824641484044364771809315348070634031832853546774165410146286058602322605162214016215081187831011032095041717684450403679017521948636315372498953356200591061195797357584145970385036339555583836214336941981024011305134451270939995819586226094369398674875132683969506616437174612928645391372591763379937951260476603003600372396959414922359195252728516616319850438924374632139530263429404347228365247839789683880147149192065153166552597544962812021001296271111343625975835703949066836871607719846673536949722948133048671974401757108874299948406869267283004805146245729937174209251854966713326643413780196818135247461352804212926828971503554502334660789658150648582007496098056841785458830994592817900323256904158228353545846986955818549972801416807703215886159990519967149219823206664240244669404484573236511430499484117812384492388210842310727665001833487953463819005755386390163391160840540237991781482209574729337284755709125139046916228929486459277312675921974585395332124400744770833580293510049365300783896324185837920107337831923435374969988187627012944247816610003002150791903348941771264603569148306829261504239466252257626402705172304551295421367399990428651050081960147810897810131378099085972679984744133375330956369475111482057061074953022528551938188191964467207655817555032886421460673307713407072634664707331073454445251472851675838636716891099086790656465898698275950007485802979405627706499485815144153049365574085942729230194721253983145006829007417525432052094817904108077682394097475856120747112683633452868674556046297275933795199179782538643198517091847441695418323635625319869159751997699904098191417644067105017852575652379068236220641412494587866087732168706726995184466280861874421691910107660514910227900637714495501826240388014394460826065884753249196179949590359009009847269985332656397769335681414887454936256190901555477436716980525268224896408659375553050015280102541382763263069871185214018812033852710918895138774944657146640426360567305278338125365037100600238118874044547634926344328588896019668612124934819557598160434623132071649957198493970008674688924066874752101352931094969149424532802025566271667818137075806836564970555226421462161498105581363783566487551981285807413155434382395431793548105358394253801569027485400272984088756481825060674448805314706561414769137202061917966379267229080307999712877793457674097630470228599201876173585209610363840513331793344942964971262438118598676297051977267027316814000062052933796660450894032407043401549132241713438367273389633085013091342966605471348289718862755245013388469049509120375019845951630720106178341902496524986063385325531289251596621894459006603586641885765983734296314071502904033256311165342541750927287696710732069569189155211554683958778762743895092111713599537675107970492455135920829346925289553736741556579286191174852369845061901916168263505169147217199081562870440504037737163419943758380790515132807634753197939458938472339973372728212274675828035169266522971306219223725802944405156960327805671396983885933039821427043264421028731618812498075726052817608098097507040938476682946666054906591286983616064877190071714117931128731329133554428147345425089621188550157727794134776279027028947573555649881613673288199790991605780341074712711940127098132746178150029182452516617308628630877664273886725382433568198793531159441858119584351068199547077806196633966911498655214029489663645058229993151213743172828708280631930394234329382009156211241562865662055716858447804332061305649496530135649886741718130617876638110814960729452257290913893545794283713667827900114948495253722559206106721823937395018035458929844128657010821232228437680489608888452068096322262157489050796942450701656296736498237311558011921078851046949423133489422817378743636285031712334611771020624098840790210342674587158031212035234053802377453935003657839413698037596362561078335017178956672774634288724839112674051509181285455911422286332109754239429924666447513372957123995166925830076107319718548272076874500586397680785016903918151522436854664221818596939921477834811640516650952420112711985421857468237499836359509020928707498291275201990555119958777438912543711515832896465273583841492600126864694474950465483893193874005946229393097967698888337738214133142759010210668266065815554823800408684765673512858986122281378770565716014534108546414908096368887470933487760890394236993469082768866626547813712823471434931585894386566417351764916348510539665401957252622655289136260079965347349956132358101443751305803459733256412695371041017712703809075895467065506606591412333327631363781292743419412766474011767833164768021294005001641916932762210800656624564850217288366772715246311843698676678754637399784540408487046043219943575044843014922823488583060847247869199998353570563241757367588367164658850788531367558751362159093650549614768743717253611847747185512315006649234340349331131078680562069161829857596201023486740773610862229691471488813475773942812663992966571314749141785164809946862609505705979387583175416671656720257574334963782889418993007086957974112430189917821304808700193967011132124601559061904712414243017037947457284444909963070864497957921035256488187463355200476561239074729637908711915134839028144856680103430397296471022368796599348598310605940687670537663044191973043771182703698523052705361172660948206691669482902868121334254669303099432282848299864854729894890647294561795457165714104607779525635356247690527399296287029625817260021239452854426719074277728027761805374642723570679760584693733496219878072593522450617189811978203449588455821690226886514150705703853771507645081894872031842998877627062252234264607740350252704896982735622457894674929837583173113676184742813819085177767076697540552039176377054770994528542864666351183781714654013114167851612113942379365205082786735955963815950332523708183605906976688749197168176589646091632112393555725931394928144351045050658558615109838641693320266345593346302421686783505417198643156133315528591300005260173680133662267846723513640985034124858101333635156056090984277186570833140297079838878549695367128727705638727467917531957562361564680928072095200299408282033690986468157694325126935084207630023726485015085234166007836888256479138936717824313198936461036031760661955910705197352715090240513043490585671721936356953988129984367226003326986901531737248432394618982324739380478200156037611349334128507899805167477520864233082527469127364139700838832645444888615471120114211348555323455729242402806070442726493105659505564094850909267986757070950012202248142880153141921221484401958693153728419943030053346153408919947463850545753452289360451551505214931750377589756516309030005873449425796211347644852148777087263393534524417853219151819210609102489596364012236160709708609779701279707855236892574493782621445609426947421525732065222666100639807148064088383303616542354825704225567926138195591187949421315896578008146811908384070068146736263904074394214237031271662860009810282129470441036108595686369990738068118602682298692484454386089002540648834655594931694500289049590548820290671399328237452435407340346902267616376604521666761088981221308411323711025455638441217932880674067618376136250050237841001228298625561984942418537036520388251316024716676007194579443737419877792490880731543923669770808868068392491483264431936270691673461830892670811955613964166951345512192190695167119625799502898049322897720515282380990548673271258985723882908267746405982790657225047068542974007613963343992583477947399890158116894624106289269598394541781768433581593905359328967315539897391496879411205289564196526495775963086933591428010114679119716675899438714190003899037878256984158643946886091385296911592265378260564080785827107523340986592219990462074332973815023884907284018947893397682560705813633699545374617364671425273034385932535243423786597773228329135831981602019078604038475023643808382633877105309993282716878598592502667424835767937025923083621361696475478684190314025639288316226131193726652673618469326904416438910891798884320486902186926803133550070967009125398059935588464312406025266546733211356142973236788540683682801774962325112778205259837550580588680336883351877788648790885536811894086552774250221154268482377089270216718068916509741846192263456886751361684258373669058873716292216203381265097622551620486523135786077945570473740842103543578806938742675712545474460864839266558883642552657915931922859856369941543652812764263243983261489987139372555154071225462432208865209566645165446609613475899334072884148518548235751324814715776284012562358772105881654895904922103039167566840927270282003656031910046048196398818112048281771116979681132324497307910965912349842861068702591293659368598600233222310496259055961708230144789276899880732595718085540797306843801313109148484510780488081369674689287656654437727592726642053186080579838071789488364656029278478061248373198649144355716546321655528291179344680362001340184612276697287342347633983253149412775336932719951556275523552206574475004513036660083643441418584555108154635133420320470050645004606347659518569743431596987808962177554987749878800571887083384563488617486828632612589300588949827681625863643800233570665687679348496205760000598760603094368795401999270427687749776725788125544302180987787783861773569171507858303421332389362318897933253910155322262981228325977087574494322541387670187637646279059006238467014882554543859614830705944994755278126276745187532014676590793651770687390030987935187738777491903412302652354215796772223760259575684299679906549860410684419996705027904983101262300342888799094069848862919577320785271156477910539913189686313365597208759885142816291877068795341692327716369191760700861927219277573147758982607488968042272809090822500472077251889279375959201487747558645905474822942780468553414052212978010161119446744994219083033615375603401461065284207278214458007502646066401546970540636937140522733151244745093783581765974431448219839265001304722015671850002902419092240442853021426070389552862770992226056087790481028314824114105037762348514754772304103609666701445893308416995102530201569103501542547069694853035286899202904758838359682926129751275699678072093640251782610827368047912052569446102550063548722159084915073964368817544884267930100893305582882416858593590861479287845064593480981652278206833333812254765474433258398521626031193130643197990180532791566063940580397025874921966923273449349354790645256539640294927932464264234885253622177429505585182574837905772234473709320826616673709845083984473915766796690477926917029581749223155170957915775481486407908851331611004578230246274301027267843282544838908235924958158386539907973030860418394296792081032521808903520591190191389829751465145251544746808241789107730361217505509280170641473588821318747334068441723379941376095382710018131962758696253008440881374520573095580106762585519177564442108968017857119462354882450039390130780935843346459128243602595545818464855971098369182322598607472318452836593741609573257903105008989181714317312720842331234016409147204356661610554165183897112559650518191417909118621526312324171470634122272896982928170516457941514425231585977691950817286994017277048084174289830244769528710816688975122279953888898757973328781353806375581794728253329224183053359924265062462771606819237671555057371702145604520194952798303370804230577052130232875560145339952232945795841328292230562513975710437406555300834449435806961263653280518285103322672669443517316553239776251187937960782660051452755701118697971539514772720927774358985257355241285784271093562904593743534798758500558384454241895672439962495588009784558595912585285921798005347791008488657910082172830763721476935470762609049545807251179567713529932805390918220471245074053524002286567776854878466645888875127706980487498140360124202055540380577672212258689708879089379887727683502400154916318473078675529308055043413257870781022763019875572698458114244097470507089560142615850350019540805961750501365032065719299115423285041616947484611516892781999759435307397695838038008039082810884899748878702917260403255782074272229223051697981369877036479794635958783864471552315777075719836668374168391213985469036266191256546685137086381854669482192253599864839296455628435301472383450281428616925207244783363286253728534945790056738524627517305213084543868400510179140408750878810064230096603831077115877253165390726225634755017831126069485365053673610802180283801522899021328263714310291314592456878592017883433704261322629664511485895940932304156580586947039573747892656525722451777905129675545511335329944237920041874037755599341923873085896060138629225393657095309080623410350482790379604734327006706691901063130554315731021427925183591511108154436523045084648702683959275017964453329441235705670856716176639590413072233907553401994681587774291228345832430240122257575235243691580951248223478395707859220134293724742251235147165777377339624889180272851311170004866255599095095730789211014798356949576341947566016844810577235158757571822044193191972289966447307667882227103005811715020703009891579780964595709517605475350397232731985559945422836107391039796205291922122416137869336234268192210873848615916348829800148966689560300431649063528943988990728085267834859257153132492476120659749178966692225029133354403526262711772389562821611468125099138936940135144204026159105931361514576819978441006807797913235363674446539330557041600626619984080859812764583832685655104344088126742558404554318817359786028707863581927839179381768629636129560028390490465755519590347687652570092935576326991703962654886573956309489989323561539762032449587085393538208095496027493950088783616594506681989898888892147183286986709779136712149317954938744731913379166024667088366978363883990530080998884580298628067292404202117916453848892502567461525088571164403769614748630459013294104407708464106879591179495751074592478008263997240173957856695431010579415867899924354392930300196497424871915819658110706071797844023689301374632849259192727526659969332818696189382691561891511876138546370975460933667763427291198227252815271933203742203823321941006865187630928444074223988318779529628706707360207545261529606106171658888512023888959424136176211910297145589236950810881744483177870021427641965831522962396979891649557236952230078055274434408678501299401769821635767080078936047553283613164545367867129104885190847690434816429564982151043712050491212350145304044578765151550053360469906145139483062408813398778010033738254307509513294664519901235081504751051764344995095094166113813922862190439749614522504192902090942185443517168851154341929419073013899393827335031535383533593985787974276013566230027326690068426061327225076026019016656711758671670087659433189164783001355234089888243783026382832335174375447582293257681731921759606917307366731671955180489982072066889322355762774551052332573842277751856234430064670065447574265327767682388160748096221595642051510710602726179170283943764231578295139504095716065781895537382381101354041188148799085935025745929033558394379734247868786241895147645780746399628971585169614547282519757644287223871105641356847570202590227410475701083552922465215064406200974648847371364190403229635202904752568338864739400472523082444958389534948173709810941086432070754330997545657843393662319139569261098416796556364129453598195600160041590954335331780795323264173456306705414090975724628602721177817969845431866109437321069290323206942143894512844885330861983702472212619763551363333844643927292863624416762109772177908480064474885457885019376586928330118787720164713989080130921296184744354147769361473240695501313443362144121075026044058926268302728528723849681881106896690180403205015589469416659366104385376120578857505785654298326368325367653648223326129964007474895102658734223786507790377088321194096053287065860512399279817869704623729103360167127954688859175321503734663832627910000744793447669913972235579919882923101771661268699934654327450142101802665844030530475565916881808993779453810931089382916397914977899134179719995271645407046632685756816742665230311236351254475397194181046348538472753803101397041816670047316701075405392645082298471057371646785626127115130813858448555415337633621509824747104940217340405245611053954108703969365512938111644850852815971490252297193158583461112399940573582800929042888462663035666144935526142541033052990657089556362980250607264192128304270625229605603276125434601319733581445579752591651599031649532368044323252211770974045624460272980141677434961568231304976028809793417930766024591913524697142422853669529453414263411828218301729566121465976006358150660335553380028443089877209368789864495631912576319606623851477834165375632871199990657666973682447039708666501679424548460208704364388842839718043487999141324007050077582186144230409627269092842592874138750643472838998552292558605016144232877190856840515584175366571264334420660982355894477500968413623370067389844185179768569568327068705555323613672058187247330238798788409477283311662426607258117600234734247124477307554266784664428998113385797517335607752466842559631613426568942517811495588806642124355902636936324728321168100325766280397365061472494585604367024419369913156928291224294838168452062767194555122335076650961808067845282855412707267264723198893219053044347623651992545504569383465111987949603408488053804276625838171521040470646236440304231737060326649570730924167832039217115903524128579538109879748005443034476363415439988840429537627580578129018295939347894009867995288393005213724032604937225409726105529027363360239045789012486381115344747227948350284282190638977992807426254402195337877584184968360304671450759826272396570284988013294212586883844534439617027345105192834926505656206310163166317364611373510131044235271603804585191575967319266550063564021640342759158242355381976176516274983882349621761243064335375566580011564252442878473603748002212037647103799930710477495681284400353230697356792744813623793322334475293035673053267914161153333571791499942397075309917117804991475580721899808687375291978459264630097667454403718012294457278866787589629412606872419815387178376214431075803028019628283940744095187072224746453152717576296339984855776524840630682020840492200220275072238727351971517280565932592777256620657601300103870355385562103222729017828944893039497626832894226688713341909847451014739948307356772793956523644327710754034078932501746807920279737735281908438504112072814634793039968893252375503382710616107391394062158708009986239104933470719226533623009198626588476341355424516990711475644973505452461030474080132137311095329042536534148736387240294631478014345176856201037922456471432186117761985648455541711914833506484638384292713611735720353024516544054715998657548261815000443175950223993815542146497527529090365074657697777939642704543681889813201101661699605885105972313839833236783191795515809991302762523592502380310407334950433015384491542159212039869427580466263053295597791148130780150371189597829228700244639997754326782834625434828507645484190762063712290065654027491242784706104468491722758954480717277443314752078248870136410398027535904535699155102135673188402427416556894708992474052593608049271657815680852117226466735836687439928515746418782889185846777739692639840159525135638034110150860339131195937964704036338381694179986006362149861885512594850904770916328397911604802881057196975987166621924849400628499462949857017304877518605494106766219634649281912500401444388882688606688882354019474032579381100860687078209567547233975505244325362176775101946791638951696770785427269585610394592179918920851870819645958402044000681203794758324020384912579597093624278758573897931495434864288363549461553072395719408246795464165827458909173785058470007022446760785312489190237353436794689148072651420146373264265571686400507998965119158826572985395840530664975024738742234157604777917104347040741252153795672660062899336048304923074820171079941531400996313574231275180349568095551684237504394865092841529192326173862172899651937636718489139211089974890003848921320829065711568064941172569898869570484174337094811710416897335964110003713286746933205469180829539099470810955638081843419967533803199149640776864642792961247481709862965373556758225531619351935973397954313641290068356187571863020226025784442147864496218656603051018652502712656055546862180139190914898644898589447050577089249341126999089138957727277800320783770375992868594700992442730120559341122961841726044017923825873026387460625701347377535763028250654594197793549339762522464859967483808299272192105749619832777678308448217425155344493968967429413452176101333678919731398958018400797672390639187835297480930146575149639173705598672644283012516449825248334692787118606862808038056807056388688391538641956639354976663392034420102579374654543314176714300479819470916418890064405419986396688843887454679918616440857663390627711042962901426267957525864852069784739982772819231426497834892270256348315105859046104339711916353926451791610257439163271610361341240664749975717822754616995216569930968101630897767641919600069764702837023240708746985519152452920250868181249006027704930803044088205846729868327208094353823372743684512072789878276630503846189037604031378397288632298911030019125011563471534450216239861554044493689413957424627965975129600070396343482265780097257860159789363891768125516408875204398330123792237371512520323492569372619620937734875665473403330460090883931454287075449429919415560520607399946446863338142230412939583540213053118414952112059710961623760110897524743681963960369338955672813048447337874945373360922062081774804113908657828905603835798338902082170188149611202408119104364453170136361529900246913364945939982612333067103865958157998348029975382660169979732553965181424605524057573371799051434322140673201239295581105492082623382055242106704767598390737614381973201622970393040680285316686299620087594013027896044051132437547723690864448711977113666496116976957119549529636414563471641523905615201328153789769823473642153299162875553360876486570164893168554848693749745856158022858257999206593794632393166146744265977971689196857684103951584461453229655365943126392882339025774532841373656926214959121991566467433662909227552372281013358323460668005915054507697874113107743144452998628781162404369750849873815060638267515413103803685664695906316937410625204197257320107500099970753574222558201388224375217278887034451077766863129584553036827966240228071967084279019954958310112218847291753129386003659133328555108656809671828765919288321795989587786851093154560481818344428089143893129183462772286580835626979705587532349655764838764378769520110748905702745760891236220668024777163545883711656202063235184967628036091705102498968569470300485772440760476891956432516534569726042394190488116016274341222820047916492855527015131900972458446334273018031875626018834870485334859097981860461483425926691168736592409496801898960512478804787390883490897735582576937699174722576742642823120683080339470313052946911743507655122560878927019829160489777237801485164689934731588307159720698978159285198977170718657450265081661225138212253766803781843435884282684769092463442576667326180483862864810249178536306489820419346068403278597731662108940135081522870349036269769697311324591825682977357040526119922541716346286282346321847409498955968099726140812544904937592349336087418841072634516709846001307138779835769827011423194025657615061431397937527532167657535560023722179522220364930891589060152140130803385891163045531056105867924243411327821485348059331892921925149368410080061123216755092936780770279857427596931008491806688602800653238601280289886063090419866537168145606465444190789872848371855834369640852131817648213291842579912713961129963158289367029314442994236955334892517771010347242210230684409567769498848743967879988201190897662899368439537756057842252183115732178148655569978710951969808266043652316488615191027089328618326591332989827012204419867146685801345894888859168217210338348121997014225684357623685214031289454166474601083934557051440093589392920462097757279401793360755192687591023348823933950418534158863267483515982005384970493358759892049886159170258358567481773899775415959217473672578861451891856749255654304532105777440965901964855973066668191824083183434349825114869070193755065716382435391191714869493989619719309354053876251057085616531755847431621085322668769943476903550542920184272385635041296672820378378488202300134001557392057334971032363545560093898613018624709425929182487542283700386818555093126296313619417803537680486169388649216517167539882910282882008663297986210396595582858718486437989700735508560515646828165582733482352844016399953359307423271163295791799833737295236377648585191010349061279281928627882810212235886647170681522713945270072612743009261931501566259437767493114651841800874948371907378292945289803052017146106423188980309049852373081769698867270766456397695625064412923653708626221119617124181339398481628407495061658641206205696363659803427564572939995222630326699538853932842946671609944469890974951971222841240403291220009835641959365874685219201971759161166226220369499269020157761087263568143156056166717610067798684331210985866270832306291777507820627690527185030348231310588331355217720226420227959549372846296938198076292465632591396749946770744267208275698284162684155079263785866414667959198469654102721071615640610993522636199747181853012953750868926209527648685710550112151012390134099904012699772915310732336860565522847414347612402470704889329950602972772794403262891461474649640649951426798207186010890667439003051456653649377334774280525616863152274928839919977103183100938633328689399643620657209427285128470172509027103666346601037060038780487537621336417268018174943066098878749473179878376014931585781259847001720236334144628694399223941282454878197168826049595807261866476984143606691278697694147281644583366302925217872129566026222207091233884494532344060970124814679302518370152854971390335451012328526803019030391116038276170206762214997051079532623564444859632553860447898362631493472173006478833502543566444256930297974813322672791963673092996933859528390088652348609135088260665578442583363267706456298308613169015855365123855733877729356969423416029618740803382816442676709280370475669978067329990466089622856295116452215749039319016603000516238425987527604069578148451653512578280640631168770662289207070952754736285856585919047886240977183627574300299685378073222529760598030754135304538099440087195171972134195191338638173355654297258547830327517160008531322548381137016354557826347503705960844846805229952658294113426936038952111587008502322182984033600183771998716898030861889395483927138200495590627804962157683806918565983699266270353657405352386350100584896319706666601049404874984514156335340400707535690525792731798733501443538830799787171648416478849975039993240744195092972418923596040092549524883999481288731426831120848509494032921475257105324120417767792264324329794055251443447025784754244164629661501103732757121969578235715725220246957879363245783284462940825527975950812420262745984467756860246609991660460862693726901957316025348836054498068892361315983096885710039126149589036020974023640842374225210325045192682734191415772292627736821935237748326016220523144049899483480485748610204818855308323736161722248791332547707208189572604986181515857111222177557182203661109144492759342690017919117072046202920114479336775637172292244586957618021084281065845466810160402218782410601098929676454780755695347491354019586052059760894872437214037278736910765096076434439008675534236191646935302121820982928553590233946185209781302246254295032395882561796410027009316839117433091613424979933755851789163298903264400724142430056997390873677522059924725312572590559961520111930745407665610757128666914140298888658221853025177499193303200018225454790196386580931597172020866907853967369251542245220354615147749716907684561082421252821662629650226595470251066791695961609806015987226738576188811582374342240663465396397597874935703334135284320921682525605295731974027357141730338866879377301529474509381214344466670288704023549186891530232296714032411078040218550908717526936301983460113800875775993587285582100168028361679171462284850809322274101707341335285499512517736577479360458282112760598276635351388690358636217509662082789938724079915906104754551773519881417060414681082353674450893744793632180447655308111801233381744472237453109863094830694190252727479916765897478012650543087356559238727776118749715836219099033553108501015930330477357375413037830897331315777451779042430006335556414279988175499623202229887151521620221554439807001381006727935691865644657451212008414292794156717274200981526621343480019577266879000498701247008079499673861242635161962194503368730590410751855018777509830765951582954478879760562456650011024344254374158515296626802651514797604006449913516965761878096019370659338549698207904436011968809485701038716034840292126946164149659358720095782652380733588546160125468437076350258670536658503764982235050424587195742576548645856412844666594506933996531552192477787756814146395167880498159290268354954089649872664884970127342152800968464474827442208726935468664078242397454007570621112005045608585380530773451170877606188591122637595881192053478134154544188692215275575217168110141345355632863429727485289231185020513148010318883818332971516519094780388775866104745397269329080017448996871776654685569150793766915918057270080912077116748180593626285013091777929555209793762173723008863877348967562777827138030650388119139304315006901963898426573409927772267706264667668352151565914260358315771333676795236975874642885858776646091049209784245202781419097031840510687957058489160133313497698359037319656328286821980531846676523662849879738967511755529664861817093597527499326915224295732212243827635838697170142217559229200621871401774253002063415159905102562040482073703896995295214853853549259173146380551952907692417910602590738194736913925903647524653198673114748507768567711858142871158365202679515581427616244117467224065032963186103954012540239891966537131337795534161305152175523263834564404464506261643540010465480012550869740226578824813218572359016862332440540644346330207135693367065624615539395041438608159482090335469588260201378839448201946961129146286403647855428295155843853649443301798204683893656754844798470657532394019861022171995283349249823157378849249272755454391158954917716012942077490476167712862204501920938108359397863959818612112689683497203083018145443538320791422477290835602061461616820695910428908256712033810422666766446540058055821221095851514932982336186023965393259596687066859055485912156809615536357582976867927068971474856286095783009792285937523123920884432066246750665090551620077567161974328219861291160349591537741995422311260384341777645152106195931231077288839567396656344916298567025158965913262022359459363873927016770866916385330652602806346447507542416474255899448040180640903750120992463811424835591719286359344657668685667941029862941518084951244155292691922850923387260796150758211330169764606256126514128865758464224056002043192893313011925806008291524062710912125597988271511659749498986426917402561165674283409145141310779842211649286299405894927155299138555881886616575366799018072399295202670944188482277163283647236052816823440480640685179060297360134351935884226893139109889025806343305175641456657564171411096330435688411145807535105270914960630881602299813428927580630407933814380898405149873780008245790746640587352886806901662708130290578342363094250851926495672079849219530814907197683065558455571207562097571396067118820036263753051351153474666696189502402033583185223229750663053423253013979306902135342923985744349964256593334734697909945615116141465701264926004395434571034837396170821427352929362986810855449583743794610959900064309238882584217991006925926006662939660089316356559960634415945929360589997432297796803644077555760637512952187558356303994414796605551641749230401375931182894637696823470066231380438529350468081246961178721509953855908102846762282018258810128371203283785763897406286829058279149908183184718121519982558382136196957779185206447139131501539536897405231835562713613346549348296645891986803039530438205840627161598811108550865148546656206724901916282818947239452230935662260270542724656324266057611724230520340747941630976008456180955383263288877496702253109316933510820491777420184084674321948893201740885311241601791219252258262321048135480666721671331824544137286921049549885165842792297244648956832566004097513780802310707860645766795578812839983520787643680992941731851309889136311808148398581727319590311524964298908943965729620136122205242201531715539276823514566051932826226455217731569930347327251438370131294188932952487701471536317912898430167206485470232668374290587774120346557212045384502144015315823080067559504640030774797181649762719903660402576794188014624085021988756638287560526758570892096747265121566634823824105943672732401797809315278401669057864658529023566617587400803448152975298845483805447764696875325096636576047837252241159108772082772019498870400881932815220904766209642839114760939157814845832058842781946172958928707406125044316855718203849520545915792628843382635778184790008825939985125618630927262319533181193431594922574712918680296575043237810738371412191333612671136992239389776073201531159901833202350257557996060708467502274075221061741836201390094560891190534189588621333204307302529916766229978273616745743631152036780611882166694769577030098698891532129237180146818784778458348365188722465100008647584849095330523785555468854523166598829607051777898406425586946150133297097346058712919765091576327324188693870562435251437209498035318468315526452880224590476896926783379855693507750115600281316152437066389904310227543650883766207357031708593032780469194822997207303612399161789542761562166708217581176415710421115960179108937470524287298828341798936179555723322482110859762405916571346910438595911459640315092511751547565747652196326568256674678236904736718849432654351785090698990139448103035933203091506518069156786969138612183923264689026562999246371267681035493587957503660284530124669467179933951510264045334739151861418513821030542947258154915097361011830409621792693327089073376110026304063068033211321784085664509788761419676422578849150807951092000283235529978588293141645723852990126068590455859160205860130039862061777011380443655853673521503256573623796359240860176741957905107236761793564561492428092701779577869721888002727464485884492839664256346972819314896500098759244033094236780201770151354878416466691774549844526750079403837861922523397222782183652389598654108278785327712471649011719188349875897683147035316756245797067480373891568778658738178671142349709540344022538218079057183792733937591393289737673799241972036764874335477466311732957288647053778633382612601433348838958427629852813030210898762115475221471381114313606333390583330554031373175027938177242440669887364823764231429728015358664939877183784591920020177384686636133500092234694937497360707808964051957151590538389601774764798895423443958249676991636560512682832544553081420813253565570342531104352784312279914458954835630582883224449376631807636395803871820300075909848520544515274179034321471574874255194920665900614869177289668855350108802873934684571900976086920002779718277720995826793451830803306135716398359446917726403005164294952749277379172838954848142174428163006723737789729092935528547681556322397169676194051963870103761052836969593397794681006555999004341505729567935451359411427385812364600970830276779846819345606531889000243150018497237245625070848624504007665726740834913741128965853560220770706560798387111991003707947927455615940922371909993002185429208481499574158635490323939993530217522544523380653839540798777897983880857132972758236563593397732361264496594012589842606177820875206623596141733686060663666240099879069646382250824288150283755185310116263575403286738188631331291047079606921157693337309302143253119931523110331597392102118366875499379244734189570101180163657754078349187528641266112851486862945375582611058309795159197896281085099592875740408206178873843372228961996521999933097781545275975185539040156430665319650323232798444686642078907296783103174949824750848596939789270405933647439082543376837576225843451807289780023085458252601016497923051003616986994165744252215239732349170371321559108320426335161672854897466868305428700171175385837692345502773006865122782267481391695824419839643910876738950468502681981380503915208907613405644973400634073769946221517627115436842130103170291364109820846237823656654770016374788123604993529440764895735252967066701592021107974483357953616439175742889743295243561239571243879619395449918369005108723202514674748223290664429657765317268421666644217918878106341351242336880485101843032082247907755938615600263853784034485797439300053062216157362930387608372496248446327717353242283493939067025574151849042301539513947884344724098341627877756626266428794195324536705454146477589177216566323515140121578939046876740345325121472435827668229533261836009270738770745758957765225135144672025992458346493495128987887247263518383434610497146772253000075552801415113981633591488077059292103001287898229642750799434058058574473686503885527274563731219776691725826438053802363088731586166873863222400465722961879879352494055330817605986507214498689025306121349038367649405536410794685021888629295764968972531759053500462632674968642962056438145466109744847508865369554319307806606149356470136352575600921144383558063220208749982490985241139958118135933688735839097681950304448146252334394092262878450032192481500661555566163465671385273083485426257152730893672474106647452214598176636246533736411633816956169586320034983375520868657682736721096554708946120781000654082555208574126617468833632750826545546747205361535380344604395905706417885662854790773607258608907394105297681838875833712030602728951386834469014759963561101825637465826295623982141763325701939110733282084272830139136530204738615981765228472653687482231400364062735350955906506358198239820921005675356055057503959981169024688514190842651598371656518133643433708965343113515851653429776916841403717022168279125234282960701289698356751714444275256268414620342345385406600162372842237953890513924162819006872084043673210362723659518593512037909402737234145327840004536936613936220521028917451499899536136461647309803940638940688990635111412023936402708078239165911030017104013007088270540860543187856765884371286709027578886289435487042421053689819620933475494178500726239047405071191856424156720055283898529869530835132936137944248091836869599315917027909487226187366935373572247391990145290355306196524486213194805583589336242547674478035468635403637958561561285992769238288789899624289503418835883968601650289478238212899039273571367107936230719186810160849171991934219971688395697321291050445964675054126982323602675697730874691327818667807357341139343642877674272774428003287609374320159342534079666067516873242380054866746511703256267204908404019462182219211172566156057999325218527587336976401611420879267225704677540524750136350400848568921248698995889340102954919468599117306843718823396907164483459541743628682238791039078114464024997634619564484427875996945399097265280487307534092592441388151720590138910923892287834435327003230124383562371929501789542323300297110380670973185369615469508661331328416852827469622964854136845899063830501147151965807786359438231387250619181461062629280414067397621683901470759933029890364290549098820085066695484649475113213574182257077979154103779716519302127834863795752219279572515811669907638924984955401119484043515381041788360292211806531642892728717490318809513780890235598484615709361054340869529478174084787079439708728864526534074010030367913347799693546229356450811340953549823484464737250943392672150960816939967343776081349508700005161350451975166396384522272388234256427183834752188467128909426506178873263503457214082243752815049324763363612596177200343374062313284273945370203878130979046565123660609910019815102484781692190831023989176307057130744071568784034540288825082814363667340819567777254723552504170145258559259398934192376910208283984587861087383855988572546091137403358441534834628574731656764874071263726339294555336972577261547220222018967119934737579934026733240287531776656760813404742173859092755158843911014158417587543862615056953974683250454481445947323846083033262586031468631506053007398655766010566402062475511128790452065787362432487051486144636281080939468302143979000837243618847843609518424141550462513837416123718236138865308510795385532445379212354207681510232823336937979404310541354396586892217869177615419990966306764235754296310245827340011579294904109278385710607333199452247745591110624307984008719510731578158570688197895456697087121438419796719678003615885319109118476689968673386485807216232446914471120949509728474750757114737399938147214762531492946694293838503616870340107968338818494908527460933561960742066535433149196486209678540625976054916791936299922937278650364649760119241610931222133897693813609925113380632339178956334778277098437002350854418468789233071402382572612201944826407233085108193786884355627831947308390774980639862694083135295778799202521599097326211863533265545428639555202866642223735107992803794442539075831596193410172612817583298164881166666703739592123841079893628770613311975213635806916125662946914609864002017742093302126841778842448051502999132423076067022940532924136998936420253828162035762812450878706538651121829644568083917504145847270309607740058369623990445785501086525115164283875912896418014417485866432326810180177109027090957565029335856372238562009128205676506464140117622597093793957478728657737703668911499818560031786288411394868328771211349469206841239137644594780306733798665881223023710123191477045607458296504705412029529296884508350605386515907036254121019234755453306477383703104658389441511138861191998204779642050485385526008799948931177852157624408178774276015493647197473703195577176398684882274578299270742791058885439503830301715231373968174987811973768185432930913061550092121497573063772504338838348439831366141425455441752126543588672466727018253713717016095562846367507847215176277533378881787254623745006226804832547396841484691521222162784982255981293272542607815084627450550240240003659184463922776097261881105358201497614563043878765607043986588822338080539810642087673207187642196274433922624445896617742269077121196950337595632218179277208853001143960356031089198356263311440020271502560052756497027808106915606577345869314578314248155060061903824705099251215007244300960538197786381632308074593147635116767555932534992678167082227571300084554463379938015196738399979662066887603894504599198142008429462955058286511016452974600533124821056414520413259248381772162975638828823860490852868694270949194712036615109053302762431697482149491604127471540199394348166032277653720653066438974335175709807628882449342565047558548326321982383108332909020001061988357178831979228969125505316356186274748715778413741076236074950113412364762029776507097729235746087914567815991137951505365217386510749425086549893871499609258524716566290983230185172138598884157821127118797631850837406915332540954096463295977751168780574318102629888162620221754379968340682228797538542668539797432146481126068735287437379454586431149679670156624006273748278782969232960893552097935973721175904364586098165067595782562494547032480515921575280587547246249192264390066810957835452996908124624301811414980520416488032586096504012814956093588707121424116339299828076315903872384626388689213795449706756239638842150597911527389352090674624207304848985775468621696980098660653695544798062699860305677526010095549113320741836843631308632836820198495665216510901384493875367967673089250993263261986767037063081524381094795120489586486292131028219962068074340535331514114940996479538562174016104696788860003639251493437414751357811222179240173672669885878558570078453248819044931809838029958409538596262998693534830619876713118359535421161123395403350631119921098213836132875914129293015468387321881734987276582321006958879951273201384008553466065639323701500829776266911401358090287946086249698529408308840690661440442886493760267795531020568817503709023830489290853938789523809982447752420397173384126340788286477670392745063424294906878395216392627427320426171645344075248461347222487876678316742010055378516454366134722859481157692439794378648859839201308530963908223067565247324945808304286648560041681809818495676951061597870531179272057191145972216142998344572074327549814358533289798494930276393343856775979825937178550179063438555274194478039214479878756555072588769252491396240933177619477761425291198000564698785620134000506154322877207292736277371636716511004916087305112950812931068710526908276848908488716222731516721734250983290616277000809438554853893459566712641785954469920217676522954055266196821698218706143626282712382056488306130112699149165008929640193182945937887959892874995155751167792738665795458800088065109768589674576586384365645744852232406172614536106264570991242853013731559319551141478670554679880829633979134304957686927748002364244402663706784558495621874117253033253666354602021830067338065891186753386923293945882939145784827290733272785767780255203199071616865383753648350245277216479046536316163393028271462207550143445074719415786043790058594208851607933247082745931009729669847095155520857304386701693057869597359305835660296974587136066878936341439849173673888246856558284490641361291692884664803339586635461947579087429051347437929360572765868628431376584755587553613788359742303519788878564463809818306730017071517744864447404662902748779438356807665444655003540856926470821802061501342663815535034021014223048586265865411858487295571435973256533497380112420530128545491691369367008948750144101686955604075029222817420797659772439851486579689636274914842397884377162920527240070590721623008647453651122393524389148270834182237907271824834859266437980323989496899838783089434629808013555773729879327012428869563801885465326920052826775426400541857771955266311812957425969473277080327007939330608685153669528310267375688165830133220629313552453539487077715361831133755769386426273072874781696725650252951662467084502942624415150295479173834241808337558615258147043629994913825825378864939117228894897711396695560582855736843629897984695297885163301975643046784950512317604435245531701207464829014651712591298127552271304526850985890323731531449511281072098541906589002423100548457236906817219438054687678342810845136703399903838994224642371614821668992424289384964087783645427970169519333598431727857594241038741761581815467785384230689320855509514229506505758987189321765805423183064172044006197149256156272258977666692674391207413613507626288182512518608557219393043896714359217850880764180651537551307321097841767795696092861755638413762790838650498144121605816354766825180415404510927207546118501534276424609877074291152419927155741110066047627045977109540104148546609570322696554595384426478873202785644162334001111423058103667373871992092154185555265999464287458226342196439744005444322931217472679102971259404352815668272274656035025235077047948155226790474349838223044020420939783963891419906047667727254910981894351367830795135754916608045154448433191921649395784081260049444606712430875847737706090123100103016740463583140785957826861000092936675528826864240501953160986035598727322867736572307935435121659372637925744202613949338304099434601825188687665861044139655121001869049754635276294442796015502013695139356741945852858922327533333164526548792698949297488689118158671813472883905744004485040773536628492195719256629904485752590946027844523568963214357264381517807354298647256488414631741599490655078342274582133328095997813117879457845481520476591382301113998955154098654653848971084378821718533832585934248265061948827562789543391520836691354393513007100448266082489862227516905847406674671676260566193626009449797233528120169511817504607305501428567124895857472436652934285850622940740184511058653799059416234434878419602752873437602255018243271272775303530622054718988414982003196559033265723333673174067279751500333926462117043910353988765012653023520950295581328420342462699160488014084477521106291175359181688858360305095183773755574659254659575443924497033843442581098906010384715372939634469165995433548204359290121693648385434587392978297281191189143618764314590817318640016047926848934698315908560916959363601887449534759144589783879704328788777832959521530732194813664292378144753495901534155594952799275729625163700262997581508815747972907667251845021374773060222194881863451066571722948544052315998722182206198512083898054992644082466764954941096510487194804289928852194779748230463868132037552801434599150259487699915430199972382328202850045608556837530903048148631970643165474568363803774448103467222991732999941953498135876267785423708804945470806951329549405241069865402826444403078812039946494336168040140477538213901776182709128070034155540459092628058625574470222177747814387934328996994041247885127407531139447728507585743742255799242971906937283526519292223325049901505861533426381250991583590898215128467487972705425275550931095349613204310781419698336313835033719969408179093144867509537301966293186477710585742738771437844874945072360364015135381232786621763528139021893611037415645486040705942549071543465751305962354181008547822659425945708750806947551807100006947389684383465520276381037888692914654902846707823130657055543750766752882762257434347955563626187132447083231716018532569701387113058204170636122249750099459280913817902992839244265412482815819958811363256395496062902613623419846903786921473483203076164441520190518360138000372913609904128384951697825253018156608546336610931561953984788615957035205999193994087240692723539380214380912603853675019130666350099322457469380908803126507626256923259223336977826119081238734270610650678727010142474019560126424716858580950198767844545855271868529555733647892805662604818076294348111476163895121242700563568841970426125710654657149225506088126148314524426594624125828743165177270261988930455893895358822238243027019103375621091443229019608677984616702872146370944291068713246946241769883457705679677809672234370341212702358017683590714375067612438672147002816289880607103015809072944941395524321190637043631479436458510738798537996373223437601898769772832335423833037028921155363121393747587255126320357230799936797029551901590270816144116279316245298380371292552846363037085591738161400832954129899378617179410290938553139130733359662880884187639269475271504995543299163450837052520896154783376488222144220601023080549600632366514125819639882158765932778706732892494955080219146217232470066833335406001413809556020474519026053668109508057420657248615181841029956345832755565849145291461237638183245494135401615269195549641914777161167402657798882248109559710594946975832685172820521824468981203713636699923089724901115771979737867190969484311629145767439841848368410004949383441601827431466991127504110903249600753460164179663990712005024674902047548296302603168109557860166482433968093391259220196758321415551517771487257673014385310406945749710550204990504506623060542498157453332419633099410075397778779846658681291808496157507887533936323296547636369855612981793178307140956814542454246680244766905692761286934018867479213188392987123433222960189750111166054051539669496374499332409237078938385223729786426304939603351637126527827871210876757581474061745985879960943780818214431755806011615307520924950657137964516121238150749687387941202814760901146141387082314743043293869031913251638345987903390282364023047818059020692581921186191169709523249703041832345981790643347178324586393898097699907169256294567849393516657637862446187930302841108477062849486140061497025707238906762784401624747619316688720295268020567321241296561431894952331859132508799147228635163664147067830057142656798677087866484469778509292631317693616129316141402623165256041247070125611646337154957099394490051709782310378567881268200709042795090334277830550033109616848506462213528153964324345157892050579043794516433278653226169032916262916226515439971119699534924680117120039638304507095667452076097999774455689367804490929275584487103583740342766394910902782462193354301697909624697438576538437186409465734625709233115356890796024612981379159938289368428199464477949306917735976528704572929728885133760210106015899332340506671111093754284766025928507296727024175825302133031827370004998131063972504367160896822995357234914656393056366502141791569763647611057449220226644958356238924537438635902375518093064694653477485561869454800772489691332834219844044143660329536139112969274861730635558587572084583707908552181905984567126435724896702149550898842452844193821470883314652534739775793884482939873009600343983641670295818968321881286089359858797442592592853554615897392022782430618161818838687528618072638311760117830952069278973111380986848655855835647193775379552401723148950193873191955008680033820297653223161852657127889709123511203281221417067149449541984609146905356106797751832782506396910429191180476283659938126922846235502430776628200656291066694600969829824495843556992514061813877520803267890842623926393890965446580443986123901582143110523489581413995134209812320308936192415174245369398016561196607659973482149348431699159739621851717572560370065698747839050391503428252563490864525758224243469804416985585968493516418573320629565657719802423018752857480432640958531241622726193776010376247066461082794331373573479806633230378803466246275188047949163958250005073064488234764802669538448550360857655797767323258315449171742720971454850331584966291366911698017481315771632112309448825140892870864868449680375042831698124600806918829106245801674824873780098361435451144950358060087992188450441013845021572957271702969958942449162443830252321050526282857168397903137546032853730778266072974806767143544923911685034911178714405267328909893550816618051781659274175520444612993544276469267385473880439797266321610238040580357155355336235358988101740345361848855181334554769874587923685788432521378463817243414216108657024794518166758918338863921142636584069039885609181631094420678802747078282262395526083157292499428609704515695177828907628551985526857393498549797371711056374131877322457623697036156773156467634939696492354601893228180739233387531745409491075979390463563576028879978089264527982072217212631205371356262556301197124153900355524882590816303748845427039154580769891747123022203367333179095880950868472102723309974546672827014994626891042054428565375176021626015084638098126206499457931183029136687179328878427870539191711971951044176757564966535832690015549023345060175021856989967296133674663507922934900953763165516341011510956210476045377063279002389567367799542630491727016530619096469942846801264455094386804185837591133536491950195759647529478451105402632780137229616586563015374719144797369658787444390385775357837334366737024709298905092280567666469849297998570116732135221807128283163717774809558232938233556017208539228111072703761164378820991571343221833584149960617910168020496175331310966740856839590087116377662649449230904657185078509781480616813464652794699305637371179431645126542292197301106740475633143115120417856789596033428737306954821809504057499015933018276507646227530107699132743039939343815800238099068904361215621262561506515130444632791516381237880260911292768848614501692956886744389255849319221699898514207508123840795180015400370971819062904190369480770076724143647697670808150697044930231396219396128580030128850996726409146190200691769070674490461551528573445676691678782188053375644743713182299981994586095820664428484498207711824524297847231222761400193880756269743233419326735128912114170835935743184021519985863039634134095036947982426126260228761307366332866284493950650819767231480850020080349726558500589243392661622266337670697254060425209404863862176299837083168869522969443165536949745153177991083422090590561447194761276101057539246734423496507581470315215213067597040663566035419443965442933333123178983128286305106931057415290008762640541419743583456443671395232578657188869439965358379473374801761692156017680012644415066831858210069084393446932113607876912510276976926144744460453740370140699766769704702478970246650596678539443374906300428833001101675530527996941629869881105085183362695579459348303215048858265096010667467286480490042841935156269906459204800975787164246459453635904613620211125226094056809393112278299720398978093143774015457962215786582617550987444047837523280531144311982008142897178506796927522420631999319880502621446823976012400526649034759489525519058510166578272288077066460652054043928933178737680093353999164378296581408213322334274870835586881127065730316141963074287878700569611658759369903801550570963329817211594423733739669094027500960668486640971474822268996271169246856054651471940063820283834995220173274202910096812166518840708963383207248760603990435231501573279136796838630164427782998150347025946486612662459615052369811484308544704842710083836381291567872160374844645719326673631161273192607280820861379979176362655025895438267461017785869161671495226988594042256566102920304855417628812675769659823627905632822909286862757873732468373845264278070757594382451887677956735740386512713614070937160767332679395948606024132812891456188756515089718106808618667048426924709186251100002766714645596939088849984339524169779992169880680653393946460980293336085871607699016295772355668350923885165699155248463265027490744855312563865578036211238645503536121377665508384456024071067003303031704719273272803243109631474798387359586070800072464644082894372375007728910515397689563901650891165879722843723198871434822041587207896932557980290284919237717753846904293608564632630960203992606212237575484798112266498090331423583856191676798346112280104514623219503782273998856654319655834864460806572449164807352128856843478721416105323817401468141725092140174430311596267653986444802321945913348614239858001044529480577480002158734995980368467138642116974438202906863115752461929223612878621542126585156768008806997261799990227082823027492718307660061408184355840484620276247751256855748059504883820291926113624109832894601223809532858763691384194798298500410995449681756528196603277057230564479572405204609012888883413907069854573777570870549343207642491339151007264454599075327827637800467350543790498433253007140999090434245848013720278126677932725482298715543345945603325654214622435298345882158258904914820123873963226673797467995429163976288911863615175859800067438848002205917120702664664272891595945204314526156530864941141554799733237348912744659001067884695289270739854737554265570808347289163410849202368231989847813506481856415096239219319693493305748127902761972212189514846318625299791648736683656235168425445652266258902369412276225488190601963450684527154843042724759581792897511707898732063387980808020310934922823329695974774794037582534440253549217737770582604625038985189680883237932079186417220766537063610550731376501892982010318824067143396239393123061202475560470635692409765268365011589480324618817209177268678517688498707235735352526524819309843181387385144380143817151265948122486929649440597833195812690447178867500432403880706843487019191076366075343897038020896382587628300484337865582167636793576052348530312936020981601366542773158909582536166019644429447370780672072153593748833340557434119835064162653340496052112653274146287608490242971562722482768018172028667561211309123644642956832317726171584115158841830613551993113621450363170090072053698750654016535079282560387306334500731154727882755446385746575523357280091258661006805258449938472344778687160443483017560317046738296709884698198380345354105766761939758312877580044429665241155444397770243156854510352645857318438352906535974021742855722280813542131401189834420561019949505873856555267169345151480849474947686046089958593080366073837584877011557691224630249904839914375323885199350852615145007312956091544739412676723308119961168479980662227046333181366669846809950716298682565403245493805289558488949630061838978075254344095019943769425822139222405528062342425953578389506249039472181151669375872384178585209169150713645943742200764773678670313602454096016993240827727935543059636399657305952108504201123652810958422335291937563148520078237868754222120909643733830106009327792409425739680518015169460151794493551708081935900031156275807015511522599156647696110343680756584602688843269182859630168854581607574316641836275746548093603175539012956916354932066952194596777496509019832707396520276761297687104411128227340019040117939596575115582727809006918798646176669572998053215553594923493695017048114526553288750827771088761080334367826862782806770229835730519149640202444910732260831029542971594566707350117651977788375052328741422328378980101374793063167434657582989533497027731072822983791911934529086993561305175909181604344205964259266026417806107684496598419705907474513540147377104219621406375205447012377046795047319428200647468162435511268814390944709565268635299726962249194743242855266788263002934288017000207342088320589513535028004678803043315643771559343775158515928282694038307699280920114159328128364686224629301106122986404974909586911257811913497916296766730710955547751002587453820773800429506516214257035967624420348523033977696390887559780159887254992781535544124819660569558436443950483277725355512229528642754009339565849422119096540098269095713898316566046827410063685041779841159483668267941746493843289953768880689921398348517400095808136141563761388567388734785389903375914845487338668875787259494817457704195486004157708290929480766793208433389430579090101810741999938749776608077433799099947674557870834403074460378832239976952294903531747946120800236608113167245163183320577742033611158852515764983049418886551507103418182306593039389931621802590391791276639628790946167925326425856609644947746166932274377615212606885942330011346756032583338315299293315405012983156976480858650944149528402531677970370926008046492839152219872493240743776597703202626545704372975522645619825448898454765041884826264811686747984078054566540581374129912758496093303067278798478218173956742296934266715837776848679859145462747451060660209595355783262972209088185348490322879413175003616275236913233842162051937165943732004446673688181687185367065047915240332745878971807172893653299271141498348712524174812803672706381135443433318756939032726197274842353754576239551729443135752028601172691525425109905555900213409069446080582989151378196440581254876936400333419179049827021606330177034981083635025443602859379055412526298995811592763439663930454110082335407665377515639961144939558684194450573720143524717989317081768734599090009976731540194453223867521535701062644603520079083367034338808956200010879296980139351291868535097611949345609751451708387280834307126741226225873651700052234118367725706009067046311354429473188459959522464785006748316096827011164140613390727223425894273064317167511177760702790617774422389769555509212629073871251247112022649108773512221950083371988476520779939555623871675152127368370660527127930575587686860302867860046166676954434135022045607772630954832424160216690509470354775633939274691980731558773285994373247732348146907277503314243278294175181773688110366295771550683866383798093402477463012347349764017980186261983605550523046187900293638564658124320515424436730280569207628695367452714381005453748255474077798939123043791072983000770467112004190269578582356829299534133138850622536968081295845721688027018132205647076004141857519117395292071987107290349333712261882297677295972411633252839702499889265837171483874634612852560311563900676829540908503190169390626216890716238654638227300294959795613234977791706557327068911668364420790199355856213817789207640975219600870101316734085237125380684118329451597031487609403286596125979150882324531925759269927595841855927685282436592651255236472514317693446689686391183338749225280393971475221921284050850859109814892997835192865842491907940414197855971569432978172195875790683881938397651017656870557266266283714089229278259007475031443743290168810866544926786869745193629707914448827857694812298423747979071750170822542355547562749036612085090061906856972239385799577593732755882343006689996595577131666925773209052519744073502987199711202031784484652560440533955450379603603867057566467166069946768025511136330945194041681455121887695503219723638321009965556665259871339449664617986179683868056094458857806535057391619017134590164494456540677444299827859120750631531319522808935490211363815406035943500568145257888132042311324785468546236713399106774235984538169038513286432654071494990635602146554004692343285754487115751964109985568505771712263973095173594409552637333221953110361883968635609980881043225491049086210561585876659980825156554244194518723413612273112050620805960517707151500965933718669311180739607701601158284986313632971830981790276865311244500511334510473103683131257611116042483171245929786323129443779646394130311407395752428287104158460539112425928518836038916600606976382308311180321029019692384957024798707012847879275144597904987978604528528277472020405998241984820140420958357098626195144922549197602761229405944120299934162764242763005636615775347894180443477550307868323595739711506470332110672084006299721965476450330511341248520129707651517033186735139580624528319632774153897447639540707728707983605119647835977577710026784884805191007916530054016441975816317902696489651636941756186390994326112053234997499016668783448944889549238820556533618561973968830012551584410088330807643573525618802936810311502787890673575438214925226624814986658033257351496599193077847662103766607045440331469400346426119209016244022958428296763810417954791184866340334363508397875468757925147020384971563307247135196503331057428345809929724431826203040987029607195862290080975584982414887222791525765302008744395505267102769801326614507436038810417143327552074118153466604008611928371329382911239869551997704144673130434704574936328374448651233479807233828747355864933621693564202067242506844632154655886311931582036004808016396249756497534571142745198131067721864197117863460930843040084791635660966050224091042723163034406320496935942898380202814549626232153207415352899204799559419053265931971206235954272592202635561505063671420327155788806013698239303760541973394732856674842683983092100818083105749751594206659133513220368410784279239093198072313239807884840458647076964862321949976137493541967741388956016460673653467897429123738527697948329962402661757749848533455918013665959660226345875521915980287831988565208565966719194326542692751842931596738091751647371369566505893595218900368977673116211397353327280852182291458180910383627795494001258768056406822622990994762151807393287155308252594414543930462976412597504324143159390695690352560727602553458882731710695827544717508322161444233419256118013833774683303909947933278992392198859999286797863006429103389613377084529675068869188537168332628151737133084377380353886386612165166641713255892796936790540284240958063699114571114672936135822199597811828811456617070300036143623939602569019870917133887718241199864710361144158559986431703134509016038240527435061981178489993513830533435260606739102249132199166374975149934184870911366516037401504525333256764726103077928881043809232534708091799455258997903376040300019740132089724548003352379342400353777662632231007699976562356951034738512492977598902295035310717362389959673508741174265336008769347316186638496937697004693967925532767249881014398485318647354022906528294452086441379989281049371137761989799603372607071597880926132946157729453660064777227235462970368029065146949903253878583395715759824748825901774989107032731567654623954777344633037304435792471526489214457697135178786531514763089539543469465696503411463929111120696308109928388477182356947657702976274938164933432870248630357749055797542566333490982175783222432655613424603880189526226391899892775210891020154750782532456061070517643936166587673385565754888209544806317973403149323960897030728511046527979769435785856568278116508364158387549935744863388853014254936220728404813216989062965866824496825582938776568349055094536472705426288107703009126922375659603896986379193518052854600365826868699025053042583455535752519645292510576612366046616652332602528140029310058211026276471342804460283555513881274330585885886720997543641334426911122243700992497905082815702783467529325386420968003845079559020856739702385165947795061555850235821102229570763899358049438537566504234651411282777555138953693064156587078009324830755680639207046912588459301702725167069481820199655584222396222404557274168004592382690085870700272841970078695359009942710321909091639314076802769033927801456852898853254163513997821754588101097169238356111176908889677690847559829873334050764737453944022020775241000564792679430349715496652566793622212133611458772311576345981175933340699336388072859996769344203273681486697703506544746304445232810509737276733482431370903910523218115999930563863514767320642050848506166433121991510157658247045439849018032386628249637424840047949086074774118702286796349924372500618747172952217763215705771920045687858331776955699475918047096185318770869296785040751641507064069299938654289123869082422113837971683542596511574651519838813429500386614226993058998615165121039271699121271685745056844445096352280026140452032586134214553288997204447191570076365611547308425628967234119769417047288290040062548287308955354026164670908866152373090651941961233641273622462842359618079483564716254365738103881628512174160879107396128938239146875623167265666400398111558534580845274783609631130954128367400144514977636947999632288169353720930815709182795262647281507191001294698426813376768575101249324703178550951339929808845207627566578355964370018132596044981026662658294768356437846404048906369293303478875030428737856715261395265165775895607356246523391986591586720147018332967578672183004919225477485428738349721101924953606835068987734322790835640468863903413541467433209896178004410135360800602416520432027047023981197346488285583352537933611148922824091862363816607566895225095476103806188336787911580754130924163738046789324020472731980597141148915048056806319665488199440896158735513780564528757016446647602987139509151591666512110509322703230491801600324832836439030978403210304472929409689414211409113462467790390534129274536483285514369342756077235376223467521210429562291850341089274883583985529565964430800946455546889021333029505544102664422492519789125002343215954139790361184112587417605740160049031182745850275183158517711188170864965929094586628632352622591714878079688777821244680319487940841086703714475417482376078722160664159702241203053319129648884513848482204516065093186080666978371201464027537019493277258651093522597113523172000461117276588108096821301024323375802312221527257118608744754599653098201928878195245884991264492986137035981370500309477850385177450937858184026083046232690748855078186218609377791333340877355709127440992184984027675611323181022564654878926178982349795694797740841794193622800036159806841767327273317441612713639533760674777185636159718455164687697931915194010427085816584754439829556550805697163750632193647012564752166370082833779973142030624969543334068697170347652886345827470287718180750634124934792245653869100081701356586956493745777673705616824973413251916673613797673556016977454995792262578038132054597403825684824490941489092929336328315449718050938139815250866103094230385023867486466132102068842860652454383162170346829880332084956660243265454574273743316250301141926298493091494500311201534231243842628798783608208562698801709013199542570390833521349945912784674162752853681734516843082371819901549594845865084280299318878217369738129254681351746934674888390432426897414932758510672174030315678291915427438585192417032641515925777633607648212779680835578814366626620354012646286672619979332424840086880542979546350607253022178272057476671490076477489607048652348659199517838331310840865228898495243004466020260404431729600149562975009480154197969575038887069275130591622447608569013631932774130344752733231459360834421322647062962610033573484950808199236333611259965372708649031458546625715099691926507370215531877289182425855404697123333068925068044995545831711687997457860962646122482479776417713331568856503098582811414263671482011595021478437604535668051829956545564318555838273543148015676239569489101830523095797689855037903012438539633155471613708938115818366682180439865197713182135533848357115944311993261305056371080388068223420185224936071763208924000724179038048207137166066377776894314131348650017420447184646859329857342372034280445953512413649872586373969182526199081955567883597050713444076437580256721293004105928231688389837509550730466653370264484207420925263982066919481289960055813049612524245489145345750995901093652249783094353586140587580723006325367601917784786138186629933894490839234964922241649779764405324915082578161705441878338024948642999582891360520761748534618639069710917562168863843367382067448366701032893894736736480990065291139668023607559909584819067203617488831341813017077511831852004893814213360627001378460377467469704542175921954531717799965710654323015522089601035851545885940265493891105654511339818381112900990710635496842643348510579510655592494112836638560674603241423506090552602128274299671246801943708319855570951524816566890398066168073848912675296868076092800040047757681494621314170535704015204227123855426043110354253948825413476827546528128472040481853891807340737622154914820964628092761139221138033231813081364093604716003045330199713782842266218411453449110591990780695826240696456442934046144788849762213564236524603559223528355372757015398603736576369982966960725003436869497571704909062538560652516562668509978116274650695708335657683176088872901298374410768394204982616101528095006429646821893324407223255243735196864914457471368008524866885865517704940478974916223189120839017837280889396793655798141460418735178411969481848811028668185233389098737622041364175499071410407020963857140127152292998916390046286790839027903773341582660596513842016033352927274778360492640269494167904972208764693149505035368601955697938611984686049601260172718220896371355115998678081741318787997509778008507441588008935082322703288409228196249403711852700065810092932600819032473042625404537464075756153775403998846825781606111702285660555552702450316068802861580787958687622522138090078234800586857791924634226675972237769577041720790141722489123269535744423766627790581657645675064651073436151215927193771301575155578449649889707248832501458475085890655120082426140373886843520043972438055318854374076096842738977564862050963738970380332364248193170352841519912497907627723049997652276693577116097776093299982036108815643250856867410452185332375304832302349290682307400022901213273611282901118719706179160486200711698976915718121853901140681489240842429217360521733006064010210242816519900070356341793309138448529707651123323800355439545214637720986648663437483692014874471260532377472146843139830458664528734375265045987652936337955989524699438860350135069342471123240593686087291876938682414695324459278233345881902513135269758632231452200105454626773427686062445544404800150896111515521035945491170642432000674486925393008028372839835788261054229666540121425019626208044754520704753943253798151594879770096868136388765929553075015465067300153838535013420213071776591520014462690391187241770823452848720521146144023999009231390542225931668445655822747314056086217689786404896358454093418153467321822889587529520442821086930036959881829840419810848276233206697849596570773922008805550056530215101211691932886821149654064250621368795389459043302850278573421099235545511564616330346894462591402672906378326672154941459892390319853445218593100266234096239363112202490017408440420286721076751834675226687848778529307244700665127736058336083287414307974350645997209898545174308223522298192682406068597346405425794712171023114749501383286611062729864130510047522061290439471777401298480773429603221581779454233792640401096830418698034964888647550754413327991343238180848682142976578046459640814747228663009216662577899680619420425231140025390115373002296040701495956234460802067274886553508830774311957164612846077242446567644186234001742797128760088081772909574716545368161121738881177650682781554409661173468896532316232954735987145265458292713122839429705553041783416586180563649842114527549562443637218004086131238936711041588819054501478683523518081055896026660899484492152331550712561042586083089389384578967371309072351577841683538656378605604977129267637551391098317291519590212029362319195602172515101479182540853753855486229335758906556918038744784638642578760643054107978135586491556754075477533294561113490314868686154809715004263799268181746867889797531239734022405180641518873530089566239920021954970148057396579206259254897581812587360559100007000150524852953913072692188723680023002982050631950388970610750754929949527073696101586837957005261398866068006176993713851830728130929221584863847003974336752196191108576310797712388527604024240693233858181898440726080186622963651716998310448839767113953946164925420300745245595505764253134169223766512895832166998552315374967422397623599444903938454054273972528287184816116727243890838816863821003900749531263509124076558746700859280884389375963383221449494293415240978149704634722637498527740148664784618295214643525512987111142581597457313609921353321174129150416319482769684875470671422363051983338306905860836892854080342310062728686064431983855956617423760828958440329338389411786338891953671616350502732112874155025571154773213011432067196884596007146584248778166739522145854533950178554305191707767378855617707346742774209802923187653889074937665353490669441957440971361920539843043400297957008637584168273852815097447154844893921611126390624638553764538107773033300768146986917894206039038631727368493608251146570059585156847354864350148132307498455895291416163743129411005277718117888605088594171914941594979211558824437448495069157880808695439031641095425447250972641499770557242438533418379254013733144140385432850552428001926854928993857574899880673641970992393834785239020538309888192347338660482276459821344535047106451476070845016592406577530274045842772235358952739393515153379126240440313145822953394843304561587667122942251696479102837617305390449327392811405927773133405054765746550939620329714053763658840884969979486908501251773804428827130646612767727814714295302575618733750244191910743434675511512687227122844966236966410584446265659611954300268471473792275496333881186901081999082066556561308071289435578230388853728572166079755899208813200744255013722142492434675065174119370403018975920105628929521458503475639714372162139433441423497396688829367814975799622821645764358646816122316223350895166660077378040511510212858195607817929690642422679850006377099602363371643263260442163504000807792685707631078937328234135427442255698191835418253034258029586610539841852966259158590035457481974471498494247666923197894431680863155411718537994487433742763461948600024927375666216529587333327369178178768206598633126773734714986549975866660190964616746966099367631173733836141216718783296004679261463881791431612512424501533994199682974425725652854264005760894282192388814279651257846923367562700076332605039493591074165968773026824676834859177217508757352023083878294670128973239327991636679547539015233965501905550760276224889160812403638506362670480722876605903922643069974616305926793926863665973914658497272689777662224324774568381657208388118341442998897490166088410112946204645628654373233023032046938864025148367252018618605862463589881253095178890271297943546825056786681065478583491541134927448745912962594396147942939157838059851083930659545275347681884971420001833660388466226048133998644352780775052764231884729808838351490112511163406233077317950001390885315261831578551384192925594723936538181120693010516953273410491446255387841440394917852523291793476388384735520120275745432980016207909637790335119181061815856720739044416042302925006134406357046667338579513209267848502135138018403282937303773879581509468678031122503606789332908255115665422338337934886515841165923149159776787041700405388196141971939779532263822950532099507241380022736624944058253543689755382225555074524478743966718681695554567146912894181891661651507622700763474260199287030217100903910954242567211516987283388856893479079054626692803254064196583806884848960110653424594684241203716399985346673851688145010223540620612299111958181301371216760604920223174032360737744005471119049467512614988911435419599994360157309496349914299502082061516306563827186392186839276778572889443170733646417995560864233109239942029757756979723839961609169575392006329741322168676307627633399961438381872630879271578122737612258606438956787364113466595097413224841911779402045440998810744883394386988609996617072442950518424595734451614592955365262608257645700450088318479560514633295152501333151957449252764925480802549279775561122419253052209385768931211344901542221293065815940405780277634270865746743185525012412152881118467817939573143019445265225484099383768405199920588399595250774153883267982747955252758311649777810663943677336932087611739865303468450127608147029341373995503702327145347784679415582381393398905777242748240448381691939127561013543162321524851521528638386541531245437733437365877366442317884094667451097541338866047903543199080170770006408558333184147297140416355577308417133567254190970412947785783524077529099786897118855253304564244840048513662450436187723634128855096567687929954711295783078693788624807715491199817580461185887483903360107132815861937318770101817024368886485774644721709946923660984281924173856480862193571357598059485839534439552141995128242840945609723450462661542439331411678503937227066605637101363272035430910329043316092182117216043255130703400722910253019927007135185648444037729630257888355977740214189149767691669102432937169744299761318159824078452993752142672558591343354954892644568664088820856144417476808395729963698151732853751903176216254883503140677412072269291533221887481854386433891275490279540928562412584215464768220490534778438520305579065874097707266550754086890476065102168216436652417299110681777739431765401971292465814487817462912853192687015129598848974248148316563691418714921947185639264059744337993976405914999939478898591009212824303140388329591160328328131671486862035835738732602389920200453151082671395181158577427839560843630067604991550865290931665501567213076860712539018606457292683288437865544589950802696210733632282187546693303138358390529638847938684065109272093231919585556269406537642316621679527981152746844536733523028628878927697969777440486884342457401643240676261104929176623270340176612855844756986377805065231406379664111139929188799073432890160194702137349018759825746348717267999697974979337475991164183080300718393348418337504771397833913236770116426331221056948522560811436077035209388706193029532244939000600563387605382800971338389905450295844218714655624071244511745557963536759710530672074817648108422843355950643994046333026382262994895802093580642678982192312808118532435379848192773160480012451320006539873685670987482121565077457325067900120134860129058914438545198759916565893581033158033853605688443990611306851498801958693142681204628876995546061046655684152435796372678921144017604590417698289910586852801965826235488483485152020078270847828542855662229017367599292756762025623075854519105885507115133270803902346585797791748312877959011199754597244324969202983669142391470075197640871119418021461906264971947623391183193724901537059989839594115954214055046593945943022693930285603182155084715297222425430479350491537233346395805033185933114858539407094496852671566710325093926568796042854587698101457039353803851420681907835110112159257288389976708269532389738928374093391873689516809207232919826351061556502479102148526723419222994059267382259509739727617902444589216494708570408910950885010229009343826817296899726919220952201554919172646789189671657747426302095648034619303310591623552046128228332478898135157854361974185236235969161398522206876856526424696871298224863424787551931977059774274562044258982875724742263793444516544624731018303624685867243837593546086328741767927275413628290184627862855619146132073316386585245851838848149876935724882941595234393320639066543122096731279968051196055743484968114019308044997764213290886459909549972439837436067431992967922360140379414323857964995307202903864492315640031354992718505308957006035068041231523419429024956026945588462104315284333033990760789827316282430488110354206478473514022111631135979848792838852632825463270111589335761154156132958535183199244339539531368777457200039338250183800336475431821496194882122178717406138537361825623983658902375533793521490957675019796287437401039490862553517211614060526592809516056419901290575942964220032290664169351881247860146475763551036740248616420336060774036068940798565316254252090690475786841714429188257989301789822119323600965366622756407919099832425368491362274275470020597495021769468072229941264659563709394032641033543983324241599093133067730526138467413219634378177337845474797894992636890848294612505850455864521668588097984198990083323411473006220021215515296359261897442647266538140514966362193194652157261324864042444773606450026886063532194898529671235270874604712816377128191390915335467268903702553582818178972197218369227162370932784699761170848567540124864092321517112025178307404907957830428454389311187792197125957304812829122423010439861774185223221451392498414537199461283686766220505586908838973996146313605903020258915156530631786988291620644162719336309483870358223686694700433781656622303523525586882458668285990683683631471246626799985524928101166153861407114691769545114589912196320265803978940293323144938313231891519921187737646978118975764832652150027627353087851224832735290879646965506514400768992505102070523332739554055008744687458609603966977854568796421768674117977379436688853821564190900165860026287531211204534913040530637857284199731406691079245758961645179168063016248003477381541310725685515489152004718623652310963976299007319293516053840593149809387397797286788911824718953721044781705118682827098331579066072695488261390509220359377497573538651505547249487267916616733172860567455982067116903814666695568475699340448234315719114583650228093035942031625368323022640525192360683406494308773822395849696460577954917991384601970199761480735523882343302397362659497225126805836074405189368803531412222014984493172872152251442624671152862501164826668766790998527829262393775505870312697177186722946363621621343604155167914797771814184243698467616028983864196133116257866136868903575741273698311145769702404382036975933121701941929246260217209249551881605531890051224490120062756358826198667554578763099093925880388001942888779580199172005366290677235202442241645894768619714225972310367546033138542812927987776603896918224000388291739824599663364198486667436832610890030876815787211600974778738493304168274292555761207254088785079097516136746212041340814273092110610839814706446622021674357653479535998802487135530261788185417680787307388691785514421842152338933617341646673112324550223965686653065519018482515943009212631309665514594834235693856858003089286558066232777833955818394155240393985380000754987030839892958527976221728045022821905176893820647464633608257820403486314539810520324986966204752422403102390159430236881543509653510251414908285342200785703363630234345239967183747298738649320726991006716557721327993166622936693213736854480609861086189280628130632298739076654210111829367512989103122197856281140126146381584273970685643523603159680389106030666622280612375808497700450390109789022267454184677500379091955299400197140658284247577834650167979481114112627415923525742688589695650347389418786149212742206627717229526399918556008183693992660675533065770245262038183963866380339733532379476053845391261368475848405763272419932938757508156772054630455492583865054917012341717458291466779980021493001004524600709535820636254719255259735532726027964274666616812060982289435676473418151150832818900181687341995705528651071062760577381534438468374255530809871342206442391098567904507503182649629275013020691406913294642715700495524942232160865395766547307449364484500013028713358696003089108394697845265521837069597673085623489597954924980872693415804574719530475728904817124244528762455342332005369441783696537174386310667663814266773097464040429088042063545150314234802699765300844506750031710629987768518891175569076758544942503287507137798452718160261283944367135616670327027919201570434999152825870820543930706853554626490380357842455364003492795366837856619719672459817471484142510730092465172516285680422537706453992625272902042269177165547754532628802097029001021403253191794693333971030646957100433591587278770620745311838980201101684899328019884607974546707120103330440876208868624990983091013505019997301516085610433408523561239463984543629420271377296221997525079591030251907371722220270838450939423418463823495431004626757789337065393644679160250260761963358556820501771641758168066385652212800724449905764056110249651929034076832250214117330084477708874122923866976001899803268912259169380957554768975536767435802627238851618528715134034817564229259000139866130816990811733572500023539599444681942416081395788945169291209375542315498599388908927710204407269571139649350500343777595036980333918558176843210795688799229224126290155625425821112342782604518868149998916505837160466613342905440218659211824185327583826389084155811470582742951459161698030178881148441902180539231302391688012072390860113007714706197687162578324425482973590177007708201908040506281016261853096685135477862261495703432320933493182561913640854240139811313157640873431266793592233002681346483515519459430150724921421509548946640153867288091292090925612669611323718696628247154300809098055919358179021812944160343655086268147969727440095750713927959245281075178623510759661740053130643403936389079114803609249721978971697159770788451476944926711465071590006767054107781425964503497948535228037913987983622343440047944776967653935116756240794852192850492426415590236833983916475867559976860428162914403344096908547258447525688177521566151766176768899966102154909825413261412737534662667063349044662035974560742935490215851483204792081313004972294744694973730973692291503934666540034360916490024632242482259115422508259074099481261912148122680265283514818621821640725054769377447325502617522695599498047368064816871326260058811200221826213191904632497826168410324505489166171203711886729229776395306907538209170108533566220326422735251968350486252751406794928974513503564107286725703529455325819305551711836305849476511812577805497668841577249824559485276093502185874183198459962059616917528946627293376301285206671324180145319513785636924644315546509372081732891686064331314649335780773382690656270804003878102265961907696287926611523415688620394543213769273379590676579341021776275818268442229605611033458311475918130955756119348219711753586732441618336866970659137562364236330143133125137106600256214659602218252107460854267473551490285860228016786460756197538608099995989582044087329557101190628996687647627501573309380972730123704672725391949242650219778187345321570302322499986070457885565711426301626575265642262482623543172427298498479369416536352954116604060273148924540571494525800278884366383060044965125750883768288933360438278682773424749941835558274857988141150041101929424532214602130695474284541611749432209151037348984760899353638119242650161899026847856706456551218206763637712484397335290669371599052722918348370274888724428073926227075184219190613436825025505191781289381527403146088665122745012957439522583132891130778635008562415799919654836710439785756460686006944468779163831148598190519362576264947759460115830602193786954285896333973568967747208151446225145906612836002958026994509902368190702760948738804590581422816360782968675493515859834616104719015026117864109065147076302698438867361168701691744511802066455924839770482526449678211786624420426875511167652605348683516793000881562657164651206619565992085932110982174572918738875876516927241635773766164716588546237016744871714018132025390698686948143874753596448313680381232231255073868381676402622154303839939685806147160781575281031553049052375107897393301263514881283640730444239889052680545960992312549654332751003380922935886675882955706591753688740016105892137818626946226167609769309901816961434348695843953032765127613566834154157125735163503246321306467323584167686330331637030910022404991044736709136380056321690903403114069657785824019263030238207956359938978048190539375151775319853342276084241557047024718495430296575519035744358482911747171837251652602294231925661776217563440879387392159677452780533380717636124049136666848273892605854193468565378477753051575366570314617506464701811100223946703305829608424777851355775738836070824257384809733664973999782402349785245508292561990899714449828283292573967370574275451594390449275188195760274026100141477100577681077925384411939432632411579558176796674938816746663680208955516608970886477243720115443792031486531810365938893154354811930552234822795165899903199258851785002481008209203505008220574616382871223028666503921685249641302104994050518955109166154957658555611952069739766154298035043153335441581946355822871606776868892659335671863895162214273730290002773950150474314266451010100700930558328267890205144635079984348776549911585570992986802611521731795112763494144174405269351507076667253689441500028800660321137286458432092220770513164479695723919875662561632967720685956252246328949057929640351363168729853415717321550960121627151998936649040519874386078919193842273902555735392154722081686354788442895126250073312066715553879730093816134389856683211388530909659812868534003520880736990312302850908877846837007764880712739068302431075293705473929653025569123017814984919570984539159873894671630344662058540486247414987119192604476637893811482973556748559046528843375386570692921186296179669241504950839298526646800989594275737939927412399285942450789796407552353743976723305825612586566982939125205642565627212473406266248033884517286142710209604684625004420925900464968192110034186881559877931807508204866070385656354334949820925595105169307095374923896881756166950828098586065487256785239063416670109622799202124659986513156520530769788030258224540892027629670968727241668032196681998807206159113348746353600127499026252615985380742609956365446360385360244091852915020342529984246434214825181907756441154182982801445239968145435540680463499721359817183012970468157527817435802920083029440854434033742555310647308990145208860640929552982037795819926110878745679998195330428409534824714898472229821833438860528841122600102179066041137256905181386857341799444568523718980245352502232432992081605474627389710230373887551162625738609171886818891810736836871444139850286309361613656925309121646126318780090890653423145744252656997076044193873237261905447246683516637897306353429800059803593578199931316028642873019593496891548170948379008408346606666471974496215638553427991136121777793445223878582466943480418989697069299770322377684083285453131480729626177129132784243801951241153078064672711446424933958993979978731173195619630287776887403452451987697344560964889691222153881072787927861864831993806372980440393222552058491162120457239878940575597477895080917046184612974200527452878166350954063512052764393467870568268168282133343305694160983953663993361849442687694482197940344817483163637780267932439470886363050875107072345183301764122861977875926648509059747691422139761969136559355279207071130237300748975057267274623519910430323197352522771433856969065584822761772139009399921020088767418483754195503726931053399808691723575428686820007573850066518920753055912789613439592432314350649193887161310078284834263133507783134872577258672162993163879154973654942592061294257753459273479068023600500744798473783273560740117104055684878854419329431227774859684370575365373289554919710410852470546156146229227191542808034380923905635827286154816448643820423720993065354241047046192699843331160016188665938656029769738570969953560461890866095992049936432279668913770231741076806334594646953685716743586019162093158607392027594401401371278561581523726633482945357863511906270900916196328857110289377143533872316398177140172835694908923502512733930897937903861842200043764915045268347615818145874300558438811187121710287197278554205011117706928281373182065159097826286516120746069323565107475186830814146431696906144429039992336131774488283478891038339570891841827681083490052244420420073657656750518900084255979600758466896184015634805775077505053402114426477787261352602469328887453541939338585021283913838799073146524903636979544614142200474954355857866312965709373869486638534726298675642103479334138139970263705348376386231432708791334837326934273099504532596632994591645090621918635242264275096716744075091147923948777811106309579570462679510291140306746546680952125487742712563315181005765529869480719208295042218840607028684385497815275487286700715248260121660209283228172101951922403892162593757609955766385338633146842528996509949892837696946923615418880986758087693168223882322713539534991525013814380893799592449739920887514772237066082273382171096230096121450477207165735813125268541301390082022038738253390189987354953746426192886282828192385775233532185748449727656612517242109090602176356479617657695886056995070424530448029850495825745965756329775916954991723834774921434506474150279921829451768246844133437223481294254081205638396132466955193997910311419261713523856962879684829067187065184298985295763209506465520332025922909223967644726546318313419108289020676947009435323818157800010903960839766907726154653917582005498973179952683140307725416353668800531292211097033093012011668881485499450811151693960941693642758326757983657326525648647333185359693389101017507898483545437180613073654317461175822048337634218129664903834291897645551997758233611171345856299684489161508202615952225866192459486366642611792083862532767073868118763899266882998585145709118223070366616852877167448402960840560265026079986557722996652705766336591542011406822293518366595853292464079178265382927024020252893670638228541124680027793002659610719034613679409191304508108968914898088361445364094073738766986812122560598738496174557487098249667335122190620668478262317812075771232037673077901292440223763679138943672107771814718587575235847706753190034771471216611987901206997369369594113606786634751870934362670045943096566208850344245690422560463591167401769660175523006308744859788592214841530694474912206962395711403434148178464839370730999081918263310881851904411781712641853554587070615136675796789884574190355213114652066656141455558222242420592061469065138652214045790926339963688445716444254360316466103873443808173181783426558568241088414038208396761164068247798846105591254780041651618322454923990415812898431751042397600373148016054277116512869318231536289919622688066825860981031868225821614402698613428911151074351676845843348793949493539676124435526673616761923163994315514869149578861793313474669091396681095538979386106943313689272477049127501137492839861380016041086105969529157494058005969228885015404182225163225493615498093091819121221022150967859824900381398849052002828060967897103685602770460123647319759374320312357959534481830713219278116300294824204937130554195163479481499007921599977198405514876652912160045926166013530087993718624006426573586117425295341391545902483741519093398760552310664091590974344662024755459876270158125335446348779433339000839181904451548833691039461638977205941376719381887227359197754556758373271368396597671698490715907191834799597480321635857080853160451128702725536321847590508489981957426815333432289859060101406816450528697443566230154424945924594461865033937233785583253655043020353112515359200917337083488641460276607067385463072162943126803505758485362698831798776063670564096953218022000751917409966888714344530265398659915928784742966596791678850154712599807306090973436642833824009320943154636029722691914246604042189675984290174042548767969666080701431194746251672157838838871171265655554704933838569947615252498125226116579026689247979742171329530070652300695539242146541192305074752198342168739749061764748394141447055178312016438790801904012278569994466463695755488813762822075604555811257963633142334359404839535951119808111572677717659078934235453316781420071466956827364950182134076061422596886705962556051346405737878654966786324857784475717619897695089518792026891687207877876796073224806109929675298162790605880219475840174170440929798724341018894576742840346318840636771228971558622184539481029878558210498934179668732891289246041514823453498724406563291446496957454122771730082122155821211845882381932300006723393888662106508843115456712332706655975118192226887992327460331956479325497914548417804772462019264619592334099974620394533949670370753048210211390076807442353657991821592864329282816090816401493843824051211860272430838468454989508298739061382957129857278139562207120520565216005820363764042320600522509285640473835488661176978150235217401148307082469096313173236434102097731103727535877005789902391642985870644450714385942271408114953488521995377140013174429830036158918919538945321840907073871685327494319330252484812631789573215407975139751367664823545809506583500391144812064551307980921245533191763606169306111828636598414738984021963968608054745098655811156514007474610945806339290560614542676654802257848610823638768919972295194669211865412903665950111273245669802028356845659197517724804310692323232162630575289804667271910100970623784034989825028791381589071386252462542156746198642501503756958868098997817177472854769660662220182978864138590879586433506327507701584453255273577249519676320449574375748599273528499132033729160973841320461494232659905412580718027402020407699976544040212496073723210865677966428385715749299901734453711184552660812050168918386373450701213960775255348193718365977105428520236378922751232132621611590389523669641164717788806765086861075725641146095910493699812474062660593755536337981245927713459961932612241311213760633056684826801569057797036101481387131749675626673614986608636550175360280989676042526935414689597570069822552046669043982173863783719913675668739040555565188069305894141913293227584668786569338084339181467841379807813049099879224888026171582051198137944156320744678882859952934953198467578777460910654692290797793042608334280406852959772935467282968306894181888550308630467046659979069992467381730551956642680669514364531466250945463981532826735946161807308203902663899294862530977175303287881461198369051351880463556252069112978829033631061174624334468580456246231221521774598744593128010844166942125534750643979512483011146763770125791810782673479688869166449825500088409470318505950100037393588960871618962193626220754125170510083624421394259696685907018506778795008763531956307646791535921843865976902972036365115278715623504362883898530585328083490418657970424500627762142488397962270670923598298085196084444759356994579524724918263930348332998754721381653616951046093918695233006291020373106948745758577217941507072713377877331344811730474214116098638303729307460755004195367782052976276490762879832263295260358832164273073134585690031388916153701983615289607398005747598137783281100668985743811979579077735631097694519642734496765763641296417213353536912724237834789116679991698243984064816945865248677330604449087443606593479846828004733437588202800787019350853272095939069608597886966966030856330909627359471873996477120185506695117930517100071479518946060862884969507021327006540441731098979064883969049602500219440981757093374399229096525384733709359506971932863350063706685360476184824774926679436671240785699155010465644331395822376972142065058362332480719704372840348288394406096478183042796906609475168310276677975184053902005403897633854952033464830524377663257774140054472046707381324435153218984955096548207944147564849707228499919365733696347269913365234309101437660968423521626196401332405073471267217753042053740838891974328340046375874794296457477739300691019878266834733007150147550317244379477491008961312407130974793107060551598064766002614793030324588476629651176780089364597113593962172413264296331354473211345736575686653052844944375198873560129281171018624751207222647504626641694022287109326267804556886226837833024326279081767875091780819027898596688086117416591849443297366896451765964212386893946745049844697738785827112153575090195500143426780200048292075659161071511400572158248946969069449599222219254380118355566544307025389819083805358210695630363674208989605199522736134826371600156675045474405714940201861456336698685555405680491802357498683016812805915761421233460498453713236917424767979193781755631198465299017540286622665362159069242773565592609838755480142904925214028141875203831462048051356635674646216282403669029049529898022317405125646765569346256978752519264808366063890716580018514541432080880170210405810860662512152703525586853208871507147328644872441339849111744089939769699900897041734749906458859682214155394709480623148654269315906566744773185716636506406881800907770115024394470763559358106515540328333653943133720124604633972169085029291806064707801830443471099181477655722500140869871452455964587839574595243597226483358378807635798311926294797909348364932810688240943406915683180851307490236140638837861143678368644605185282954908571277169940835913822226244191925659772481250227464957483863190981228727648208385809736983528611914892875771973668907445086685408269185530176009188030271603013597256235458231867344011515455078569596241559315648344633043807407242740584050350685718744860180578986342604434723647002875281343085863454997662919387027075542468901898250280457441692088439280289408049115953495416616768184534547672162638654247911545196530027489910268023078416895323198680764262596314153250736837958906309400329249167486145177030724475271331799636592986647063663934685415394389396142481573946175732107740458872992481249638359286998872850058245932952166208009587708550636103929294542750664348138627577945106797676391860392133382418003925335232049529016353230635157175309418087645574338646150753674872794957170961101309456420587469506407581512402979256965381995848794259633965348030203233585208333697356764638423939972449285045745605649538993940568869873402115235606710118967461666060820527562850923335792694374409344437142428448844745130941706001874577772601757774620956667598184235303951069169182321261732771761551980373303433233067572873314643531767927920167418968193543667817759625455287559263498406115341187794982632813569116846219533350754032188954512079820869266588139221070956182176618591327222309007019151530855700983922025483346339776736247680859695178354993191261872237737957190177303208320944821480066490995203150931726504387099649615875655946868751906825440683078355874101267601622877514230762861626177715585579312826210812518213081244285307097430372557222914145851615857940697852745958981633709116823211426505874206202582902836519596951920885786072921317732368587513926055456493152793808062384836285650615638727103511922051937214526926612841749274319748246479232265077387006884846082418697775820331455342131837967289285196014249424631757335541744347261780769896506689524211383072779177418411791115545704809915654509313673857591076543073178916496030515587335299190943480836347444560882109919755593224644857687306122647821582116702831453501640480236652455786887141293861548263419207697319706085517980048135495138241987876764434918926884157976758042966021243480597505838975267925262331646580485123885375064401105133842744793972204670659639371992406718381510920778404086170672855441879776639701591717110573826046120972697658193257401732132679027223378080267963301492590306439644624420599761368490761969129074229397430269613564968459822147635801819940457491416145334235020539550316450521822188233721619023648888050570323379650035495552455818332955190090931992590363834145836345316810551069315925421126169725576523469004983865270913550098624860222838981113027546322279573598045925528492948131625976636379490825041126807870791782168582870068777561771450670385757013966450684607075686945576949643200140446001692174528438957220689045851424764821127477481560734494242673276984076291354961094266383635939246187521854328909105009830840257803543013488997670312349315100791863493875554174921639376636554206586814150416439076458403978562351149378061889573038860706016987995267573181747788429707315421407240309384758761164254260727626294073421585405386022143683318174140352754794738508664050146567927443334305192889145714464894015882991871399709367195751158228853320062002317094328103396867007770331917977075507716958386198229487899178344868305602262820122404424350253895798674490432626085908455435298923651506536890019802916230904626894665200867510103561985492955634896068197050647741749706109321892516567624656213318985000308981861299778197530688892607886003917728350330743577877068265680024575246828208947350486852667515972711754313215966113354793738920194576720501214969113546273019100956230486746152989276193357635852809544886603921596080283706626387184107180668319917393607572621161727390056047186431896293040277316829145456708402844998432752302614917327478218865640572730581343383765567765877590415815625756264039468225863639876142365130745537219160259469481479716996471687453376521393016553370149548027290579401499751683279522027211630453038531546658072919344050753649112419378167193843288495527821606003052339620276697438821147481023881355480753281823559960093478088767042951537809840503543047936491588954065089502053984705002214361619381576863359988532933156308333578138665115786657808352729125847566892123965761905036590368653976929801284338582760263610822420161990976061196922500741252858665403161002548817580178515345048602093150618206927815940571643693793648680617238304067026521238454045419448454915258124572750943242816878877772026540393096895893861432902947189059570800904192302292958836360694150927525068503274471298295455700723962538924048420792866408654121728802164455390371087757798726944755565101345545611701267173870539867200804696269519438950349580585815849267317904970250995968464778204253177870586032627121227264675272870436027033611413788007231681814884965080312605513435450499902413898379581831978789566255640656495538176208752232932860281840255707813997476788207542293471625148548043339288334928523643573773879572083173953574437438341541097013329928570992209876936966688299482210343990920781820340217597810916148288540424612247165750716985878340569785248400831178590391924906029169651872348887124551718291631170103208076568848233126625785541964210762961580251179587047459291747450641151176902608586540936588272393134506368328039095571051395687726156283413293027975091462455389318683768642516946425170011111427325545298550507851390908579405719641224270474505463960089251154753690810608202734096173489499834911303146069098712688608139209947167773390826272424863481151696681508434939172052968545964899042902195773980480518332010625775577306343172524744965261048541505885987944406916223778868398529846799936584241496249925252406465117333092164759567095056381065808076282392979002754798371218868694695923402338150156631162754969387752006034519593956230246038462744009214898748037822156788385874128340869646175111364660130965544744442693410074750222659294016207163788442261932872291922092199695653485119973605524216662552602476812096883598273982963711238823157755676206388060181642157578930307903105021995551442240412921218659506956674044614379605047716675376908179606377265649819427115154364950363759067795598683262007379424785250561378161708323395722437251848407724587175674330003113734902270130803243382484758271289575493224120605664840572335804789754678734830762897291008707114204965732905695094074848815288290006724881151902826323735496573391358936139773941187891912929082325345190737433525630440244642582960662442927875192073890935503055441157592594560784412840861287341184686185109275707159493765156800809141581822582143510115811415269318328660259479455872153552559123472342121255818274966867306013812198909039413687395741438968276603234923099273477760839414012460277345727489246929559371220417038709627375713734009681028471343202567665234723995914470274006804823259297964240828622178851386837368660721184949425793421671720836036300753718110532381899529639376245462107456621121161875705748830567897918500753131050703617772939249341325537436221553325442730542744780246650147700852836555192064062941451559970769617833004632217247879568538744405265528727043861730698383850308996125497760327992293016936973814939834635817987311162761655017591330429464844922045437451968354619177636477575730986622154141859278378584766457194586384160055558468943263813478408083226989008892794123935084171024783168709477120562095317492057350863392256068900999299763297186437700981823193619348158867816207778054544268910385576967528591149585537747115808813896021036323912536955819927582403232197853170684022343188472696543205965133745808137536297769702159947605048147807439446297008705061927476562288982553947049988044658896463868933381570856233539224684836656237117865253988935939253742878715855145925037171383569941372352560292052277907716696690150404169596722462120311986890719440248108956307944733727721085452833003056736300046738485668239762758477836785563608212458758448986072503019531879384193018980070253850635696421502334866365458411403784917615281709302504947865719666500088394284385383190606154742037579481149915475289615417062981910773480847684864076897021732181812490128454935323885712555521450887779412710333960921592975534680245588423767952693912322205196373878084324037785967674740654226497903735533995710915930846717914333293032490310958561215640290191198588272457752799198521789737237721986082058885096923669086085373819394975852601451870458819274670038371388846726394009724536051858940829067440982565153729098103618628796204779914865211624996623012018069966568201046151757078133778594812065340209063308061705729577702460070293524349763056922141181602434774163824567968380595109043419542793918303334848754744830254766470021077272623500327965768513523311115873739221955773625610198871131858501415975543864869370486505482552385804086853354165664863329900479722096270311509550846296450947768168194362048799854603253723012257261236727205706056046315249884979932966767746936413685790754799986065531191804804177339246493936663201401250594618575165066452731975367616682044033753237690768630571626324311128868549527470457294918993000446139435560033869855169134162711639287603742439135956865334863838584780625777451236081945426651735344068024112776410504738392089213482602377366207458003143888419844632819130217459449811229273458931158232030062074493856427612505174988847447731293125842724618381904783602984030632202913129022770390935848553035936447765566905756252737626467490992077137909899088992978719429077561886321926133926995426973989972835922258128108920971363524138990834752497411601770542678726704580396158781397480758275166504022928070891420377357458507497973551789643485505153931940214922923019819457218113713979419448261224148814189488489714918621119144202753761977885693973206975111429446586222071279264324210862276958758561962143785467076589644402663926203438638271223447917985748401011062894846660224356482916143391423769744641017220402163563791850882103315012635233196817724166247570465133732220373068761229936628109449557672388934768646306016670023601698004057104278408943123895574480565162384007916394333028853113538101187987807611127919732874044951678922397999601818413280650863558269249745201985702784465510208367446569219772966696419250175775110547680029633318333330139934875549267141318741777951666849384117316115156901864387487087713709841510247531898535308613693583370007033732872885188613808510892825883134808773239340174596659453578061438413372075569541486853439612010116890005134662763014903417263475815716895068720371342376173649520278316214026931927817348929014581487616429055855771275941515117798336303490148569172193025139264901791237878100951025413326458803459484347537454084760093558957563461514348125904045164765210832724593911103742275307655723805109951913671928031031739792692158047613289477447158554239427300411873926605317018925312705845120275085225121375151713110554132284595999766894855139654970742408346205953752411312204135410259125439474174289915720252294212175783669700892260874728788090869390731769719501592645029753913414988664939539875189392578204418099285385164975833507163513642992306991974692499351047547295871443108206443459669628455501470318582353095930105169874704319203527896387909887549670561645517383732017830384508144309453039531081314560246526486157561009475564900222660151005329597730663563577949454729292810480247898765530643328638618104014217415447548257630480864331058807197867944367830667279534197822609996381076763576168764481985914771618732713868589137267376878174237063053186607837767884388125496629825307703306006544286939675557548338157053395050322556541996692268679001894867819679786397152751254896941880910714813213390930219304616220581127823147589562482528012998425099308047378692348040017714340434818412098866195442568278460950549098721022363334203656168102840858989525468856213187305007566694457024570503839402338661663512051464248985297944123962330246251049200579739549812209075437885861477255590334937959438794272349610162820115103622409576582213463046091306401314623935930208558366394014509020480274166184073293743359668708999949944728476831377219914057200549060012239716726865487837300251827717771489781714099071598957818903788583474227022458809143999733289675928117178495872887016916443717899587760489493851715315231368204754831439433371500584704128932951366677394544650698388932626991908197260946587923472217007360693695368152576614449172992717701883039608170364471076720127118244411916696821916995592337540603512649753984093579946209090396939436094017828795758729509575190845086839227378061698000646836710430784651490248221539285580260531518772293558216982083182227257690600590240472356132869420117900207860722109452925733321698475363629261872577372686284534087281262989232183043754727271790706539975732765783805157784940979287975850198249933118236032155206412717751574156556583884928456714371140470618102397098763339106646273829819723971950791524547566482275689451194490036455885730871136059758085076253698706421382101271317949867053835785615299463339460331540816443747660378858962859375917012127350611803341251476557722820828845487548998206581664716610881290299786575926517875431558647992958757629466590525506594149889403385642472442640661563984440619236092764612528226835985003819112495599839784057029543202323055554269467769077506312735240953546466706028523241336274170053945815076278499404971576686336620084275240600488711291171673604359488631287811983107624074048665947997126193522848000709273044936172461558475862908006581772436337845620437733716010869432219302505164473217171758890401244776725777023974402411335114600693155351731021991531890780563567604093031371167689263869158196373754195103598774045925416869985203510694706851231580437237243189660010072059002675172079541800860130200412667241664962564540071291096890088960644546691105441721179351706857880671245333905266284587822050656495317031409969991938435040660333087781034940334665738784657080862928328572401001385887842736056301043536550068459692736455125044339334183004991130771824048517042675245573686893155712081969268574478182491577694361340740440701774257674840969971620509996951624687917260018700237789192421486441747996265789585852809887395234410852407192858799685355068783016239026215183629030540367085436800344254960971677579130079455990245938196496283875679401003698734547881805061063860210967285478132598982748005157329159126627596328882174971204184191008654966802911273070783110282966246754413396098327253206028972441267230570715139068190554425673934493074566059842999413670097621161198349480925982248648252911997638575447423687290893717961963410202352427583238713620831957458942643769399187017179316674375948876417828354508365510185266510080866288462609921168064065462387156957077070356205644647194895434282548879956346345082471202779276713677589826335582888916339126233295307154725501453957733610190988437560741632164431767553325397099333823977738699538314113026565834635385442094357873104717564141819779794955304628936261315635753182574885612576950029427443994091015289213318560653816931426107632946916897286539734794303876875664934135298177728352533758720000487913926020313284290926726344848537184533884536860926762562392264143511154064742399482541050839037729919718997317015509178854778900825960227127968978186828622969348175080436680280774052477830363851444094668329487755440642883634073990648474569868474539542450432385250449043681758653271420721687996945944055313238845985188306312243357867781786032807697352729940455215768098550471060262655622838411564219270691589458993192385626913146643313909758874342976389776961004029654068249680082493177287562067434131777734998970332613641418033070785013709811775202840914952641726818931153650659379879442936907236863579704460055808957800725637214874356859085997257764102790301768383659587559217324344954685925674309240725968067945556791835433649526034071429475760790383439840015236800702284369455721645326254304992928076350600468333245022245859048009562256822712406397439341221787157564008537378422943278259513811384669500052897138220513628048884265411876419218904193372492190286799092595860555110476954358077036020575519830365671766062937947162466418069215671248107659321533152732675122140901171099605834467153637286354643787319227269121741847712157618297838568470912669586333612125689122279489572417208455386807333728203957795873329265601918875479571253799221728344726140273904910999302636216164223549349686720879249738754998550194189984889193321905592914985037234614615778987326291690699691767977814627111008529574121695586586687015948812392295226920396397305059733650806652861193799241129427815612908569429738354524065152603488634596779132930143689937119337271592477754361116746628237783504187556592614769646478995224220832154818349911035272305901879486944858114037172242823692672306656894273435058079203909588605492425657206367033870998768730670836264661374839568974254981045049326599587595679335384947861647232968128763883482960086771587348882969718494181086087842102264498381876433495840836174221541375271387726990720061334078356713586974871447159147405266474023848354532292897591950811970212542981480866538744752994350498726276541997141203178453767608910531966693807488418297502123724122597083715038474679894257365515426435324671075522554101575785330987877189432622174668451135746901004070129634372853971582967842513299541222188430655570756407215240315176712672220011213305296059720463896762730780013843436471472311493587282729530672035987858788799532708914876236397857347659991060845312216736857026916886593970219846839340449771576186937292299397498002960671438946823755290539173071974879274850133492295649488923410171087869293145732376120519053948677019253517202344070026796157548737897430809312515200003133050579430841687838907852939826699962352758690909622170421655057935424804357847789221848456131947099019020787024545924880383004969924093836719661674983093183990713749677402264952411928738469094187265464356245411966486734449330785487044827646858172590219207860313803241753529917976408975077993365449767412406461828967185074280887712709349165607662448603938067326752985772285461752527305578438579974182339745458145075533774145335291063653164325908686848223541182570509517124941117198610912549817533514628533433967158705984936171520588359731330492244417388700622448619897999394233735998517478508069191670078209789761275958236550390396683463114872911295003178000358701868894036055792716560664734122602940430169910375500575136314578865813036977847850216176333947184159839031299568048032826411041896174544733578040240755310902014615958889501526414457857518671690505959757888164780971087203985349758108040477842867060774208133242414778955405756350187864813500053793718632352737137258845249333652410205156573064244936388342013128025878361562043275733561388665794439023984102451890171504177641227735249282067968846158370082618879335203786790544210287451779477424572977690478156059148162314834186255217384820669043972710428738043376524471575491712217183686447150623945143011940311791582770958638677575771570842721670215641881250366695585509691829422701079648496245408893062928192908494877829120973147079417975066670349094729232693763075710571576189023019023258617406449289658321862652674742884925912501313302979394556330450515342545826121070639607421987377182563705753722778878543420032577493907821650134955450527751108397609309632585268485491202737514335221125821564522356470725906332420233408026194086166325712592536218072787279643965174064946776359060428313707610579846627477830227781770207069508587283166477909083597175450825676535841479535062141778371235508661209831651440879906084274144338823064197926605925229838111793486846921081957477038617447526303202926108305275904638247076704205355918854092537251535814797288325829735991396165428859590703266296523405634302795782309044995773876462519573316212969885792268841999498637612649004485045180176755766157860037469775921724343807432004450050809357063661089028860703863172167509528359519653456325061597531998723931125460024948663835641880330709681766197244917617245150591971434646817324566683430099159528804390750935761833027087420180775595633911519789704689292042340096913844013929719710589694412172410851203977439230105326905453813937011227775868333608814190741387836594321926024506519296176621776202617436215876274393222634188517624631189053989601802660137164267844689687727453999689780349644942257877618436406541545234919573689611214105578986481230777046217261736193558610828546829917002140757123761141431368954396082143370338269743263812873330900050768849922186761009632565528667138718273802272372812259285021885017578938765699096913238656239198258325702372443394612741088512209732630221005275206978917600866361128090352242647886049832592101838921629712249157077327260984210330654994770272019257604984092073502249235631256133047042450382625122514424434425007289721588869980841188138195383790455374890081620576058859356709501534583308802514635269437300852208094057797667132181911490347352881857033229850185931296376238496371901712201445849784061546628400040394887855740697793663557991275658133201589138565128861210091175368717603387128081413449646293379699922730482029703021347041811244646518182077551075509908659785300060522325846778627852838096193285031863136810345761263617872576769496205786003986527898290145165684201134555911800240476142994397573222711430904620776762226596524040707077764573919463385209048418474565571771610184773392539821011194059391147787692051478028861683462707141130079627522028882354363226152590193245045856646870288822386495955617304977189644507313675159252345555007150782398580439068176787799076552926778083058179116794247146216179086467578463050463780429728554505121571154727953634577048644400092318945227217323510858083087482637622722924238663241477809439517711358510011736525862333735586199051807267343175030918176903049045485363563878824949381775248106884341992577164823439672664090953228032092444632120314171586087457572483407064768990895145943630397171401395753509271812421337069757872184657142814508259212699471187195103604845869542259496096128826801486068608051523438116300024860219997685411649662139967683945268369857184516461597618229696528500036627796401871604553717877435906033107815877473146980544809743534773848664763902118303291151303336836421203447310350362542087192295956870925605613991114727732944528818851168771491188236849112004907832119964750077976264147057142286698062111118637648264687844043831004798388247464067359637760882967906716019811259446727654942598948532582175054721644827059363497274326261761343576416058956561943461613324881494627553033342166257802531359727629968643536027064611936367391395115270043492649742762022240451271077953123495104773037583390168690668285221239060342154281820314282614646194442418492924745770398411063049142848965062147013439390123461574848975590786804069475138935876504552371358652667050678877080487665436341718912199750574323866235409793087703009776292878802167619608517147082985890733865124370937929954904900181113558521968764806086217901254844594328638926634027031595694074815636684808863570572360136791209987236868073862911753121145686284693308871847101105791535138638572841890687038998259085368991946528876370908457499557083169297745461513093470522591026788369734098953929759672647725195686407732718068278410109627376996739449993552511955548237668678658152052412199894363714471377798222852045910634611299687436882045607051803700835128058580443096926324789043950663655072445481680984632750975219446097328922407015728270865926885235487465794350444792920658157221436011550124053893573998920965140433263112243337999914029418294865586698940337012456144557733587357422817496439855675548549784547225735198789479205886322722780632496760408570443214874862692789597800866770366493245716460831219952965082631659170944657235561474055317177872360068987782811223335546734540056113308092184662965490113445861716090764626642572165080565560952882202328256537096764447568327182470046752087920486276350749854090775207840860844429467337314346715390152441599873797761877411029553080472330407195477144660244190028761669649432331296971727715471730594418382755791933209651165422347711391682070266480583185939548699685250973516818568106969257691810539156580833042058354390007657675432841361950590606944806213548105275506941192182634439297457430997899044325336955426356878416301793953627761348144082275494114265912452765955841710856380251713806661837339090790624051265907482712283181610119225413926790422529703886526290922995569978313667466223294416431614213793802385852914847510445004603400620564659399935613440639501506451461957945925271506569948530264408692586431293830332090731253794164206795571594793420152498663386320552576326733378837671229027660568642780595979028139828921326356862059814097720673460639843271711638041774650485306635416826964548493407173855690876187610108113014019104800330535259462038393689044516392111175700200995464393876408983153784520196378348952077061849120060890499940427051262614849747439064737485983857025891364485928034916879841626265173695380436848378233689287154977910981914152895463397523003120233882065443617444095880944942412995936949057642707713348967904793728691730002594728222637863789674364061524881916817008331678851235667374704136581564524916701107701981437441647882509942706897485464870476687467574985411868313710520467426341890122297199322167134729132282642985688862761665654097048534500367945466723284462728787424184621585826201634221864670943210409941465331897761243243272737476928362744019725443556995181030874084983346262160806816564016925638792771349521744816561654961258342126057572760827169151861504773025461838096715057149084302050513866265603087823788699575829638833025950914206935720263800759164912592169841936969698629682834696703271987036103037026490942339144577152444314922754337282989604370651181894923226329616951536801612459668697996367692668844994908676087915137765199746532483756483982530265670180339143289049517224342615836567648324188902563088275378964605493849974166303410089149380127530413727217401453783511779958906232332456307124159731490237312744188246080747041677413708259399932882477538652230851113170139175756227413340430096155572790783319744650837102914596504434482554625254626170167719517462879224407097408210779045483325080630806394647072000663875096224209768560413371570683101978867156987712698348769014165163574589896735261693320534517605455178569091424011961792145096743194796780702925003663565051986567078998070726746625008102759987530061460811420913924321037930253015180050297547112621023644773342983794391431991651655541151901168807660637205498747228113705076132582083844200950446057210992972147787218974992885369521166401849125791239128590729153931362198736402845567381789297043798992873780483333288722447774649505767019171090760970358989795631364856499090093112195188854953355691060645221004498771305209830180118325774127490487888245855856519383103674783708318161231773162286072033038151743535619107543324341126548058891809587499377271478778765036902380966878545944524246966876177603640927796256404266975966178124229536818724536523479102422233054240908422392596679254082940167922812346829240366094343862298448150306935930435463145661585413039892262649117807341149158600666694068992996107743717722731541546153865042874407152195205359316240973507345752775350120468284547411334200047002300033534859366152667891645642499786056243450479309172426341433433172770136430553525208023619140725352266137785744234033606015810535310927595474228130344818716484863413020432250349129065799587929904781250446889816275661651433195819477444999897748787556586811782076050044653404351373812983588706191396625212748783517530521917250129476875426238573177164686899512872121223492985122539881292607532904536516768002280841624623812985961091537823521610652567577550391323944323166602859673824800159350380685536419782475063318191802146876201410697428899856015498156373745821459235621861855985095505638867294477798984844829450640311579328549247727430822855823719378746889206773979518971864763698313043290602992321551549983784830138024472325081153555962483165156360113212892229020883606647495294977274412225928439017161494263660752177434156328128339815232772456080188795755465836707663787643957490054559043796417795091734198606262771197511763376165549841714945173039325263496248650802871335306791929963880737477175850679315130934004475853230673531917184334084763907335706847539926345427483197711635053580742033620232313203317659947328209420664879917510157332141749413399772379441155478148948476554547144360839283339140678619591048293681230828866833609199963140015952634643569945315347821577921144079465108930786010371384379015984836958406675555054481400927289375831287385316671136732892104931128245493387840443413664241878813359436957437549525424289130275864126954169979072547694648028394120321683801357840027526558661069806476029847956142323045883740257279745506057916915908882180589620811505140873943688755202418536248828740032654687589325402444537928756202856081848852360238661721361536207911483231153795776449781834015594489256013874746208745741548075860049293222693472457551154534243727447154066613629030461535583831735740980243625525890579918232496933748181505849855549487491857563571295189063612553193177180918265289869677702950533979877872120547883316684711435981196548536095580084933848263249669684485570525171740288009845737305757782333106875678196916628230166139560649754640276307555368764666870079028767738443472456552511221656119316621647981388125587364412246181432404802866461396431015629130182020445671913006512718480735861577784572061546709366626914809471719506966242328263754008668341894930665804015277274901471013829042579823005687048503086730463644924025797618650673750359295311847843556212736426233800500774081125509979344732479592545797181218981024465038579442966480529638994243455813124578601151315416979905694154939819921696358698671712470819434003012712847653832120314493820366354561824279873713218390505507757277602950846339293092729436611392487487966252027495125707758488846620456196488514351427013001143194563116203294807258165904041292070613315354477646099497122333648668145928922347344342328303873234983526626813874780317530078922327505367967023418346199957565272342716700043031899304670783354182222093629491482823856947510066361264150115955527895963087043531713516872245080322576665517778209600606170968340111301702904266489581881326289957491249102108694343654469026688873595213501948997967569353011066115003432335715637115956613916365943681156243125798045966451786810910813452545178095260415698549028858208098953929432394734966517114384739508593479678812866086504818750729215697703585446924059932574352854151461072760947305017187233399943720514480443046744515479765252019209294044036779561214443715216347706649258027231795989727250068067038114456181344711579182492187809902042169195951311578406745595649849805983683818497238185870353136937639669281089059687313239818075689390974185801435220412742264787106557934384712411869951597810460339024226168092260697946858259478329084880694257344350179410343152502588293921969042684037772154907308465668609286832408031069503116304882325279370739124336140382542778968654908729597874213688952710156389550889602171294521833844101098178508980403860284950302686215880016360028606323393700004373201822839091478004032444672644427880843929576749707301703273388380457907085176716975192212046428641519044180368620981676135009084433785633676652646178166598195328491182257429354501371556093512268490141695050931179293374657112084974363667936435475795120859588753860275594218501317239135209011461775255196064412337954661565290981139748254695677623843196771651081524869097225772156365408094253985848809837678307470494085688538204029755378231679133071538748188854134453610654839564039362445879642645154706989768581875867777337819812523482275865237251945942827839620666087347533436638052416115545507349988294761794950543742309762514911699408402288038261089981716013521904103751160472858598558354656726199140824351907563117822150060304559800004717825524246716927091192718885519115856282379163693109755920753210027834168583502638166856323726654434880319436482368983716283129534619757390335501036191324005819885670966757786748218749013438806076383528587402797274250987625945042048106530989566530975996758379659762120226390762303660130003355539492937388896775935307336878778618361904555975975622510644399989924412402027489688939509572776478280509535190415485284332520452674184337273940828489501730307461624425846453999463083890037364956782436040488707231040400460165456986675983155671362755908874588723697740785524933549019353959637286372476716063404749675830120911677853417903506370108017656849843101195790227027136958173725201065776482525563327605738621804134249690524344154964256205539251497029846780031310430337876595402617122648936043449334484328615500635544838426990704855187397966658411467018128259996183807399911824850094930607170251673773951239963125090288382951472359936809378808534460849624080534817604289381867498513333289364745974105536616127342795219762242532853761822191436906970315315481063222213332322489934842802433556302326723488906011422840339793872902701539047694029901346637601711745643741424806077976892473005618383185100656315006905459329375036489612861841073367963081025078294865217524478037782691261970214969190602273627702078064712459223286352957671125083398853510663073563872528064886888771249343720226603923781147458112332381982514323153900796386857764967956626076496219825745419359412767268967501240013056321660308256097350378093367743378991006167956215426946268594070151907919234041885667042749130387009120065210892622308106284399622309362380564064881045528207417908084886902193895736594538873709649922775295698020351037433446377888386772809241607237228074728208378432640724970896663475129141980915235188472331508953205316757757334488794397186361460121716464804200388469401207063038353233655946346637453696279938920614446376073826146520112883095223920747071978802432098077841572771848699939064383199015922429084367881598417470763102285657868679174079392487804123168002915184817050201853315014972759520768051555225587034425675906898358736263191091634311236442478623104183946393190829089433109056081024517042310398217693054938809453328871818841338813361015569359993348013619523341369672192428807484081704179820594066984543494271770232883896571292746321476477387088905854930480381879648813156200380770999302612061634979463415931056755048529987347703390086672293096123645110797963727160779913609020397169582656116613529588370158034902780854424526445686637100029504468444522406217133117189662100755455205354005234858695537168152125294980840236060758252800695390204192290491726712394351876873768349772313295550349611326315494004733675001809956258639360092046926843491942133971096256947956766933239961677961716221321379700315753342467892313193573974176059320226177534129740966976596937803597608797050586281335531258456472411160891263435738650554703805136884753271688638079969392209677256206498513706198860723203167037660270996405206156724593318151400060566451860651147394130013468652418369742551712289366885508125391302011207531316836278879094378080204330719037841941100441212604807942888943127676936106508755510992676510273263185736405242732425307962645067753019516533246264173295340652281363705190460415387389078613698352928417993834464518861447073752942786979029832771050742660050491464411406315642696516162108272100482593299110282626435797469565816379610053916693836266435517012493294534019365826924136524346017038753556569097991353884299175360731624623887145532407563123897840757158889122817173673238144120931749698522956690790739600061566597091741878883797716647124993725909672774810764232279118920366533302595673559799599628962540141168293916535978477635885377168126394924307617067586250102303760461919748710708871529878528396122584870226256201853534651189179536128858202109552350161168645583253406505309870423103347167312997255517806309391791116901338009630878263313358943163471142004916432037816395605579471854765639053396810729343982700106737028329336826940720492679438818048397925988944675481367767940547138586390245025199997673828353236617696916735083060730052681919267593182742597711603435013773270160815032617145799005365075674147131298076338832871170227659407864266383929994947213387929733036332925070206266462349200805576213283833831826329404066137051849950760253226775411722283613009386647186333968606082271772577694996821233152645271983054142949149702542816456703082122074905380663149789386763880994547126208421182191580018491640832565415344046546284374930587164255823027241824384783491038302605079252622143158526555563186614750571216739755279025901146459431826275953966153134807328214976403428561143952820660210994121721023104590872202072091141247231768311356877353569632834682836271845547535789456005361099039897773810084901453918953354878554276054710125376666181221758513104896524767565523219405700748295300356128763523461858420279028212744143296479596722910846212466187059625136508461171692259821586631847279108842978113901637630051433322516935570303419440769013603316216696210943077951524820640095149442918573497449122813144722113015562469807610548369161092781255840753393812706834014422126505742756152684888893043851207634522888518234147100082562525526282736546301181151710283651571703772303988527332568694235620716195307330029739184829994753801230685162095762899787572072054380748429664778204039400188539658765945481353596709460485525298630868494910893134709763012925408553635686802843894921702134071163352575156058883191063261035459379006697732263874566787654084020201902032091276552464981830780582510969407607740269895014788873803034186273527652689357805241683575273138981226555091506640038746006456056117998137999202291383744024632179021375645870183569301750280598305906768229966101320108126752810880966072712766805044937074503194715973971316744575338929180017910152587855048124086202995190395119485597814456284273174153366544925126864116877130938892650137487359247438208469596763784270843653526285336439623655693187969545567838795594376750035853562877437390003505319681635153994879792303762486043501666422807432884701442497943535567325928834957312158914069510858905143209225868893039914164080708384265110574012333603975683145067399254115419672287521171535146847148362400073960735016446861703179742250546321032670247200140556590001715367082679749407201470921633142669560758351902342529977874664838250562483741931819166123743154413145990534528909289799254937908973646042159148750763115238290760212018060634851788858568771690546883357323751553678978522289382676467724570521868352310110862098111638079299743781109449204545663977026234576523826596305221539026023042736267896847608709752484856753536696659324612196236777338349115150822162272388809406912660550500919355642337974676425922668991364990842931640792744400067229472640735512337221427632526619653534518354374085215156513571135868306710717417404345033176779743949242567874283384279650299734950424809813015056542464831456888553258978096626222488613388246551650619510878686100537106561279125533274167714717432852735652428506180150454078776763756985219144595738075539084507006167843570990237547283394359246935206815596544186177925227919091973699645013258146277412431903522875845822494634354892623671798871512805635896405936548470400650022572263962673541527282084879422405665731585153823811405206631484793647114287617780135225421062154319770514317505619623540468572324564517464435262816226651586776920655617627212473462671226785308769563128848659663781059818036496672380910188113955177114433759803634537530432751846651038996977201563968477550861062760337202205105940329537276036516522192246116728890223872818567645689459794170057058351579581826202287458615918348993244213560688036888679722504862148482665081469322653705476277765972941636006030346416642427248141060359932776749610479994216729221031224824234890253700478930977182386217616365348125892853705029391043433574205294055791117267399999505255730941792083747807756957032953323229241376876473723747830726433681858118290879669499039269333549176512466158681755191433326979675662724342108277576006594041946631621353863850316574895820183948097394805900581733645825472521043966476658379055298066960289632950382516896054231715692092084212377726720495225793116769176641466225608425517504398033976992902726287569039752689035216160685145334601764527226493483374839220425898335269450355068859088657207079334296903189338465055743703843125805350696767857275247682723890691785610154140438813175385230905027745157638960640708730263965852602531717797500176930112514717032711167442817506867337276252136695406615182871044557688270884581883375771983457904737189324603861938269359215831314485353646797593542967715968715019037686901537738395784973730947201969327448306470167837378922897723234376144153973127040687216330349007768972603471591717318562566006441823567524847446962608803740556155000813711252001594957292699415822732293063354525670215112556925789318855303329787407064583287878335768663806174746029093599600670031372368776319143592782197007262610307864229996093000100390349371568795921776761839012476840528418753226135161739381641744456417705421036039157384245766891502908520396836488516387228536643155346602685477141984140912351294158381715039983157668656442270746484344060787124589193012710835107321798743031707898184639417578399572795572662440846085243988747053420492120614119886237820794851333349126591070681106367545506255503113870561933281634074709630657234910845609699876694610648254306571497511049962284250163230808046383453713072283783402089375721470506165067184402229038830252188858113654839029879240320529830256144014716844793752478532309215724208624738270986824815754941244139972998749107476782974820377906587194749469990432784428306737766424291308624842065654933259859997947196028627011919252647312427858290466523861287540520238255651793019369702398969626286854388168668880408493221406719749840523322004869255430627399023329751996652241010926413487035963327336264075140838886750101624075538729765390117856695975774097851103626116911544097874482217100887119006101174946623745991648714497070346488656468156949796079064100385541983926496071065167947349018010015067627044551575797913253323857401086753954752621802703488774960265482720485367665645020629173170385659543474118892382050542616102517687576841149754939469666838053489183787948227783959009034340127481074563106414229312067802841761618786272430913812102781031282550569033283199877453926945117890572349368955932376448272772543473770830561669984613130375117580215137099012637020856898227704917413145904490975394900712197066173788559910980973256612750046119214017868956388492009900027189849189324559822804368530046140429031489260314589238883129030594442792019795122036543916416954500703949374477071860458058945703709449985263404460768442154363538829970174607201826733657682910673550693166985040644440318875393356233939429077976980012777075152817231809058128343266933791611469640579063986099028757517881370246587648447558143531786964494368365226178899657638550506505476076467070390928926682183556477593520210610289639544746969632534968668101970666144101881708893146070855059413389009969568313017918676185817981795385205423607887842291149114751570156778905801881949996272119163128143990111863223537060918898165727389223272386259347883582058373307447817279010610903664135079033330767602908874078900479616155569389492877250641493760917093459519547950714161820227521290583141958635370636464541521627225615605320137996620606880800460321436754593207481095405551113702467106647517002015258247331836868789738779995881052781560179368331982719740436962037877971618367141771550816105141394884910836080985508535438318690626496381664017371309613868254441869995184800266041743403418555861151672190589175003335194859431933383440840571989277604167216516332254923616966498715894371922325701681992748697374826490236838516537248256572394195587926244638489573116024043344813211198835195297122433347983077039388008451554142303017447781105707842294055660158026863354697791320725080646298677373612376011081923500430861762986058793827973237618728255782599510348484410737543158727540860648707954221855752224498691834689520808713324938034681593419624998841772957326745223404555703395605677946540086778628792943429023122519767096656184188811738154679145077623203641200885943372813786979730119170576694479467656925523096857736818334045396273726002851530506013410504436525946863047039855010981277703460242640876559660058773024029894989184212317117370562391302419027577940891594291243490470243804791324212562993537896803233849269059950551205209641627275457681882015115314281733483116412317744276119780712441584613314822898829055761649089193323000879271172003787033947230730334557563987911335496715217038070067546349561549253062596832396052804824409578316721922160227056098719761137771248871973069029269579219584615118782314830950901477415433107887744903505717253233563056070515225790950824463542459636297966341321077074581300319753375385815155563928653361630629961240236818643633116303053985779117368467786825726034550482948281384049376297113186368804194742872556519319117546817787357617910782151785820723302112915128964850130836574057504012619022952893101324334318088652423823733905569185617298311759827045657088517671724329717378161503166805761851363642874038178355974471373003614266083723298976194183440930905572208244960249430865086232131511991212263876435193871212845729428403426117189516222941988280400124202474896917807191889160167163234658181270932185818248428337685758828307826193757177930321269216370010190413697276431290350852460756124141557434576485999271836682516510466854182496595975714068934490683670456694312676786731173344941554980879811420976829114976216003013581376234756740225009587369914751539312245259281586002110134524769553086864006665656160430624630119773047591600970397889034512412119387085063361437500138381228031703831633642242178567096913192162452523496149864507690862271711931621969979612041024706827309029234113443791998534070337961904952933944500081710918601788752042894631690870982178528875011415294991859984165031087970109804580831636909034159981272713623266738115591195591726223116094020306090844647289610545307445533348716715311420855913874736267639617235700095709910526685397046764559111572986845211220914676496258739262520375875044486343667756518437123978985304992262639598360499040550748871096703374991264522608350901357555860042310206314140817109711488385158167635582911920073184828454475854975918303970315589226932898858614966147838149977192061121065343239389181620404485314108655237034811912873540195178028894136478032873554384773056914256984566069731437377255539009611741445236413731527111866604734366438461091730578369390043830939043934210254799454134733696323113720372135234071432583954922758564883133772426724894301025327366069057116172835884945866134981711189115382109084166882771105440590464337903475384042956992668661162533302989809030990293456236747938009817844850926330389953710153057732541287041651759634131720941538984404362141887582409643081587672533868385244573347613941011326770238938633577676286856987885290734749758658298206774703521251638838727775534029473765930300504555361321645884696276878886960018808652361618494141278814574633056271110183455485778221449125072899860869519174889371418748819462544582942340374885177903458587392654543697872197119977206560910855945533045005629635095692422263572603882241778966075159049416029261316852010771190775404314730989078255691932623784125499211959511848978858182853471917978695086498434720770465668364793152394306033500450748822390012016345439339457327945057485545219395300537058182186670829105073083429923600493542671073037783896913787593044383020446655145432406713505243685206652239229483819153023934981366579714524637315286235836585140618972513141278402150681193826682270965659084888865271895606408660699025694278520980342050165150303600148498343352634268081650432128825110444199598599643869572644534131729831276700813174113085322010013295519419870488540220845626645121487857680534120749438697588250637257275709536488666282817964733004205974604379113127382698369576171434055911911500155208687501256335531278119679633748376331054362277973042248019669444194074810735456420547529085789439940240786745178585690888868158759358665838350895995469170698284472483005444003331477676941638024833486582930623710100584780631065874817971909851944872041165157356787575355312587055154685000049191010209643968069663914080370287227542368188344455628361253604202857930401608255666639213937959885850694113476355075147691474081329724454605240875383744754765275535480313587568274695281599341533160442573257306860168751531642764011092474678057706221938401003924614171279748582368272652553323836274396587106257946533027988260471182182905783951333427040702597457800085709735439050952989642359460567023670478942229130552261724663344631121591117096144137372270403474323022310740514446622676322883176679483593503615608595216343215048555993432588310487065115472008182246470586641079812422129997747196059185747585950962255590331852982324104776439183297057510253682108633624063782711100627857804943091655228947483804358876485371966526502791745149600600331344354663907831575116680409639517301378902286470927239648388074466184861203501643541855199478193407251413706298904911227656205951695022270646425415187378237556586518750248103315456634796377165206072857571751071467890806212845823881591693809447918251888479354371524952268468595506856016469542955317458014600219032322062780423884024225713654539372235696880303172998627657683000788081427001529727677275266800674048874142625577533816988774573235706133301162112331512116188022198896444249497901880650632558606596136772823619179681228216765126572161518772832000075148929280496761112433245930255341668846700556015194175597080028691464957040638927836839484213532239461748919392274154340669833653478452896414109974867650552467427890176614840976555315207805274365116533498846587618091742578090972063977108643761896235214251999003288341497799523387251525432940141748358034750146038418450977118982547013148560426924740721854652188018410301406651146720310495187118892745262997885673123649258421252504173756373561306681351424409842440491102648623203148189251529441246765232852686282917657082097457947523445079997769596213893083448843245906756705860122301593581127260272651563125055160955951969556298799731024084728003875608450594720098639950817275540857261012543554328821684099449872718485162205231010772783280331105123508220106067328414209256370804218991186304554040572851700545739891674118447624579595317752361141933703545255682005107845086247380399533522382846112656086847935441536723568053189217965679460908255993293471307518203865279888122276610849523423746605955079330405369162083201708907528857274308282394074225574771316095527220426235958350041163548252825810549459481628404665098386450484168430282823040595050223404665315851228665350717493268646113008605464040926248331798266737981569559300586221263252801310681140909266584042542528236006951428945718334184244289580837870395226008150458128828122384307394693635560021266651321380256263591574684656187113294090126986260910759645961940990947838240722534782502331785544225776897485870249080967494994867845169805546764728083096965306923505628563260009657181950159184458402497564488391094688247902462523765053105929136466826767366611460369012623549434546914478971500006727377625322718630719528583443689931956183029062522164156072054517323991891195835997724610414499777284197615925571036130260092952847991191281482398320027602126640063896742089004275581093806499145219398254637271982261922447033389376646194963231309939110974795644910239329179521177035325347631369926107974398221164062475640313910853895520233079602130847268985646057224991867909340704929712266987774954449176033046142241063595163296773222008302420600391581502676163449368804794080070916201904018524094942320293553544080148217251097262678982933526845633376134643441624993775109891328568738224284383577541785624885506643538687246205901081101305460423156905338122456579823078822132718302055658534763419452427183072129880382216307476660761180256445465293927806007618355048832425986294412633203011637913423235578774222826243611252271916729491146621692686688104865524899113478573038536846691985268337618549618932533420219057595167209282182950609249464226978997520745720703682413649233758891931483985668726706584078300813961466142900107673145639333404340743435141831418569278230666157705061582391683967107741235396833468964854566796267660100049015201281910345227307245555285735254638421398877464078535679621024034434973091831442119688835519611874630386681030359872431541225904957737588327168751115931130411322043652125873297507032385672241947049309008476084669612026385701731153442988855421798099872733882721071462096214938786136537313923097122918982388638207264431274128813567545478036197324490487960371699209514433249674177035467232390219597803577756385118155109385543395820117377492350546173378022153505287044370318025047032442892310371903698662616629053754046567332516824133306738472554924462325462172630445774931726798715883597595821076439362806179205032627171850996192902417148776717833069981408160361421189524865521363125357317970317842826789285356659825425199658654218272202445905987648094025449194826541564404561309101968888250600964255330248322563414666180901200571878434959159173538793864425480259739808375658305909553701970746185217697709386359559997552707300058907314112033448089363561690611905931858573782500189423568977811791165178814065447366735094911813060041788006371827131883713218559892899004394605559014303586754139162533562089689891732390956716652482749403248992283012012710830437955269296849783557606696799386904097382209255069645246859588383567577135039585151865443143228832783519978178244079733584302598736504606706990833059515088934998451847264096202491700760124879542193389395904248647097983741827195766758835687727464263921873678519981582448899101022638674291746182992272486273475173070122245074699104719474469851976161356888851199537074663713042044056658992152888344924286862380430865201950903734622304136333528410546014271400279863312922411764115236764444012173498101623207781638520211107633036130159024598702999049474141509812834947973781962068881829796158118997333595123663512259564752875905174797448712645185552629553397878127758034067117360658588683945457166410318722705395986948965486847616179379994052739887646498988692021779898779573548598458370325223886418828767636641920339103216754060969326324912290502413446872941085053744442362575907548970229568311897108981963320180080069792604208659106348666388604548062772664639492618208461183909781168613585563778981933815056029725534315168811156675189589878799664946979443453437586336726256305241135085522016689830703081367002208503889664282853032476932624818035600407071919849693788451289643301814185430126023531155279827868795877786199054078412122141198806323784459949057868006645658298015467273966992311787122019634422696763843651239511730872521869626494853223013021181618268220247478006464308781341391761478051142173122105737087380894455186922940432151813743813738577954600383520647572773975140566533649645677332596010430441813126619113976302406067201204926235014883514918979937028567553097852913530086663655635260551197910287138210578990061476992501111357106876310302561628110032998766855452223997005583473148848522611497336554107869624208459240728436478806276429867061087256004083726126168580618016801282171144540931786722791410065132815573779124685447964195084557426103397499553035145083103870611538188921890198924857001406015340557269259874056293334696883632376670307876151231541753343189879203047565818275821371281685949099849753124444104843032232231508172653603329116802870014796660429587903185349206308676117588432261703738036144651585253754642637735022535523829564729991952819192466965600550536651261205574149688275756109085797557441294973173032752997082172213523965016630240987632282375737312389729316700546343320703611973123201661883264450739705417620753349171226009613869545566673264911759611696001056682988427283700052507842899863100959028604625575624276863385115856945028331717877758190271010562632163730454203354517401731140879149797215968886501553586532723333550980720588046162382880230712918444929274113939964835582311198759685959796089760208794518661416290132629349234600385483359032952172199301475403751596684492614340455437641285927739475916862283568318744577020748188839293155065377327981228302048652938784972413478116860243745101997349602023298616517614910728912332320707521686220569412055106600479261043691855401714284441875591990956924331964443286976328674126944014446106503179288438878273787569560630011829903894893555864563627223236961708594324716623197666586699850681535754975287097881106528694705851682500112452584209762377204508431779053497785709835614331721908008558517093688162884014926162723693694369640138461752449281620135904012751922391387114996095534402755264170729387528636111169878583034441265748630539079978100846262626028054511058512539810507376267082801126939860270432187537752714246101316553159460443976406290703931336776520784007236458959847404384943012766845845222111942927620126597213472826920600938429132793912801970830777873952796043325961833162285862078586346497587126911239482167435664058301750804173204074426110865292158456891482750730433638662080397073725001247022545617509405587892209879787028801199600063596685175861963094537653674234355194201647603297719247593137617542023993099129221380235061723819509528739170058691410122027444355311086834090905831442590784406460719730717614436301650797907747495670154654624164717851050380353542132479699245052512807115795435068856030394091764201663441642607366243537969258733128845020496862429954194806391064233425030112179521108099401873368503114752342047326993641068831851960407228925150146614613505486507011366306175980712516264067687660077429434560630349357079621903715530323501855257344877649340651511001281417296782466676764851702544514781269779730807485801543514740913434210648579719142482640872660870100767034608769230617712926853459746776005780830397314609008494628574179026371021017615651989711796555276090249214643569950030027191747438264482778458967111313150762082738336388823815076924781613168938178312187439320871801059173031257349985997966692839775737912605409052746600063374501296628781479098561124119874901437562392591222381435961322173790430113012300622785907314108602482120300721075765210522234959572185495325622901223491349959476302594919501887727973293425150545164404315044692165169402376006216215502372849397151040790682936375766362871674937082431782435676961351377271820960660723143658515579144827264428057951297666483260840528535408456753887075526675387049311335827824634109499080571670852980462288807317466987566547043914380408389100134173217126831366297976186946190341905002486354151769689064865777243779890588845809726390683224377786433687027847689345972749456523370202386714022899241164672588350704400742681301085268743752180382324328500023939389159276061023100142984226188877264894978710097106481488943304295162720661891499702558384552322116890772967923178611901564389968877099904146530045281492100187972078672242271825423592467889273908836961288281138483219835017859583210729367842067443334138386676053616466773638179502674901710862534361074131506822460751822375498995033106178785770050668108359975864887694282220881028150558132663309646578577401375452207763295060521508515270205736208598240910457014571413985057240620454843697866803072003719861841617236931718799627849294739710521382947418770150754750345144901957888617117788330533526497188442821879600798801920563082859408848893771485470829665696832475626293891090216924304347916964766531037499868425386880986764589707578055711630221437040968676771458531105820956539349286264450134393028033232880392134746549744246112454640268758833530984472759378396033621109258925961332359766363035844092568074534276942769687266001131708878402648773629341338799283752706535799203057641178953374422010202729504902889211694980197477393126116180066867199108528652060567151702624916664889974911949053189365682218590354846136095896705310839766618549616309655398285476400529574036813620506894301828302803493659164593538414940878432748546295104472211048621397429694953203701940552263522006249346732099531558519293844892901483683821572940042824239926980412676253700446306684013087778713320683839490012800222315026563826518037138594799961739760168563555416339807670683736114258832864095943342687838978594036888654331947752638900392721958665672291308334963275236622870703304812467540525793674888878188710293784874150962188415719653119920389223661566725925015757042062890842857366315292825270913363690330192210896623561873631684156947222529311284943603791656279940212017188041446813862671262960597835460601577362037060134824726056593827024938806596654942086030585091742785947441456294985107696577940637798571595654659456958891373347847995394881108663880604485829592310249429449233825301563301658746405975711085765366649936537822422480415154869473998307610972325882007005443452120344326789330802098574739340829573299158250551145527872925121178607018124774957835083624509000856841001124649800216796673429977982044435057731044544844889901034812246679450467569509601870643251378787906271237788383058934738992874866870076100841306651781202847639321224666532978724008167294155591786465160613300129041812505024441315357518780602923320747888455223105741455149937522907730262011619517331257785506165203946544025556820476193933596656598826180422371894278653618334504785311615866769094521924444244186673243048375744093338295766831809923332613221303118142369241209286624502978434458812747086097336888167879752732004992512059594722428990575473402578865347281618617488481872013613769472963036793139500335804931732609622673778969012629276680599348635048574295908849897278867198315924829447916346891738042970899325366782946785598984052534682605512833682397092623502751971363070983907401402753677346676413345134717819159333279197610794707913217068116793412421374817898373281457174006989174823624925562703473838137407051772113014005598313776409274289234518830575309518674629763863092669713467840406606014179470381570680528335849771894760119037162723967338349906325847400184525343063017338480564507050547464632432388902195068007861143870270551378848424830875002295647768248934513172981673911080085979960613382679680672687479236449170138549708283144142556186531025300006552785338633612841826029769979291501132333799630536247900530385556174654333894672568139984594904621287892446173995554270554359800513775067662376371837943105206678874673070725237757120720284072966118792208318650432920892185867570587380777158169642917090176268832673809699467613774361502120951998537606939716731633072946697132920466700441251177184976087855484045087475499086477908375592967708637371520232430758948319507396147896526782074599868807123288522693964014230065585271722703519695874176369984468945708631189021353834995721546091040348661700505797726143450017454591953263924481150559298195173062323630267493259612022809364865142063559761149491010416776273259393576917896012240808227160019145351797588884379042095720669719028445731384308382725937557699419865129769573927318210794884074652163603444221722742215187933773520911055834771809406703312727298855687454373637198240104419656361563074751310479541605941445177602857061894607369533862079253808626473544532585682378085762887019361769636925946383661374114759969988198557251611640999464020113043625251767192696615231830615720168483118876444779527796887449250973952316068676589063559334379310218671453425931735559266763083383760555103232141008488784163681004676046296699978407644970751590154551526213568142325929128659327249289859415984068989268234783587738687779672250749666092321996168176224968841640851010682013606202026339148235766223818861390835798233300188591124967280526020413660832537459958771507239015060093099166119620376752292344985831940829150613494346811077727383409127068048710331567423333109572979790928000754894312260655490756957574844230540948513044948695978135439973912402533752712002902157130696921801630374155026944179096847064844746416299056984323837985478456917045315708658042098504470420987718585829384292247875438217470597462924428061303541962249175236730182249511769492712683634160351253754131738926917920808863814296357772543538700560462865785563639965158205887166390241586050448441096302301071330755082245955494506317543249895266595979329754401744451243460787536704637159801991249188113895380574097263643543049115367296355862888111751089248374209488327599520085835825637033828501890253012063780100404000608584115491980116603117951423595380648128652635763082870067701488342669805298052381510886152943890056854834564122108747881112196018882006402559716578918731213610480221166722488093089441788186639690644847600412035111804370678275243960568093952608062254676921878487884956923042209763657587977530174328842868456537065554682358243964678417176863619514943430380967152309812762892852021756087408565444382410739694448360868138972079103254767644060436818302283303823523016708848373204444324850523500503105540729051674211066249904705352629302362102120422718673325981456890850749924163197849343048516542072636769765658747646519134930970746555062268072783932980861461216165440491932019966651170592964035637171953818184041075145891964313355252717930499965915146393860701999095120433622270020094017181596791529387788259730290993931239113196284845595789242140046233355047582111976313228597523599022511013090981572237276581247765735857678252726458268764485816580987124842503524286067882099453346231768243035927034816982863136079490352050012088879499640477370110246494607564499766410523586000601670602862542085122992102477417254577283442439419252486004234654131449411611406119131237057313079555810290931771906161182164454867114279071680106969320045626815484508502830602489418798548872078365240733396232840486045676809973344349824485474127830331645355570519160908718316560314139183304235075185736691761662716890068256381338363305777757305674208527325096192052646392139301429940809790179482330460992773017873876150047438271525843507389382826962885076280570816886341838915652988368481387859308324735355393909050475204616638672760502316804475455603472259084197144635579835128618031675397649723418284179966052771372903524234941400751771170063678422287181366515792394031633061404234163177065896239372766498093800262753919696879441458250274489923514377148165952999214198007445597755290185575092862109150144031139384630957025545355864780060183950128742368561341781558666154401831165995987620641707550444346005357430231517723681732676725532750864765217606268441505919684964666385019268460346680704358303334194450873890602622313009224246221333070130433062521751249553653519703944937966956018635063021420549036668953555633722241800973480270708376168350728196829359073731589065636749662169549418720878224797795831628579694857018460966203811839815359875119934271887315718629148597601425138633938746047058507956469073631846313746491009925048341994021465987209971204929890610640484087567737918321872838518774175664407222655973816242103826051967366192335325115861290058838868920563778149552186582757831425538386339677337192769456841480404289230824152407258123964773833755916027416187466832947676928770119595451257248070996370993277353371804280522750178165940450455419237776930901790746278354413782356506807676186705900484550948613219511531904744086215374162955366064499145073479871988476402436761361387105136159601249015814565344052948535680345340792659569957762412396019476377414751576395493793199322155654782264474250133532708806581222555113218356003344596601721487226501700798016014359279731394344496916615960363355846516902050818056345469257310848816700668125570534385197145437027597347833332452039761903499078025117896310206563034233300768496543684357379674647176934811146986647041523522711263030210876554100636887770397425755845105884901309354257211525439946574395945075362312885017631854721632203228048805808707774172172236282900186219012722214826158700296805480043216954345074180000728601483557625862439951000899256999789704185856989191800386246067013249239533259963547357902202990947987724456813862971188398550760321707872021468225225153225884659681468824412047365945842398449560381801759630046397309491702122395225476032703241852074489747501385700342281793901460656008725535319747193289274145153966381976084802844449653821176893482465829027397482152088467272257128721913561767003625644584674048854221012504072247636289291751379347767417810726737489387950965533774818403451023292788134147070870571716595931101687569815584233706777985728024194250685145808122598708952421524715815442726035909193642711838181791900297426618219250626864027428640729005625672072753471618847641776962307187408640402929564361765530210875035094303657370095492118514620735782225690646644754980119535881163235287221979894611965100816494865145357083744602435138552521681923438840499228113690352702302941035612199050938961748336996815309166719415335944814040696708708257086456609535244164636500562174330874575736653172821785200354096415783229372502302320869796804094553271440424515982596303021217839936911868472492154592281206680331305506787868967726233173495353891654246260451931236139951163796564339256164475875206138559178815715986722200445311680673528817025795237642900389663348795695340947040649495500119895698571428776283470043005771103863881547421016148811988897198184589834617418102239426834422294442498629766981036163618202709767177309787944890510124045313151021310634714837593981085743321934101794931490390417922585735565888075642157529757183166643785903819517708867915922448515992622406559508354364163114077240308746818211472998314415453893194596399435262916060305416141664874975069114547824861812115208068621274504623587883670210350597135566520414717972448958094338155400055074770063874358624772349279362881218272301042471953663901721319340539856810523204720857784414307274300448927769555363646479715397858380103981538247536296941184053081068071810472405647146791869720292485654649322968527672174213529003945780126982681118884538932035715911839706308828665233515136358188430499205331837126794949656341902493458875864848315223556683894880209899190366121471911594445770331085494663164768721024360918848724185904625038091162415851728364160796248358354494879497866871565529291940692399318622796516763186202756217268141189214644328394008064460185636970210086815718731889050183547661860493144179166780749232734210879585848562569986088594510553344923526698473519396049363876540368832397536370236717880273896411909743006683463432885735254610941129859009732646921189729246027649632357086798097578432684172974909835552092032454459811267007759722039832645803201904107016871827228276920054638427593063735054100468329889665211378855945510440979124192102219892343598931745650821811017914015393404666099552609673679216966256211664252693776724113244338502019881152949210581934381683260899666905704491886169080011386634390424989593190473744688010029904611932823840941854515669405243516204634307282784340245110272194630865955118658433703419145911786298250057482032729879534549173973415784144219695631770659857619080281760417438267216300240070601939301529570579716304972794272898580802841769302545943517037355210114344850961788609667586587393843059714691491822872026120850880384510408613246285453006367656585284260035433186053176313728225561904046821634847728344203729516834781101689165747268785530888998482879334672896250437713247032174941067407592751416411442152211077027613330268040937259498802837944777632246080212157143477612283755296784825227251900092545084433671363277915640911614510896949362967194455246834766443366860433845494733709125842495320106043832492351134488379626357106589766380287496631487829396352649238480425000197339197235569253437645349574293676278223267249204347197701587955700351021966416143601798647003022584115784383143609507467325117628940045252064656417622976074624018467101416718143004951217620555336718897138084750477214046496333357805928402338249782448550346856048124064082314571796499490305817463845997570947245951813519874035162722482364269569706818892254092309788391885207520469834088605185390573910738569757386453229029734206785959985822287674866163289088899358544302954207805797541793080301122022131153218374838884899939056830777081047297850451868158132818771593706484768213427825885586589731921085946228855995549872832631918227100605038245834594103956873185264512743420038154890250071044248372184230466140775104713252853483561357883868585845936497475171068152016010577371443240327203576842621284495247476012851493595467300996088750694869894016248649271093259418495066854941930952874716229107398099882677913582521974340046567225934114641456025655594494289333993449884305486655051944881121762866416737431302143002944293275000015769295391857475171450848507677899260637487229579557085238395718285585578537002442042668404981335442921044612533883489392138593453204113520912314594633072227913393777306843068316865848021168237597934104781810097987098435806800496649852879404327513396608176591498741601877584001136246769927373113405322656721948435262094726255460122594828040879562814362972219286865848326812860944724439460032709478372565000851677895604126552066299968799981724943391582424092024386483216910106916788744826731433200119348095481570054949551017050238613123251973615135823581704593558908010694267025522481179090939583669961310361365335430526201711660826328458529817387765051679726084882693997947498460626306779203168396959267679392963566006979587871361378961857875450224359198080218815846340403197186508758254718981658265586246900908524501223819221635730363015346420413941345788799774334779977116133074536370023483574806119913687132785782607201449743745738602641353001370813434755737407157437519445113179453386589235012159422812973597554312384074336985074614174517662556572705749257043445813096002304434984196361974891990400862909763227161646095272261686609013218375321851950445587074420312272657408396723523686475504100278601930835681446043454510514225331379639873143910202943697030101950568985463666832710599094848718713833043278115437365106356585279714323090861960923158516786126381849884918199976433905519336639981956188639199375962792680914044545787759471733530164328243907077247600672482801278494462364305036808735125129814226263170044141636383313919005828428498438539923337490678162345432390366039725112075954513296822507987165398094523896351263273188032202517205816854838566993728996560643967329181181175333364154717068069269522740325299783524710772046922307476153169413219967694989980225218148216757344346354523035134896418004316525206513685665126123633097599913995226437647775419867383281616351240592333546746196725474201006333792642862875945093345198498987010459354302976201008616000203458177645061244083193569421127316684195530522352321966407136707217622921700790189378468750119539582940861232364314993821554180148865195831847644600613723123107599313568139246727497715081836604639406034150218695998580384706034071031317971874640746819037640366191068007250373458435745106174549269990745434124615492871931677852000100190751137950659879807452139976609024771620873053215874169395800919684545055773916012955490512901174120664377615380667773784924501834996603143980554887231709022179509221727652236778924319642211207226745606135273442645092469654216257240268277825787849497079861346772193168379787506725397820392511746734474272080167859604722648001960524355252422068011475882776139261959292263769006697649508529515834732400087689943627723186695906949881370003731586815972787405814399375637128511602506934154873173562651531792549553356282470704967296164482471949767503242124871456189324684537242493371271760188519913847196939455326654354704786127644658881621273340666207615178285183816286174448617646298875138034121650708180534812124695830468617413022239044647738384744898075886558802872334759886567080572002423101291490933593062930605436466438162432428380127691680876502409849850339450522506590749004349877736718030013365144384698400653735975990336268225151566573810376883325678579241188885928940138215730796587812369000546645431856185037374556287961122656980723891887183828242616391423250685377850587199615593219214138982430041537637762821516490659630591284002167196576243205591457274521242207349127339196306870827078198542750315023228901356916860583925454484845359045551968975217580199515457273798655023290572106912445250677997116248353499413057829849029114384849133542047089283593997865300608896882270945882937560305122038982480024813438403690546677530106266645159369104905023566154890089174818794330166994838281273608826933401357469064634046901711358057755208634524766652523257137852459563733221299785977902063984174469516702675502221605544750582960502965590896174471023850933860493199463777127420848761407893278062749104616291749280016244700456319308303740849996562840521319510068060433794829076192419316192128547209719877833080120788637852432274136048699096647013241937420840392267268156544110673194050346577098961307316659691092084548493164984013642802356347184798650140716380690785009474441153886516988788971455776565051193994542538778130745188038114863270584380798045374711048100279075995143217615870612544607254711870616160809191942716799163077583297014394687717991249086550579739512318971670918246610757007692947192120357272345389030434004681735797537740882730913257850308445346015615790274480407427868571798165104248083756408061256662010447388457449172871778498011127764291457294520509103434203628604675852097733459186843841398185668591227696696306577183492571083487240556700945667594498574003118113468931466489787181429541086429532669902247207427225447624310922893132778959624383312501130605305984531184889611269044964077937262564016800354031481530750918412162364238662125984726231645390065106046691605846364073368130889993327629509229007377540048209751939737275318110996020940367376672198309215782970753770916044653994844410996735137376273692266654531506978134020054820642686623332990476485710417701421091191076680881836534779439841525902198862814220346967361622314662518248041685732014598662055313310486007430392036209896044162830066985297841827079572859333695196665356190929421064947045356273731219937282289706190300190224407490608410862476355831596738203345971035886460869380443006433628903075376558489528206622946057090281064673216103281561721874081516479012681799872955437344854702713611556258964064543291814553269591232594256215062412524804896239941085141539186202525456766697146616405492739347104027609011117148430466603044182071067072316283326104509002049371062094286737083087816313048314555605325547807255571270885467903505776007473220914566523612145236331599246661458624377475455147905805203290239389945754835558392448094554632793756134976148872631281134181311526641057854996723783343007935642853137907367759622647090813220578628694066736717209413351189637070114537351143500855440213155216064221135107878950627608268180877340992272270247626965809978475592038593491871369688453735200575181194585458433443820342754904731594547714341860660294598728688734956271497582360499656123602647351458245923901133826856929355697495400990887819425438330825243779737946413993697268161095807656171723527768793912516559556899673622199949796100924975873716343026459536393216291428284687904247753428762251977228722218460718583948440983573351568478964145831181789540852312056694483138853682238942962212140858636407453456019170208010587991416969405561073422860306544963651758170698187888670989518564815111130278891059220051427827628552591479230356365174558895295622058512700548953700120331250933011105608967782971897337874441801876666597127156237240711453899571473791034695813036813333926243911234386012702993915774037290112094668443315586070470204806852958017633090061958139225815564029145167950031023108862343534272021962113169820454918040580208442940329365858131721810879571760982667692996148295803418470503592974381882899645170452157076581984585244414908849307684187755799334041606286995400078699217532872712885967474299231519685456999667896881552410727355945481377038702987491232753610092490163642752741175789559422251812594797085762863839759322094440132991586924153823339233885891735390536739151777182113560860024170293147540566266121147481901917634017267210351451039534198420584285255188435900803500497392579959427815318671402572600652238000804778632483255855021281060058665741157721405955794425411522400464069384148405972217808476016518015341227603218518224611510645989611271877324432652122215692555493638869418788191851376102124070109202429978400430702222172591521693595068336513406219112375170660647799872335369122339072282007097646489566856735406595956533738972215504094021075130900887664025577360574701462345425692845866632442498371012409409533454236383543783288084105581726435842348186797493559733214733093524718898319404666739894826473030217332651654914257207944361114495575800618183737445614634044871823252863681843678788156862073298307418389067799896763550166803858442286844659365033588998417566996284364114823441716487250885928841970926836721626793939853845329396720782964395003528137970180866371337890463982902129603596374756244752210017576154240994432971836642141008159181929996493100422930325270689226876001960269820973522671910333786731117241250202629725402652785693216123327383809276508273717448037925334169645265579840923530178500595278291998402997891836747435674466156144164172890292995896022182641117786937046947426685153621892291877516395883946640469892535160745639545600745346757584736416581418786716616862829404694393102048247312541464102192843290173312533431530877513771704015459516177704478561340233848846223612154681167920268568764540299841702801587760115397738809010646589535270966649956916230430363506344211364724607082785135336938762528768756419267020129725615221090216901105955913368279050005807666219592542545403078951843204198381923217954704029994798323244694782183418079526238515937103394325426756135175926007063976819256182607877275044015205468866156600000887639788696639082721627364520012826270780550940183227526711462827073367531996241850273143000597536746037488006076862399590713612284239224517865650514456629081615207292576028547032689265720109231376208873076346545993496655839566879001210350322906682415374302133671301827325909879025961453051556436393763629621686377619811859025537553884265556574768001929699691835194228432764697059474477956686046054099662338869816741947825819391633644713104128479166330015825699208250036685535381623835370284836762070201716923187224000453699938951448209767835922549680946205923632367216025524576108215608174386577929652897604842431747852697186598451925660303437055723759861240820600770937867545711280469542574261458447493164998008521453551969774805072621252035006033735007746876280613696050688189688520763133617025753654933378764503303881319919266680461392503939671587374378318716660598382324452137354313651847771802666754678648984439688601402149858011140292658536422771851326009030636796914700000909183015699840078037735458647035596019441747322211934268269564322167209968092095126404433405061816650896452129298984782093403847439191758275587966780294087715682061044550523750517735864593693141777715629769437117588038464425796144891315769397057365673595650065792971718636649981245374997278207675562429715658418633172477243529509160125032826291912861164308857929475913402989698874255385950141781004894167036876073372464640420403604203122201365281355955153649413380391399061040192460782457124323417470535016327497179005725955717964375845186102524504979285972299520505064971121875735554150470862515621789465054902015554236635287464354957038605319825881899196253064500313374924275933174153190761169649320520001187849179482002042333703009953729341901959831874976519850291281113918585227190206260522487408863438268984276759662721783233897406992805430363423776119114384061459018455311549223563935751456689890507653278493995725105438846712809452727238892510977705571721767006786994714559968933191932537411676494229952481609943629094835988177421234805553855063275719402740074196153824429386036703253178182368338112767226650652585940528707511183360879615149753973100472831676758546107416642652624939120108813589601186122540332871301654816834422200076994870186111945725715476268359174379180023768027636899966468544475805961535769889286455200649481605062954881843504083096166118047504185821786537781835178821926269246999663836922267184026384515176177381956752773223055677607260549656698133117113388881658960976898539672306793305626787290771422801173823832919630990585265729039443807374283935920083498702416022510595266388706787852335808022735997127411354245785026371199272895581019119698445083294481899804846525127383001230259163888216219176825300213136881846379631437828775481586079410278157815831839322966468974900855956631673618725325076990427781283612926317417460200148548805964189628955155708906309868688868002548818222929573984292293533569483435481905196098714718872130839411778872392239842264875696400446214918844470948156581539139110973624803763192871252341807704949649868624656786425194219158911569485348541433381768602273454987922049289544606933521966585012695955259283697624152203659597503808280222162084363067988358327092977861687911561374781201596585659507002043953943105134340234035643830487729449042694948520369165815905317022324928848116599457779123803443291594719649665622525329368404388576773306983542108428637458102161584226017655277378501791137576716391713428423679732310324849624939221977113563124401852918407342104545114741570782633223013095005004267139011908275755668036702376912050088691759665446988181968237127219061519829416526248313180308358157564479986173790056189479445843500756895771913412805402350600645637303824862471579204050295573859570799801765361556364046145736444344737447955693952121068442007048320566562929582172794572903742379098088906236285838326900435964175021142241712858618030552790260384469791929390319744461849421378086880639744395753949071461956331894978555645072388369621523787385043136319569567397141402539818451779492698890095856905997665575481223020080109606033106703248555941399099670140923720511120607308466144082531114084923203597731392168047117202738757672054495339078834988732695048920125766199277430030262946236766892356509927517117335544072426456626023253654013224325690875470870305067515504850541058541915277645372115804196355747043539806371013100510830994008098269050110583501889768404679751424775547438717219200620667955460331594768614530231727981893240172578697542012726223719326552926859628988859493522992786347774767189926939383756257811886256623385486522561964183632626088443250489069372070216997210027120367599076488562271772477341974293065607400886717237747838472283739732757782191863526924317843285274909818957153029429396725596908387203729656303833056269049000403953637051158684928402695211197793409403238594263548032637626518446489148852260655225683504610979867883439301956657843989010595550555536685532515904136841214729088406910026753984665776984194727798947687269615993816308842305508406726429192540073306432824166603219739651521154047064068098569424876122132054739905654518642953916665449124946946751944817226512931396018463395966557735320258990156057009398010772829566252073926366925100373488941110327794480485753647779042466861238470929866972730254007437274017394577280252458680420338463307901502223576500229392143822191692158445475207553918838479803600766002051840617272090682552130085935486939744122245312528955453080075847028276414095569043053234059415411166990440100663603971909682766354454495177092196273043376416727887866860262684303132773907411547980137962475604912045070817444496078384564699280283440309208749627645119095389682810718497954906305868148844299793984823846228412001506338811849678048826596642831388249513001145893214877673437685751025597944526859255095330317117328938007885102287298136679895641440655527149052889815003119746249283727562517623167983490427399409301414228560948262226175915777530273013149410287108669142916650194014512593164406382209531408431602156056579735743918399842187018534288004668733077609989313969554830112936871012817965929040495145160950309367286456322262719568096307461987346490737060754775771267230017958778030062747375208753968413755925816387610162741515926647972344448637837122732023383778429512827468326861608817745611502884515082295262632078155731598730336380456673105196453531572049339623215238257973559265363723570007455904737844249157983165138555948177625240271078580734997558618000590225458203187669720091448429002431960706449561056891036643569828342223570787211084711440386584243455534475395592810244302431761600007664953287382398828559312673650131302583675431041552801855014145459483676857034015149620462438731311538091104793728301088447124752775830148370851126170994712407717825951236484436496678524221299130165538340957710079009911028059376359210969850565242112589467018474736573194306820634280271210107104146490417891685554782721319063808217669372902287869857365180781214713707491336146810198654955600348760454398752360905602501893115603943407932000943505211498261142467610583243905468733282535814472503266750418415038848286574725354285473496204682519653280198604727554556654477528129975496865740147298861996713182547249897364347358654572752604783216661745614478023411479432372826884228005230796847221977673695610883237984948388133160815342890706960275946110274820454652908978652079648408574140556626185102133206727975820668327578579932154058640891385803528434183436526926418843285230556326601716319011410258827950704057536590687799309687861754622415481946654410147427025710483388473846158146630768913611369997164136211630975867170655043619411952564073992586769406297143962329502802536473739594789389537360976113076658837051807297866690751697066724410060000010063445870056343518120618731725722366929830015841791741309114788199263449030106797897251705284846187074787064630391806845521856443071525772837744266218709062340627967011685837750225349382389697845874727221273088454114988646099019081387263537313328228651187669886377413691721041269904357751035956602134644456676298097649877296990951660356088772251149001195961430843680549375035039412466653987930607724499260425985575911193091787428962396368664719403361803958870587141535899461043938755891032876123079839471509036290564665099094766588139063804501726212719603188811068101407019395730395140971220719772299290312353197262599273118035698552188093989044099371911861950510258041480297769945956474022150991753234335370682452639558374869731853360814845956465171667779394000772053405631088416833094445374026917735963930961566173555471631578345498629546997841787547385185437834208058621630643386074309863485888452578500538827001060720415131805405400114211752031179098329577958128629897740113171524391605408022329768354197378926765540940955991430937302460726334659031337786287262460924665947113083859988647919295763214342418946493671575528770574454997447478035111117002802270478034809439774805737566581406360168879639474790238837244684338251308751431967376296893923080158869471672777410768933978268087072323856226205019268437357884849326190208260490482723200174172375369190133943715751242957883044941755651456752351340426070883391957105160797889966897208041850253303592315717168810579716634510334346701815469816390521043249123989243697457084493613032197097986859177009728887916218436385166136896492282393037527605013075197092323203168913162077362464904434698708337721550839759911860896612798666759947746745287466558504970070441147859277112207837727530135653800666450316022512911756790703692213546808835035405321639721825798308724588955508688555709922448030149217807167758990501466148472627635653033936313757037509788208633697567891229260416789972356579101410285653388629443410335139254776046036022662308228373439165996598297779604913371344060092317727798078517658168197502870153357815175929949326057509390100466177608283437814119025369998664603561845283413060043467314701258883984772500963702506541742060708827221414221581860304806270530987832552705270610179820373306463582744327756173513931476132461369475352931859032355324343521423406003505637713362587799970113377258834285003149661854807585697723404247555160881253311070471794516350282595698743135735405829727617787354836239014154553700183548991004231160171810247025128742823166599414999182903071203732812849368142935492573698450888799866276361104754308977886917316667041921097368653187625996384726614140125552676497146270668826708460144757529481843076022425747470362143143851970994425474542141416872657971000188290905815555320710627080249934160878214033003860168236756307617423796631547050183757293775829919774023859053299313275296222436167484203169614406633941550303065130077100891900311217524681534587882996792013705684420891292107533047131246030983004439339203840427355775392583212018816341035648846610072519929719764540413475437866428603604354189074151322806043081175196809577994527741197694904013834657028585880995016772994803928589765786951639085041842171656096373705942752876725487519659705497912031647628137436791492397589895109369511025761499142568471404446483002665802787633011340135330543517866482169787030974242778274540706020856351175386971084925296696106262631053844016995343702187379065284733935660559235640149430551579685997113777711618216367562535303289610696078147659149827626384959016285354505247906833353315977879138146935969233841756275040469675500708960394196113547747074270796419908848944811265622754348835340083270528454091985780239908419929363157318822914125773587306459463220566549781822282827652106588259292699644227167108337730571479532307670674341272956687104636521161057488291470087110467007240567651806527626914087798897632636731241025887119674521530473986229387759037587667770843494811378203102766641420720217764590197075592821175638653768510402675949586750341234549578751073181496464701017624470049530151348419347733626796067830017959892333977751076460500666000103083949295161053987055816340601241006991698370449271248187789674066644842082946793318188459103443337559348482617356994608490444261323206999813174001981537325515649620532865578312502905222410116846124142637177919315623306090606947170984051412481514813106544696419901032473170868078233064145841603249726347219453151714263181967592911162108127342299012748680285396661302802051224115149325220472367218395642920914505255586371289748010766619282874884955932830511303944646526536880696007430593391831341513171154524161064221796837946947852053082870161892366603629147624456739417645716682789147827114726897677486494744929691073044578676727935670312603037190415047355571248544605617291590833593390147216482962363573086371589047768358390205413173556717338005369446434959650590871671162893879661109871518237521839010691039385642334913423674789512165112210459550217072670542167033166398634307901235745066845895160845999454161287557168831075060551392665689988968341687654796337134682883127810014235889379789714615361055944632919665302231649302845535556258013107444944151412119453793434299182475763826353810780221273141933660409265883982199963385499196925221307794509881888908003599261862097153696288208421655129396939193091280698179715703428196206232174077830256482273398976647950537327383675310655297898983573899263547239835714537630817855065373191092306705379388594182075812943381212517615008992375594291674818429343378991230147043820688034621937206229485155935466182342819107328029991924329910481682460860197726146793054790371566528126073787842302141854524014643350959500241398621306211148873948703512990965369268837221881472625629648118430497366109947776930331945980920108298940251174508759250981600578221417413887635973518970728323467896575253274269385834633782524383698001862939101955667399309285458880990971349533077949333929145800345941425798050443760778722091318526949194370723221927116187903943868430249256503081205606685813996208362699796459663787849210490602688900768476572486999576705323632311275652323203269603471527504045916974486058492179148803685409085586657143929236543559726462695013829262050299865459831223246462910526876406189282517516307010087409028487300791546175520568265580539117036731301419918433489660956387043345235228168635026359219117646854685304603769845804752275695246318228316519923007177869380834107709814592068483749274200498749800244121346446819967973429227338920644839566190529378018521848610161696006906641228017249431633279546661541278344825658870053952597507740880860374720040458066481958200987860174890364438755683747947880440514514193477137844527049042436107615045158065680399462056757110591152241004930124030779983034479511326602772075328707994016713417191655055715867744435722614615492009414146288905293609513012321521902019810882324829144690315386961320981498061083009235044846190799476575844099268198921603863875693221368597348595026937364468522230895640156900194561536692608432243584699404812016900500849195055402915357574766460273687159753665101589869164742270973614707386338133651569858755389233242558109700257294774647130989760967585293392064165459032079470717266692107320665914486987651679814880115935481851178619630109303571934904180150499664449580444238068368325605736156658911624034418192842156475105804517143062476753911872726627108161262996987109032242491391695295485787212865716830039939254742354241654896691354045941879518313379681116913953121272661558980103471222952931178958771027246208984605399291141315735630915866151124258439696608242145164472517295134949518664147192546020078953152607252144941212723074989838181587137803037062322701365763886359296523768206549427584338888673074143413432987141850737611233175621778306345746871425536100342930552271375446135624437869377746133940629095504193020947578494640826063560458759130849793321324234534327847381508574910943267064981038225753950177834299355097378134298984082807406186823367361297206516500821358811094270876052097995522223982633595426849554914185873454364550912219818784828665489615550371463810482263038770105546964642540097830202411592194639769439879253887162257052462515442057542068112651801287869139505048218353571632322392322815139200029720481267826360578740181867920916732834907759909545926306381710069762598546880514022381864721524561588820778340092555848545731950980052751975674701354393600998377405965823677500020253389009416888743547887449045096888255757918405828265470705616081636955971319049891557965408788341738222845605383222135664947334068311875610455380733239535708452394622663365026452912443334812166480931468211974130476141136504670945353454052112880869091906976307810657607044928984355466835799443021764721402059942166210542683876092630207836230278467155691502849035218157664654995649049986947293070577568348230270455125090293150446675432416955358661485516345117052289585962701233431267105256178841510333419022205461415503046902234241650229023744442908350462281854515111619696416149111739973855218383951538221242337892067017399509097470955531779539578378916272181893330762590288096176127936667406169532370517803132680611457042310981672063788256661415252103845957725001588135789371145327079405822337120262444011581996403105035411948071067546691639707553918285435222659816534925389553950701728431647236831873112768924028260571509022247524142460012950433331992199534694349555772111980437053097857934753313634890164449436811835494390026248951065002279211111180080888845723962851422452201221347562594680608456357426303242284822023974594832291416687861662972939842244967327324051631169890659744055693120087244382822471439797185317242946834538898363349012123032922785926681588224117796392821847306256391595422902357731502146349550637473971068104882038709159272797263949378681694135692792892551413785612374269087989974066340946446925372432739168069064054454333594013131550598403548007112714147132724213047367499722142675554728619771958821888848489583613646965685897468775714888559689450481668398340754309160638018077015449714790283643133398698530009646094468812373264759389557725593297867707926275703306636771837169372255592698533545403900261768512936199282134436667343442273413438278321755696285938529711367954297622629032054820205406683754082821410019389113066533579111357029214032212460839402253051102065842460156646067468253815052776560965167097227563395546229400529292780613020386737414933565476485740973086038541467654040322692467765169146169368022259152621820073912899444917660179592575497955815377574061486871662899892562637357572106362562882036637858989531163509491526694266132016633168860787480931196610972356144411444521595845583003942483243335927300985011756485716941116005512193814238365217225571673462902542274740663341690307201517576558913325592644897374401283245540854101208199126635511848981295748877445274597559068789283085838944432846336710660538890103321962118385266516979395388889890985947088202322277336507972072098937274768928149693348793823265693332551087310805828636141091346106099982647623896780923247956968696087666981085173834851460367983398484218639047089462762376750723421974055749078188735732550313998821833447998952718681263296716134025981391453392622931512456298913290819568078904000351320113352899239732442817180045051264012920744453955020374533460184605723399715573930725536372498642449890164352642358226252559718765748917726567087856975654632469448928109187972372481915517371306337393406446203389075966579634947335171322969027756232522743632097130781274856597550846689535970413532141813541108785997352632379912896179472226302909914578788484174984510489113932853002001631186991046343132919090731661329401090998306591530178166980377969694697115114034236227132992819429298991761973726197812326972170425751624365053439457383282633385987193382781487482040601568093822420435384620501868525563452564689713198601945134277638636247973955243001442950323002421624623963483252196444154812647942112954890021815394438791324741243810401006258534173207671978280144025548230701841481726765136039680369285820715699361109305177644226647057986246894443969191574039201901690058660630265739093011196825592466347662612659694765944707343476268540033329005185944807782472383218024028428511841126631022039318137592314628966004461639660251848804857356089859903943350436790630478646918726655189190294956923976212977569664853481043093884636791861031441288597496795640206211850056673137589921118694984472554206293292323031011805536664871831670065407429275170031540513541968162589826149186323257346046737962314257663186528804161569758702636157886826338299330279154199838449041019935384109153599286541884239616391605533896265268025137654763410324046097979635344855591992193149987229058583278151610579730976985960605465892459119432986999234046176466256959336516853205449926734925362870039480165108495875595930979126942324818788936465086195297382408082797947576560006624493232501687386235385285985190413971627450641488900430171419375413938966819577926894729471342115604970718935440297569487502464312570022132900223470024524959502993497024276082968414018706566948469443614227242415271725170926483859180030954242047467535637738890700019280026260801223432382702138362698703932544773675966145410132803032789963471932579673483646183420406437943410015075170056820271593014672652958077327660448955806340831028844793693280593502943515117979968657087759391278547555369553603882448694154760823631107362563070294137991281962356038816555727587052457011405321653567638480310194277575759504213148138772944344723577306076927684195675558609581259192754304635423594191532669055072504211098959166885546598581127228536344174258841052817953783368191106510317124960926313709598462041788365307816979912683359743777595741818508879801718784932661160459198125408870629104875865954636180358468959924169816988845563404390826112497868253091831163790984227427904777516837042455894576693181047908261558607558730070568643525578909997495845588068502831866705293646265177863390836806851321494880692969794949543458440579779555634504422364002089014082516467831305311326975781032022322106399710675266428574530657138140293913643902028162238491557237310898406612242679317816359231865359640654360375378244949819055830684499571345159067168349946017436170910174109007798071735411465035473925903386296154466421776386373351949840505312227139070350125556266774316252489045491995390709958555231509526130362956122094934509374131394168148765382942463229496050476437438431819864322604066394892209406179236606333661916606030877203465788213536374416016699217005356295869684805766381793232848221105208073084505388055611704086668024081020797816463066879268475575760531900161216361071138479265245639269008424882156365318582667150331998837484579113979883217884907032298274323649250598712934392640518390409169739224175538771804055410621952849892197195143907234045091864361879474714242157447759644789358322543023764861972522854903435934707117899491638129211440418244848487935850686269701105185328793727003562255854671933590742001876327728761597003088527545293514496101813836056321471318490537392655355028644134410525713097922679888736972504868206771989277208840710027148228536803464784658723412428687340594099850644109424821875446985697515010937014400659309526533620472646386440091259489304530574262790807628126448091762003602119220893210437949423070819129231934780021408023058588309932734048646015492985988406650292902387641699746170358903974489710175564543819954090225253911438968613032240855288345457312633168982126880563021481547053480429420936588226723874981416807845435218599895402899593705747636994748181182119350477738663834182298031422729721704516562360075132961579823974112109841072249006598817210433453900849585302997018685886022281534439261356450827575574124440162849178593732042924580746807963645694773012119037919491956513678353476026827615860182560487186845583794448072673179967909719900282712625140993761070963073578703259565895449440630325296068809634222476584799712183288753919835386823471852059170958452110527363916728051690160482834859101635715700690970231901090438806985934963101787318463174547939712849511295020368393976155216112126593220804640508369946700853340667793569289960096929611923232280584471979658474163824783758164045888873446604301591927295602943935803192708163365163118200993929567878331298714718710508660713902124798374521996874838645661505620173862470382032877721481967097459166315806246220266615462558465047043735785854858213327757007935115055091310176455813414575903284966590718286703907729348893766982332787698488540252939338785104117152935882839879855999893125993810090608742723381649759139116152474833658856884975312151842047330269130457179459962327543194850898514312975351209980210621279438309981674430551064364949140770326630034340480866130932784305547391049777031951701111623392279497778699384144140642451382744413337753050261436885369733374825582092298919853597708324334039780174770444108705148287553700112980672306396918013920802906861715853037184433320635170250359517176797251480241614166988034136892439996312821110187855162622108300527201106015433118678400216638311538968871316056265753353836649445294329341442661222314361394756147076166349146572960162532237464450482864095666601034859448957174250780506391142027294795919673932513516062922392715967558874048553606644071086055834698027624195481135517320929743953585230229215762911023871995226176048127210198512633178249180932001474742796039234931881959577080451382014858297139878213651067700683301965857827154353547207813197441054662287932081555122537450695127230315079572872421119953388917622927047275539214392358139663090654625100825652220452544727840607808416326648139176511674688427779117504308390209220862553474425711612088136485564578553729973689071650396735892544639531426371336608800487783220420967651302218540789961047409413378505575685904411636280130133447813872866318414870593399195160323284597995663673219211804490418922711544395061607500067345015255832099623611064445385309762603865316687944605163437291317635066831597569363997591174939421677536517672446324680786230341595840667746479240231113760076355931518887135621783017395800676817247018055955362811278736416936536041001104900431135358495490544013298772993690838625813458921459333806235464145042205831339485823591959198688924272444701475179275667906398866615670883548356485766105617133027999265139636506339223744603016840967885581291065978947769936041343461692386482452480082154933995068257278188469803746781198127388664556089195188117536574073205252100831566394836812260268346346542375194277690082565932385533382394536552677704401962428210040047996141354149776952770590543833587081013909811078230673669147108956759243290484597492337036601255617802953461956306144155974561818505403061540209063511522664002164556921159776453459404546960788868697818639737485878822259500386845716136590303337652331474765538977460412508739480193361632284363088738477155859666718711721967184122076240700666174971073793301677656048460852960953294067560173489312629237599494310830186372377412711823129942719154647822239258813451095642894090037602379011992002453991136838981144094611970731187078622664536921704610198732203746942350865875985746865977149622419593327263963837525125311880498450711698898627475065096227174874760630104919740152689842567505403852861846349004078545333545730772775175426182075256000674165826705094672523919185410814662846761666371820098948114656835989175728880540245403356085328331619972371149379614331918365379608059836954030372024381405609868372484319142760012571671028341990212040367130604341172763263973749605092913755568363577569226633384205132782551163953726927880942504168721501383225392789132192402577989986430417959105931395425685292925915213042800147470959118089790430810575586988418851215194031901809345422116969940452851422738321998872195725767408183223134733079656179643363328245839415753019002317881223688430390621096726238336079173226085812863446376665110735036015645320812173923573780196102060682822988060661969380771408071100214437968200839121977008121312255248967045167599447015211215849029967927201563686829786853728967490071832058840820980730404980615081963384531045688935789790875729954329273291300926824154039998074809346140114632333732386840695894740608826750943725950942203923082389270669199737522065008004248994871501221871730560064281897658498711481348115105229218153332642437289950717235387156050183780671008999351460254730122702762410707304696097305931549596305475585607106301119444264222945061669482672970409503475142654859041132537614870273935187763197139652017640615560276439023648470459280250707126228256473215059918139633917915693214391466063184264933307541689166804830477959513484198280939446440871594913035543056226077335154799367212565333171775143697739015851132739602457990107048577197018252453128406264894243207524608807244282250406349574752142794329347703463364018014417674090703689319182488069339490974379340136061932721155118963554425715887624853422094222121741301771996438289879510087975577846859953067397243396779240441952210521464776926700093268490284828620690695968286584665628084138722061449482302429287326867571858220169277233969359517105162539748213480688444899968835404962941209038466248364327836871546965025439286454138043540211371613609743283433060817459028571491293998841202947557779352086018845044324273542461120008172168544329352019005588344999983089656983923437094417083886551930582477686236357458601231884882322458020656034336380488644526583267292762101930554175561500786615876754114426638009565166174401016539796220423964954270472358931881469758269118326810335814941841362578791098337086475888920853292533550003817542022299379825902596713018301231866112663157775842539453603485577773446910893593728078322296495882994470872098281651604878247202260721370282391961266315022678711675209757214923943363778679344088301678133460393516993220294316579372125415083726459852356539830125783309366605593150627838532900221232927547819079286726306919310294038704592059806965800176897396748401147477575633613906549731609139926341109888840315794519880623616473672933851707252977451386716244554456909119551596704404130151884003181013490606859647781129761264749163830325322334594136315229084085805561285371292819700327319942781307744882432743803068969091271457287367588488414523566672298868422434270568219938723828352465545423216115034854736184237096711790431710088181951117312331693368687910907995276073579569514185354606731266121063801217676339292833847882990520451100664002211975573339129462042241707075068137968432387662168332851123400446297403885976977199752315942555220854472224774183128715746844423492227588916099331092635483122995594102864265772947264962608057580290792818457122435326004236893003853930314167841158762675224269096321949565014168297559705615334486134953954132732847861166828691595304790132906362498072999780729488393479197727284197324274829796806628094570139947792710090968950106411245849320340597740040506823866534601925479305598738476623245425870006943194926621734325100453986434065996816548292281901445755749033920091155653769102411362262072119612833927521114269736555005779932289864772665259441196614238862826517949105105958346109944439912386621153696899381609139374307572345777769424109301182368505355038169620468581729026757239268456730181128816625848984217511645601487480384990413381763028124365019822654996959654371102556904535613871780372289412815289170335343512065691341472562231604373103905893936690861575955302313483969776647620382331172283763053076495364842250196214356553314671604261115315362469098193423903315308070849801288354660012349803536954584696759002981623815815202423726273717789435136051899392003216647539171669997496680771452376198194945124378631885073815363145024320342344294175959209426396328876064619240392303162316363298333481676560152546921767198065664892619256093136048645610136129055196510748408346279414937083214679862516119256337455826810837069789825718913636238946977650396220186106521041148799751898777061874362725274289840495280740330283880368552538885871801544172990980940836081465829230369842072138129002191663087064050900355127340202259947635308356291839009941034864807922385497665709726139137942735306395008594084771177761356243171910372913937240807678922427799131131568633466712828025836663624835850963070945732161250935915430742742945926270356662920715844805510547261525979343519694846033199072222984728831804268392284483706042505502798417188538906419343539318420112674669825512421862415305492058106309767503074540608517608059743252870516264467898360877954892504123614273000349956676756404439883527722962618514624575251847477543606137958626491775460085107770542022947920161433452835310602885927601184135783703908088849571484677021907341796973585104708130720481200241334534743851605603835775301599186859537507849003086426400309423442817537059512388782415978767044533582899372034778628198667440589337149608069220040235808727482633283087816655657803390563598192091358990149737790813084253011902117120629706533314063713072865838207724667147371724953340298694292842993561468590584366218519877576529887817121773045692315106969769650862639062975565787332192969703399802320557474728160562045036357417067636103288008364897938159898064514459306822126171300783484460354181221770184424972853859951779217114985566354382334748995348921927452866554238785052387288901881077655913333976790651934098210118309609900918591399896686140910650214274390373997986138368978694357043931985444758947094282087834096622644151910522938788442437999902392488472077486751551547378779957025818348016039285092099822341843853386239941252186673220531594372083568058263331471521933861693984397646123888748428946778096612208622916138231083503858183808700117192903713276887128996537383996832792670729578814895485823558272223870620354975776913415793387047755995653409033676194738476435791544274753176581985929755953671236107997896759096382591328406475538708928082228402157992098543557562787277269149434007561367764349879274358779508619485771239122651416975948942818428604339511570227148053655262735828590599347683106475343262851212758855058020933975483144969330154162455199215421154114886553510247079567204010825241739764028969090164959039264599904617921478950623854360448420262811961042239871577009310507804455643568557918977723087483283114213192399388969019561197587983383487461512725567600861229146099266779435435762859641716159170659128530231334714681783994670879523698602887886834246001573059072651572575594569560438532338289518989163329037325268043394857672394641982810114982234066880004403852915985752075142248017795455015484909330974046064799586994915575813541631256827211716222218783057607721937627000523486658151045829220683562948967387405111263404860177101902844547117584078557735004338511433701022116280581220144215615992573844443680864690675633833050747736585272736323067970199000736856094231174204156860061824778218245853085525500216810449734119872104568922547288408226500133282208919433103439130606659726802153712998921273213939310122824757988315130798843103325472016466638970550700813502992881078046813559869093644635221684545566504913049697065699487064155992160178888097553531347465734106974406946338522982656012372353361341776821812515897299577776601612522666145212416269302080819852954482900405020027170853997390864718900300429758586892483751976178187328587204030006085796198291680626207380340960637909067187339316017980878593659849407655252328600613792802893567006458055440256825102143631457419119980193711463578476026645089246603843408963392376391393071368180887651740946482133231407059734907893248003903083384923885349753611440351776789599552380981405146795741405794845563386439785429914619202624857144607048314340035035128743065197563880442710869899610582195507430941510972230262963354832588661592523722134823971852879319769022351917704291360863081759587503567607508690542556998114942350015135657849684050341974505774152170973839412720154044412601262084033223405287597571210456238175237451848460562572860523054874588969471063752732855736954190082381189186899342074928604296401020799265936730688455073721083355667995159599432470160462825307892842719650173510301820006553178012093654015130749652519864772185294130039847784908053346087708065917273761795672797291461882508659419827257452232591228423486536189432129905311984833321725939625740861556844768752567631198290789855184878749898173586755094144753980456198199917697136309746308075085820679434478821954336390943271519669869343663386914773563233228410416416694680331266886685898200916311332608138881357221201402443239150693222961880843215442447635845454533566060151257118701172501806402982886009242952374343622641826057084635995823161703670436441199900462480642185763428290435644376246491384409533545937609488655473892812160959079240998037558710348383720769204082254548736659971273124337610960419574953580769765008216826629899783191159321321462222663294044742822082803349801103726819361782248671175780674562458380057728416643488729332113582772143384316745101010926664974401731348462692237465074238263656337941238555666272711807253921871310060500847724121271466349304654920643103755087205530280531703784090253982138719183629408270200143550736817162964843196893849093282217247378968629289506591037791889203271912151609596447850836798474071592527474997410739258728920440060191102213924529463051353334038485327101365636029859354764733331771404299918988265565628044249114433051436258916084804278457584309797117018846623132410464190853885186213979466873420900038004736302636122294232108724398641874291369041022118152968779101822536553653486171303228528049961098152983466090416875102100671761588422585103568945046727180308375672349038926507229336177135962451289963601754063158491596837617289094974462853902900346128253715376682968484685261577538007776685477128976639089782502543363772817056161642435896552985842929247060485368073743691813409652698060880429542616205268537127699662906612186371518984320380846474005224740928517034173719295938307381618050501102264359060998237248429787866136861676691399884896487751238615918213424333381396619763892408622360168458193274792380454509012212862871833031328273667531938810549003641277073444331084969164144515387776437434847613391924096301600198152953832258622179426680689148486685434596428665918750599795397740214221462921211782239854923306828655107522160147734246019557514117436035861205385412730541375101113693318614010825668646673122260915022963850584478431409033755178371090282313479288773774215492360330300802580194844581185299292726268844068517524378954590091726823957458114590537017274320647880793987242271469809635842226820695014603335978030131211833899903188818520620785856126770963419332876459769064041554062087959241928020849325806915838240549335684555612760541514977266219762726254241463885790398302197353948606014554168479068629779513953844568183517980741294627199748808949426561718882662058972091201107939559191198614955074670940869943112867340642393395839045217221919783219422051883167869485530186977135336708172457809612748534105219023839254894914103371008831977654311986869966818535377452848076946205134523513963284541654457598721542952771608475670843684401636442812398022907601869980267303449484867198795295594363022040204945079722746104852112301756925320342252353633838993144368699292465600156343041966181870923192482586387470570766293462348157907013734241469890609219117307361898421482965734195184012689890926329972978121722269627224451411563324067143068050382746356979639404954550177318538512366668387042754884643033763776825626377722685477387463174147657653752522723525562179222976558357893401878884650628114731466899682548974454626708686817117433707319932409209180056297785041787386247325619200611741508521636024879042740679352124327070101524839653516791784170649936733805209329173289502458032912560568014926374785332105452668610867628896162366975341308117996915179323043775381276323957198678909008290652254656917581776337106332072228660943454021692697979980956172924830154186181624133528397186795425934330664298366948191548195583224399488062015202132282654881846213089159840225501205750364487422621913642388551255816292648168237806672663310485451773702125824969084750386175159764194275554513184935096901871875899558488996958713537908044979830525379497432216788693033422546039539341834281712321560568875675564390962135660632166135951761643421103680747609766802707440566456703499369954979141671160117784920189955371574053133185343038072079623795851216639343430959649284381954327652455657965155525185708689692106962718562622575980953523223824554220344937875937757965726566406378263106278230085066073905427761544850250610074424806341277826460444570973353421629694354222849314996349500546961745926574683747436531935564285962865424097824070843683443205711340387669621288925644634830504423084195312491149421233861913729027236802925213972672181656525823509758278723978094739910217391552174380688522495936774260592454570585435259012446660093167232350497842462109127335470213033512527244581678319843799082887616355737266499300926395370444937782947088450613199461133751391222532431847885402748174809814741998959062732132101730605482466515245297244071778329881683946904242035611081278856371070651710002604463827047490991039167794868488062777506537372081510389882602391265506251100281071363175332329919298651920366816145346777691615360303288347286275060834476158836867197593389159231488367657179859393175643789273254884529089180324360792287945048477525246941530704898002258723384944311990401373871707135674749755793718460772036494431762727958824950272853760325935256328289975135228830800436792354071578945808889214681986501543503863836432842295003351256134698741136428797759107756198473606403844599307440910365316936671348462624512137254291140797696174281040422523293168221901967985709679008120104935661124588275362618034769741323714387747358183659321773532893836816708807304769391303183584869804986472468265031770762934677136060235695936025929915041277051468313438655807934164321979182411484979387836146835233926496481820499899567797331809247131671263898807666750579320989243115009717314045981261144577119788985482873561756681023296363101475447379986817357792440255907070653963809835711119826966500936524030993300688043923104144177791435897178068290497295653994852116445447696299987220097629466336065463838693920465937383119850748356525749664425188111055419829552814165017020316731979597928966064010170049394707046978002804371223636884050420573325779852733104742325372925887404308498337881157645855972336597410763817374426802099667416964216573234576971386796832181513056289065586959759358317047327791647872600630560551604018296923957970173508426316524210304327504092851766689782429438348816931676854626612295888731898771650746774695138326355430704588261158221966647817664286767384797170030542629977305262395998158755959223731874035349635366141323238239793561595761806965662827745814731201370891926769213625835829809980746844264194964866475243328304316747504671449559843434141444485417972717759319530576198702181774548773448447485955984712396221961192806812369071353211098953147531241873712718754183652774167687110710250034621318695302301757840903373726775961363895930957809688544703376642979625606256371459709859823407006407304512068254019365083125904090523361610608580962330930747870247470629945902605720949840685471941346828717432357753520344890312247517190358186442355377521814046155085375404025665185683411674236901409938365668667504169362473174524412630622516510159146037031026276152931128992000659869703760197217803991163846557850814309930230775645815369098940455321567291763183843301360536905798199307026502259946526496361588170996311522258441560602057151629371999230681310212419101492931898870342496004926241269097490658833811093492852228299470241350152827527805851053740186695493473899571632728894594846703415089742212559522275254856992455412910319599324066099729647988816975019472387785688926584840351750642462579543739276154626027519328237014758329728526912227092412800664854966888739708709138613492859501038088831906820739372730892344665845775926457356207034605393918734230399319632022407759538807593476455787040482079756089628400861464508273259883255624025303257453443368537644281728776651673567036657527427157742443268476546767064894763222666726330182489740621735958547795644581406010638795360438405100519781316064852004424536697859980639348291656752624655200569153835236180370403826011933177494632266835521062212554381284830791984399586938832165148635633062595597349857189798372158990920172450578980081411099208387181790874311060866500097265063128326460281961067716418684784160008346103053974558422603521952090563774396118126775171709558761106214918734566434837345106589988731488495676719378034488126954710035268747412534776018834741791444699381411510066420243016610394260664207674091554454169285339222516707150564131745551243790429903656548777416908495922425305420097414690448971111763529958941060676148522199492716443269295628654493896714638563156536774477123904192754615236116692914297634305750544732377459911932416423788543799791900867823303056649503708960441974713398294606089184778977396984586492087713371229962459789957965601155818551882945174731510526649717465040045817732603341276645228508867624679090981762634812109851793108164584851939005265617385688490897980435990485326304428983186673636963910265832954277425654575213660204707418762529634574024095308268322424599081270173916412867851814645756532468293223646946668868141073713044188131901693692130268941031865179290141357624537046809406320132281809875366426939574251295797481509537948019119081877113550000928570189375242446232738862283373937028116048488454377566642149227852742032059194496113035222880839473570985718063274410500434025876672505092029839110870070320761238760522950887739378259810400015305218665681678333948418521546560032805647449960278225408070599116035339893587285398014302917975170926612386795665478503628435707077689017802689036526044531323632403715635038298204083613913203617656977121095648667579229698781795263055040284904860656077334996319181701492489408418019005721704791644946141599189155546223986784297880810279537369480539239393852732867783214486279095241344784732657934754005779688502843623653451719965651405144621182943147482153824936264564492382744967455883197436165606722643052007210180406541529043076488948467660648521854520833725064730861659504239488952211974772568484607243755648489905422362464372034497904178822953644988500559697063437054290593415452450527373472414562833466100689130488447035331354934944744035750980658785725822020365425248906171051895170630284109171303710546412774797009860799011582060870337638279672330012173614522513769967618686535107371032334124293797500524995811171395155127994180368358959958640349674002753681909226032662769860957259906237687608080422809120668359547481980058708299438227178133498247614665500333401212476906911614415995983046279880974371102853187449737514741550439627080331964736662185369976914292360958440817681505683744691215793002373240791554153777853283239994274051010708348628417326501919194056758798280454482171544806691634071282415023508625761399460619989598288225885667780549793901210868590746116570341325122443304493094079071373916625650835047485958224147648379013633877866915746229673263213707422432365034311731017404202745854638816053701318131677184221371943975316880534147579809601122563581900356936026275361117193360552298855962064144663080260124241377216400492247877582297146316797608907349439545901030142472874005569053656998021388967539603848121146065719676215412812185702542684547301358839406679283861121005932239611872392407734010331732949383111687322987909975274755552784060180584313164686566355879085113374152774353695046537615831593173427625536322369872045540559773310352805663626673522490481051137879136576262926476287730969797433301529821884921715266748647536897741771208611027349389223014479450869672848940232187657263609116674753016821652552781867268285950601963421110560532283943576415843488737405956391743581161780875539796782890300303535577688855160158807609169584395922843517226277336923387898759317927833407789208157782231489159678281933690291678960873306404191317803729587482546360684248132882669035869947001335183628246954785426209650149399097984554683150486143366093423985493407028784140331517550148225145516514756315249780607995987570241879326220663659453473707070949900173102766849956704506599824134383258620847422275145722426744517723226429893395609591053885732855362671455894691354292739015931820746068733238976439273505205334806997281440618499297962368718653635452476342171091025630524401866632873499028730531182718842915150067264434014181296297420494736222297007994600969098321455281670193752868951206281020309617172373491737895977731930142669239328295025498300351881519969045224927731671290299982684636883882063105588085398241926681105192040936539303829709699814069916082013730132795507691951025830691038940004519129271197774268728498020930086167055392815632880589081978347644955271497138313947969532760387833100195055424410449905920657410326096157015529603737097199066621486124359875376343588968081960815352487063898822947142904565810771966933402163903241006094847336850049870447864710905385705161616016145028733191089816644267551281034930357946138048465412241370184689670235747103435193917717510142965024990439178645688914503152236294141515308207120692410060468200530661010208571641119291794743289703853876961257820642752789614633358156863765830280252737475237034358187673008667649763377595308620772834942117990913738840041246912831121117659968882432745461236330013132910691024812185962193944977050467452816854485155785645710219479698958602845324775006910652521587978280920583979992734528015668851669312794268091330699467330078836640300208380981475395735557759770878159780500408436209590714943684214115835186888057872100302963467868931333268062783096925241566818563012043294853823876582520343829885882717517346774579241432224502698651913851261490694905949993589396287278185883229655104571729500674165417077833351457862792875648855559440577239878867586129280253112518001184985789458729777350487014507676227024807097792253454804408770447530738411217739579931890607336003949025076848934315337177462041191929291634891489576041472929718281292816545676659938991801961360961533580599675292045321431873229784585532068448957463590903880762556646777993888491170052023611458640791955028670373796657306955374475585325026495586716951751533219100878711869322272423245947675714562517094161175173279286935726649381264288067953898269693598183561659591307045194269331964977422237808215954237918481616833455062791995008711948002553763788843216871304196375021779526759036039693771493504643445615368691310094210016821755241529616365897224462603580710762869986143718310955211397181542669273384110602825349845970334276401980975225274313234443791386743651601324845470150419397705279109616526375179252321238804551436518626879429837636610629110944032153403052150408027526195051195489463704728371753115287163665202449431293834064724799873813351314661113262623447006721487139769479894604908162176032296720515436011295291194844499027339534036583625754237735685577856624381719377082933645056195301150920715767885624917453661970738019167144141276153574833578398435762387329696827668592847526830322170676388642314379517826081084075969225375899315542154136499574744870974646382193463384519287813499109831336351564395689523942076436789847768598238805686712944265868217195171756347874812038978402988977983231360852243293074671584903307179895761680151916763734669983958913442338632751648328707916497967930242431576627310294039518178745067396972738373809277886815070652472567841311460455311470288060167033172678403401576143480839889576577778302985812193469426425973200189596541256965232223266332558678882929164060002723910856013976404402865896423510723474700224493932357692280016711888061066891276287852053069064959013613626237303691877502439828546179551805151438304334252327003718756104520946783940846782949492295544386506886050079250477849430951119259594853234135369129797241228226085910825035359091321405084635705911804052558026996507079709359091819920319299396832819270847891516851882577229052717732215150594820892715233983844782815478614055385835119719552507531132428355226621298403773198714740773470719008534778969736215454296046096286652200370106862189484653333168971142950461987746329063434493450582886958657900552895975400118907557758978267946024627008806372748791617336751401145224650862370456826565679452815199009076862149967007741066226675746083796091323732044154298801236067902250463607454906453858629165214679085541544771707026837750302638267402756917694410383225519627096920622523954370731878933650632285639776908840833542693262877003739629400388817234198162777534081827267885938869640163557847939318431239784466985217447107882219590284886851125144278725311152396975717274681094618681657036607774960050820813234122002834528804523398271590514382024845512068252238332525597121634053979659570787824358737798905214906695402607368361992854124084570409376945813812911081395850309010177304050792866406125371102377285786385338415002751958059451618460402522490184783499728466213296256832236613281282342589317296749011002030768368310207347173881694654001225932126803330591322276944110133222949346732475566587434012949057923215137751678570607011156193732203848720632210473874045885546245747938812071639923463200139709652741013667949227231842099184012583642797199147211265773524939847558290461372124666986614974695464134484522815832899178628895606309997772392435848899785293677089327145805726686004724043199657407569525966044301563456602765571117299573176946789476593334589105940925428326681158374138799158862560705505595061331037582510519287808787362259608817334387455147270973168779670232655853626617397775804688675637253950416019201680103973924701373928475149192790362328513113274443118187216044508990210413333510263367664019611846052746927021640091936482806759930394876819352141805730717424222636630518721693370890590364919024741673783755351741369746175654080707038153156383709905420129639873804628314686633535387563612517215341736221571181533332874720855220205466026846745109426665460672879989054601125498855369772285836380708937853680742258239673609291224759798285061027999477156741081149770278116302715754884142754219922965125729672133882012190028562805738232563213489976902583590225996400562198733445405592360876105138695996641269226130376929269900851425698529336166114299381283947383126345267832931690495769264502441206719066008012643668657185660313321368191720256865010718003953716329338221510760389216348533112475023300208036817598881682085291811198758364917385360043021040439796684743005835776316709570329262642243124622291593265282956535684162455645045080227931824414907246802544728364856911265124167146006128979379321883286484311837110999273918964915654117172999949585994580673309755552385084982914173726616584537280369477892330658047847900301895396356323260456070527982726607040726427162271737468325487880800715040828838524132042568493354653453113862940451525042776805283162309347971472474366152072243212892086659552746343743318695039711562886237389569705327330943268491262219811857896866477208880853489971372524674195985522546484756928605857399201530868448826267977844905519770043417519808383076629613204941345354401985002662837411966463576649916260546212889049446305179333338086305580623393687605522066616457195241832379311167531114081730426931750200506666747991165671988179731299052532395305174005687837839878745923272496267425617265530153867032229214108169932570677374042424069910225620507959930201093179512979637705614536313330870561939625857025518950773427532221217061493106748192459984862785296882571524119283895953052706513116892822710549823096773172562312576967926574350341403418378900666200854142371162877033589386622739466209552212581022597870522487998128101478846150426572071118258178852905879077362319958778879963720056493999070760746207746380672762866395667518335486059317793722822261801428744488061055067898053423740105206039238267314114664025776174982173286656811641099574679828108081196099481923646409444022559405175497140224973462766344983839079790055834630462690415239167555366965631924938380786943320928737401104826187499072482065214595842177346789934810237924868298395387506341153607777209989744651421503196982305281926928393496584075261261798116419021590090345493441157700410838532129051424819394427606481217895909475500855350246824108292680746932769437101522455184176156602023717957465654285766102620634911891392065146839519453415691882576453861325278731341321934966091663443419335272338607579572452722172564977854688178676544252394533776451826694236595571774910676539874262860253447741733952266553305115022185858460621877976213858991440918457912813854826051192637328571964612880170757214156765149511112398675975139474386481599027906546763533510909724201308422940616085056145470804582548814084587705620679270611685835630411350225315060819891244231702835159046727544693528139910604876658919179718774378057251446499172713114556422762353551594663999915848406921766301200990277854147847651540095071625548827410407011365113839282212185392921499581639221713756013675642223307663710272039633554829389587130846226431194953375652463554956041061576293762591643180678922033906503242650487782865957499970851379050006442438691906582852930098984909571915578960877899449396216018517732109382644786711459085219240915345752645425823668733135606785473184391785622640842620432249762108828408580905618622824229129509999352858345964311255696531355099585714691131148191068712361076693712023279504007470446641949741687801567289413578483467744794035454789325791759598356712167424808099466644749993637115817631816683054648439258287183622755660888691991571678283433138951074969741433585596349591264978885929076692216227860298186415552572697394658019818367317088558999442209648611314598867106683958154223905115201194659776610010462815338163230099222833558702612241869866552982544437893817177851745041592169573498098817037954584062476054268752726188853066010516928968441378501531582349537966909446513035235842879945931809309363603346697371604167555847359092090908319791968141411079353937850243830602424354738215509771228060611047379345958490226103149046168064602939628915726240292268268088915986517735328682678454116314849048102142151334953941591943280173207432204678840215151555180372668555757880664829602438970706149510351832412102173528405848036796227321434582519004859461697746896011436966257424653426563312383832913224445617113768987098834962132279757048909383092192181140502228553887242229512197239543158594365811150927202433715844655824396595620337427330590141416366377455782408929387895376452029329758908003620041769545066091954527334948328521944114145432456417330956329998821486908522708177498300939866962488143769140805055410478064105823377761503921369584608705900398381586878350334864911953628219531832474697765389943397301762683286868797968207044333625005196854884322705140382026140998273036205176272663191475064294149546198998793320975138086902878198331841815621331580118768980226037946025382199379497689375482700254794382729522697117753968233053065118821347487847886219613388312091245712986252792762561028462143606417264910611308463502252348493446462635652723134824597232964918207309875814176923319750912488833701212449555748476966243211151251097609986213254641497638072147999001857199097910265810276316160594956648084059938662482963861634307037255404969263698977622295778553823963027110602201920804823990328121219733363790803970235074115251290789261796589246428727346090216068057931918194258659000874290672281271437035765203238448322052544342087624738438630716087011450627453245458595192485112987413376276754525480978222185192344387246261337743634886749907451614153348310458352042750047672366756111990703649754991972083425924400363655290961688134681352344712703208088622668043252260200976726771696447233557751992918223594523513173851857693585537450383040806629398454462264875980245752923813934213122706355412238415173139475484627033435672838894979540344614191272600274816957637402623666797761694523749498083341629804788360377490988722682172376115310861501636727629789405395607244048191128289286146618734907837166826069879492099585824238890869753773515229330513262980722189325222279143959815833128830554124794073313986396224661401519160521112314843551440678711375892767743332451088342269943371738043438953281151764759099967125139575383791856658010841796376851655282705493976874276101670183293688208169003242585384342561852575407329970251566872250242535424571190642667214096125439559330554841569074770064761676975452150513556640918295993791924815150280026230606239645628851642568259787846564189107401800002325684530336744876318877570158272506108295838519871860357891759775811365322754173531488117308954044682089088493338875398092463670707359593285296919288411365258189139264487582711190137642067293656126713049441732477014676581962979393988050239407159329799817444968190682047159157063074446380065235786553455245326802122738766436638619358611951411499510553172428102232446364232132846717638109040998857096725622561092211670584012358628513181157616390575183097496433078611839158602108784287052943896627993426017061268202169615433557974802124417151916468254096831690617283761561400207669417203125293359539579159917909141711677097463648225135206797861846985562269095291944852996559161679072808495453575231833435377258655845178318128161400312060531261951110760508430016773509975899538018987543751414524491093720491482303230804762065159399624209492043272415572289277211883578040311321100966021437865791557808327108166960882983292021273922807125210854131238468392883232936338647026693798927204579410411140634148060784509241150795675536888961833888148445740792436001891090921942298087278501299738506030880318722017762190478756559367591690449962270137108426788241628857240968914097744601728257169676903032765410675580132267122148858743330354660612130985246135330165344076206446579290622384934179570022055055501058161357988617924302661862625687424295154832301156572298481564161838013146879407012079935399038749863354840472223136568078468167791380987168962758858985220469323339745216411546259585236297015804371318635750859095476786115621612702088278315108859132761103144845360226148043378180209459159296665307329367669082771602210097797582305556810640558291633407161706364629808975943427638659077727802832853797078490072449847101714105982150414798718491572267102653752756042221655773773917515484102976532763357159661649395654548214127080782274797371964581610462888074366227376885241837074956231140575178492894841029450929758660646874183170552091479118677128187432028308202567349761132640083347553852989325179583692587479267453171284011832481645121649366878588855422426039746397152725511481055696469058110810274192565167764777824659653868906737282759621479910745250409280276576835789428821665164596086491738146729828039806667664451118226968966048532639972660357177663875765862372130509190854659735326744293716760980179999849183616372933070788369808930860195871519598990631222889082133749871812462878553963502585221868387902424898842714198395206059315753744013937022566191375019886545346649419422195334169312062918004244145336906626973224260120685464229571901563289784345799521901557639240225313852394106945293369568180736618393557355434200681434696225906861229981836377725704002031279621372578857184527450294899815811899084543655880719309622776260596332826000788892432359530379003917649550129918118746009211325685364933987386456550435932911979171877061105143062053435579461220849651175904523161557146629372880020435725061454108823362441657693240430855174582618645556859705648712862868474979735983071428614067470587684392290231217269142411238992106510511794759207260967459455221706551804561647840759814409354618178887782983035054963871815470328582820127324032169418558636746505169397959735239615764492623444992900143606759573088692912688477963046644213093114071461434112793354839936848167448510495699610979059743966035899125603754388311354834357124591215943119170428172698455537662503092361333459472210237216710505137034506166915521990637811432366782832802013493835800580129122136329405931827594039512399910851335336802584043485326315279495454189210796278442001575336680829717242835125022793961617189258145224223552015927728825769407068603325784920700747862463648436497196742823689075974918502461507979040965835427039375989009646949297977049378883069779502865765941965116898011118189055779559892096306908101830422127199861593511661042144021978355835990866946387192554632866821566658470132770418146503112004973552934050494918207031967497582897463272051082943072469716847170004224379124802033841323188553336300486166875446691999459632252637459145543237884562900870310271786608657222817751782230826127799914533992815914739129961414592468054424309955207770421652716345694465464542489771974476488710315536108861814078401860282906155849318657783571163385530432048468782693054261795772588988050661153327386837381605830177688212732005595834528821273114728316180166206944019560398186148574340026002696702588159178168089776417848559290516369379115382221516148557304628286156766285340538544618104572446478508542024056085623609601831210812293030310449743218757306889036196521557708418709729284157631090733585690894722102080554971214539753908502287942459040816508529278350420704758350125069912320460910593466613190245238073278400556093937328951802933258532184034263860729566260853130601026898094797632889401175478393111180103770560022422547707258347039317129238909707564724664079983094488502055961979573250690940257826922468916549725975716491082127868871097156992494299484806202717106844658993458440616179903661075604757512296736095439163422368162633616039713747433831227206643084735199604982656397769438020811905976147249689514512196373734586210804032513677664888630964270948525422493248666150006060443265335567925405174767394979641912601503735408707839023731420671411911404645351392708387532674676303344706689290239418182868719587983129254960678048966156190620438631471592541338360176606424220619466016652640963644792589110913269705792239009274525383964061873590680072957982717698970835042611580947768842644835728897892837248248141965654833672124177940536806265571343081193122360318935639281128702432082685103386198436315583672315692437982648908958166360121518685445803377016811750457951552121498057593892818362569832664657110579613130973396287662280805198517626215361864161986663802768562433649853857120622280342290470388606240171497663591926820253218042627161000374407390370611732447858167322571100112746437280688373194975495599943810875635118596513966546160805846755027624116033826515763481584500148209216244656335835155939620368541098661055155531329039785483076345585299353502245827054952218202911723371674112240335387635336405547332527687948371577366497830134214104083161827024396484831157385473539229226688370812889601968064546787094044562510457283889157071759371609745944588007149492235472289365618352110985162998126896481945133341456447512307608019438711295659634764458279724063777939751581767425898774821729849147205938016918125397681059953738912625179054618698323686408722476173390748098789827347051776477362836185990590918484636238774361728265450036249546033639098460492154808733433923514564309989750727549720290160812435555798137470775549188163527190635184873060561309956541298362445277851995276177455497188231975519989075445539307310482475387830905890105250176498055514766745661257103240660794947336532384459818019932480944466064156346189086988767375688195309596454113120375848335466883636674077581939009476135028149248461720583697747172099135143161631275092577834368314656628529106532492313170605260721341889648293333240101396534947482903393554139044295988468673137549239912267293872432646228876431696156718149694252327419706777882727214842329330346470830253300881064375448612324234285084369289020317951324885872443952755624997522084738673175684718014413037608317718862870795734935302352402777512539981356595082370276240438647132515871400691571826494009345215091555269658063270290629984222851199032897580935628991206590956067944249881659807758451845244877565737850891055231425062026200184369769869877887851622205521943103117777707792558453940935782497705920772265245827788999921857183194622695311261214774617818575233451257642211625826259470052023402194331245852625617772650732608150217292344160080835234128628012114733753617673469594051290328089652763731342617331191398731555198420761864496385978984276261763481380244689940875094106297692201227364609780011636512673917068577904288812083836822895438187635625286575345880308111890516114695004374424479569487360540593496671571106966800388849526656056031984433103905287426764309910232725738832490884423093546419943993081825010212240316994154297156452406569952765062235601029838894823245580980733207312457430573028372175592853255098114246428941985488726210910245856377811417911104856437053344008034646624685028789228548851329605718186716874400445289798150820102380996557189515284654719864392250519690174797992080810508981652338809981886554437606341007284889217642111546709279122861096332573137608353496013469022778493840468742212048570497329431526700898304776401696826188645193133371090675457868723964519053791025124609229592106260411298431519799682263650319004510892536317199795507968724979341294994705774021120773259522465506577546854038576268887156554145947975715669057580169303622900422923105167706074421626048121994917298640458474768590442314551225069391334447267947414562006313296151928494010336611023067940685299924937385217748390802475547069983963151222522049066744604009076071883622897001110537964472361580758435340884469462929343612096017361579913328021271482475644240578883744920593801566974276222069887527010279077309286129705954466966725481941071640526517110067364577072353795666818797923592534984437854639169956281996044645149430540781019051167021143464469170589744536128940098097679176594590024442364866277138058794321227964154682488168605232157035628020784301663190621907247017105111208650260836631332611267645349712580510274815939235582676301411094884146580059763438508368516640531358910335429334374711275420466646294883812982858434882997882369374316324649722622817882356186055952232712614736411449876582256499700441526879893545502386777721401174594019965602538392901892681408483410365170258337098904167400394427959968606704146550403693341420510220517556802954743994355883457682775706479834865713370886003500278992299548462223219998619377984624417977432201215633205236972375510520166703984971966090834280061421639664030915474395622156786309989025570937162356498110403631987773393200846411894429497901889661660351404184397286138548781572676062214736205026402438508141019598469948656751314363229330764422882557907085520737105297550356651033158182151717740436092050214225133616155138545073301043354830693468864490303960043761990779913624730205481723895891262403258395445777436685028638741050837454701883460659403288422879681911823905653209605862680536797215287511541498051983724586991364956456867866929438745093830169609238972789931811886895864609578051184056992955173463480116765324740241318535535203234993648493238175869415944052973949048170772626454135116590478922888918588714017838788074955247862001874162505453152697102231675395571978202579255148370347132421794466162921512753843557780777531203176245827306154774911674288185123907029027829686467810920728132704092289423587616170440827871875516419602140678906785778267806448388430016180736558372750831971885748813612888206384892041887961670093347651082294241358281148524963701870666579507066544804054822364919973112254745265121693239690975698787866116981517436192925149790628908378708463869968288880347262974876056759700635039664542964457487230026671453899376245108361432355228081510722687408278081406538826955420398768019892430792359630453729473899809796938921619783119056830430201519724353500299133134030184293938887932185415938937423319902655945243710506869397679879573975930937508101069158633845951252683870890927688392672302835399548815645243775623128539496257758671807754731118707248170379129010987782459153257137978450940202625509594866246256493793746957201314941729259800306252281813202551178422104912637818256648152026645287797446546075735412703573279775140812389763391461690684877296282803084172046528381028221401292454417850493100198393224463367170791512331500954570267184435065843716446394861437843214855227162012843254011961329096874380767337117987235743221327086048333094757266392136773899191753605861710997336905137498378986828464568869899918521121953755442466892496298371663338286525413548460442273340440465286487501095661046085208349795613481464703985440771008203356736074218826718815937503640577569253031474497535867746321186207780272408516487307117693229826216226701945382238371837068953596732925007357481121490696517600883576858506354745215011479955180798006369144981671371163585719403651564448893583698991355036251288286622886983535029008502889783151709275451724981195406746037680798534466514144466364505016291944278828741475097602277903606342855251096949536040168258664437052527583045988643386827940570765704047863176101166958648639847934517887751436329327229254226429466314965038274359805029632873200013533212366107679203724559888885934083726487597753549436228004192421900368177986679050382722730878613140579588552252527855391897246276707334157784411556744311824224709418247768648940029248342144639230698913140267576740675276603865234156440192401888144245973530516742743214551794332048355711652212671228396238653504581851331753266499228742229543446700891754874981354030424390408293640590895413933260112656566026037651456068323198874812811903104567398052263367079100608655160568240221352453362697988604177397800235027646496903627129031746273175007511871674674444727816988139090055128668804039497387404790512762280447596910446636736131509956025087203368785319264080746950852436641199019524639672537945331898300895534198325881411462274128496842035653209288279218468215823953792466447090890758210717783069734640940006805526388011642435920568646516832686518000552102571400134375847561582812120602954043389727055464389622279676970983839456772964883763180259863557302716471669884700759432713065321075347888839851541704086155211476944080776213333313989148247356223132470190033498762515835927931302174801317074243860901021581449129782261305734577196466042555837179580643806990432392086871136929800859787964042624806724740911682227374820845215907067658978721565821008535266474519360131435151487104855346378033846239409122289239208821372047227413639363606116131603248745250515680994917147428666605918733537578504025840351055260718826303164642075325579316037477929008110795529368280306446634106837271068612683268442749737409465218202517014113920872017278266940555443378411471474410913005499750402902288301332028492502137878093871332920204036967777776879599042007582485720576605890554255589629372105253317557817113630891651589200223805428766892261968794191669535693178621719461064304156208642665578838719938918123104164290732292234382695253298505671293407858337869756370185135957638549885167324448191735130404195345611232446211757795841464410997374000265719538474052537382356764380875306823255919373268977546519464290261365676821583991993740741372296698114013763926503855934887289578888398089692427145860018256203277863433794925292236276199054888404328427268364643139042485411489157436869444907284975043642700941071677233012409680081921313192406278445550287076645046864451930968997221149669804093425065463598046125410136096970700269310089934820366511140136451756135802465978585642977212728828256338759982152820059254776699266736283129810193864432432439915213158968416143955317673080211913873470225394948422296868878875312251732019151725235922701394242191391606158660380039121165914293013582028558085305359978285454574931933849937586945133805940131935058926904379868157429396626409539331188010226532196244337539362096116274408866461105629476854957517036347240886727445915160077057064975130687651226732878118837881220306903535354733709901789724868258796358936714536928158534134751834211944953897378329876092082904654187298210337207840717426659533086388464035291245345175870089678998472052012005823199796811689368861456685886782455323922933446650821140428818592990600135023897374635250876171537403347689155196216581912218862627882989974112090568816453292456237234813774858959688134768216780673699956437112951931351339620914010625465710157505305111320738557457839504855169910003544272747664287281548639027715810398033204098691099530035628699797767093626526505697490143079638248011775803641008858751185983224889239850629665576521970248479927800562815726637209405843239138940963616820019785309508040172935093153901482144790133551081259420891544774547174393243710572962223437761942827983783476818736620751548911016957290544834136677293408206859099294366285666922416508140393176236192003240177607021132428350304656731059499381634421071100658371964998378485585856039532981531212615133269054533044799249183919842790473056694969228646898322687592223194070512403584786304869023394439857159088259387675673854043169163406493158285570393573322084300876603162328139907607198690202250098671983215642780364313734340101604849909107877747213846871141239053586447127305859172498928799322287174881408659513724715525787936128669962710016474478434279558682435473014164754707287969620546253407962416758934461973606468219528516437654447516347944104071316570520745205805844785194033293229788101752291985622529757201940522593899088452916230726090541303081174528061445164232411673603180953748891392447466857972007635174059325583322935059103678058191473932660269206862258015265691418241053877442260292641156490369631069281212004857099883963921436933932221802638261016007339761611401525441734695752678616454844355086493568073593652123582231274069642080834638060582606366100734284050217221086212697202206842692936634590189819358666121401797844114628882109277610553456225304690766294527094403886377271311553930146900957386874043628609633412506241887770379114600524025440495443627062572261241681778065302289943662217863327045834334641438797050275780989357737478537712686690816602175523553198031276888612080221346113893315639476883477003879741748432661741328358713233357025949614130871186980727866185237605944499585929724877326596625825080907753851988847128045078781407591228305963896385297260520275358094121758014979058196415855221558285010170829544588316900995645986785000511045262648787517231622655414598558397279654386325326471556384908454835429876902807431495020348125431828623682719802780014439759573498308221777589368259766924906278563486423414121997143016373443384706343912421106427864463049281775290679216589855796678017887067244430938449226415162475699549342362947978167843480372463737656650480120364408847138198897512496706880849856139239631144482222680868673105631661887375542879539548187909599116982427716521902504450698684329130335683241313383243181916577930315303029436323212733366627196577987790359690838810833409703697039804835883951807199075239961961600875003952651260594452332309976403561178093112089970917098517055077888738206644588404339500251877217298920182023937445416344106636658088323784491631327880071606449929965379392531598948013055263712713317150131633844660846785328598030207587159771262324490399181692874424163726902063892768688548790391472866281942880876882600260422316686307171091151152493277177776303890503351431016550186599908219667601898811795366787505848277093152327980580000317082649252443935153594616932077606342808017422274489323250216693208965832654271303967088536073986337038995430496010037592784122701379242449382359880808119985342782719001442747490324318045879824769234417624832933884893842628814254832571652968819707609817646910834529023898422053814768612974354003702794201198924412461605871555532904561565474465115838115781169854344246195325593797203187215561514876676384370718121240571086530378302729959892883505088638667890521471570957447203985670878174082810035992695856672220047576373677607561501243064804746052301002960603866217024140186116279864064773096477187211115265989421185245459111031470598245193184193399192354304920025439313447311164793325987700137786209958824791814576613509557470248679159959520303105388302031375367026677266807546531661862401476216076164430112050887958767343611515999049190021223179934368709492723465576652497037962385003277842784277923916068711561071463046819997024701233376207782222270872206710373474989391516673694704361597100600099640785706392497375039620410545629659622544938488625216637646865808707524987469480899024535994588428149339018689300094893670717629842233529850725113587946448070515176920585892610435361124535479168162200008995197127026097015457427586031553848178146119324939634446009179703061420100269879448894241282888269917686869900312420957235606994896810880520375001005557797510795989946648176697446724066699574148398700200824962102817406314857628713634002722107024166232153928404966389358915040344714927181413994055969117572305637954009499900977828928118563207872673384086852657512920726519599517873205457185885590876736020285802645151532111043849265214962638019835631424237097219572655787284246774068143387855794704183079366143219847739738744859314219190814720342649394246091728291417150945210580510753794843607794128423531301596986014690000410349332008734835111830231927447339565944689354637934783733981776260478292283045842148443517777085188941681318660551218732288286084287646888878539112780340356997130265100642639958376691815746670272280812833667314342847067794442141641251189834216526633775747180285672559712440979160014088133001445120397086657859800866953388830178672111260570375233287290497464903003471096313042186320856424457910649527293269442527131597251307755558095742546745776752866979700833595398546324408196104815333803481369858206443592596709457600419849123264990023878024386445511537414472053992093532105297983969876935765638606549191456229704956853602405041620595869448472489159179759358016475314667167703920735560893392474608456093331419016912605487319483171975746168952037755767333870493974090136893068923898363173833070073999184596791900761952551665661983470635932075575583881534559511712267378785288705965520491688050802466977787801180118076098151922121173332434429347287489973480487028156202121411867238942856191851107090161257739967116847149946032092457137462659820617635137333980854722479959082707003648314011298967661959647867520215248461335526460661553851477031463989567231857014739694972595990070789409404585091804547472940359816773543317073545665727749422968840173036958180484567274602434951394838328472924764041069604297507076228674480197473237269715615985927285575944720370697235844030445225102364962921361025182854609646332691278010629890588727068390431885338242901938824004797275725848226444173074889480233093371418146609914664659643114057347424441247063412734627104162350899974183415717065361307366430966048602980602039099356121660977675573070783695761334025541817571689162523613129897782747845407303422151297712024891655353483944429635844394798344441086849876300996034409728278174508020072323510722655294402098227754028714178395842030682419485765348317823563668748399736095949892831535104225224370406000843954224449102981945912688042356045275709275312270396186618903813537126786669483379825620563108781150618151428575434040646956342476342980812967459878783039508990970007588995547628458368481321386208987730365510553774261984195679202129104000830722927919819345921222992625454013876298251775296116509818762168054568747698126822547219733906743924251124508090108993156352832565760486755929279527060345544786274979189636872323129207605609637501583222984753500184264468153866107772626695770108218250190084087744357252432333744089544129894066128953362388370876316628406724812990263758953443941621096989076137187043507222309156285871795896418828280825219016628211169411203743110654893145816197855999231127273956959172887000504866460641600713115338546039175595628311925535472446351256830012147453958597408226390845251106928911341274381170779257995406538417360111042330680457617067755007815294914824078469498365511229866671081177018692686848062927901357453683013838227672220265929058152482906026305886566643632335966755661374262085747604749486989927910904868630708423211471396261919407490438277196472218008271268246389584554079686471749252541732270897702875360055913156376068477354241122581670414696841207446518490251091500069631804665023076554458777201512330623516671391592218963734537405457921656906568985182254138944901873122441724718125791881685458576261233343856480019864343004693279524948798070084828856936456737493206183993321708216528696388928536511984959655815369319148015097908768130735691456781323441545779012616920083397933585613412537264000982157249638659266126059161083903246997197058635876376425318702872923213502899188869569577460003720355227186132903063117677597235817265982743274788466260927128648297004565358365400472152138770698851619916886360941034178498181194699975917044239060654822607283869138554037274415828863480134234014437838571625297403605611759947912411022547000254118043558248055285888059260276362637874749218696425665625982533415710419608531286734779791372904571343722806742361847422795172176125375999646326613463891673443076693199538500566208120178432187644521195868058135662461220136078415042969659913905171698101243887962483418767855205763912944605494820287108640669349182258176179403699160612472348441364777249592400987638626196524055707701364576944112189322410921114911039212953019034788411047749756583114876160357838266336814122210478629052680226990565972806688515233089409875844605799048619123773614361759746017929176695752902572350484966456694576449095772621785520707856267303996912436249370832827498293156073175712271000986303166042925003814973726514587309825611263943110474146440704334131115655772139175926344243634321815980351995939780801682988468506631164968076953071537808797933839266668686321915517309179429418423985753306380089874869990810291628861608409656614006649102869453077727562020580385286692963326834789603198331591136415983320569358933544257860380950313250667757845924157215388033413397613598299391658062267288891309540093456129486931459791053117379956126174198385058030075198897692721212759435146558021101152940687734634199613645186643846692127349751772684690894385682830807040796742900079855145371425202591766660510111453116089962863520979857251056571671405863722345520870517239229320183426131377494505769923420116814295444910565515703952773798990553019708317558414459454024138979216954077636915026672065321884235943944410554529442776236161893079874801164092369894107183037301584371328228891777843562879881684347746785701280427763791786736888186360690613956348628067300309055287244221552676374935633162615158282033051271673005792531982484543957703767472628788510243350519650905831138676317713084551060645764711209718607286942142559000801704619262243549249787791812424255317701384886178577893428886947418493721756843179409876161480890133890591501294457989911414193857438721420581816080903510452990007506296138645289247421826952826329138582029219043837348447795152160551343421947623304764855759937945841454797276587828536260604541049015575442513104294309399547756135371898646059672968502568118158112619090737210785347241044926749523161467110754679746537519893879544862889011743188556143123175713272628019475301280981373726414214929186959735992629907979836141127944976037698996789984797317397665360554502667168656924929115764572837063055405339327887266436021949937507505703555932689845489292894180305232740488947192224871722277642585848541473433056447141831922253622557493465847987512764267386761712166009441789686257025552328969610557857159924439117562479325898387716298652859787375420831229601178225748920315391640022401262221769733850522314518691975908731241558965195737878602565906253206263675838275380780523897183795436653884198523957714483415329970197683604701952292602332854326148756992122611962515919466384010703153116459688376345933516586869384994614196369275763950648144179722922709112869533032149138229688828222401737142925879911514643696876001586595392063699228735247359420900189097008349383446112969766135308411218066656684717665933442611198819338376530362205269486221866714759857019853727944096063749475258087898437310422152472818705239822418671782481880978490478963509728827415594874592687895258451947039796243440534353099750869491081376355697686511783859129510646138662930408611801994211084327851977229221199023490725801758180839018239846911142500677089953604859622802352024142080806391523036802093270181495401762486180665349092891220157551143207100865711149610972521708834260466826238884082769473583157957900128601808102161801404447598700664377152734574551157388241373143917510681643143321796648799000538909470393092302103262060938619991573230127416673768011640265318873048118379030321137216726307170612889914176467891821513840743987401732937261366529525826633098005877248104098712198484262749075117924246956103696491118686525554075431014982368936956584393991710993460406271411617110761364957693602486134453444884969726719852356816074542487992392612639757689065576797560734272384490075294538516703134803510196861736421905021028243567189645794003186546407433472579045279084657453882145485241066364771355681781569046604339213979032310215068037285289352444369000778826982765963171267073930005842066840594852134538635912120635893078323291282188408822881254469306427725289259858924051407029936916883506589180940218614533566830995290155317069775972464780025392766322886598894435580448755111118532685998586485050619934154047366328555771356611725934362803434435603320309792326272394911585206366943404906646944825288847619068338545353106621106581910459007969223141072140147938510093199231236205561082165778038104534459476159677407320879803585631800848508881736073921338128710397050353037022152699520028716929241176571055947159887079202074910313141888196197536876234569113279225634967840723242721501376912654474108928434277801272195101160890322054590945824410885319696088205785013142549263589452606703508706468268000766456438076327087569836686242072299254643081738490606859121777641942709046579895197339031902831498605354024730072500197213396116518568295892458155556164080780480656796311323637748813268009321908822988880230187438264510223391128898755713013373220011898143599113112879728587395887238029238835371369268214436401446084716100404639682677753384646427883552160703554245254351568299254201570247524581961883767149936395855143649983065352852167077142204112101660008575468702914207849181460282579463968519886370199527121812814063044259947500929311986784415121360186031192074344682134845555688175803604705779510103001727766583847083330128928899164457720683713327778445527048772639114737507229737923830345759213141418595786525150673470596743856813370370563766389021704927809208167695265911970055908056953206426048219802246358446260192813480858717634704908311895593316197315413197252971447037237927891827666132644315813659728052507273573413716254951682566725156678810080787682215633854795711478063047377414804387669563494974286224422375399518156702446589222917342943251333909627053078425239617670822053963710501588578100935732971043336422477942735006538963702895259685313409471062793719400730232541356944968118745933193736022681475371997181894825816152569994274900853787685939295861413454258350075078837170597173163353092449532440589524148058435957345484357132821788209587119840548228856240092217730972619401954889361659389596224366507588647987412377818050370350477999552461510556830448132172927716169211899742409003962658850273732878626592325640063979874677023168132872751658571954014418240460517173374186657355689877667228078773189707076663985082249815894122159025238448605006487869475605105505324553249046301912821299745266901300361163877656943326718610071840647162816071638390799279178313563189548055762145227551837220555555273860043352533636582960830160703883252677832805236677727411208259189935722194722817460557624064577540816445154734298034981329798474710294000727098251310404602662804099652592253201805725926193255733792092384922816364255017971685027281903712995206881052795623445182395075396233392985240117819662588450304356970531905555068086315117322906637429643975809511390616344291604641751160888698845066956722431370470649646212669426704550169313410185461010598325384063741550305717322185795573306208183385082351569347829367779389900786592757031953796633438477589129299671140158756829411142179547690836101181812606126498889732011281121302396349203158379203965609255019370045536729224503602402712089856379612849293483397478705421740998958980581776846681060046231143025867196782626784588993958526888121138230326810585344195170849591221765675674301483021839031743154242267092995175461252662849185032197637222878458977383458965744207908936600308578347608071382477974296784618326349198966755246604201159903936392272061418549683818004666298667892907310598789858354546899728634837237727386793718067164269485236410033426577207886163001364943176664005343984952175750528455629990977486032021979725694745065188605885318877633946790025919498927901931866291532148478207520870645785816214207057467625077435252727715731821853023407604018558398639184207867104055852761962431586584001279238124879337694444130127317609813738518887064551863985070362119086921039672764959305504801715554478938273643164324223860656197296258226428279121719781746996588328257484267446823714491497824123001137264114499811263349270533307298312577089426760652841429877304382568008563739262797172849817719881065727869292351700538974346528394384019419784637940905659897572564113954789327876339638948960934302865184166550917264363303471075775010095693784458805511389371632258081348726450381527491329593689640602465658924980733833124023528150224381619072965851552403767143698633683843658960306858464961627024750570002615904157213596159474651300008483949131855399698195033801563885549354536654977574605028942543514203016486121489964482304799317511828920911266571197701097053504240926979308629062540930536362978575803515285866905750996566281924026616376741074818187908602163373472037898231314381126472377736037203716936708829761827994653153050746755603150499773192819739093298053804168211689212284241205631840478738367779567684833287737171605225770512345409537429444207335476670530795926882025843506865272233805537548802776409139152444116468388902359041153341814561368035726028886248424222158198487079542669126195083960986343150575694042020458131105267867874473178123715873022484630260905718822343039002645144226496380939217826723074629808655712321745650752142008930199138982900707015511335485612272498706206404784664400759691761737577374063579709169778543465950972317205948624383945245712163916082659602161966770969522063876416445369813713378992952122773127579910935681979340308790578800971963008860817307108241816792613347085239013519632681242825848865003867691252631577961527662818510803821520318750053084712153175746162582460247101726521419539332459799202388037908833587429987926635532552880929358358120855341567029670044302478685814082100921790599991356095662770717889303470885617872756459349605699628469890295269543150513017952204701300032550918610497017164500639197717320165544245585006728159375599026672005062744482874738774023023925568397980794254148225061747382798466274631770048225238772205369757353373946648298585445192133296434489629165515701973536579703034605479374315801175784383990940963634334646758137624340052949452198141868022250770447168164256104664313934499868186558863835079851677043673725592498513055452204511932324020635648330861964886760473048666566501544842982889292663759988795529985848780741545346548308671425860887824953765177870931564100935995043296412731489514416963439186555394836232586570638484462896665617963698546178443279973689772189713739777833039142883807170513005813709980283842375939584222095230633110901599797274788801315249081767138503921802617614044611498658538962195069773387612531410497378392752634867002308089535789351369810478750705410145779971561457280532235571431963961553244128927415385598560400411322086986798510088182414038736223339413158645947972129848576545819761003858811205720575162911065339007330454425264607715889749326785861505090944822390726620194098402933914066699999093174775015586790149465915922103044644726952069215199276350090022268113952276735792247761472745509382282590215001523150952607331795040291017924757723016709099170908165986314117486973267973603199488510234457150114544214516882182783791155834692865155824852222886619565487119618386617063624883376765244633238842810648574423835375435615446913392934695280301120087493136834970207050041045975084135897117695857251706564227236036728319338728453518119284915687212316005312895959366296800040382284582183067709880945502739557598810867222186868806053931577297312527516047648814825238338118314006379281951281316103734227985083940903791640531557524235237978409658643137909625947565198298488690468748806918502629633609615738166006622645240517884551539603923928925993448424171929266579318559727124737572053858995474075014845414912576222460910013111201274705229487805241349979191817458901256139524269940180852479923097300899746137580764769226307250127474467776447492716416579194105597013844121561911032628774076575232060792110120586089157942943536570955853065872725824508201158344196956689963613149276243169369681543365700076392370450953659159400360585255310931631236808073921513547937011122825904797535693367389803571820458491591552511976169306448617891076617853543147908782728826417758361797095793680705010755629652526543850932441054935291870578755704040867007986804409103768559965513169634900649422679918555627597475073838710349012166624062708165042377434417751810208179491610914863515126553316406345642640187028889981320125172383491339635020548458862374972465467411606543712293637768663905886385744614218917250990556235124960681183273480446151180419426077253957559645969321020430254097216064119947211996337732584287663841058118127204673639235116687743235468942724561419083286971264225439768055768537061890251224200638511236368370139285339100202934280520053177851150023753413113525607299256830732567636355469740974039674254486757546832389479284482073655032342252164196061868242071069028515112022477915060168546717033815820696362652109573863258395396354206888377245995292166767509756319979511396486989360508126580831571910044515268936684112692293349635016282497765682221303816850424871833479683277573411499318227235782300157650382803179068608428455570892560239713324971315840380811369294153205001558401725981852824975269686705148180966188903537643349270676080582822909770227813033905713874230096339667609760487786219275172352787103627341802762682269280338141313370036238365427316311538170420933995224858992874166522374214866312315554209246683759793321473608639679210959328340173846182403358571101209084928166969912304712811135693008034172559103864113107798415903841421632253752686507191561146216382233697788265110221317936257949359407669909742784775110541550701325241589250297887741050596179010853490011345226825577346509592977202860175073343049440882671616941364024555056362547631090454774538915570489762495118852860476154530176197512265176841897780785157481093414506026694469844618858486346783307841125233768568611058102334544469245148846853550393066029083535421553491684011905069973657746745202748202099718191626528438716557375113742043907879799232054697999695758195391909894673746965767363470888026319655011435430735632217979700505164687303090561438819326667783725097346761706267960296593285936362624112058409035653966664129369824888429029930464426456759865171747282429627176373325373571233365393467631566009094482434478682342344221680811973793119905019969232211715769151788894599860441497010827959793235723429600756355628601388578942254806791454204377090656202742429544079936884857117645738564146136480134235472620125984938298168338679129521949472192929237120679204934578476125691961341668837451009474801515836247967945954641707914156780932223391891899827061373660411528774858544328922504512742549958212871625497250191435767118562981324719375203813681382898396800897139403817857862305632340799243992148916169833762430245892557586046464158870501979659943888428710634053500933458104040392865309723344956895335651461950787135342605446747974767845776680821002247531788920344894746215493013055509546845004156067528231249788923982045452767281339499087705164485941063286226061566156811116043332899693330778327510032501982068938926805205575453172498104270444483884790369805578142949284417961977638073471649971179186234178889158320487904620068641051064799156545387809414241637074510305224915311865401593267989217590564724315819867293435578752344663539619149621047310338769293337506562625170634351525563830807922037982632899292568467833308912268906134221109344601416468591573304272156343388997500515905129185327880742268167958351782518375539033396504540964084615280782402616005207669916173378525163198068593712133055450039881147759153916836295696202004566427195596254182852437001649714661263507807398916177016004839816444018500022782472163103301685430777792104906049894286329678158703635806196740254800853691308145516446745821391744244327608362302076548296038259102120125450890277692530210630034055702341642843041770871001240187020472406463206265646513892498308390641456673470910910530938449953091302045285550351866894153257930235054156154380469549986912264186383296535797928564262715975345863550217988052117000658355893853236507610616121585298431624122904527339462721887973481666212798063680828348702123516631365543865356901685481367426558745009855439307758352189011227452527989293306128536355442260661382650996808257678997327731578431868948815275096183568166676952693342693597609202343498572610180105793812461189371447007655040066402671815647002548774027960572064997929071837137466814494135232870554715385046777522355529695217930163103350293029984383789455509190583933558074775635615396364711752182450616021548620466267013187487670917331547713621416123104439838861431405938882987700655304715676054316511388125648823545917420575648791223043211265508535055028221485515023465583408885270134644224597017853431011934482852129091927974200433699730329456767023055873225913281976644059794894592865786838310339971208663688403893276095299044061999329941362140457776561190078224312303309233231499579879707995627917757803839110173649458528810498785915231490715382955714005037934245429814223825931688776087212694888445330648214371320563776119676501125978503048168730300758384280689156516129446210535615762392346101839554551031745575992451682954396000661714829743917998985758249017976748359835586702651356348684982971135821035270553120298776966420239396991549092494941514476786959889301430564036790218483513169097011323032355814327214731569273099112774234004489254279286805186782464979867441846420097007085815793996498744430934818460711241612724255432070263393830063049825658255197066040474759620536646580365500835552550320503837598805499358438533163329311805139720679723278387874241554934803196989597593051749356151379346170915614069966683427679145996788490374568649318040486978358117137606782150852507687882172679272986651042490585771306858003803040474850634180672122174989160231224340097413659933432738216988691429342398677366139806502680954080868458999779909613695178229273974981934435258254786645139432187189977861190656974303130842149464601765614421766535734283766530338176551630541054592061365954922764548416978409538430160672217481033726388857545918077015001414368905600912777150516245050559184558748992574443773481986202196544999218168729908674868760303783140059714065979838288532192982930305889497586845182664763041726094117476339423691479934405446591707848259958508379204355335111665438004766324222955997822696800403658430367590220744069345307560604985627359460332760986260815152514060999196606855240590124041464046498902072756835801440029170933919593560504655666230468145404813883884781149432605961091401305056244219438561791179064058754370910786194905397083882098128647196315548359986147344747628230780563747198491318908538373441317373529102737333304330669670138814966130962748586144815008906139522767380189917250323766715507125980599160822695913695972100491875727501228391308532774130219654415854578988181588258215010269817661172411501693989557571117197268862552055438319314685799588776448274805686463592771300581400710694834476193282880756446573295477424389317817921147294974658495434372079828848370952195843521512869096996423818686613559304716907987870867847828941880447138733125628243062791382299445887067261451289727190477176052896049262524268776068616797333430059515179084932733418115407822818317519640663448807884552374594687075509581791863511657607445177055852961808116044388702533463399225270601777915030738432881809958872244523749109461921701447798337280330429347828922050719348677627093369106078060927961255422704250104557254515126931891729468843088540985101795611075157777299039890062218985317470616133932509487961454569987771381108428707792500587337345034176052491139721145121959389289960981789747711471341868541532699315736185463495161203705503724476237952350776311640046534857184205235536280381971064324735694714261811744105872165082867368304434308145282360576968033200363695161211194504892180985799513156876285334519187647551424288218489656211562398977861329011632534864820487700609864255692815750422058394893357550639073272765174086358793486808461059481982794871266269270039783209112109350745389083402683568311860433045759226124200913080732450711861214353647044007658125244187275679748120473964500644982017370371519090501502386609605166938400887718576636968451305702152813504184702811500594039965251922790557120711941610392280711061081327642358480704033257885074759755666563502418802646775639469749419466289662918446964160866748821332654986979589095082370277448682377018519532381900665416713216714034190964012559815803093304505887849266830479459639018432201916130498273007587115445604696501582167737822179926448357066010730563872501984248092330548716999168678133425696483405598883660301030618063169237436733512096193124714742021409259256675722642575370409032102641986372310687996590829678250890105087628660422889972019795453521021486305528512096373441949901707922296691649967521602463530027462905377414896062731467475491410087820709333764466126509798674843209690109656709672986055117575313014986791568118241352028413690411859507396433312204472445925901651783872836843938686090743349442376828714757580754527855683697284923724687903608380593885436961488260665751828811331130389588164012045939361055421318391442987943942651650072207256418571836422029828202530858599030644816159491830021920807523258550865472821373933804702669264154430001668671763193905206392943990886953706036750967928911886287524828794825280198272926281736022458902768510251089216303185317460309886894582753454104350016700840980489746919648461297218807286705338860555655876131143424603967022105674658030141355465356651725538597964025070971966922282716127490902835425129126872958466481187654582272078124859686345280270213599444680866920097472082152331768584587820746612030150476216455746243026599137919899263583864011705598954879645061558791796296136360825646215227997588840413345004945321701499262449310426780029421335157622234710727790258391775734724321102596659668460395468985844717675479315813560784816733523849465601466767770270683448848910482335637938141302893498407141256372631307304886309156854777757509303352133675803513425017179227537081478508804031610033138539276369898989629736517204379652879452142347689867563619872279716812049915738088079466334974084230187882976577359229726286643612801852200351835308182519660250134703457841055432904673911878544155666317666808286630917348920304677924082171573887886771102082720337225114915243097496130545520830061628031813464521608849667734861189193789483342563424957605429872516765936332304557947863422668117061562728913527941172554984959280477178060785684532267335400851562799104455907127592847629063486436625118539413486042468047519388633661083880704179779539082123254217656544531346012936591946042596858041256471273125139031526477351037340557111080147390679171441801621169693591422692350432829471268600869065278926755684534485348829696091703634523138795070862596391744599958636339608811922348752808316362638127559936459022416326839314770909435039888814518808138342357293167105104626590431145561618872998201449039849701362073377713874711774567305086167857718542211118736569766660722270922026575011868715322279703272519921291657776396877575824832054053094369731571178562492239221894285334175415664949634037895102082074324077521983307524015264935607433708878975003956443714694610778179142218791717687771160471158550596825192658801206841245091095644957160373072347051626046020207460579225774310162847641937770051401587766737794342377850353688126608645076436629764808234284472546187037214359956869280316967333032881432340799927163216829247296986207929343541793314302421435392439955841819696994628377062688559610902386184083815830958650235898950286913672839491762193330263189053123303644067344834580667977186570874931410221114820113503661775213016339797940763364820421023845045994053928888906590285560998796274850316792585657135935289836031075043569571259837913817126931538765931445133191510000107643201578315081280953779752981477497389642214017353875104308946410026366415446055406019240840778975883996489832745617813285814522305643986030436168620332210677026494673540407437948538709463101535617844949737849490185177946771984712584454405085327907241643667818518360254315773156775635684065577922710516712471922212628126957402391343540981198726623960400815656665054293773936298141442574595605867302518748263024056895297735417098300032899006113189516096767864803906264264579310287674024827355774984656501765799434227993908962626079434346868689425407816165144499598493889446970736959113977094173163675105917342788410817802245857297626676978411048497490304697257185577466899739462064939586981748514570153210335779235101944954979944906083591515166245359845733013225190708625738562600855191802080258515664628961510170145094138418805109402203803280875485058327259782514481456476941083892927855809408611913209004230803626125444629287402536289627584671407141402227368466812176146016552684764075281376214555385880147778313029489170576905844939087227376148955135185027213166506148360906335436530691102196076716412002752782835179319727709635674332266780368556976417058190562809483754169926034400006446522347071854939342452822544089335495585577689272012648587958710122671022993202772544997889611431044905872461910216962802524405004186819234219850880241846231379940721661344864418704945901800849324702627113095124831063081288532652236025423958995907015024185793414304604518071075059947487671166547021623469218050899051865204972985978308887652048361250982119427022297101252416912840129794052242808217973598798303641421603591195090729806577130463926804188117708880144182607315674795604222343224559742248141985555220578961012401434708786026283933653656582154399321789003800128416891015927013380553155235550638156887460219912755132511543529433991074834792739276847553675886157976995763212329671884542411967497697207954562380159307099261105248066132322295679099477587096290070027988851769213405937145681836864203066233738160695175873075001801883815996142577476850126923823630389766473616847830982941075608718357882934238895224760755665056709821180216582827401189553534064952574458920858395066837399954576745756626004830032508873296258785188539924422891250650566414312549913755153478750407108725505501929993083716993096013258551832896722677168801630302734629746561824885401335763970066188252790088669581881611319890521897848592714774319172087862149227557005556448058048871485529948068425594769546117449192541503975439507111601922864220237445905095122927901959973063213115838574201620764780269833564029687569691044480032997803958571909641873339030515483352416918548053775531852163842282967035031564217202454251955982816666629937243259820575043790300835665456043647098418823787193020831093219811035432747603919842581633132046977532812899037787294507250928343935434709396522462020057868769444301120140483286814010273766274910375145874261506405737957305337158775224238369272848771768035544881455942597279984055080121529128420432012506846401083119764956020292917943655997000006999670206944812417739538906407894360691091736328398760552224312563909310434152732125148824189158526016739303273766510534168880703215748023213341337600020280407683571670507825192230230825265500931346109598056849764695463419322448133030794110659755467224085473687891068080982611864653312963863125637351848929245980653928842710986573357172141227959800480429116000922871955071282231023693137780501322222555593792290949361263102047955200638863877187798739713916986386049926269958012952794438037411396618708386962163840534327806395662598287669369735735222223931859098582443351148946195214357923822266173143977520483832133242556672527340641093990288161206029084115744029197599206495545526871903893289332804898200137282228312141594541148615916566035932297486952260091148507664057711495036909564765596059686205468301618836587368453895815422969583090529264371262704137543884672298052782828307634095906456894877380496258885625700531243362586975268385078588214715278058472219637941246929010816134174414495375643778909002003388764199507964539105291926330007557585681329233118517303719419181896560425451836181688322684884725158216829186350785189007325724979817954442665545971414812588179331417921466135205975174776762558956149675383328261740714129864828415330740697376637583821813133311135549368845924560833349351024805701955911907792432173361307888956718101136616034438286502646468986681507152640410018369120685820627215612615045527158815763409450832460578355249598238935059636113513116711439525478095684346610912812917892955286410431331831106491120783969060311549341528197537626181348317758204735803280949496691436383148170526982792068574454191310395027297777779076732538864496668062793858270845188169684309065932399606502670205614953657463780902837656483453637286776625393978746866485154485825618450444707572647463169893765058876351716342104460385970220183677057455544166162142590187789524256883757203423472998519044894925568471888464989641175589983832482300542699997335329007350734368679966782370044127023845948567759895046577412123676540298791005558156054731324500609804841863810919288113642562613468744384508231661184213930993944184253766318172769611660293025424401583198415782233312580891176189907630410171964189587340352018336096339896913152251537622316456514552107684834187217183583103582286032905306201663163232417089762804874618139243650263169514930864036117241543551461507870011684078173872376724405549303387068790618692967149712046975641426290284359892778610150501379799335420775950400941142218297680563873967190622077725388489482256727811481750472107316926111114269633950748274905820576525375942516504873301284409826679510960104538146322711558257639933838863570396396222584278721255304801425201087147861452408901189765054485485587662237041823032511633645556894345981367678147153718572978669749131807604986774214055061718911170093383038250492704767345022025530378610502760062894365477356150465282978394956277439939943614130316799419117334831531057714077036088985808623637952337362463618278981680054911766810799475241341976684558516448364417837780391509158130691658565876131248561018363194688472909358441258669547324109775882286901020051326278787626713076310790479778031613893566998663174562030175009043643380420819415725818693699458154826212457362523512444688675224669166389133486195940647328223953765303962889599620569489339987786480264320802253833496078180065510076132433218544503719390005178392532493457028313959374157883773609763437972979521305693221419000220839148987835201142054981557570937705749330992341246767544858942166919624595444139279505601753031300332470558553788212729697356544183260320074503828701885314531766906939566579877216058865399761700784325215231075071002581995793669931973392346408193971937212072162321823716727012382441267930090170881637068842335798478713061560698131617744388072958086898505786214357936930848128797866938879683051525228772059092041230519287804138876882444035651885081543075860163169868521098767812541475555187304738513232353534994027036916478302266351172761487427218790493181741657248176139704259506142217663483452980229193190911777581688647978582337422686969060411337510109154116560575553676583798758621385306026016160155866724905992629452203516231459159042721642446637828267696154829842497422849066528382065138284962324652476158587061818613729008189322750647023331916538074991714473311240968622319968370417606436997413507533707559663738514500903894162539875455584595094567247247141768978017031752534850952032396876870528101081879194990956520595426344870009168757630556465472011394327949918254434079320508465244267726103806370088816647173110587416592233046074785533820300630090669112468452606405173855916217591548903352561587850604582452405638983000388009130859294920531613946515630476959627866674949279435099015417204990270012455382008386181424111744905161186659793761824526950178719862014243954913061258021625818065456616458249931403394392251843880179957718470940811028596710329376293885168526623783391110346042814726881231819645002937057771280484282595089558242069896439311203051379064067026446735380915377192905797174028768503050877744181675210869170631152219990338909393911066124777204960074273952433348502354555650657197435451366814089411698800110092534726316443072603608922982285506152357366340583464782929684363987796642310982334908991638853593460892976244029112682360895004561498805692234099417296405755989437689855670026944747747145363865482370942802956190048397812731035942586392905672799318723671340468476993284087565355277003268946421959489250433261463500358506836952398614143088597017666400374815318259741793987291267200676601229049686799184885103631937798043661636941055604691091765990402050110300343016571777744136074648480498926880698448534511373043371259033441574167226742526840656184011844595200228682090861402214144583842268722886608617172525844317989693074098277101219368155454252525978276796846785889109133164193657808394199330805098897997907232188676057040661800607136999458746812504079535160232298384444277290243508965036084527028756624472649836707788092040369807748515528402036364463999564791283918606726929781357880666693942576836492891698542880190485033611074818246496738746198090805607812506573711013659217939747945402800210543119207515638060737952772384867257602579400347799496970368157818384032015489312534952254855338904090264229005855251751269176955480385633690543725597999514143644559351444240579773779791135540878053934832274599716658600683252582132638107120030754709312294492588081201116449157775225239621074053407566597087069017702260464666035762109895042878421844831551162995804585698640796840933763432312110962453329669085563491221180398389267288165269135963324374000288442135329517082479585200044786877625885465110192900405981114585528066225053318447344178433647990019896418410376158071395004446524042726332031360548146487649118674535510814929594066984493520028803734795312196560657138639329995184434166120093807321125969279809429210663202951568953558800086186741479661641386763139278753048251673258465634246315591150414462823742380331433746725585414703191078811124354439579581786267149637416214388899788030664112473239407526698537081362635261778109814501053243834870404418126385444144390452320915494895580548124365829048422516813495857549576611106728767679154254107327191744261144253315762985597088081802050794739659110664018808599274993719464635327848578923936619966784701317279457602026808461641763003303568225587167402092097354284999635972071375932573743734295908939352322936238362774603716835602829127936493827092579640393377530871456047095518580841590867535156368466295962133581917669391024566703837998381830389323362607803581932256007079966666104347146209398917606088704488122898296764471774296463152446462033302996240248746666958791803268154478931850026939765201570439446777310837247007744038777206511657537628512427595662920210358074710943273788393163917049237589073400268018225723189645173229279994590919850877951181361152484476651925451819222166624124165517676894546021599044227027892103487247712249597271875566201587551269145057013778508008184879942631450302913887985899586115444596108984211343772232703550278243945854153887841525963396786693010065523148063077211106862541346952424678114813754952620173082505794225739649179543527929226647778246142482371424072089504053308524975399177872540901329965819782374827622836576748400230504843706751239056088134908372492969485373989492920766246416325822174780352367366373067247219651933591828486098924012519588217966076738860169218289146231413572017622696735766621744742317496289097039211391913255331714009561856942288273999235520303400434630009815344296291421210662616539814307175240771028237034047579103786869789320055721592147195306716029703306969092817873421057813673600797078847396749784140878601540797991885170849966642845603693201667563234953609807185559213912358587634213770592107336900724266582438180860344988099849716153315227523992477759394668683636478508364071467345646428878206152652489484693703328794395802620025744088937802613833780925176178225181691229054556524953156263779710509992985722714526128046401818817363839451928033368075132867682192634602981222109731813329223333185223655717847219803627451623748147731705880966922423011021540944233830134280409810317623010018881845983766129402927252210089093449726626723695173133603440920693889954309324718791684133398863119932784218230420590141089699322045750086980542447175371646588721039066630454850208971040340048251923434265202477065179090202115433738872641147565544565381195991950215027030050558573995894314105595041349410041079864220234137891726881936238625697798001859438606200543389444504260128358282733024388762216000920547770587334567263783644477592022433814390752530542946015927468316778201856364923814913983343131668260233393678124115871375479176331437053500419365299199760215439044227697049890260840770124054260250296589086776666106540632421956471645949460156528159615095827667354190124810361033389973634526018567487532367727445369467239779536197344880252004814509045578200143970788548798440590170634450279749386626854670094916781003476963073420580677144423836078907559506581137038124679852283781276577350437369728936588609335024546954063240241741077041901585142418912043477970494116902436571129938280197610641570385744380429020484514157440760842382956283481250068914308428600799700410531837208797815469629591263995006436271010749010075731944730472611462446946004823253833409482990448504447995031134662575190010629995874573905178759545421367421629494930874873232339766019051639763277367717217990123692617949938861109514525668371236817125477590664417061857869673295847094813127692267575287799036511448711233933601390567822615488553370622174330083104530824418981142464221705509100808819887768713895217151066667276068465748132709353728035383681854606971131259898072875725300196365576918772062459954075383449809813229304153314240604319995723024153282486507876101219841917266870085480342539808817121043022316394011473641709029147766042502611322710889419897718139328161416038099385093921297190816410831380554942788551537363525544024955628605878788151428249711614296120867371923912410999374610886109270221806734022053573335085442551694923360871362069561840530221187324060313589589524502459477487036244799326860220158040761083572404656748360685180939743074893836213891609899505368426337968301129928792221844230835821616712939747829284573238690752893550756533612427352054479430087378861559171836868933213196334903275329964811467531750442202358461081434732956026891988018800707168470555722227782104781236461335961486646932939958490977338003481455759728517416309685844313977120104991980641888590367399251065167610253778506835992255277256491912816671639504688943331060703054196289667650450585084187441486088896011230656500860639738730785316926597896152700816210246472301496679179379049393357788829529892716501413925515713086397429345323277062511810251081474798249158848181667595143605651985490752192114200111103175919257402372951409166575182417131424133472451216614501857865885071522897395017789739904850511066691488997251316210905550135321695600937603131045424559810875509891099602435344818055715819834690054590763584467348629508655382164942320363745694693271651796672424810892245483595573889342853962458909757155845783291002005315469733767080715789105036627954044401532180480157748829025847134228560459416483771695432363120960486273374986964443846709988058236242347424757376846578074313290053877032568099670505647617943096406421273795425841637752429215909822404208194166077731719020823263054501553487341163715943563044650989701967354705302685355673436528986498686453031744718139949361690840378457772092908778725932658017159174073679604934795427371495065249706042261847294233986284268701978670787549351534851044725925489592559401569831749135888855671987769072067122369383493832680387844969122326512957558598997658161315174232474331147707065702501967875209339735917458250359946351361280795948651262017803965820855839990576478383347953335973092260984620032412265799876966176569230305649879651210987634869055019146100747635172078578352758892188398896378390613655837025608338680531851517865395527580265528277640307723144692844614626277855780987841785265956405445102473295970249481208168104245711233409182156233846194566361870663897729877742224762235260757833783181038464277168870133290097965916809473899397778919205639505003629608683893314114770776935787668321938511049656993209358761535845778631814648342716186089534728725189190529924623591893693955110730884569034342045960420840484110520459870163529039098788499918056352292507849866649236590319796872462782032230695553314623755143073328083359116246447893591764873660868418293168130430041446653578504783748523878485975171266193376072850354788267967305317949821662508052408087525047582148134122875136273472265223612026566258355250530006854721613211772706753962949013268285515337953505012414385799935438100905720708455444625212476774984981304245272146064356755479866577588441010799209954908983628301346479587736303992186969716282799786428181085748148645933830290187753806775529007542863520933274496607466401051460909766495596959675054586078613497740320266000524168760064041325412669235196832786812747728093687003477856597471000672544067478737921350182484252128830857551321228251503854111519410042953754204002266080197283322314545659185098214838125058106791251768498252848178471925415031667962222765310784534137179253570357473586197152669284206937125817890934390467963967280336825503815791429248989723437164628516043503857050701817419127336210457202777002266621668950855185750175379472558273199860702605804299823114864868773836867406850886196495157366019246339668916045939764113491682584349294638729905446083997882776171023153783344398980979003307021748017752347953840926451220770570355148735485714364323530478641196057156538983954419254135424084481468412158144794916504324903098058653193846069020363339453012599165152124992219527745704267349410823977114897048779252731305069062204849140621073873199729028681344246071915680141927531725506813274789295529593142236197109414115789674039595117521855398187171390190671208270701064146845754692334986852157893355550955545361135610107353343087299244433829473216260071386158978775396264984535581936950227858200872158089468166275271388660905643243961029991420499037719599313021795866714572073240681226729336568197782130762942665143396304450205333038247678567228445630795233370751788329892163102614282158767161952941773473953644772344354955650161797301865513056582157608641313470172067708213234775305905901288278459227020802449629506488736720523832647537935916919741465062468204602261060490384500172121171632199740617248310020371690375995002106052327674580725496614248729863280192648615866227070082374494114758662423523817617835517666738747108451920368353492411743337812190044583697315564145099939955662467008999285004899905140674815161505554258780564930026981801898802855943725394992749438553473101963290801573024171804844174820370045201921271541885652287230995253242859459866293236007276796885617508599236239364827031413591192717322783071622356787642151542993376282748574198140681104913933599594387448010387733448626337777379496122915877715608446881361064846952933227251760855681305995850547093265356602852917141405512024885360268364585009764620625621741747460180585309974160814208748545164599546895843653159906342042298416922520427478210991904173924895761484201341647294396336962209423961964176713744804917176361444508301574755256389128846146466770138063578560357507164708467130502465963673756643748856629918950354254707587689253180236840158699247433120520006527217280530919777519791122884672096442015906369439839556306549883701626516659152208658323780447328679419673899827604911211621027126037504789354472405508354143089790809143280851347867136960035979250435989222079605152976978517395095304368992782386238950482759125691763532940867572533053541639594034200839917968625400170260375219515718588278841233336797539673613327967526564571717016671161298531662013748104032294305977204020575884286882344166013376909455918143620792597787982216509555124525425955225585776725572006903255452240522011121806672548886899904599745158501688316423336038259181318842611724404481887048644427772800533756174110273779004184025256459491132791271901372107014214668992625626420163632298013788959544001701128165461118430708839841999061945475099304745476171974792474928612349401295890756031345254044552901024877450975759593717558291683280931036443017842872959444037350210939434539508538313507906770970098953322220660064609193347105920728660027255349306366440765056641646799368419485214007902744625996497237328899902338786883718527987369524638302716953200266964702949383654648498438780774748365748331206862095693570688758350971961598108280445096571793755428630761243102466442582649904190541629432143030815507032574636686673906628399154186706795910819826693509135884635616729248851678115926003932524966366515720723923387577595963556211127807750228065171294150968035338606126100996022760708672809815380911776276827014594642578482449382441710827736738867695517825490837006251884240346680736978958061745953134689687086699752971975312659338003773774737329947005698080171489447267182702165344044705028886811744441476757437412230286235867592337586635908897017551674656785896231000643577094735174183479568189708200052147447383384379379265122419459963381049219928788423289502909866627527641538349554799628122401001103283060112692585275116666246271270261375059184557287225805583485410935828557993753742232088506561982138266412329077372500384114155353785954607883220757149855919811304295929799470797104390643081765717928888997088371737960554697320023419386777044638992905168134108388122804868889980627229081674664930506149862128500504963978850823967512154471740029318527190949392316671938295652797510885262181155783629493998711227577806302612293692164874468633879674241405738177640854275947330347437022289211685000624383279709785802174163066441180341426952433536385569684235504796212480657890736620468831310428607640297292479228913669883758957970154000472678403281527874802637225552201032210755609324199237780703275684957371209043205847751441343154940757336610569508115495875628779250291314930949530149972284912487189822461908940870318618806485542256349481646882605644352612562318056135988364456004038502097376338946569779195492925300095212563878590044360559895017527423788208509093423147052419362829050590724484656140223323751530946570433100219139204873751693803353712368478125720467302353495628454952135659968032217175206948801642512264689814438118733034456983110025987942356890302269710101010346131480831803006552721896585626137023184820820670646553843231106549228883917882675839019258864118140597803933943305639327196422240399530401444833169960798164826224029320314811853108410052560433419257989358636375281742148959684522327259072668822266843471198937026112991926111768731063707206524343860227806424805374325790441301773245054560780868245763272998962795793975678007735473144624574244302975778942160757852478715406142852016035629872038791743055487091169377449567931364660069564352211606094007830719711667853964521907303271245721733021882001959285458910213578808493139282448538636833932687754052496936178750555575287634470033569054659298630259252010742676481979497814700767764174226499212579783780040666600548868466507683390237983169689976996897396250855234761033712799844017596171205562931724830488488005638227624580683388548712957630411971843282465396160927378322597903905905328135280643957845496792093574699358333149481368240515234598748110528328029589730469758703191578937743471960661081248007963783685088037020979399927577654888263800119081360403526085907035855167696009780710283919776299387005189306859310599003186839671175240209136427838312071000918816610224739585898025186851603206753731195823074855544189128944295921553686634233767329573757407467390481874116391876048976412186167450064745265256669416153057841538593467716277028137771599499465811549110634795690831421941465685853282451955755468560715103317667113773621423317540366262188988162070656120315519684037723598553442371712507788032297754209337567502522843889972241350751402103705432709380748118220134467461607728863238115850881018281172243714829493690840617723902483057220950765053427976074531203794071076093971135406432093175890861717662967292563436794515516934748489206344050921746524548496020987838952130079182638681816447587555256173693952776752724484754355088677575685362004125752066302326441654193985357593248546821796964232524527480611789896504816022719427109541607171526763440338003540631444537166149225672281363231479634832276335045652679076621712595557381999309333518974972380402786241997964625774857198140114227223532130867806097482931606680420655701352845370768037500506765051191904410545200630604881126015559570408144473712964908608630783132416541673259207597402512787069961966442276141405887366940976450667418995877078469745076114436902582627680375851006697579186028457599498941404177812618747825196799238786407398689221134065515608038444498514034139869357898454371145354772396745047872198839055500754595838652659261197117351762263684070916355722960496566046459064994270751726616742082895751071109735931526013740386163400706903452504044531323673557435802683321852686429827228357845538571562299422222271115546141763868754111992854419944802796010189106973334059670826346661058843083704291159183959687491596672152488403020834027764629631368314664652323982612277115110611111755651746928271910931161184301605311583136039396195280073792506514343691276514053363128162717013769531174286667128507767587038245992822610876411974620341301909006048398729108493750762546046499720015624300760212115618794870344335392453315601383423090017245211176307521962700396030058279429936356843328372918894162352350609012445926073206069000860943124984970410999046695015850227587706828263230233103599788241567451483539465842808481107013282336638358062956799974758364969086344086978901226946550137154114342800632604674552794219426470432921653099190414084819592847817280081180131207295522241714387419137698674178574531393853548896668156301880414573000621047884634152997279084824103105151544262116770759714074084242936057072041413103332636935230629244933949656458211306394405917405658394406094474085172531468472111226266965454819861165233167271817040110070933701903541871340298097817282854168340743450486146991807695095197887993265757252046745168814185886168913693864530401180457834175611813702415875890045385106261417564493738945790047263595652752507783298067648658904742274267709550775741000634999413147566359301521022929054478908696038381069135656755996008257875182742165206572190427030211103424737793855491835049060094895615532222132252588785832515595669022682322745907443990000237032392163121174579364012762022326788682263935319701885076095654474367177686344519718170281077373292363761346428656395173948262860976613141281533694873131487561972620972940590012171526057269599265914063306783627404305676332939244988451101015771593055452357757397998114109189869117749933052465863054433362279210744813715038803362947871630192073712783719219819799652686258538956969872984235938955723628569799446421287104453295415231965945977247534895974381257567784831484004310599206530559893862165892747112528846593927895991748020123895609714861862095257949566001176716936600033638377351328668702301136708658565025458529541298608603671107682223620223301899649799204346863838827824826881694528963547500652102111377592501899627804588838368138026133799841487403670857986593535104176894650397027626612251224637319843096344974813478430714920111743024977293423916421149778887505486343523319811926123862712222920818818281991706402210091825015332454509179570446769423837608913073000342223460740313872424414285790090331305733189149621600170477466904203972764900808273781098832865302936929920685924591448486810595945639938642729670053499824490730182791251841273210016712257942973324641310167466966046075232877750662399958009100206092584648929051230389274670300499031970619320776090053085770427318472391850052085516751120084764629629302603594923304519597028445222847938378087207297470755411016181501153221315955456862861983924021826167113655170053469430376472072597585552655918513286178678389536694406501893209777742370933783559530934853946993815510103781731635759455401841094703343432058024410500321565207585394459088109444327220192117436391049733395322136289409930979888781407005754325362418083027312998030926000928711150798737707706559351859121796115246487755832326841316669302542585662968772061634238589078899853552780854643100341119947804797649355846227487039360259403676414635123164748622784868164074903847042177398998290389294030535168571424685131989156981162261879511107155288204683397522933789793011270712224298063439408560327369265697374783537567901221566790594060350178998780050820426814253711518559741269050863026510272468393645678086768800368012473059095719346477510363890115388649754437631251428581623408697673816016157188902163138404872571176476464431332774453356646097290200546853794226937671211589450983078713246302664874276437719133129532272589935509638763846841439745816748347397097273886902521477716686787006651840028437775125178948828998338370170464031416243685318763588977863719917543021741763535914285447770140819798636969202401940140500330370572725100778953970332969988961324379079739620495652711100998034759381780270521940782986958974751805416808576612014370870678051530582273556645018789057499443635402606882928520596350640460033401307586508245966668537539016978601618943641679262991378302543859612153222841527139756711194457860539929448740747787383157743454494333196096898940000919100927435788425714534616736722129965273573705249460999202325938728182927542134018010855647753854381947606568205448057792690508073013412194997098853478168310819261529628267290164741379353102888502994980327890030501389513137115370259494898800096921804897030788547634599581599823199395158063887900505816710209114043891727834411940464840558525747543673148730596568100736524546592862599240602070614819291227674484897869234349505717229353582263301407397856132398186402285310609027814353070441256165864888385429824243473349346862303334332092665365210833620388391235991451071972509009143241928171766994326843028905538308428251349740907257242853066504820608137937699867648316469319855683467997231941646394840757685176898606868171729300102979654886305821892130031532209362450338294237727765924308221973614392181884536328218041134197641609842999162651150277643841596740099942514557272881044242963893338788292721471961510635684984609784167762614417969962646731083966776129226678142591460152399752550393228832002336986626420247960156812325287624154778541497883015646030491193229485374239891716572578087943035021008950073282655190530022099880641221434588748581770399483039472403551942020490705667348791889739192312707960323232095179241556450695969465604505562448514837732622862082700897369636547213305606162953882471904852123392052017742288706107105979393199414315844516647938834693376042358635163774188895182821920252362786746170414726879825714710034124591618748695301308509990317321537126955013140046024501698137729968620300629253777541768769321395890350438593027599204486592938643581048614158728379691294702104723360963323063230818887632862553150450483181223320648770271755757288211025555654017758215441970648532921104218794064915491921532157121638437214718610021403925533133396809337845800673963206301210854879031010758675566594068574374350459152511628351369421714260939080991115613011315420373072471459769037234998381758803053872990638435888642680693068718539214899689183170387473668701797078717257431318014422506864558380404063630157787190723485034429727905542242723731129347754039612819118361636144754514244919328865212909775925487525742163709051031486861502029999252704024042627375090612642441345450472903923050237663023522174159236280826999504965959074703094178867627047411248864055458277041494079151620075449262145580386335961574710082893827927171364638780516525426003456894566958382875603658816859678433619162472318600095527327775428151175464687759996077264661578615631078256824827192742884544292433901670730388424596921503973703130684898560840074252966937861451251694171790618444245278081018421053103998140420155999997810824698718198398402019329229584346575012198023788938083507179683807836710565625580398238434929255688821957526115208620981972362486284853030049876656422129283699847961400078048079170209495652218279357774970742852424467483991732358302836323820193431280288039816775266562267992106180289039299952197010107898096909723328405180551906062805350448055658045919102959266404303755779937143060682639236802338213651488929803309565812038817295437598476908656192408407485838991955915251393795537516948695746058958198146857750577564346276738601455980294829421038573770178428034696767676496990180932430007184562971996815874786117923164760756041798443841102807085954373842182178509871125032633218271248518363733708397633278650015980103686448508802114060488829479944270301186779206595913874650970203957204092492965579516381588277946783381915832897669888579482637495099006719517098370321274303690825156875680960105752619392835180443404208967188204676129687597995840238350888017352195913973140668002318615723404078278751281072565753856638568898777687607310271950928812411367128983808748099638152115930910743660013854174891128286294408908178780240313380934787930168794954644250469945907454510305137339901730233490328649539017949370310080350027050729811610527829161756267796190850220343384684202264693732354751029972475336472340184294041731924923478562005958616413720652898910798721973359380206735543263031053785034038128480300554873962525789791907068807945333018432543953560765430807795276347586654459651981481089689253403768675142276779145631681418181657036387609098620901403821031522114508431405601904619324104233500307776340588282320642304037435410172402535229709269377655120237364016312214054722769110427382429579185516533656763369723419799609732682165664840244229926175323361834467568046671364971103715484515115142002501967166022984237727672917901804515932096742112691774701500375368815798595915280462238487962104782472854850590312008744759449952694971201958278167345932043849073939057191443871330624306049392039157098559972418960443122027334708959449656694408958416605780437130280502203479416221293895380531040061609634430272668748232905834736355152946961401776284423823401377821369755918199274623064390674780688224427303319763103508269922558682656051731470765619942506545383576289152492988512589441351190389509664530730772075411037651200845510983386419110030413527953262140029942988995833008176617520065670504400826943174046987950601985911762406938238772147875301299087301714930448077494594906404078845696761066283827814900792363365111949574136189079501623028535264366102637295502242657995097919249462256255504978287685051200155065023557221390007171919655395151958826202350573630001084739117791799292086172979892187528887183141820171345303020126679730808787485051475545714354500949055861398748960843970957869224145541556115361615756184538428034671698358040662902736341757876481860046372197767969594473001040993150868701999768315422098197858562961428299316573124933180200662757640501027090537334966328527169623089871951953662326713722432264018852360966420419172010817150983513666598567012591711026608759086660037476882861668164728062973721456267437933372399064499689010408199233994124472274883504716844915704474504729241301592863701427807133841392224427403220355980827710933083993726727642070300359013133685840258318172344393698519011088894439969042557965034447132321458123365410167433378480715930579960546454812813478316690541271698247471440612415431470515774335145593574239403130414607013172085834844074003025532167877842437223449037586467978628576774795452167722618942060425621077986381782731584268234488438527510021301155755303726157594014976521659399845754923756039529948320776807837448674267245753033249007548419304521332758213907741240377617995138164991013980483238807391441108755566900889917575242092547430430919107748769778203002101866580961724916459843047597341170932530383967522897037884131408888822875010960944765410802748765218667104887396402061624338625986867651439199838057153965631057615701071385145925879274001966534708722519590689772618288744543145033471524230554602296639848594652781443710473993248322208601344593754405195762665180806753242751973810553993339271496584474736499002035772132790903243312205359939754405677002446220753793169581129438768760465230684071009271462485211683337855679309250019978972609003128172985831833072091678639462770361502067500768029711966176574645998131416934972402634879829452844133650796198961295660333496207778960284489022908606878824200257849928760557609872740293386748097991755518472595037967294646180439690991828683007935468564112398531233229323967767157727681497780026714393395509187441783143603968330831996961538539746837999341545056447516955464984710864422322712806636090873240382020009385215362751023540574485875415465551440703589165214101752386355065075780361864910972249700586446471978534833336004863168304498890113189528140038298465325781312193637744280750674408705640556964073515504050407327505956785725742835745950758865400030997255776104275566469656530242232934216821733812989040479304542813147876730756703585566760642715590720652626000125263456873003343717869351755166128967742105965858551921004756046502276338926935382991372222967653237034728908010840118282187900868205933214342341745083530917131557976896874187345588545334904229446545414591762885261677419725368658350575721609714406783194352154149729182628654709144483955319651081056027215850543955798823217769155847680059564885223100377229890867408101835434259751222017715027816110701589796470823270952493215389799454131803506094693102572003849340835299636454932936916876100229918151747670054725532938098165453239641352624676524236100272690792494646815181546101411073845912515850949526608801689211630455589111887843599007626247913051672143280807590699162798425246202838964887940488636813677302468577111358412541960080360594163914384682930470960135912182947720901889166128043480648876110965027973471064001546094709635340051441434392495582016696708455842527099037016285063246560623534813938398345170156816167822141252433375583390584620040510401042406412989586162658719567655279036484316608643135794516094363039943935613584336244160699520464454038858409009930371812200177458645327342051869661436167384187169288100061723447055524479380396106086729951931648505143304644365163144349510889927244854464549594495219434735695755245703583541426512397330138616204294397436701994638114780963889061903532402689830195553740755575620293650233574607902173144637612282521502642497192507472337968406708160989274127692495253469274110748097631048006467147687930533571950893864013939382630641058515287034358218245616494282654481019332989179083337175983700436027424573758273166659421018699916143989451669668737247630597193687521174513671943154159815933783994032052981211671045725559700771620404702729808103186807031116966596060454873516688121750697019716582789683424463075179088933506391618841768896760766335758838203693920513582064683964995529787365738380058602752415680253619891912025335476448139356279564201742259525503636515794503193332597392269468665432238216696923326069986978649139558052500391506858194350600440805209332360768482579449146209945496492735309179158548191573138440169625641290958140237665048097784343519334653352323979207654905866068965779326354507139572992503662865963767451565304153029569505855237040823960620618135125916165349961244025031284100893543817334563394349503975282521111647837302114850711807795495086913009156922151755293127778514454936428882368009225944541027217121813797375054590580746516505505909684734568637900171115848078233233685217381565319478295571483238708765377608294429615382677489372896989615515436012630413741200846886257628656328900227109457500867707457910479159617072716559288562219554807107066005820684079213148691111646372156588401242045441328905084188650148621689427616922831383141459650652720463693092127756252963810160236965816471325908941103784706130238991468261983753316867470751908582747824485686696200696837273809133382942393703072638736242338627382242827783813383474286650592993403020445343625358389446305533135399966014039645471187583481920401484461716329804207711089586465054628077244232700546532830175583275509698593655385555780178739562916074526407888386162075448954857263833164820979378239306133897787007311231993345696339952516942369326130668602203055471394877581143218651200834677117017019127500187649519863618735957778439400627107220731107881037217733717930850486374520490569353151193920748478551015064081017813672121662130838013545871637085854708723204343382547612097035947408230808087728786159002390400428151090714884081012948432912384681391125873099734888543651955193376213072558518960110377849950754695898053603883598593302094221415727849250851355427632125974803849859672067623697621123068943666265780641541663620183425224564222053717352519880621671781351893062928133325051199994606668158236946390637944874024401075605418777709754537070339226757896702448426837552483787477861573680666898466608868023064603076348982734866220826996923067400570063066732278248924691339518330397542654804984714150591738624230761037170375494806347197877741733839430722857516976798339002646131932259534502732475576102057037435937059729582820685527352449590014245118559873349372923154871630170499054195894226138894238864048907106547968493169446559251410748432606235536647260246603574858823890306170799501587455571214450878248472772767171604148224380781461686142863520723465161159413665001791204263708359577442497424843378940802240105416874861673504235500064898945285870262595059420315586622420399722250578581751668803457942115926277040281546097503740741480402695593866018847786339056406887017054569410473728382682822384986026197422589153661382060187508767753446140163149205373917456524875081130993448418320192635942569283486655865539458671195643012441186986084685073163347312940712808330619794879144324528495255569038960821138873705831672168556076289958217848040236542619259122198505936657468930522624326675712746130976295912317755015487153469103547978925111403087473637289555065146128143712179980828954846251749959463251693596513860202020121562198834918364077228429532076484579332399633003001909215099716818372347940505788541928311593152087866537665843485838263740678292294524061175476147451761608936906140689731740861323784064878200723177760475348979762491549743113003973455135736342753921464152178310811085068232584109099974125169250006962470650944476136184337443875382456816253403286948779799646358637375926438334387963891093303459665956747023385937229070311338490672554410661980324194156165558438863387171937742853394271360417471516886997272311121913537312247649073640448046136977887967337886970249396293113092155608092233370010536314944792077864486951711233924167293781215096695192900040410401855831591256659085578589588637306764908212207641957240497067992521639496627121176182323066418533400913732473959049104933019120192622900674109544927754188491661116040328569883304242624416403905142638523475936224933560412867853671292095077959922420428677482665259601855709963491562933034077188030708352329516912780037559085176977359164485268725029831453284262157864188815471580191415467151583968616804955421391290367519548631317069274851918396345669580933794868304600325064480500032735394516239092747142545757448970283146367142023849201648258252651836782963551548768353473255782704952795020431025093759499000911097021425851973629475374170021570864673292403322446968140957664127236111722829339792122897626482671174378451325568348869521942538921596519386600487212835905889941099320572386214690746736023852619985470136726866505126288118534849231510633267679940487524386857903099573775242231361522451685661057683137287452969377735700058248870538344665673321220091256549882322906938105966866418080159253869100352900700093179891084939568294039262533761167017550349441250440818118228217209430632243043390976569935755975325376677817047975043597536682068793148978261359518238014794281644201681675757427897724240110396104459838836598364492011236217824147075021042588876675879799090750772355463766858637738682045639760624759242938818971445240706169822034299801732550867828067913858593345813231161227707507006116986880860064688813833145024644072218968762295543128614930894905417491255571613996965468259638883243252815767492358991191775769347981218034134389094227769293314156482016109676425914406988020487084994287623052328172460632867921255641083251327937232697619454953288104114157774399865909379905266337388238476587298475945471688914785310635951369610963363663741281674480292522760417314588086842563118429674252256620248785376315873540622007198482291977441640110242352306701721588405621878582051044985417424125634359757614266665081888751014574570654626871219896673696141556128848938148086377112905145780627127754025514050109345305779315012747511900021994293817583312241347312662163029549194296081125843945146343585480086096702028790595852262182642320578529383821948005944254846510331640134716727480920764540602720079701223241830606641099056823475412971721670098913530079759482378498962980375169744542917845870869889445692845282077498049594829384280678799677249667760085050878859955868216712403268183177826877167954106301533119125647703380231301732630060177050222608407455592879420022228347668947496253696483031735684256365159424856822954844079554807694937568810477176270883971282118128192230228904544949372413227310464237100690863050681471540256523712098080815026018550474126836105679988567434678970807372380396204219202658902950274199022908013670641765648828499594663682503862705443611670543097927971836357999190599010542441352571476356614348535836062217599430448226021496182510160703751059949472955898060417094192953341897540776174671934151491765927248117734956219998417453107177716940071701200050639509522626317883010770441420949624316708397289290114250887556921525687198820259279788540081181113804315214789552808001850691745901336798356853032992807211485945486519780631205699413088444304587588345050139777069782119816203359737354120633559788385394682953575812918881541120576683453711593458375056508001467673264175755124164312024080953761878783142527649455699304871465777147185411584589867217777933212059515206132186769156374261395409040654026778786315822852431647620129738090894336594138244773891692504255593235720085386958036935718969715786328610139737811355026781040940676886158195035029676087918200955445046253450690738303274983428693090046314935912469721313568054762504355376285860307149715271826253316439561318389697308605864758688248318913019761408328462306209089784583441197230280027684556960727839617451671969865318327852805092626873361855242811110482934678166401032998155748071007281562823219155788891067668438035172675208958347839889636872070090144905114062579814306387577006474471807164324580766119407223401168590976939465631610426014533082862895371127622516439246499168227829151347014377967738270618893086846380208783847618275897879391396284218971639750346413543859320476438438152197264094100734634135530812018122647632025320837253394674904090014905504720908140012782125959664617249537825696884415417497229488344949863257355199410068589589579022557614014332202675294872300338225575249202908130484511055810799581919101089775977713898925155500319490416252860604419418750042924414992706920843456301200208701267227900300569757383831814274825642168316828250811847118352456888209304311978895065497204430525144652583755791813589003544294787163648580705523862208128407072152975032473813380574284901473222741473503253151954735950396330239507581465863500923166671763175944248751048067090103069265702333746986486312283012338531341272490194277186225356383228648037616367883516103052586690112903113480300458999252452980906911152934780689042404311653168758990619216247908034366171734818706666080793598174572730860291290838574592988876266308053414697531820086033727593054593232652255034810387848731321543858454814565955788764847173253842074926984046342043685720610681421946523369556914061925112102640486007308954519375020926363857953751475612268547402041862270189161815424969547495309203634388876440248598521061853472890676720972628374857327187758695550649575286570349270325840497405056621298276096134985103949451311334290131204733276270534387403507598175764423022597618230705518307206284256173823222890194059147750276144304059215139438841266818775359780473580552832729948427540157686103566269257312782709130168669674233838144444016428917937435923524319598060708829881970118656230827200795254247204712392089885893866764064403599240656997728126944001749975836523042740938530514802281334554766609520559584338630140714406112815551985483228711832099940588818974146640577073680100077750031597896113322149672215328333124936033917101501603571901712253445505445047108109638324977593372692434511794614688008713181811833243211916202339646846320315644219324221896146730122980187873578963654175852387745470895553358923751736978213060772472394332860928966943521941685320828311226908069777481561095416594592596043654494221671482896817309173403432764913460363005103922125126680532908752647947407436713512192226913689514961853061869284964312813168440423995820241500629860262276158575797247289614080886209491578547368944673187610966859827219318098917279562796449198570551944072020431491909613595692254201065988686725963880660247361651118494925836542329074107385009554468779215690064258846239465266461877780331396946664955209628711306135803818800610188532256696249777393308408810154098314295447253549610952357437851246015259204415958827335098245796228314848515018304777682183153025640429335969568858158029008790183630490494099451964883798821082135234375117631913240835796093552797713968429192395218139942855313871574867472700298665073690598032010343666192308920223833314713956136572245112442339891884373247313491657657128820621780307681536971824952984688566013283300553566424636871702469114393939908189865840265087018380072053409886029166613797567487343517130325727194778422537283300313471377895471266448898077412212736573642558137283725534799707076781803148220653362392295741477687815833214592334607775079633856294541323745089960646791874729683174276017528970836928825761049004708999986144690342306727269703606948380854380140972382730498979824144246919142937119171510337477991297853773250055362784163085341658525149603613305035639627869232029957342013901844597280694156194825028916772727899328090764797404219621278539675697207874315506254882903045279733087882237645406096515405751911779433095530945762250845826055398018950296665419511505182766901692661478800494630853565532576467010702377124483509509794976549546402302050500723660766451173461337762640042336281586041218956882030806259385397526875035215238294668777550892957363399618340066824761905449707158268395034612773350354521395439657495507121399231249189262336086187364299088183291994057885008878597473727111063747422640746352532916232551965847273025558454237161787333036385153625024293745874736668803008500798909939666492953379909699676613080619540328780349943528643020941977445564447317520477890459354661591517778714619861849043490424187670009304858075009277102432595517541424376877378245006566191805370883846049459955268709320882307299809033614366327425099971122612026178177953165608522436154472224022584797382526955004585512452359482440476033188940741507003578958038881623062011667759343604694537117923605714319428482111003904077349022814421383468456736778397162846703539899102870218655136711723307089389029468456229022813681890639242164098523116134904746907863546932720905514812812074611459429135709814427446216119586968185915691113423979778492165615941260551155600247844381732095999950252329447792137600980698463710044580483321242595129005941946293277089837951512557543401476736349505369557316373975714860084199885759890574208282276414525802207062287149690007379001980804351925093045250678683183861146009778331037768384513307707803985357133835206798343098659710960141606700537948346983195264590618176464732446836172202713179160548339350901521329610986299912384958164472312906257611017421560783681416368054157661513747408402549911083828881761506714592087865700390088978285376531105191426817443741313155094416362966590091953814514309109477109299376257901463229346605814659155362901956785523213668923204045988827619675190179530669760067569304429414106056650785098953005900824237568926987455947042305397847169455700757989567500361567787093912521491705646230625577750105335314088438150237374650982518032969049376621711387917810486473874207155391053300165819854280603278842622344720467614988022824627462607435505341264966469804048939698577951389105001910166190958004066281067217251513257066856519715984382073598592393464641334927239476165941990707266562413253935340982013468352722415473932582138657018969958686319941376835146434922600803456409846009905450170064818261946756220216074673807266071224849910167234252852608897680061357469475236714915664976256588250179733678478568135728852461351352833549084701512866270433930026608029609345308446912598062463304048978082669585353909574366066548122994476652183808921411475378249030452908311356716355048376243488274690954228122176420330564963078000123904482017037387105428987847981063149885798317733862650143071707681861311807230364511544438322492715711586151019569845678394673882188083580691417237545278610733716648129413155218831258308099340963854316472919329323115469443468836118994485807528018783099226546920165420959696094478675354515357811104613629926308526599036455502731709024960462967510631879350505605653255922574386170168389686954000561221499781334763018751726060964996719116023555180778332273901938504861349194640566214210252544451431191549075629064034108229071550607260303283242347769260624193446266841478555453407096736360646294735044114808005326774385997328454569820754132347585457240726045419609076726406393956154298234230122982711735184580356724497579863752592704439061137625298849688059036524931289815876481065646930961786295492232121542284534683695481199562399660979784821968112828936370385631250645558837662637949867816623209807022406920564893252308950424994257187282871149804283780070499138532502639545320201397456053936422161050221868277772941348613085580798835036282894563437231171843359432492377013275674928870111365492802426049104809891010414198519447444378699436784517783615858032672837525499917716232257256185418224944921164777017012015128457170237938196374535975571039341310013410351134325144516144492491804663622278438602526251606364975385473450885829414497326561344513813739121193270174358441061031335639870180200455969323308377826440044873060828518270318712100333483764484841990213749290864815796458463814129296015518439275635043783997784430304410076607503359052952127290893417291763602534745273328512657591894284073226368072519990471708523649238253747214004215362030452856766491467556477302543221163694912339997571967030939125307543581344492570173777696930886585634218738122621782428137670089355632794853937330648730236431229068195357396465606994036112655700006186729881359423353160037736771436690051412146944794429691420147896453707632623887938987900105998398116716917547310044576843082893897284502077453624880477311538931370863560065204649518639342150335620068879768452510605492190965925538460420456671137294331547947804993125362697941738934366365993754001383430207070570589962871966792421550824993510246936673222545807098556254061613708383462877679211727021601731743428770866652646310142283312605932227659133338168043831526373664787783061407990298891193758082756627457669144427864381024101798268407130788627884759178663412591924857545527925089914521701826033209941150267538753661561683463812702021294270248414094035227675806581190571555407057824847809869053273806402379322056324063995193633081197511457359176229850753139334351657568826255226060528875315559220304916834820041642778081500360876098436757709967701612226851236126358462200829990566131984625568217936777870020079992688433558726165408995758504747112991073454727167650027425685217277178765007734760853447085125915197410933428280653821975034990045570297303244630473513599474212006997417485532423076079210400626129803213169621648885657628365631404574616197195683655357862283215858155201982674097693634478516893933617695195780527366026295787771800748850314191669775893954318017569960283895657344432457954704882204578150207459814197616674771727012533116276667665063026397053256474793581776062667596768427322317078425545167887146042797823573798869808029671699506687693302935032188655092613043618030221753454605418733677436890828983793860537192783696491125818287437586558000711159759353498916184309073984378710394463875986778627643892960833503059320402667696898087217306898327744114533481694867269482539887714054272448024335117499813762370410402462058584614867494879104792665211096288428011065288438933248794719849682760273082965437684389356310137522246124622112925082606823220254429456046291695340309753742187416725420101227613417153139642946153282271228698865169754782377559283248064699169415754258259670158401216349952873004424947556249219101248883256352014514364507132194114344791015667710072707803210857584553786178442506406721054400739217656952612875831974754834762451959184311684156623267209176206025503224032564663106875163427449151051961770536558467425076525145834301425088482934935811282878019868431658420905139267914073400763065711555707372905850068676318739703069733130559387216701653161972513421024409354562082581501124159357367773527492429274229870406595337346623975995142924404198512470842130758476818866580722892299983840711999713875749085854970793470665239411047503686085460114933620002757559265194592418629793144808850893035608243334429448623663607496813418367909456553444915079242365267390459033546422322012201878397891164320228107726448848080372901513408542235219680860921006235046003859679401509018805130130175561464325429471204863212874596858865767974313973971929390524753829448509417778228110587688620259234295946005672511001337268728055362060283551093036990347104730234668253359092131487664374625852706734849718229039718639559143029286959080636862800769095241828414230081366154980810973992434123502092028182598450248907598103137989600473669919572334720574447716162027940013342445192594910428764751957557025161601186375168038110269071459395189024791251290029604986184330664662234432265587508648096716394327961300089069970534338085794795485506933371951351134295036662973272546633518513377006156626326543437476643330435168921494419681246009298319680522381394765138906060305203413150007756449284768237972877055668948946672132910014801669250192947548277845059662472506048875414564921314001094095156097419147923142208833699567135719537396794917306061469075857419207651000692211275263225675794226004620459387985977652348018873760778991075192893592558764514326711177439615925679334531742544540674473999621494418229273105672886653096886180951524741443110073278747672390624443028480589779050437859604551725783618385853360045143045629743740735583060287651515308134361214169860222606773698674718034601022929254762544823951846183216945732661649894819792713787255198222074392893323912037768318146659463088458363123562110911134207894321630315199287071651668059269071261340281723328976383130911559486652674829370869838609553446499756126493109494385680240034197429314789933004565923328314423574744521522795643767578065398409268772270372820765004384647589042316806967371388753603679745373917425617411820450614610542979707317902986105050063780504642001250163273303883009154505114382308899140672679643384537144263245642171498987822983764614843763326771738766053573744108125212213050698572937859016056072712864679281112746610321233082150090126502284318453663777237386763522150191627566674303950779575817713058610459968471071479804642496681154681556090140982265971550736126208581963673281696376326705593379578714171997355793278727278840882322102358192374218290118949879360547401196599572129614848419463873438811332815300006661039396424386053402970593651185721061541023624618119590919644510411331252734038216637686077587534351164785297922309418327374691541301853446657860650020765526431110437297661015656178495260032099336597807491637535471958637761556521736784349700350617270694402275625163210179607504678284566522634542558378304162579423054568814124507770829343735487819081691915442623262339956473274132893099956664454313253386413104978772063179034212571527368491007189033594704295775451979480939209045420313239533572243896988104488944925157665948609258852009618798928960666996873729149282093555086289999383937872627026009521567167068345430417769928196245471518169795199376212860329845765951093957813440887730098107453420967509976518629577135369251450888561570179420805234650479822917192529278040732282803051700929604350086637736414795098342108365302937071585952602125951199021031212182490943765744385161344082893853405697812501671916983527619560695010206870638001798899595291669004768430622024329839113086556202031499511103764111029976942483931092208427998950029484653846135360485966686613550852745986342301084821404708477455361396553979047892548868678505493825253075193764564845038848066191569463805660285249566138589433356789792318070551667194084715635784011216989554437608329837469017698628495472173512195579969476279513767740158783490470298543329245763822397272374329245554392611796068646779702491595601269360192458493413175689798198502965544255181817287363224684866919956192239367057507767783790451481635879275455664650653699347040237260186646591679738738005033579537566371596591764099903343014942245395723395298989084856546274756565818261600608434131638350968807065014989760889628583290779751451009903312587615865586912201209887538108221856828359112369892732388021659171906389999127018620367838580732593819882304502010346296251159351910713222243931004334557579168441927415838002480173165549801911620750065647982783545200327211099997904785709461063317552655096639401325127713942390748623640462285697815730519698213825609686934805015009151408953787279052326188932389619890605036810086520614954316161333422892391923835481384366049750542855581071255050627572316957610391079883731920749557463240598990564262845936334305361855189006904987596440094068024642516064805270423962356242012211083470818014254878003056891361757943533378205772035555106325648515219913433824300642002176949052457541254383101210442280773927646858157124935668233338376176516260685582685431323739374941773545357501731280056234503767901231277754555025588685843331898717421464666751129618877002561411208001417622437844017086093336295286480585371712050244365112769294665077392074998629904494393265826344532049036129604566766478117407907586871419292930130319846458599557429956484917370571077992991279761652933886610148859298191926285099132711919935362667650123941557075627362896837435471427575753894047961514611562902719115666309646310889014088713360139017461576586815401372649621763631433664574181946588457219861835164309073842324707510028245418132339665732640482033082115152686885793919745927130412850764718998450457105046514804976024223941497046831448566197382503127335033696899698506966144074928324845618012647520160248371974050024472916370551430016503012273334324308389574414815645124765456943965840498897486972723888312149407797336229781525826609660281343614222562594895635237736953452410209859844782034393168427742045946138617448174795443501823508296364520824999571295007620870387738311889907147726626184170954942372984852763296008122349245157080325374690907373877977326144724802951743727577467497454010261410719030940712106607393044633553627176258415847005398615403659046384866703758845628810764262839357376853406424429786964887073692356625753029161228136353632197225839794216273552655253008954313722093106819332694820522193107181952045904082400145176685434694281029910302183224337766820528339167509775116118753171995951168363299859795887489874674642727957208428626357501928519820365214771812243195915336928573412167073387422495955348936189070952815415941098774831082272713927235095797315310026949265069054904862148051464818076865474373146147678176466575696538147281636987145151715691001603878193663073815927682010475946455995849500951118648466212681530496618367002967520474052938018585355885174207623276081362620732140245498774093571792888020516282839117529154809038381315946180775524774340718349530396494409825821053227813422921673345824911983173483736782550552532071075772289623261634050319547137358157806676365392865631245475855639259403207866105450060340764965652859151310179520443307676289267112739635997477971221188850073121479299285020180991719202797103220992524735735681852030717763782683427489720031050722899245124958959356985854679352362663589863210379395284104783919348819125157221655671359932302075612746026524475141607059973515162149083146061112129712471934197174145145665974429549516952494043384639469962602603171683274680977633083344747319396236987716448141163772095572203167004910077120719300299497250664485793887207107390955392738431914741224352758094634466850627464338614083107243774397832096748284927713278811211649907322708900295748046933553087989676229277355217906761126441399501198906022735119568068609003078112869931207940198590843660373085911174834474678416483568822478387707914543032777931744224354662389247027774862823192752311274330235449297641633951877382218169681568865400058245084295013961729009623975122691998144798075251292917711673321726562887207727112364115710724657608141117702228792369268193573813957786664799126191801910300563109916150611590612805057674802136115995632097386455793274725327784789300601652774866953957752666973483153744236220140051989988329779627781873113277962369573447212288308144863384442644627054869269163864489370233824952657903655924065986144593974153900279877500799008127492244398304208427130152389874341996989419854431888512759344897548235158420819155119612756245710095485140961405554695570432469941621072848876966361827777115862129840890456583595450751347825068903238889740793801364096449025361018405721488465572224091463805834688603434443788853375793256350960934346389782788926444946045242994201059193944063446764747381558850700398305319362329567071121488091731426331727060561468052422501072046987935984918524063658960253075256927257963818921705636543207563803189084822537130872158032558917932474235642012755960604428097367885043451807901177959826405954891468277291301370663390083657328722354014820391614543307014458298546374027971075870025495123451881994115275434938588594175003518592213254703373297268088519596564999469906751210077993340892215327900969852173869308512891499471334031331991422782322108038383095372454248833803898301382591701545831047197636723022952395074443588219421710935397932366295151778994272435327512362973405710254890211836953708408340372692117036790007953160738640473500765709773073207659776623805309833864503088508630486252758039537907373460570657753180047531187522421046801565645504994847340763126375370813026895114890347951695634156116288077816630392881705143049621470944091843125494561820845845150824504622544970185062910183093123387593982455413240283478595366425210921372930283507954934669783824397206714514916143617633911069988043607926594646587103150165879097181814084016761020827659476138218374003974248889537056473532120784209850387123940160580370820503872833716011776227983993570436939556726696872312526125830947217470425074431078927173213413495805373972244729919998043189519441036501802330187466401789025632956077901068422774014349852115498024834663891690966579689108423834560707794537686005674839644414981644508562162613863681672877868304791093403156613593590806744259141797499721348431945833183232512881669139733941567635413247425516147921695022822262902816211466416629506590211167862878643546032056988633306768672864391017081817077623766393206516477901449051670916600189895811260743575150658909831923089164247527017825124942620062943294745731647290281655385977307224816865222998573921225234226181330088519025645756810507104582184263090365024362416930876221502286493354843118877306263171617555776091722676892485887615966375498942499796663484704455735174418536276578545926343005059167818489576654309144492373838295257489957449839647771266879033185416704687800672240873121661058694010213269080533159428815415550397510392390426637450958434608605947312211405959165705316856381360681947774923548019440742945545541842255591783337031295576606544724248509665468803129571098010714488321087033074200429004112729009610690702889850699972657898394825805087677430537294282507803659616159979676996795883168296619825434160411557124166043927255243164632576005114016936747799546098677245110406088099053806650975936936730356784201799262349441370605578932594621265709574927155607674561029468412321961644699066691154141814767765700823886736088634630403647743902526712988776587181416703547638266240952091820087533879233396250734621037494679157312130509348979832393941785916812159952184989247663302826636525330491806838934513361739973100720682752286790418377236277426040312250024694562757881489043095075800465262818553501909824831579376476428565933408558047666489114756251165061015564951327386331366198266871000455382019537337441152513877983005357912543820515404967206214299475361832165051311178100819912061588246450361005637763437231632106704211220454571746662409424856670629975288531899428046092670727334501684032028566693197962947417061563948010203960673270327616912360518109598053613867348509623045919428094892116259159798728240672575864199214228352012513986025494885980702393874001261223425265860790145311842492743198712529762872335986274564137835411623912377901965037947998907279507737854652673668426725801321027947691854441231876696626863614099348682998298183026039353483822199452651626288282600714670043399282358425684410915386269575471289731017810440019930900415462669981456241993009099566593183883610383954760735964642793909098700457300668444522390910083131818433373955670633829508778500028568601380458338622510706985941413605437946359471121244582629823159857441399790158502868134576435227856511863997580365988178624733985395071651958668165968264539676204577230142245856247764677607906327235202149252408403154355197531682434937083279303117221824001672935493970749537052565374006267232770288493403488557463719715323768652982928197168403317645159130429803278345520061311113010025798886041596604226735035855479815223958078478036276376584417872800730585079427434754533477225461693782540474477096984997190469909590173463312018233568702492896190639732304757924406013329847245765462197294341545689137344361128526865730705726701170757989045284155384148721375434971164265528506900972734759718410717853892019087850007958505546435672628201270212324290325184754841414153556059860078679722695855448576718804932282587060113046265611739197989229170110199432912663400114697901659555926404450739412066746511854397041478851612135986875566860894131853937814733262201586179242967501903022054469434245903631070388070571833877757459667898392341825470183278544128568670639540341484200990343022418081091681012256674711763235310308179797912399291080105401799506946444020779249176080256780044844299730260982779041704858649034328425758061092047501119391409742049361264279757617515068263531853577282262143173887509850102732489754264537578812460917501389746273259666293645056575611060567765437306767575672668332584296849655332898325966381969951692730904681893248804858981592362592653365613414919298092361399655334157239902826587084854712715904346021017760734815619306082981006448314489226295982343903069459211697278256588484189070089162275178737933170322424974954518220748713095710576757543438783618047180030038836581125721936451903947350279729992090620201360359547847833471168683982985041699364721650057558424773786076732542881715733445924375852380476366524356425677055136476887314482632201780133785786601179096965972680962930779036912260105246134275698558338106544428160467877015254251964790411208938466490554796273931206072824054767670749949772790538336714309234648103639424627682767570442791956455284333722874682243291195216636449924915684991064913513616018976770350403416966472246441484127951023865162732021145607481568115212494278182100634257402481833997471222779142800132329435797592668409443763582321523799224415584583515751901584448969366683822931147040856251953233346275675902337323602596323658581683786266359691398406886709391577670422993499227583138849356874049187884216635676008106478308370481086279524213248597908793294918522495626713941006268732774961518264309118905615103957748713401374744488546156432473317379212948723101492408967484247549188391904165353662676017282185098920488195868648489904012045722690521632986183918487641045503218543448608169378317208905999283335191849604710726832875124600575666802980424025716543134492484416250520531445208865740803016252548895440230851164427352908406783804066477171000583065589881989966403132198434023529416610948668252295665046255493464517367044392592606664556422686756572889238014455175007228338365646945805275152662371595970837209814358133817042853637140962478123680959030505443572045154630115901958307484723810616032330682644821731521596763538756654434269288900261388999510649373686464841405520166072055578216768872727021592814733869118228980532719880096016083196976412933036065572554183358476100943987503905079854306470699068297808071936397524377873620016714930217184069547756729249539501994259811043502828057152451947756105329625241838137071339761930996181091431388810164711569831955211241880025024665865616630479103646546942061844375369603535791178026217892497477143481227951768404483755720546486464602153458000645246147891957584998583903791687984947066420726753527859502340986915754401064237801725030850863264792436802881592990626732538382627833188291456518308336533336904725083307773748010548226815183685971499481130483266380707854586997429307706211724096027280837378300190411649607599641457299515418247486465377143363752638875694757856550490265518594398335623933062161440333989597315912167795510723252320005290035132668539397749010776419640447767895872608213128217987049221869581047739755050354194221016125841373724670778855279838134124413648050594742208735321644234553046953268479057693413374051826770805686359845347880647538502795621241990508180653647948265600299576168528447265067718295913577756996429029812644865898461013996296682463470931943671949935522813571861397029786197345048987513071001888177740614773684084783673289352860898812923046824319516303774927205246740267507398142843631132441208480665789708370880874402600071302454685888160079009921552045493996653982571888977907744061736958550812821863018075966129423895840782354167730014144800682388853714630765490871498755936503911323544370944224736523226269816155615134035803890412286085039275501486309573909397305980569586149725730715641745528886416230625390714513268676831925590222057724372723556388464978987429127611984749130484222412427541941003057786531038166563861188860304493807132433957618499448513979446225726839657321079168870806720686668568451045536769538897400568560699356140598790629380254891853685666649056961741012514840939941171368975888112012942243130068189213472215337579709456413494649261069558233189712267882949484544011961048379050586617436470715898428730139517354955454027315358122290438144764746441126203396433097085911184877010369488159954476957134911329384857267963189939554857846490217314445653984821224231248373879319310843077867549846314342690465428387433991814614616842363270414360999845188148756298812339244842108528415307002167886271952127827806806641126772689151443081547487060679919476188048916074384828387706067274340472659607075442191760996668278478927845526039034618531746486179729159248989650659291824188844044768479146112739595005569165261310083788006873763070823319000334819340576131310462850477075863201571725047625083575170543016815480250636680950180627967793223307149845119037476004749806281691955089489477679584873513975984125014014535260387956431741751707612448356163918630073353967800433745772804126604200110451981021616228867321565993761213881403907684598553716267094515063284262614507894235600181307784077068611422048269730014392343955197928886068685476014930259342906003553035569322802196554634335402182997605559370092931373560029295195323020195898775474976840633494049327812503840714665177253974265166471543992472391087831221455241792265473208860366740117612582736382518359016814699636500005628029601774540314607040128178509973837642753591688522531667241296263693887891374726131639560858660379164307257550313608392531128133915120123056637139711554885408338038192750313250752765260236964869356967822202538708227617129252103947431862299355095499555202363101781863315500627238802434103345329758582580754876622097294102700109244629634600007260802576459225844845663867894499098947560708384229640994150211207581124137126530446408254613117682392639774058295841614751191903298393020146174867019343132231998304682283067569047052286765725943134230611427757703022267023391354790138918942892339468601356912082469549524079120964949977168839490258938875238604807767831996792381067577481561806349465807052439949108202679027890600310235471079451578579288886086946836839116456684180328988216265206176547800941965916971581531848128133268206156614734145918902803884930309575344413386045508623763036345016838224073063503092147544968505181402999388538153186913680421846716913585319753735221284351324711575739105357785754435054826724933366227629692361307698089943904597497248110108756990388538710295570706952053957934570024949293308778277423087043438071182117644496834246736139326342073487056058195045271545894850548618146576102813453980239020608203883139925405784968179456244521342394689177456857314297950227350376336448051845321476158259919428597380489700794252816138609483721865625408639113702438100547156658687177068804215484987705381438768101469669861883776250587883455719905786262348588238351958745410091159591590467810112471782171565165627316511845870983451346299882814826453568239511520279490767316131631171178960550277174041288896051784212426400762978254596905615061574287222807956432838440293298993951389999282514299753062951607278622990898270473163373010627884861971996282846377891472949643045889428009174438673315718646817368616410457892693403197148959303033527640327195667385114314720215122978320481122708906349440819011077837762817114253339681988805213277436531237969687425691399597811036268754339243891690898494411174905786727778037552167623976553592229806236361902028468627948154224179445901674778016004900382057436732645095863793811498557489958089229499328706121741072569656201940873543953380357379521773466382768931197100226603997566041725657438654363251179768954547873186713026050449996128746432441291881840749149012337352034597016526523078903148849292371583364053307016363602239101499113439636453265878059810295676496411715435153795597816909429729690361750268767211807738396065837005576215623685100374268964058003221830988873172920593127120864373428465644434777974501217872219330698638920495170430004471795123981421116896294013190595536964745300708689775558742224425041374624951383484359322815995793194737562043992881301601728912569494968801790078566489718014397783965085359446633880310625259468225340331726133014752604570125438697448124127083430937145519535521462710275874539460263001384685162258959284575845488229399444782559998793569369650771522425628798824619303091850411786436805249621351914627310491630430167489404251284855545195214521690709138365800736876880450020310882948240594033927886253660953061404766689435545578652050606269603036221194798273539662890687502888108912770019483150870545123467863780379285696566771771849320760692315093657945422463482519364676696439369517893577944959841492077742710946299807599742032516613935062406099254192420726116338057812478533858140910691900571134361918322520435158679442608418791237031765697506845540576117919716670319922180652612790428439274914003417639941399385954625277137671189253098503906042709999969058176916393585089108012915159862466693188904181763971305749528167697707034138286284627731008784255505820061245447095165162002792916358393690658430237506256196176939917426787738922713506867155127855840516852556611852547274298162392022569287565389799199611734111203187369961912066526793713233180052727391329514988521899787569839403184324967056338402047744803073575493440879825126504286495452953178056821292352562992666740851817982266496762947698927894858924726547443303266168950390016709039161219889746366548782986174370417487840106154514542651364254994144798438155492942426245844465530878771307430003979656948802456247583375216630122868799591039674927718160919612975618571748199504621726434851996567328936270271804966711824406549290516806709766265175238648914918460005310306906053420177769386186391611822757245990359394879436665253652787343665203010413105326987654702550055815900561379617015804130299370282315160626632466487211723543142649236763947922111287479160275023278846680986057379719932674700859056224595253447574641525844449966910009900018851116191495982087718950158617067191041506212233131650704471108321726395169174895766226680133940176728603955206625269434409766899047739094291396463246009689202605441306916014805923447663372254739463499841878889299543377078827178952992416353859763480611832671849793080292689110891643234650977709082672640039822570048084064653964269511544865332339707836728423311624734003433597644606225583803095398446588253656936654480057712234365009955855517709464074385126075790777699273390039307258210612494332242119342391889984275917506979330091358993129247593761479070560002146261121272395421256556958240347981434404437294372669206719436220395263436944689416093822727101784840156786068026024622180091292940263421381294898280286973168357895722297494870946915362109785285238429558706501209683802051363388880723976673211602307718515592394687944259124180009867775262950680582250657215109884243730078816328911836656266741742458024490281880920345829952372292231242368660405166258897345926535521532876505644033383984102415139943483328198392751707396253178618745937228771480618120276863092389767625043596284874438944653710351057596035728730888772898598523361564657865747643502338198237079558874781279733448274475569062920712395168013912450786034571838220089326425883405973831225509764498562985174829001468478119241877825694240851502648409879016481316981011592163859557529709164242711907304170543085464405701430597959452637847510669895185510178649596982992920641921433865423357306027848405983511262025604011061486386471166708889037816068677359688655685947458091839061820678896831782674674128290371017757392363906637510374357573173406081224489153956113534814865867041452333126378125760652743345320771354645587978621797507557646341189093893777719073353445411524483194765136751086471326694511702422814999009306239789858140021411582927556274023228812394801128389394964409975620853681894656835423684220626066829864240536087347341678265827336240374379722579905476669157350225483314936873227579342528464672756200100086008824683782890501219539936180493327926724706340733991528705064071722198747139531684474763716682405861604853993969346224143757889658659791516145701337825954424257764796761733219796264327951083293426117268723380351704629323232216382734011405346444387899429694790166084993328832420075112736048781275167062114651645239289450325587203361959284708814284565140241347875772526152963188566124451158762254188498180463791275069364311645530090776579705424720627147231735501856646974702179836502628394616761517377436364790064808241995828177755240508181067457098622730848444882113102613136773417523595882122070279607672591219856868641646269707302993102677282701260265268401997624681988258254396108376905273500433013115229256680641993801970160471373184509176452326758569551425251968717478225812627303463468900527701254797394846236972036470428420349741085907304427422767965709822016220571510523477999149004811550387090932010684517168728177254438232560081014972525939038464356826715281251401644487839243965423781863906382102261293697708210700678900998789361953660910346672690580558305698168552392512225380290611001644090971604349665279587791376867160587694706021022835842117645468676379541384186805990301361581750138959337071231472667198061682638120408108582500825246005812614142188613611869497969419406004884299922671018542427638280715685759730012458304598751694640816914519090044098686180571482142058708715922171283651807431043240974058193017372851461681272241924109397647779801994934451892122066233027381766269201019496483152484389629918177392860765291860954308984440933299796657667697497385796767835150904324434156687677748635862449850463173974838881131187775152452751012324441991494205121252132307881265593377565566470533782084498845936122921729432839192030106896116618138530993048712692947611652296153403122216029159637901239578548824499801320333800055352474349895605393673584399245749856247569264010686560742599641357794706648543181457678618435387748160136771072678671889990391231768248660850437278474851983393571186844727464935780258686695730108226583819294590919175207331539158697232155824648885535846240713855008222661954010758984311699143437079595632409552606731916244661215274088324150181125448311968384780745101781614395699088175601747168611256162217820745946087706205277591150765842285039637386163836233855555158708709441529782013840485219378271095099829634130173073434708464274818766957609659044626509627183098247636001031288175823180506669170503078864709263309768352444597886733313643024582511664199122460619919558994919105264942543396573082889478263661979302184803447231850051663220237720448076659058908310927680971621640625519568026612890877526149437665473373687775023127149785774468398785887262671698757788178386808506562750705622699983561780154698519734507659270478372349762538051556800731309974183277706188114509843417919630808828000303198211861300520087697048696122447869748690191232246263326196886486422151384165451416808908679188361380086352094682694119029963964601108248930186847835828255771961765818565252697376091338080294441659920188580510539777449432570659833174185446897954853918624370152806013986623948813868868742175145513586981092496744456018363311891725710866635930021801933254418729694525701970799245325825395023945330447109025824638028935315180050887619453510179994822032829699928313804207204811725369939930732370392852726337014909799707869170743799735820401945409047032036370394790762901328588821583949657416570872503507600506034830052268601473315025519705823101385487015093060318551694770773908593341892840135722562840157459614173579381693119965773017985432485055269030445065663704370582296125598506582751229362382139861425347820841047906033853816530398313784443580054013966273812415735372228907391563110437580307693900506596013828012123796851293774128414998296753907062388549533240599167497226266629507149028934408361252936416540942587282734445701962898683406759975839161759285847302309436722731963820072367162423472778856310754205822186207986453187208303325584124991853646047068759716780144168769878805668996392675142245117477223999693319390125649749030479517230015578861422208500259797930264640387136289477456667333354566932171270585053190818861209527999510679012219897512289591986628816651951257193537888701453550348015435415638128396440118986632705551757997655966889200858900696138657803937192028919144775998195756064845848192782998753646434919927208091983376178968904138795631334952490374480947192823511137464121515078345070859411779976028729459553391493103674612434430214542115879839213400145004480578299354503842108098182781200418046310815039143678556369210538080722232152647373685848603104248890496542156611679878421434384001490521773063425446004883801453645267501563504961387269172215676165660206131502906345815725427625310694402388907189432478477143603788962275236490984544497372701052921831294060810365338359382054140195040824468418864460951403444251040387842577396201457260309220131856386079161843357714808785902908177645495004435456633631159572719286034871696856665425426809668784660230718491964526594053118716089904776399539835103904187176670164561514598837819103022482145149679156627965678278078387632453998189192922455622332257289343836933237257719064210468530147915072184720153296950916450328052219941823839423026737442866670774459341784470515814635629523861634993783345008272616699280907220375757544457079793593547876667928478683710001707576013183726265100209466914091605525883967386026264992903981543674103525524814035980545949555779699510368168383313595425457279790410543086755273155352753763867471295518902525211220102780302631878520370814639606710779271169879050243020247763046612505711968032858452961308793754985247830184472150828703767850527510316268542567002247775808148969703652895548651803003311551980229104462899476799624481427129423830868722910264830480453509586473956965145713556039207920758425214824180398238438650012773689655239162830921596519424204630528838229111660508297839739747250925000192804956252451106234897943966070789969060822166773100178303584466325683298732403630627646476739452380709082066253343254000490186052948170443790532571487046868131687623236622553273918266417567620755251110295523831591103527749798256469730942177014436440183240587265989561501412734387993482368026738606957049918890055793582300153094503232554826153334002370880589827190559910335585790552882656935590440990212438636866404702960581290027503296536979436816494373259610777284262813532862249415776855448789614468833292083935199419285627334624267899972669124695841285036014237653016742173737920661952361948786537148786236381985931794081270356878166680064006227082374754940348033898138733377211209938554289251131669230227266274549213172629447790215906195233309193844334939637980302270022344748817795712751682305057639925757169948363564347443641258388268292770371069032338949163805409321681584984492691269769615906281533431219089992109754786389524656684344015560596675331507662292893543367477639649986102996676295192020500584299789840150066714868690259900954654234301619100711722145345296085929678985911580648093651408855249219514773108946325760581094528985199192339586528469254872527329531586784448984922015091084838766519832379500614427892882463277904099705833875903094371704452155885021908787475103382683640835390049432594830244233156233009086106106211476129243126833742234508417630094832355568030738631898539940718683165494209185613757442392521795200662547567470281390007291080811169881669778572089092206860459564836591366851853398514929926038825456967107252284884675801577155823484236322971832041626977861192364079702468186842626692841221316967062860514370839115214306971466180075861375487638843780579643926008387235060408983242613857762094130349050057821406172358987141013932423819389744221787820999724988821949899680566014907608926295260082179490501675723441243308884151445115254439871660234061337628847213121403791857668666654830417712760917449788681585343628546424729856438506960471080232525943524665756653353855378566000189040776283122039975351995603738839445453869337937599687080213135773901478686092218084282853475979948463860563120202480714529107720983466396943363458936959862237044587614897292970198505401584246678646673039922544376914657076637219359810756875002961291560071583171012472450102769390137117248447428128578863506170319966714573392033852091022119482516473790085204525852117453239884225954905086996359267042223052153097211704119057383414354111817246113696162112646378074206070010442032745576571768824469025775703137249928083474633416773513027403747123958351322146819009891590580477109590346856016414350644779964559590604278624795246699760117643662507057930587106712848607765255318438623317435234108461027910250483546621511438362392876504240441150209515519571163098287033759221698842441872890728788983088779029081064467556161801076169682945287020041309986666048925721486226862173891379807350708796626739170800990986675107563404293285935614759864345935730939783718884804455009116568750995254688824504040550126426446245177394883630788222879046873892952627265808674097942029881548627320882327293244806168936371859539810269195567811143912240544629587201677172687424887414325734918857449716559515254219586809196482505755913673891711329881570194424267777404877339550234976688760656493139162368760939835155593035651540097518594088434162002740396970637263879634361352310515255433508943300146606066930569118568636446600807949970290691286674310735066443494049809140839595796815977486947902782622993222509381264803534980479841763162472167381071774000487750594427803172025370013434562806571879765786278294128862078954947714254109704587776819536579870647466807056758831255305395815464091829500436596967080531554871714125746915098582261888274788096491625018189847149752698299967988128944278773372267745891319459322327687388426374255381796868855736246600320767434742139282135136677686086662848653638574022902768146165868380126883551879174287029905002920166366465723521278613317589207118608957664087387719643264708971401922614785150546491323548042559563224570200974241769503710143858381792654748274829234948390001874001951642271343919004758184710693948628511123346397072035411909632586867422636863664560398565726919017250323764697359964236694304760285319674479443457141952933931560277220736532352554411091339092931637691768837508180544606700232598410553265691651290196170708105716716147472232548086770057181583003971646912747705431743558081134989308248907096248821284089795841985420873342722239792104247148692261713756615320658743339945161352427847565909675441306543897170456948988917472794979672787723718659977575730510678622888728965496379870890654537832204435155321356597246084220851825220005740644458642360263519757153731273468433740444147524107296936123315176015094459813654599140701579720807714355271383251232584695090630090580543078576084069099495388669759603388498897719171344274201497739778042757632452890322330511179298265430006899866758068402295077708084901521839701750626448203988037987006286358868306413158423269419916366647744233325061071231500301504057436780157212903754211930442665538656757297253405874274039887314548730123522725701377150551321505537239494298895674997826772698125814297898760614123666912141322796267024380855713694512440147657161474753713558359667837589018994101023225093960818368714990324879911815550621732010686458529142424107040550711160115998311024536737879180548803930983100575209187647192714523319692285731011923181288980494489695267661505806540477928269862622404074657648418132560366721245715470333609520587057186887885903808688670764569778612144254476611472590744008102756771388707656411482643057231055691006215838824922174862642295195412618139252124746875587940453165779951349310910808261828990288813194106610264939085957365265194603387806622399754833802647943794884836557856010718071946014286093771163936940991744505347197062278902043701045399608748611092755431232242371838960633268307793607108705558286788989789462810032559677435302215519634447298150859175100603517629980729427593125019162426108577641311139275537862739193685051338547948757314116588622436184753766294250384870809376870908611559249277420863727364078684003535674698934639568783164788031989042856766117135642562111098262456066306600672333293780103788216245445579540189771729597808285419234279640645366660934300444031703866722568070316858059034757465489740040591086496500107433524645543210359474108559516793738058783231624749347630960040355280804875212283522452990517401593817105729704430201698128064232066087562314827270348745004053499289616518017253983259326830906069089904651809466817707324557706773455526573902553682173745724809840990860757682224292206625873027096565952710880061674447356651261670096702072388077943963612834310052914732259299005212654025686687495927589455272294246934406162365974627874959375780055537112957998320731014870579853552946649385967188968329258713076771443319678406103994335618542560921383833074585741859094421512307352835531199485178701061766529494511879141387288544889669641578440443692722603547420700722323725619899363533076849613312594534085863539277852693508142051616385376650529622198063532175234855133852591295930486114745347510248954513411062527699274064025299736856842209720014483055447415301852810203508641813141843001484367224943516579581521897405927772153922104808626383605793605144151408145929381175877294415113218339559813501816184847601829312070110943634489026781978196398408044069625732238970890025923146959182835088798149460346243986883266733555828567404637693356004402043876585625253582618921581373107137624356146585797441147111001271713614264714563999862911897146085809333864671697666822411881783918066992982728109728901569445862611294853077253050387290926347074259100605442415214197148124250438700462707521413772457048099085361024940980736766690744033354991413098063027061139510409548316529063295624545902234687583193787174124376459632826787124950773295333885652062141395975525737081366679071160297099040602653676145843203843719904461330712363915001559564521538859525771750020520342760622350318472290032512206964858365013452724893318843488358984991817014923245964387878552473368707506385802210227836407746191967629910493835226445186465166900682146090699193395054657140424575200273437531088231567391843142200712540463460634037286319287336396808289933855966047002174282749150280016740174545885719950109211132485735148683965481685369122835985076355220809950647184764934078882704712649718318625865338117561986678894129836097500225277349886011715896945211670020421742679349240958224942491050390631690138377682460212604964688476407612505189640843781857027759306003370073925379588515428252372810596237812596958047899749540182934339094609226535302334833824563124384770351992016028643561509369947475024712113631707362034262470082621496417250959562544213905912211733259225484633468835772102305816668313912596646147119718580370841085101984322392304765680255574252224877666937035810216056677265624883515359155646769240605700865372712939719260443578833931276938520142818899838755212185547613065635889596911544530128196808929482109840262123682154640022511786980047029025253078334585535407917453718149660557444647191251399865452191052706634084056160651325972041556539050587624859927080860927614006641674007662882628471517558282205566611454269493535929209990521762973994965566763495256483533643695236211243341876206380662382810844296119334589620712071393758337746403503773963909719046024114553797934999993208753054994911737555999728690281553489878828155036682184333210013121347472943376909292069905321622794807678110494467023861217189837883944845883286368195041067463122162293298764628065225745268895076490897959742832322360230444887046780300261573073068576470532390515530380252898469874654133702260380959276802268512048183762046680587143035610756806991649492685312414675691205663767585847036070237465819575624070695674001700711198359189652721716989089297821275837815030511892154323497498102263168630599919557774712923723723857204012439932516034379928447405898467134672631950555813045983337164386928570676885184301833960219087464082216883773918706629349240498168393365998540565352480195556783241206805190170938975633111160571963743991411107926216519002703056912459291863527884783385190599814762992391733513247002369902084035273756350646185295744005443394064800153527151500089934636787271337523281315629860030103506216753901505060452097408842931829827334025998833941276619257961365975099972025851102521245503080626911210835916821349322892255542818810630327508794809301919157704874275364781580070031238488117918226177706319417336876144766834876007429554009895923889740904800808956044701707308340425266914198993338020605212609516399222302417761554141351379455866892753874230647143698569971853181180731038752849226034934124409104815263596750152160718436052944053702267850821222627113100901097521522200444713038623750801588155129120975248335320985815368039180852557425401347526996013165839035259195929812013139726449341827129947622678179257552124280114784909348853478360592012217536907520106499046343759924256209503867360169279687459089946001742663470592090706616554634663942175063351610707359205377905179585303780667457348555552969590958819545966820574183483390793152865315908609559709244463896535613408165645202325832726115780678803014469807569850573576329189165891270508328511009370233536011159237772357551390863514139315258049493453123677023421619583951032617152990214179883252600306288638895972156435400384564407831224685852983049407398367141775192802503862086030486958376443630988278101962758627035805754132168922749631737517284194208644172222778463935409953334071023833416437905559304263165544246637424571651704095461948983288518130008366054876366607794261584225595158120464404926824250358951268805218037421440069835142848717766302867708836945992161014947253899198300092945422603391549946445716953025875982968006685363409929623038812595755946391814115472952143409023533258233924590381288733387388418290091764837612425351638074613640700584676157232798047900147795012140868582438073183626479377187084580168641440243264493942582162989529788481050058293093118387379318729097713045556866937800605406075785926743450246108345115981349277498556262030730612841690092021726129365777079076432884465057459646424101721879233490108099300379179980005671942403954437667924155187364603262900768585107153691507168624370026010198393857348632006057792565609000785806247266285408953102468649781823336674129249184034222726259315805484762704426365610653061568604171560451589578492019231488135775473184473039806061535925242811097001549794669572311328193076616978308882120704608049770068914009349491978407836678652528110783107301856540048462621734019717293004477119576568909353553799942135477451727808881880468978314782020090718243712775712587755388001649059035978623338663107469304469441250746743990259062880879284035079450884546495995263518742379894523043938952803379649917369679181720617029407997837246615549199030888153923494196574835225625594341566144047488108065394618354083748007501703927755137693776035999877675494270306708456442443966466924706568649772883612997837584895306327917080794636084343200087029227547396870376394184853935539283073594838885664147030137952301349367058569545039825893262365600845157592608217025575980298790945459371849274944969381584601062163095064887780844478608950639909462651690745410553243452557869750604006795755839959657280895354813488197954208099380413561138188551840692894807673309183105749353759495620456777631466102559499325943112730628758447547383001108594855954078046409410973632646299013038782451448952362984622422442866367993320234234318383702532931632324826156630917895648205262633966373280141166029615875964005552773218589662674791008280958152444980982130609767370750658689114065460696821641063562746783106681984837225408723063985213254218558711708061941580658667599427530020848353459955039588109893417118269209290833253002708935734379590721041195788395264058680857159446411251453032953077188586464135279111746585445903052306357423363313274153774479038842903346875371125248188304038407418730611486741236594775805466535668370094320401286654577013665980609462593342647514036778266761277661039635401873485533348141113959586250884237503699765679889586848119249428664864015399446064347401788311478460323988627035333509684852833642051856912938566572427347704889014921522612012668098138207444316159766558309321479644941150020378867884531970091956999488771644498440874590524986219090000098227645399317131851547360379669478548649715961487971848611278571928973250223233020923250222285708173086700083466055816312918185163022541438243995534519361339433283425002390136137480191201173471260095974114830865868680528000179744393109586372008451177223099504084967604478153711823481874523639188623909923192807124324251843119074024253865906331455547624762300487727718330809277526149142598207891796970049698271680651720437409108360930987856155076212196386198112237945904396501012722500183682076570614021333419019423732091024741763021841092659846092355530874145272762284380935015092294396051748429776139595383161104202569471717612883127943588464566491146297289718645861366407468722074577659810665726990896865422029191819793555742412733697521258403534051180685620502543334269079595451711940786874597004541672594131679812232192699170022472814389343837536089693997960020076573123308533780236990318182044129242042293276402042584873116554796791739110580404414303951661823317798446762316411011378069853903050834865450724172879554507983082284012973932461323176318944327863470387898915616050155687531899187434675150852136574662622539656491228842891109150470650830468654584081186400722468440820703771588978474348257513250922860140026737206484993456340013626831696112463386584934253980205743226633550834795317905874528650014941087666405275092675328493383776194794224408605593248677495978807353904646169780142873294093090680076542268728988792274121024410799148279171035336663054544172481641388423188337792710411400722301131575783275325750684869083023567038959872875416292181895251138494261597341535480862204473557213315797286415502997238274257701920793452399273832189324527387116015427370295745758118723849148917139713077634390236228202834185461141314798132052529540967532815371747204287821993483623403486956069086388518620685661935112239604404464970005072082038586593219647859450180373198553183743069656107533893169818523709646492479872118404850140361484465672116901558449824136662637007855192279988482187454962787489908072294941136329899968271630039584703439868843063636723755576175712956646863879401146524861540315139284592456384758997157465219186585551464983437053171035339423397504409757791741854132977756726807663541479534686360518802406348304572380359450343075581551143545634963461086166866514963229766271132143937685940586927690153932129864534503735745516382030114599427615457233546386975260090091564272881569221736135144073976963708826004711250249037984494277692889803559147998700702804829601263371879899083149363846347961734183842497248729063363193687276411382318471100737463249219924384029428189723438698483527217194790585987639122714603309155649972633413972768051700136857781287554384840051483728444173984035521374784490241243130598959739326623613809844012024677150604957113365949477030205130273267083689601351427876987878656982460339028043994594032241339711978506082653823683715448692778304988389881740782187156600972724274827951100005584950436505520365005003208026282752149886336033670654268147131239186782206161913315648389949670945246884376863466657877914655125279072405899346973682391505416178004934095728736900834311875042416983603826608065108978657394001209717409255837538011183539498152916472809868127644831365463185528931003014184495420159072819404192329371713749468916353958251330607416610423181771286729309683435564497096749407028439966623974487389647046776135815060772783536209228471002155676736695405191973636135607187380596378881830503983724946245745368788889780423326116466257001721398653631204290662730262030373618519935473240582079641160806714782591953267578540972527835776498805994136836078680391165146711204164348017911596872259117447710234226208191045373073054231649037051688350297203008944453012382125612735806892484587973650315527486901806594292315324459200106715611206874989368481567122901213071036891444917071094363233844954260143467907036871006630278011240284580321284105999125040814738121881012020941260783765434137858609385406811407407106187800113854291774768742225611303893112769344936996407692929892017983701871385161796281422558864679964081678194815945994259923848777885451831141986928397748481843424235845183442910872801810720577665179283892475967536497779198805053096815258140809286336400477850780821914685682160133220240879465084187524511991930234273918907107454455222542035676409777540276181787158811610981938631324219921423419737278453556122425680285762644231173786962604563377371865704991611925200264980536584868129174895631450350584716516006435854484154052967409410314859000816058707967500569323044675577359027676722868561427073534537503989301213463111404907582129290943785064736930812633246975010441134024922543099920445885923580515575902154190232657847403746924471046319820028798749694619403186298453498569023553629221513499997966697925236522879489449445382683583655717271589426889024676783997363315943183821032715757083995595116109289300588620609829382491955045882307532083628078636602669799637091281231595243099007638342403397777539792004662044841275222788527107310304009915068671266167321942267860014477747536619765809319057249843178822547900660068717202608803706230343887827968941454762060163748638310527859814652390427227676246550229366415453303582645869404557365899611417612337103221298776166187954936867019186179468566675042472259837538062856235340656687825240258319078769659369875532803494252191875645232572913847349180420128011620232061479077618734478422749762685190062937672202754935394310773402635276263131854863542734906336158386285775359109787514079272884601343348658706904294639062717635633954890222561130234100595462254063418300827412586492603744715577339475365882599148304870814936321588646255850515956994612096545543375916147110352190487166523097807952489488739898872427305570651018299820802882808100271272957081402303135735415468188469457988462759526358367554762717939567781481689732066839536106178382236551348449880317448550814933091061047594631770247218390806795675058181473602700381757441748678689818769559421164434936051924088437819530286768732226890302620764419979798796947468880389157655213396926664505774263435123076892398263003062099877794063806774215405101839658676508249994499587466410008163493317422337263244623342989720930050813562818984096753160299231545764490332599944435268695137086012917556144518833437772322337560294547520861669958605160196287785953329974107504117351818805753400234058275015635160969201759148342488642591529698938454094556956065610265294109142771417521733798486033577278397100250963971334960854512634744891672782791354470800561821213219423307137985930380783818485598473001532704687838796779286989626276373098341802696266483119860112177227223919825098514406483763171936877059018974846087200936201829739081886492117202983207493619582742621990461069921880720703558547751560732076340635420433591633431502651832856784802883541321419378444890735413358006078819128521593632280843554174898065680187878518982568746036993015979592964011384240586700057332862895005079914863626850073571588565296735729657270268153228388183662813759217907785301284411289072117300299861011207098277319127583525410912354721319240814011916476731581091399568192742314713896269594543953960925291499453134178967942443052651908362823206176424423175536554802873253901433416890396445930174437949596940672145777253257862967682933917993908641782374741075943352890579684831234667794137080260695213395990418247159028491217731480547886951454511244484385384045548981693449426047494873773785259533432198986404050766940138117994961307750586953087694634979519069681162700473723800317999020849435369596018742912273469329197116860597584069798014762341871897473426706395354530984540351235399636991238050690403312091333677816453351639472673888746272114197673643749347067179014814234924020542056474265474944979074954419117092576359312775723101043842388794454102866244561526303197919214042512089687544481498515509298936182027590155118218608819906470809522206850618774029740960840553287403725300904828340563026562482784732444665941841659013486951962446116014011346639903518012851166696784025222606249217157166155806773346926987536096426664751120040861721692080349118615211391229866818212240249309567795622937432363302773298919955940821104986626082248589099018054538453139597445722312711755387713442666092378377890203354012945109168668296746146369528461759922911832863593098688630483316083864542686257688615871561372521952039615704955358299192731832371787204091537124800226138249813858391984913240089490240450663133538499893629503322685960225999088793177798294899627693559821347189161880202569692515768376780346963757090327258388138276586800224751850983837685767224183312655459526117815411257281278787642866420864859358932477015792888383723576097521955573725176340262531004526172203307559475481463493102064195442241436540663971214574999668692944989969167165709177425544944024750857441614195140286334869119398032824568371341879748118057090444847829836299286193880089405405761028952933229314419163880732033079979204172377578823404594127397628733188243631183966964218894096478304547925160570952309063595938800541218084442383229540236440418333862911960890105495619533529961270794332080807546491265009865079235110642682967419871260672459398802304959938044290843074504742791187530397789428448444238142269871401130317847551114189514339344314804357220539680904750777142749560032051308590799755024251536056220950538924804232907515498088737790814236588086174324921550285279509562515662459849355971857652722379054019553031861360771152664742861543785843119761532458480507916566789865951744148792937068178502266632322838653951555680907098003912278624208903383214241885200226255387556502336583311775325944279274582373680857988737795047478678091900334191800881103471471703610152651496453717814120587351373263190455474524173790674875976829094092207507473192271883780177389909963376865403900482071621872227536728977595991947316072878690598114077683666109899241136115247830810796079233399012750538024639328348991010986808194787564707598746693379015867215909214449089996965938869321314675513616236222798609111658190284287400324724391810447173581026968569093340351897152817539451532143827536069822222985244169339571848027007309861395167003292676616884761684212066710092388922552559355967393650654886940217790832770993819408749290290735020867223560561924666867165866549619229366976050936967503128657748175583852860222433955416094903039277280801241267767224093709485604701278823857611839969794037907908497930356223759351710194530318235826805600228853709155547440641697448536463418717077036714818833057554225183992583818645276514375107907465250120254099029094749269412740831440439449542682264031108593908392891615010044241870887339766659080377921529844287778418917821215012490272889151916878934027577372947127274328199278765091624391807927361530582028190669685993946745240179737693632570863048372078430981675834762780922630002631345253325598517343880914676336047647894954927405163373482857303725381549283138245812594576352901516829687517322136268801258319884215804258109909744668038445146635799360422900921273645126404969327119411208398816082214970732257118174683861831501414120212569268992740621376432383603538662080139315868618723231701593036765347561898035393035505856159275978848212494376291896467847613163158352851017203018542465995102886712716152606331114662462536943159136515164906155153874887284628578655520115730432436105090088685558317375229772685274946048597249440664205122736857750605701513241990611585910087230713386649029079761527675384200749398578538631627044585016987128699854311620175371752424461517689959811950196220409575482993540721038457021779397951105025114878740785869855115992941473460696717492479127431515862198006608050474303885249245841412268547548338335920067010148219498591432024971459483172762926286303988784504841124353270012345209851746212646751285583091818480539321737652866941334286069727738761511850997382596170494847469191829506253826258440377033978627314465671601646159653767727788926136836436246144210602081272614913581208503288718535053067113947070245829817058036282308651140939877738728601282948914759608317374862371832431766478058016315062226702624712360918194154114991433364671593709254818293147793986503162235267718686912359044192667385481340682481463371885725460660385381424936591398716219565838972689683148183531449401001101135446249196963953861179536898746819813877962238722700321099349046320224972023301290006737739272717279270115896357006703438567928752470246268833480389728985000341100494072874112793159344492719831802996852650214463211976594066656511666465401357612931232923918400463448313685220347436480377592141057141524751644178332916189053718369190411515237857868886867134775761477813757441828548224684298254191517611408261055025712644828762302563565535991908300618854148175472059372745539176245688999121834009145681111921512881435492542068364048053687664120984694250015082303120951021849347146539907707793678596193548602635378654888047020224228506271405888639636598981969839676157194638357053676743862582019862101247733902332500302455595320323597695566852678330256129034337985496289659567572931633322539526606170484621665596891011690471900359971140512480423160721020702710637941577703639285074640967542888853790207589410577987226887634659606443888987704516313028073882699061394602751923597973030577006413246977723200936967648589770106186882563504022267976251007958879411967801377363219301020396881632774087229969781717437392001261150780488231993024764153069552347051790336418373514028949328067520792934724057440757205419079693655658089858587519545270043900487882747566706246112143551629829539150521164115559939717044659313051923827390258185884293378756326577371677024716639744914644245562863507064952280018825937964075509715092869517872112990435215370365930536201380354454542307513800964751006853566624978113910978518116490918032086380363800253399568017674565434884402262771216394644001672565735271150886445257375576032246519441012858134575551533325478365108218314908194371923245183244385494807869050479111261176344054148229223378860086628101617431971814414863675569838541128509764157556518194122276572472734128263670521971484087743912797241821402579112961683122774473779455582942863326734331249063489231071930838607176618639566141039137884960354172615544287975880592087836422777843697933885232660246603589867118795511381747202076828278006090905566968382049503903492160960253227260014881727186297438817332795611617106908231502590942488182535028029994715340058902156237839322875909045717973336620701780274271539709164481856218705994496060366402178424905638192867996789410920472353602553035192974549775361839905972316124646539730350419270816232792968645950301403968958892402103383915987049185515301723843374002719771958415459787011392465632831648377089743076459310891999367784518968203210477382764348336356952322039683983353970388092548455489058825978314919063460684353891017832949977297366493926543749727244073979415496338242307916215323141720532518989705235904269971704543042998544058588289712895825876337999847215644290707286226864049953551773538487769347418248264793268711288936510722183915492115112198325823922868568136245752688415649806387316613145115278047161558396130569534431516794318080390283469640340978648274321693257478302736273219781214865438055605624611065339869289817187417172977652582902479254763174036937984597954717813412798386210289479489445221947296592040816352960284546292408273663892632127293059633735502626745573476422078843134091705548712608708932760453926821155751089539447856703695513746468204264658188842382284715109748051433319046454367897308538160942655286616638566309176845962177218810205876986033385777124274589049458972239275514758831868739277480928135992866276568872603853310897413491332307620162733266868311429468428173512987848180899360371395118426829495135174469627857936069830355504975844294529814775564777500993772996393442868353871951390618701602578643903792280266136480384780126204146626630980139761124328959041495415565067507879957208165751711579945190367037072245888880958856974932448439721362900653834877920275048114140384545697702519658021060226781496090741354076095098393059513281989935267683372000276001328846538870007987533691491592808755999827258337396509611378885071312982110675972170220998307188848581794054287860637408125459214553762305825310939325526226545312238648169466642896342592972705652640579256842518763416571114778525778157621034268830138189926199450428856843892836834410308812782116742302866179076909395511536160571593160462461381260372878978350032360887692239998308102475155394034430579219576886368454258086741283365171560786466050047417702300843861106319636504456494824564888507539454996534215525745342721536004620928451455966374675782406432216885239382071002259735777021395349375397691473043267930603499807893958406404000807582621802156128121965674443999868239101668687051387195567145951591604123086299453007128177770059961475160952616663974434589493844261614492551348970689740110918458647607641230462779242687335686709673507080916307684434210964695151308571370460519396663249052922018958211900749391348137202029073100476270497102056163638212932694546508837946960689701011814995095193928475669048938519715093436824772768716958257863998237504818998558069447844709388654848428221860276914960596062422976698861134188146744111621356826150022614096016151475135576251245923332688034362230559356647949484808682166681303553525410378490780170262655713597667297249814102063808048980803403754765617623020447023615003334258736170116161050089747350798099828372340161285769972197150891495476009736822354454806741593305066539543951789009953280847157459502220876154435593726280557769944798583598712938505422663498183059930221543929301866134217350440730150105456588815222748261236361684827706795501556599223306569368183281491228489598993258335470171812908807536004178105488189772796660629380756254264216825650738658878635441860067781639350613138739677932872274772061471375974835539778409595933650216707364269039034815201084158204707641434352369454667756714439847989101255910447678677310196707001751024732018560671902040080916624440724756028482042606573943584000646238283778422473909396603242685554204668320198962126486452548436910543095818653214125345659787811740623204229888303315271561582968247625697260329185768572090491276173101153482829266303367352374869345173831056780013721030145231774754585950981763734763535806783077289600459910019287434293568596713024741122880683922729508134366050305676071354495997253703668981257239551507203362287361835807950604627089323475913069769316962409560127900136900747317991967492997626259217662602335216888982554461917960249504556155915394854406074917572335658228334010699544784165351555272103595092634067850464927757512483669857726916828304708781823951305494921562065628468872935434389324519967779777472119500384775962427057493652585786529400166772773975530443916191789918555185448514989361370127023576385368449546691593285728250676763384900127227846154414052606146350442117472945389453369920147915596688584098519368245665500194316285754884130284817145824336143448803567374184517396428063819804347192876771872790755846308380307204780982328998676385740578150606172514318452687390531515637252903539422125205021660076421648755319921151387103654222727422087208462640831315557138197712196237422564092140294996945802554620224555286050100925102495751269752041053301122845697138643599921397420052820338535595121921411389062157236585547987884992184168021033892190126448577840882684977277823691352451026180621783591330278745816584718600934817476682789694414741900600733215296513394870693899867739688112482766572135124545195744271104932215323541728544912766469392563195211592263727486258030047954090370369732652663106570887224922119743052488663841333233231274401279362697319450534533629000067875336731323519875743952793701218575297647802451770289160134623953622058388659138728600593698759641617111091244271662324067737288186788141275277513512149291493477072253380722438158731671024358765720041199187443160073216992362141164106118989010614865435766474310309100872344921781297023544547584633789439655277136335344338080531872747018016043445795314294889224431527898953766076936664075047005758030012895499640386749840024603632349454918616759447920660481261188852008649316004115027971177128374018143048898812859362807573445993326231034146394192563964485932536343757059737491679722327862388720153244738634694566794239534332659770502074206740192399750477540796368493023640395880334765417479869198723989243295726211559936020915648569177450892359833348934110915636692940174705319221077978874161552567965255023945741730966942153024905553944360606680292809380449284540099085273580035247961625873744122062275174578382868702495111554959769528657059455872748529339658906868741546366647769197967479675181567451304673162122233800652099067003155982522537804260396359187349026399810210854950381681883696378856916638468713287551851460331066578092620295675629243609899278207716198962855217791731664552553897256712090071211898449762447295789354390331812430597906174193999370175528481209982021225713287771833437408211971499891071181365331172147249746688879573311793566898482549451809342048363820493469794385353190790448309407677659855669483958369983860684617386895449877730045410017667719822738642026277325491634243273230012109733551994721457488469480000496587032958807702250811111160288867590384647118918862098875154166246187551038166419521493607670391689059732986102320449538029689759246889306975160680486180081776177554643343856421577956862940570833763899552119430972250973722123251524952940048079909497884849387498773479192427293920716962160735546327094427448287583106008148387856605415856575960163782261702454285147698344471962567912614794100009256994729416622722770359859354921535554091771036938670915302992995493611393454039526151518600611238410985457815667856471539297505937047099261679230653396725758919872640428938002741621587855716938464346211958559899391935139893711990066292326618302807218497923541702848970931733051291833375758628028607653474390439438537527824272328912515572563158539890078947359598631664718391358667605855372680204793137030010456493804226634559185949126967907457487787492812033812853128268359041509512295608950669394248901480141986615297918455224191863399339752346798393597865949803196581172354826717761774188182209179466925660594193735215478473564746730513380568014840013736472967668147323516831536176913762324024284426612239273976813967099723811628057106951928348435498005038164950194598066217632127027514876166023465938043645157345341301913613832010801349484316041030962705427160877030541235007878173115609380706533010289539013792006536707541593476868484684229469636785771302731812195656358906994392900346913981839469341289054000120444254273264893558648369853603794139226873372971521049116960073518550772303297735842482846430167448549758503193575168568264609575884917683478252438707565766354253288684243925155427029150017408845593899092343751382916660322724810742883375188651486015189549003460646236575395910262248896731540347080315994328347356734364911149436241590862947763201408195440139910582188786001971158996784156405220382528248330873724659014933777233444237001126361715701046978442548276909676721172883460057599393783264155473639098775210392584480717895563407411979624028592783145037738454174767135319563350876365455743189805716645370642122191552664388843023143119018222051179717587746334211137074749104816262988893669145475958168316181885062188584478690408119022838359395626393464602359402574859580492687157666967913821984451012839652553813304578137508074864708608351485499383490999448462112617396913417088767637296345246149536674258011539080102316165369076503903051833561618280456556899856128669554327287790249423233973516163174632725682355688481175591842781875234603843097318494040779111432068598061410337169462312733362820221203795912674098341196676358748791314017984839024170749835593323469906801332091558674591541196715951200780026175964298599236065869678749702050577335818060166899612107693019149414639050899414145405405850828597811410849095406426554078406061847044902749708631371075441102912552825287754193713374092635913865857986108502348282843586754644724692294027561660633108474869636128871162824018969379978056758411645974231708494706604461852385360855073769251008791277632484016537658104067574263667272253381667806410878827622574210486674727293306969330492492460404811162371784436732051429059047691965520370687620182171926464279419484966326972786014744402171173078719513668422323425747565344952375551163329211205533733547131258365219178268075210543935622646763966940776136669740187796836722276297957596821821924456303139823885228631116082491655784597744271860647252428797874346376520174414377382151034867667595464861606296418333171248920115885753800228413235845582124018435509058027807827759928809246786358175741027102010726027500494170986619527235103345314771585663037675312190906163555816577627725478619527655157142959895339500449258571741273387307722930016659270278496099596530514442283812291154508264346451058401716492742380299846446511513739866373783255019152525255995815198799671474738370701706715566720585755563264360993116549426524483162874945087566517251755395007329102188650231652348324196367943076975140651482751561284368953228539241138767674124273744663922547404103480323645394644908292727146790240942497820642267707325755744807438543561501971687532729723865413808140972865798888494402043059401766558446965792852647378130417965521376150935510279381597736397511893362935451391585624773460343584134518721205448066279800320374564573283241340399376465036054249284058899448285847758105430935618500251023364198120783808294252894747367720399862234423813274688569366132961670120335649284157795616086961314095679404846689591487710866363463565070609100262507943632217671230767972215790379391587786044197521409538158804614858687929171515859138027566749644552550770016975631448392741716206600088842369672778863748097059389425176018305568140836980709304460347658181584603418436671958861817968150989519895780382275840692476673882372716251802793305278475811367142898358334146626307746243192661211959865604619818634782928484454369971943926738146626133304535542111947531967011983545052599699385894079124793288622318115583190437502570345970239261506803247951747715330687854333792856186499098886700502880137081280424921818884731908469898861974189928108943772108421710846335183311358485100425740410012969774688149613405122919130392511113467023996378133821254877375856068375684906029439247283282488816651018767170406125189385654984092250930914121722364992749854894076333492397059553001470741279245266420621064304727368213826919003817588758127111403245549631415981812327220402487070307013044280723528839024383680960289720389753934310586293181382320039115133176391009922776865551461324092592706142320719666667351418411551944847888857020229956984418192414257500510419742812179178855842218179424619228699397300160413763136249656462001823179028863135483135424998971495430205731830952592445850164738877271824388635524508315873571036725686685984866203550953563481819842825443704484136941155731413183343428835774274682725773516409257913329059313237831630901689563727725903433632564066801437355906155434398364627198719566084793907552725268043193709312485428627913468225011838818189531901615216058689046697116377079442254602566661201515510250085364242423095892653685646399554501209695116189170431531076070462304732351232414862721303021259760202083552162016532215926881305557136344530814416249041017725557707858661830646294191556899490278925627079798743004978037257139385029901254008237625387150859350386480458296494513204058371521984364754089274549130234520736970903243248305142156667406620361727222565240217598205316245234959468012072403068101133550097719431737457214435575788649111461257576810575183935233327778620312311058805172302481935431131391059589623587479626672315199525992499291479805235345661440078697280190784925429795155809563057764229983090539974831299615632806291654166146095826386577592277201616798400312374963187291603451529152278018011949400033933544459972815897107732378355290822614865747955517573142417434963325688550335450275096090372400723160305142528075380869635958783168611027681192965800792298576042972125346088922724591254242556180887613313647038129374716758549729934054261983435228516983086420125983626544811219091581211402458693238654563746058334181154397846189133781159762552195419942773423082592741434082089087719277335053591219063465769790294302836752409483556042377744197180424024499956974084914061608798507302598479177888270409075818350538997513592824920338783310940096784065653319515937076422583288828218903523319117851390816146444279861560818960436703775166684701749562594767562933751613837319739174690190861068425150725245493860739696984373741915335154045887101517373236027967121605174636043545368393446651002852933449409346289673548847748312564504422040760919715677670693036579511325598245815909434443967815869066247098816129298225881695621998685094252083282184424923249606266434681879195923044403605000287272180102314366715121047112183433474010445029248429997816247247598506995289671512105146194899533470825336367952862781830076502704468162259026112837111833834797438039436377574956093108589013294285834611166108989712559645603939732495343726373301274671115925647095146533301080394631687414827215582806368523200128575328999688337594422300714853603689468460955944806648388914187875046325064337745546567887786279618282449075781841913384262427531785390167591758428538618317760345988521236478426577821695002741543764940182600774097638646256368602782408542006728520156196382316133678469685414272779328866594608994705012347610646496432799988257395175225154148876436867371320598380695847363315748541527939691713508976034186633738353740705638105848731580228427745532574759989963220054719493218819179375998962171632835480003875006449043016485121442852227666459430082058161038635010782460200245609483726318889940942290239236444130310233651661214693338458838957681132128907693937101428242128849581930591563866590791524299913789288771810591436323620022850407311250784468320958768604818901305329148433908968384993882013306971525437404258205671300195740108688529140530187497492290536262986348667397185742208383730866563993150580815235425246969369606264692121634756710705360285749532523592837032266907211693380502683758195007694616952351564477880498337197239501285732215266233160436265522192610157992797270126487703963134997095274717601384089882125339072681504570725248248272873750040453353193438863713405039128656738648248006186635824129166824765841286976795904734944213591405212632567860203620911999425176698120406984600951749185833027864599882443130497405640643377525890858159379146127888081105536285928987099952313531534406335161088188995305071693628044628900290648905542743293943752070483105875667256066515221514417446862744572349478266948662288419487534493964583016938902073123438528993123930268897900977638345361812143852140844515888988449874268012276444862705753393303094658207988762713735833715582166856374091062963081539985460980729979206492964792386309612648968287687342865320445011650934961745802397213762777580259610480663559725312133252606268830464509195151416404522318153142955754852621920189030632432744901849993091177861967896279531575767593093254633819766921085742441469995810035383840705950868650525392330894206137585052670151135983799319637993134382039180222401617247776417477260568070649979822878454446600340642155849819166313066268510459011215484589177867204801518398807025199748278731673695864401671009555049460145839393705123916754630435581029394774750674698450302788320203784091699401372795963578085101201375433141645898813059976007096889956291404716377208592056042954641331521042090623499485389911386463316971268932577038281560038329865875886011538525993037536288593544086129727847856345584985586773358381622306491800771294789588442732307579003330199384585583504009402303442577215665916766206189260585177175577015024707392117205490058375653788098262896168729509414937858447397810136191006099377845517473647827122741204629312890319931138073622087534795763645283001800382640014809832925136672805038684030221677015896445650371547322175067017008441261139080110965810236283088452719404619780069659048203464962867922210908205301405951830664760977013131091505204922865378899820635553673541691325066108321984435224742059366139933915661803381971818519917142443945985013874735357583349265635951584648806322750714919159636451906614300256858212034819964375448999375912616490552386571603463143165860936724824830373223446033963655275134342207704310769169179891294332577385901756933254451652106827147519305042016984461353887822469758413438380021299233649275714754930900858260599217281084132138023884512622045915369418777799274494656320481047193792393488440549623553681549771699534409847943250356676498312516272360463540862413853550031247469632270015203045868258933001159283064453140139810274056085459716594564759492211591484293425515365572263785280978134907555828647863124891030590159588808574269036560426372899731315372254408384550128693145972189493755996416976382271179240656830184342053724079969485299280122370741821373892816151509547925482763859300370019445404402841517955897066433990649272240231681418816493167173569182277779322837186998521793662008837941877844586224006198452952848282114607564561118941673924373172459409059907325125590749263648804095859165594804327183370208966891920474175267424267268449982064485830725828964592245973282316486843105574837584666570563709842724599669806167983802692498422208532357454087609916426082640731529358963216711945161467217154359887146597582895582955426552816280623146208932276884726697939696725049957222876017989999894025579497971003995647818480629357996007086371417543269405325613801730001411556402910602328774824685851197283047998643699853221704423512483767888908812940532427061848338531411372987964484552800768971763780021941254306070226845991248324306505040173154569404933876396316530806051579976706311481933806651856882699780650388453845288487245852392728879244146856883177942209477206586027475636408686455627576819198184799614821224135116761930908348408029007511451059419468715036095508972026889939744229635943697811738072527259147708256146993064350686005482930443116008323008428857507495844960723354261823067266359429473607127521766397584830658824899360309538350768232426580509117136546212771787920248450402161648764259665035083587594788144626938104295560983447940840543507995145245617847699492727867312378741718959324093387854493350358694700892511929276202211068842150270956731589636999009789795657919192798032053554378939681352660921245372352627527237689954088485590354271868138874229545548545387436560450619724683279061339601297538336392221474049498077426504149683862445117620707322371067802551331350403244008154634936824125600049282074190866293808256684160314335580630195234455840123319668923144737186325410585984680578653435849477851181663049977420584557702831205183100855585486338372368354188967590735079462741979033359892057978391154956091815777295714023421120988892333481124718266939391813488993358615437430822187091138156120153857960542503376775137357421664675936033522509053605623086801949077715028338284073043504428678348934603822317408204977061406339537144909555852113487026209593569485733272188191069926922093584651209758713793919866262620690400813398177746756625194621649423204764185744941310888633195982744146099319823212402743352719226869360161978495616336024163340044458292574919118221729666939426094580281794245520799870572704660467653614685405558469360445261670999395133388027338772425204845695105912838925795789547741313168295966144548885824885340495672062241382713777281057166069892129314360022147360280263484109728244477343291487614979822106676234896097652391039446241052811937770616409830958994773796359792724612745317611154659991683010969988082269250727236305257389285402352942716196198793807124367549783656056426122365716731760270061714298079573294029916112397904210231650375070054611219111956196291178999227485357823945597768615206895842622506094167884569359168260087402430950252156426585112060020561892035999059796810647415657579044232924038164633943988964148375358755433430179664202392433602915501571117553363557126976732485500420388011258457899776637596366549976580053348034644564315800403735752715658531359729082008608837151664994020609424878398597098741918296608279042813154273673372019181256634381917325014499557652822125804056192265540169580438825694401840891660500801744247248270860445121483209883969026658335768011859650840297785553941743908072159632542215644784553545161139366547301353320855043078572540927411664385089066220033171554179896854659380633482064820251089159561470504789093181211749423455579355482001419334172704561200828792290445013103990555536318956827566732041725724624841404383554309601540399033204627336957338347032864517049651066028744412792777232675043511889075861586019798168246815130403149625344943019852439749843296432768947814899380045338947810104618801870302857923787232982392089557455883788426924017982026432788632274928790273474494671249968586934422415901450380917958979607905160937177520587877807601504792442895936196980287971257010530398473015477763265199790788968652191115195759113638796291325144658596628368178043123628926053721210832805212162024959913304341457382327782016182816450417483885397491699424879159425978885444753872580339725553207454936736966097602055469713105555226240848070661457827679833841120577013536661343456112264935583505889723965757903959566379788137911666775101844478639002616149481057971135210395410311580796367093961621927776730017084644276523908592087712252202462559330224535124221371541959201590418217541456624481745295774461788026368955504831944375164144219327919182108566387462763274401171210833042302519669928896400059797373741625217694767297476515486787492457514558549655228318044547938926614882858449819615515849649121881780317662920435016704246139130352673614350812521649142004225351344372128610779765273272550387723473888534014590659936376116150417912395675001858190512194810199971414260172090070776130827484129281660123073204223784733504980032689026802590814537206275289053518456165465101071197737427430721514670960473304762955062277876970456337501665129016828635446955509209988853716469646316856548225959514137723675541226203369061442458689917798303107322376549940427041364336574096086017586236539788552857101089010200351174698140460853214400731714199120300449194604343331218082541174994847525524484520474585489006458658725858777987408819609029369775380133758890155770228029512111751861011604596778627886489519463763373933976923418403676248011567267846635469073022830699629117485123998478655272998935978624206961921889853962011678503456847022487788282521029024550429588216975298527252576927175881271389447837026190828435957292272689128134691066632972478189967706635100609493171881773753883531078937183262349409425476263016865731197948839815562444794260339011895170502008009182975806872331790630095508386922420775703497900076575614523514262962854649123325496774079966233385470320324740564086984597201850625619630870602405421748921177611711460463543610861921085490912707098827723771821720548076817109322548752750125852937141780304879227193226055394848770258297329432521940562628931552160682249451401325452557763996859575502325290784231391210599111781794409411828861463682704379205169235800406049177869109189998117974436893487792903277726301037641990826348512268774577633134083680169578377311763284359645652595305919676221460222588905078412025524005018906025741297215229993074307684907337560281242671388890626146938206949191240767783368932234584583589771311471239150702807018903412967743910336088656058794587889078265668932930959932804575882547635012981769771723276541644029983376646538736774922092597390719323373747603545521427913106770218403364791287123012088931181443080963251271022018394233489575280170229949913218211076912961111014621907853232372298371056051792458130481767470624906801178335233087289207560524872055567131245103901583828750759316309488318186151107992638905697300862110524079188155258759011462465333490982830630549704024977045540134082157450367414714731932453025556148459451974537768084975999269442017032124223046157573014772968122480289927688072589382587956376422781084878743806019995429782623918561505886542143421594229745067338945731484279666463258618192617138771869457248706781129357378497011280354773635262655481524925932466792196280745002717962089519595014879050367054170148230922752254482380319294990590849424745994459203439191177081369278163363886811399102239673230291731994728435579890837444489938316821503383089245479817006815637264175103352566958540386695027995241667795547784991354816360848492385203715843529659652445061037375809600270418648420466145600783579108923049858073311130193955981884841528348738638533286368286912652868548381812622778502581343362688814146250510880591773302237662501132070130740152327716133070197008962852141784846310914902237387007490076446160027656454134866519927225630510526237767286710913207952435208216088620818218209814275316980066769423022504439780147009944079395131829207717868523560889767457927372615906293686764037479467544487241727359426260107905242657156616735449096264509808203437612009084565943359148133902119498564409008211082901906433109974395323336100795441443441268259521294779622680418478573155922056402643716696893932477719940131232771201452544362652051119939273800191513985661042878601990332953181563759916692270398376516524523632133282121194074927468344176912501151740894690760552746141984975161987165684867592275718596898099556436758991412401162012975586530965593203582298328165889065026664280839474084459871615684668446442455529346567424977082397864683873746434441843116738237140359753548134017608047632313046101185434591489905948815480632647289309114548141311861313337148446259716666459839747641517237726431863153344858123236354973378839552533382699326563101911135949400794089077713835432674573874676346950149167456159118165919575268709638675681787887280530820706158337434128819737038965351516194148844930563707152002630272657330424535457841782743150639695710919406132965316177844559670938183844509457587805647138554401133080187375008613009141733760067448366466117493700833279683748569692838624279504461611782907964762002822059465243328439137220657757521977025629735630924147124880758739526783254865152670291175958260721413440567351627333087830588464347827381224462103511381803525858825964032537453448925561759349482483682147125364803830149262326430799277660524375943275968292492946584651137136561582664056290298729221886176328031271935120783391010135056493017713528060203516734541995764800854965884746581313960645552522414934201562933135792891793221990641014061852789326760944854488703200271739253381042537003465309152261233599606736691117791817891296558366234447851710024795079196300275400242335865333691114440475913066354228692889539578443611994662541157293289629340839572273645044993038004870864850599984406669978790813718852872361724319711627685597626186976483753804062566588536249661563601603752424261072300782105039134467356842553938397008494283343119171474396463382766309207508908462076426963155123071612279243784967132102164499552560099942462629835726954560218204550031827130453508318627174439212517363875717829821706826328428758044522680105114367431355199548732641504780655455137709542985570262483824847082037617424808065161528408932748030858683242145720828501843031620275666412444668289268592497808828527348395048839550856290547667940686563351523716992602640318217047028541691977967848309862891780928987332655196527369091266868690919060368021776315719407896920196177203207215013436818447357287353241548985774236052909838859689899238384092504992605080816624603229546277857890567153832816224597110327154070844534144971562801761099161083822675545786309250650026858694936792150328141059534445809486667152379333714653186032085656103893053898479276974782320049961253629247156198943239668461748572497987190280685585560803390060015730347880708165131201095255163646000400925595020182729977886026092941436265977417082049907013887206717069626942231936175902969160738213732533114921840507414628591172204664445493029690063470367018531626098904269864504200458526223146805228406949887219586078356091811162780065774112924900787459063676289801970529860285669218368212751384147587686654343888210520214145237525562529746358057406945975289868436089963986993088682069353983470516501789974491257170775966671141517918881812467342814620266285562434744230239384972732790588458043684677468605571527395095698295425889709406539597185130690973296904888556219295544730071766864300125197201154472505773036431884205696709900765881658589799973544432828545958730960604231244967434629993404730620529424794590769158109666654320964014963019721441297012620496279918306220819997789401823887129757000841152036537102197118642084413133725036452443908006720667654912088197832142818885979778002020436881579994336318026274315132007723284360224313890031451946558167096941084873039613319872632073839582327748933744763207333327281677031477746023802046551519251671832069792831888490135446062503385030817680811495062675325513381748159225389985218044957943309932440763704728995151373464206410686696317175400323659367661999586419892237185611740785032017409650351382172571181221822072512715829559072550501314303999697939934434947069142756795330367715565351685633798456797233510435123461468371463985346091608116337720788849883319743789472749597151815667909553332256421496815409278919288207883658487219929110782715958190874595226236602116111289133731962805621616309486775243328541187470934204982248691749390411778706878658642611763529859360349414387244314546454892563139444331968641481784522568804244445470526751494416022046848481336022896209725609665717726275040426966776914082348137054914644513919896522072609028653354324517208773323651699888659521636762346000306497699179658412696870913267321409481271320021506498020321962348365062324883445580821869916586647479817103063820432836218210017061322940030434451403287748833433306304262540923068433649920241832874297189733856999949345132181180286049789920840963298940931702410918979128892689159503416066752941856865620683172178316945093314675428482675518972269148051593101102559154196326393864485470223642495028092299757095285774644649819280206323378597584767421226828940172461982587046824346776886215169798353405249620374990889754402107261631459833430503344417096738815166784283954253062096240207975230184194519343571271043828448072780368842143458838283404941569883890042871877295704030226603564608788435463385173474614589795263683874074983902534055778446986583476836619260620047778338342721339703371513855663569565835204431299258613834557839214396175620213220796304744850899124929799381023280727037945050848489947592486315299503173651354005188556340715487631090981618980146048584628904337186810447451167775818735815520047646942634345807965216338506570091765667372908136603779763138833264017293119306446418493322046056751606707554109021988008677846236027040024803879631790729139114693601797169883969930316414202137474520661514889612387310055234972778755782739926095624781503165743638322019699146750331684465964125836650896301462801647073150539812708240552086786137578320311487238904223626059912371208356076592667174046799867320333386983917337854587288813851965842624224925131708103148114163983403286818246458184238452071161596848312447308356607634683339807051458025093500835411980294795490313490613210614537871137035547353547274017500869128257162852508235997076242426227395810001835580994298249821320380282050619431743949031039388975013649900944386727742659754750287322646071754501627499217699260910965978801892731695326108113333340281745078685020034450041193945743211895308449581138963128954508435201368495128716719343764611537548354815372150414040205519502148928115203911591561822840209978273060619205161009358278455753197257510550870453185563158542259860394856949618298367685806814553189493276995719573709985992747725299055382806196252526824545923695703561415438316209216407467382629301362697569695937109192799099193133830386055816652410456143806421159570803924804759277118305811145049157389477315583852351497889157010383624203053811502390577663210272840717011647239897505434182825612987264160873664317890774079090804793406221700495937577288648515130071770063067917696059300266059226558780979532630049606044477111628650452285093011208787259921220123843320200870117250213865494949761260830140155286363507695720878936756551034772010239153184019683786130802238224069304407997274235924569183248584014889305121153145787885199445359295379442499250155797599407092149995504060017800891505857141720593792689020210460962182186133459884098496614114980894818849950479715755124859494289550179676693852067185321854423917028980770921671751626389213850834566625627734155683404654050737163191745178485752734815484999065161903528211789911663471114409018017116412775526171765669534132597573165020187799343198857408826204834995289513655866472206968081228902263267678419587883313711522048393365065718715466307723113880419076654144673720928929711584890089354345120298003526396462374033110896790879047973948488117969329881728733015064841330985281629663087690670595567861006684589088608202060402692840239638565729716319946899717480814121240818189946109049661150899523133175529976547871849633539368725498824670581299123593272347663699695852282327237333911210464568714938609813151591243219529693378764605045788200255595117462226840409666919345026012930932512071214643735435503159539497779823055892896125353908378133200556491148248218848123915617776976297261066566897215404054002772367768410402833156546823032422645599321179710149799466014042931177695202312204913344828358154373219050472787400715661606284555397319293793663136755338921500688623689368028202945898556255956339875432409415091683302369830184777743086551638653921781815225751738757870735791679142169400738271596590034986565888858227863507797131514047184003976461267325082050292146069483572921426183144254095728092122713908019772908894744647460524602031686625246130260378195231921508634563046595730136948979727926046832852032738271827717044906399747022313668993453995855645686118941177201281607064723358168349757493401028709811847685792831138289385575311329900425051504983649436252543104379923998549662573478962137552096690340816583543249647311058228579756980228055034980468639961879063905235885379013710904720117275280791869116460909560496788526416486921772256709487574631455571664056853472298652832495310765825510100376926626356416555653524543027102015553756763343343592133544811987544974820128274485399275027147385272354124337408007780726696762571201302690219041235286822744542257893532267427515611858281740117663302384141369929686637209218733925823146348154109885906154863494098136865596752225361496745999474187017951482909963036936218151016766194177959177830998553430958809381191126422515540528448566575656791582776767397599797897209706096929993026514361799329960040531777074400669145781609580751057653916206297855944623167255597326068108470772986212864999908501897438657291885628205076228477490778964303186302127386971763214895471522735082832052633210981825442691416944734390236783694753122184679138351104972666679166656707447124084646831628845429932987996435748920724357597930561726961353534481124586535547337200351020870266163084377402868150876413196744918343260902767358428385357656897660912946057276922658563369283206155521784110637698566757908203501530731624564006172391534474738379942671087822754890851816566478070624177241513485677465815150989597355517626253433513807403720236620113674371194684745987752012321579898187579700408951823466087931696387662627497343110741275235081482475612517468904008893223188924048106538630529809701985575937436540646566274548255516375636452819147068810360846625280186691055132366848422093181832345070432435237912548023303235343939074182950616266706295158004023271826122809012840828694530422683849504694536064426211407912214821847223233965233050069449125754514225680129787597860206532449621924758365282784234838037986008087659999308103526687020826262529015570977386135385899591778503516301338587724607213228034217224510845443674964031638960669935128255008712661634299205380631383722737129451638551763789412671850067565679041184135128756993823796967012739643484867485614009010156503777215881982239346804911163743378661392273117689135496452976560251268361389993325037173406177844936840986105196717374941175924041819099163985309522836606125404282210342481065814940041031065131654853695258056225290351986359751032302943884376333832135937030762070467636325896033261358769885741805260123188887431370210221415968976804728644091153623800888279181701948351748325161155397233248581050974558819732963466794623173572271595550977415511189856702124807244629343947996627542149296172290411872409831354488581986449878955242055256599018132503713575555071169403066809793793383203742916014568577516454863739270846174770547466087411560823442776295313151552720148733443819556722520662983741433125500349510849930215621560433188937375333859205463562954746627452666703457697816718940835585754845674369364483888916218675076523898071424565482117271497712870729530037723199691495857381417610526230807678278073364535791231176216974845622703041415544372390392848204236214851737697156654136713982375923392663592952990034534007858858807874436383150426847184121459607260625555355185750920744567120999445058378602982544015464013739894003869992302720600192788484945345463915252652741316386011834558669817614115152320430731850726371906609743799067395420404203825991614730762432907634603338994850028664264220342601318033348945987609570574366117826548352259329840565921291147776865528814469312829291242955001766251817904548588154490840819587729866977554595040373290951858703980018348436828575937230745823969625184102762528684115592936485497586653914087972868147007196287484125555217192259537902732400938950127430688174913094797033748931692216380042070739559766873741507065150543488601296027134599474949764797856080893351189164618407140969906313403881833685335988224722455888546154081397238028905074247077000894431134843118717579148859380775921130612916514820710455671315722039303169892292344933706015030103083596537960412061868360319837977663906651845210675359382843679582604772930239878502937072495668913497772147868858543669278601351876760706195748527692129278514640773980718858612665072601960833043997200787052950523200842024076067080611727042923848535078005164377392084923690439315771815633389519576339742219174978367944852030566246940125913456327867121545016036152643895204618345215047943468558155899481583298571769179898437162740600622166665571753354523623859721634589333924511910797932666115884916581407880633108771558149454995656345998962936730344719403277083561728891016087906299865283986674938652472729402962740859096445956556075774539739441203189774744960662685960826595757084728735847691884438942719572988496440911946702864615346242953399220407661069235634173592113706555706885287285289883786837058398641510997417239887590502485153045471038191443910989238312815799397529357203337844525802759215531688622907560873985946522741670036128111450637854221272328938551380317217479454913885619101283537140197266788333348506699204234210503686149768862927007563393700467855721986268464180880630308444273321428007244258386060565088553970135714340854538751038580961448312083593354675190146743896623687265027141862576073844355659627598601887152525041388467830339523161342618720820043002864940945833129420139960333659922814381553523249405381372074730212178504808099529020478220841267028080506610635335004032378179861727173634435968538887492049595059524021497956757603011231157047741477829990877890009361190750125429255168437347820530618999629017657979404282384083732150941669315267823455148465700488639212166744642496759743229167114964580076699625888955560926865274099644845745602742816788296894040429123803749951684069796982844498218696359993611334996570658975014923811506654196053392047853775043068042985830643377808302949797287392566518618747406288920295071106273274648997923843920213503224060981461003484251622226308642601310890382696052526522579855267214924783885604739201926756615360360751919255567247392415359121061947269396842898271377182477474733669625371119020737048994934084602712893237591446026486357715889463827059744284131573154822114756410994051793530041420428179622090486716132138412320280210519518386096684137089743341647457359789790305547865298698778845555580554009669727296564629061789009302838773609963442177593394293537086972350303271878665886365390301011446640990318769853931275793886194271788680383246097983998069669867642228087054743867612068296205786174392238023646612024803668063014883987304822736520469497619058518021285937576464089650512321463896314382067152776941699940922789906774008089477767545201645201592182160840153987613761865263864217001584522977265624745752498523574265507577712099439597046962894238794527976833763488532030663250954173854828801351909835423384855507262525715491383877485546059901724447291562956644173775924538788796669716154880462859162882038502453656245596070454893226135715289477114688590248604573499333673876479240788501808919841573021332746787287806710365605213217386776888248051504019034504019121353256009442489667235604531250545881380623372253683462211138798670130812399950475525680375891027051397153967879180069299394842426797641121737360929263853395180480983067564432853470232006495428201433781243581200314171521343722599373199716637997331180197723999668349116473880758619390480835636819814067361688835892944987533728082935434451741420275796612455258744790413328294643167307608397733131216821954315445104402334333583902197675608848897057695418028104932135632093877904210917041885404565005555240237519113102640795735246198030672062520821824481172692927596858630808392205625289460174927046473266810319952537081871789526657844140520640800029806746248714392575500295695650237305006151413925166211174222894850098083512958067373072132699008484434737822454315555671120786763891644420134440633313030526326382780703763551148967505739424171532569244097486184754133774864125371804840248352257334386578863032743638821719877338414233415753556778388104516711184314699510743965231437595173684328233438067523347524538394349894218904572416930290973484969403384303854061157415479761421595721169835208293769000738054295578269206315422497998884300959932376280452667722780797415331139104855664447639165532942992917829599204301129994812852662066402734428686162134403200030159838922940897748389118964030259926342736436992056390371802375942720580314425823971180177043579492636011381160803567212395531168895046759006052633114522475414299836466581813078330994916075592832208430282597962984392556628340085009960973659618710112639223088701302476629285498150307188968680675145341573298142273980599528347512800611460543135963164777781071102566454748907679367563737820252145322890741051451645205086415842707477360058256913321361542691216873712397238703892939722256757443612871879224224670074750218065603929894550894728459917785237049243502364822905162959552167218231294416640983818687887987127495398720419933572302878015761123859445370230565166253213800442740047506040031986082845887835444280939546482775195866014597922150174098374258347138536830056208095180214572978372595944578829875958197618862720989945875556510133222437569789431569260841806703954445700359492091654479343934377428256367018526306566207847885811629911407590181165585620229454638576756696051931765208196463904514414459090235939822742650707707329118032945547880924169370051718067614588219645711811574761425992462214613083157234713781893331395451279709394087966803635149634376827992804922592238896163316142671858217996719464566960867913901583948582558658677256744690336404462193501932036434011626215261801841559071474649772048153603060570997096619574677291730362560808440260526846710687101945186866952709251696231235745254118141761963906201731835341440276690265482989756133856699485616207626229277889240019329486136114372436552261099404643436252144166477459256158667834668507837482165368123872483246036816217095037846659340293176292045268628984057929578543129930415570938114409004540059199850386557511780656193622036731651201252079448364165171010595697270104350451220560140203211326909424512458521655417537866664744713224387673606968571972502921797731845446766411662379903221984415013162999713383736765195504469875757559709349958641472860173103306408783297226292480472066833037522770451742724206354080995530426681684964802557495013279814571147865006984396653337554750278204322367035955636010986663218678014014276575967565848892870682524609582294716036584496174473110715784699047227047406950894180803383527545801358241890943868895076632612890415069709621221588412018062619957623879892484344262605086805943918646054714809682035737758849270735574563024625672377662642064841090915085925949048805454460715249642136820693608302276025139850278221376106959330873956663668918070057449972548991446830264969268403024726827730075743895706992013277058373751590370478452627483737135284052898276571868058686357115181660607709753251201783038946486995450150116511619376700499559339566182097527468784938813841261226715596295723948662810624807586329715307824301277842270004779985316126344210717977790628038327579632635521475079557602110344619967196720660799212629625945839997417960267894030592504979880344829689796493074508569426853839703160519901508280645065338444561830259255598203264666090797254004648442755411603370881978805598362282340360275397438475433952645763835639938183149119757216943524599464689603983842395685061423460128870655154052666273219450941393529321592606796935083665836470019312892313376477492690046814236689377458338645702052414877012923329214389878012222150630506313907473928499000664170889708618391124993607484789774230560593267055620197023506885689208403914908007184473660020732802369906833562851800269956622908484410028011051393555237853280757669646191790512544712290750226752377669799489537197343572521236992033040104638690535470555567595779061343025642138962998018814452460728576590752369147760368830274896014605207471328065241656005664746025644833734241311208833963806329075786751342879975180601895005054228474590346307304855268873106509448860427010402018075808070888657153529390898989933927305175316756144485547108972035701706341903116784798489557089383781760068085615690988513322252080170036437969944881064612429351144327841565614293334239270156250417160043291608423581628656309760083005112358993875750623177127022800844055130746623755051668112987361424012487891033972949121943619715416861495389980170123483624691256583927873065742476935270585871289085945259275046981730050860629500084747807054494554662059444972187019655621874244064493906443715840783612462837318003797802708276062999997849166044996501087584263379960544160519538403902553937360836835374478046697386260389693175242145131123965692979620573205154391670831408840859364553132311953530324175701160204856829218521935059690684503792755137899707632141580168530950603799126652825659844367863897181074573154714254032367753983241987089899246023100789364981296419387905359153892230213106944104562969771620241756727176007906841713823661883182026476522991021184022147793502389958340648058692795516315972483606965588838161405869447490267061836769966267530203349142045309637701544166896308813079005884674764162973234844292230594557919377622699630493599561357155454940642687461066807064101856164226220080472320591083342444891531348589564094133604182020302665316836265571402595169980520988133154788772354520461744238322672164745576013193364455706794999587018389549247937001177895612193227348901244834299758339598180535104189622860135219327283927999968307658837020978162550854312529839286864391027620908459531553183443691712948614700494238582985167824822748981727036609410762775598394381931114761288885590895243879075170295652193322060615641961801377428584778558916807173166013714164479667264265051197625611104794829135585417246766519815608823739306628792889289073023319358418636914866375761424358849820835560765800407770171366398991241598612239911878742111767782917301023754724401257807265153582165592616724697363684590363742210815032488695509626314040013994875876557065479296384857596758426564641196591184267865624969042716094886577978327225815429953578215617574240127215226656646476895206125946196289650115326620812716929164997226548573405663588430124535091679296063622760377724865350332172715264724642050318804391667211686996249378643069757003193712957741353128485229924236907431610947252058412801266974420389852389713143417820648496162423855486336552450872350597234470094550407411110898837163810306848799225446912607093212397121212340035026122369820656490910782787353129059746241057637351866748273632016475998153253077975154083511742770906168025896978830590404443938570252427389214986743559488836103007132730639329387974189163864505465823364682735316590348164286339313849857851430096156237680312387375563886915855306021907737245938412054875554678198078612032908816139824001451209916053926784289819626505623833130288033009899951157187262274313774169427578515265730038639035426393744358725754698260885044214249837943316774211557808713104091876058313760675705124347946140690466833457862703820131811929611407878123848875515967558176123151687596454920620085698004283852886520456652965204640701345785599405206783928682067310925250205653185661433276411404678026246583656673521811031756785394761519350230399264346306807535448050414035924901597676332996967845957953017723541071727587333450766881240240321286741961627329168534451254412708995295450674606537027517618972930738959963246790231046335496793007875216567647735466347258778678803124190559541787071592006553773458641043655409831596362956596101546933046224077846113625265504912164702108740499700134251773376436509277358832740109949954660265940966049029903832011391165027637068892433326760537481053149793553447797501657379410993823958283691831209725785548367947123962328288695652326347227298163483194601540562958220850100146057916111466094750432921535086350638052050217371734918773836421198155360112822768583724525448850989434927449336876553318435893547403571321602102994961446214658844913039592639202873135833526456091192830553368417638934293481139429428124600089593619888347909100645351936874047287795982047148290284843781397568487108619932089827568991816307233130155241051018478680798179840155470481355537658505233354946127857876400977584713192980471997755844461927670083108103417787349363801089763357857298199727648467762931875208375483006238287697277109598197996302015157819630535785221279560274785630533636712860015129185306068522388917409376958154235798137486527610487905764820261154923545412003889487879575911860758143652928822320108523177969043009862122458325868146989997768192632614208720950417713580500573211314271944766328831293570334661935860989102196518004008378375712631055984448404604579801259520637570556743942225303810511655218834955738561525443695456482019801396047781160481557662236822971260885840458206704062059210364955025962821057067660982192170167511761516954190402689804881522656991791129726333051018729261224563055405490095732929267391097004225618148442902935377996684387810025548509558097651731707764599323117595389039976465073434488440367405157758058377985931806073664468583544727701965703102829913195637952990390639808567537914606825257203918484868769409321327472739102979291312804549873483319573719464987539647502766711095402393146015254444956935458444123632210299758089818418494549628351601412956328723805349948560232753081952628795762254146478441503954018027536360839948199467606300562156128256697030176264462510220677575137441243277243508040999525132363876373100556428333651642585317499240711584400741214206411142186266360037772507942224639158910210639017258543906351561163137696834119207007734564746155798522234111039728522981543841582949916278403574945940983563504020898915753064888676743445694763557969332647466604198690810218675127119606399693548214735632905231904194847169909264293819220529872204189453152055189219481306668673150712235278442381261913308590207288381746335720087868980306477199970817791145021643808911560846986474221175496859113572877278231160671431077161401985636306602408509471044967723048009057707033897535086806120559366549535251306719674833098195816118979629147862933714635824835197781925238348226398162938926550287696522953199253994105943462708625126578834667714449834234217733990637381478774444168725637956156633002920419254441732784882859357340532521372029239718176058881549371152909873697098344382671633597005486061691269839973288046908018117008399442639633445885501290253457151718177540319776055039977984321179451887492340525950804396679743966003188899663601218557926122213190276493149777097304019657288838501340626907074457858558046694408049099856697276958601981151865803095323441627016488436272598745130626030253303274831110117889528125707941803238148714163269553312597933014365325251357553936170892455993073899754212728782719686001923351698304250871330044707320386278521131241787117932614828829298462863555108590802131798770396130984032079635927774537775917726704568940745261655887091933915572161473420845954726435915764473430384449330348563953015401339476084643868855125786941793215909166421010836701636197761651164221192060317949913940118488553884201088084870423815834364097172078333172384218573789655408851830574490825136896447684046350602197179630064757288944739718220678236856001224160550974354513037918508110445644143750862934573858711493001140901698224385469720272593939128134635725156493923337816323859935985048911408932181320120115882971879203431831432875737529422472294144909021271811134812836073859736219940417813201092867174704856453760935367164881906570264026972670101246866522418715805708520394173268313842686059129322702454439319999030825758729656549562675289540259976819820511761836709610805519983174091305086400721920481612846403861513600367064672372943951368586322581240509213568616760531723432494909642881303320995310514080547785878364884359710285510150393081743379847774920363458142732719199088709974620555905901515234113153100192987177891433988127038385012501152953447706983966360260714350073851031380710836379873849972385798144227307002244631277123836948348969984394382617488580261219178349907526185854915474060050600998160004027504662159420577899324684979146194297523821515000562692866228343930595324412046016871781519923273724286493045910815347338799986999639377819048385674892794425069868215260017107583633117503891907981330251843803961877284436757812032689093775223763834094774739993578297388168957073077106439998753757608711130220231954299071425889056786729120810344842942365719640926961631033214828996661381395813834628737047656315279366121512070851836177441728293107987476739110610914027311006046536894546418968740692760489767519053135891201958909983345564510798884007287887524936701528943310004400700189539695739180179489002060300037581826750490027871760197489952431136728372848274770241998665677568943091473097630873456477414944918459461538394691855382927506284329431348337276800495693580317074279946535591931691733569308265004108253114972591478175103985238306008348319045661689166315725300934676850146228120478959679194856883106442657305503803551675660102431163922274059710880423060139973148656760390453497407344807114379429839836540311498200299640045631352678630275812550929936422797191407227726390423546520911727311275706307527333994788675078844858656066914266892772003269639075064844312795328424054209144967800578270544066604713859429464446296077323131136924201082649948672990846806724802072830772214296911700865079137121405341375246189647016265740136793155829336209990891445293392779641500249428732273206364886624365228391742890162852075890930949765396312353825678192251206236135688049723533673659399643663380386319930749583474394836820677425789085090337686598334337242492506105987470465913212021047314531888574723628895761213712811418306326901432376422475907249940210212127925612948145437855165462165429001840660878614821599567892681798498756860720406405138455341524050695543556134225055956699653311757742712230799574657707252931246877849603487716192591203123881423851138717763363499556956841160546557051710276158022184373930116804961527142010404497825604219282005450642770099037255419857992828986163026241407241181685653610820471909318387172139837381240335953842325424550510159678899900226877253673571654949960361851904612320243442796235392977221724764275550898717335037495082179262440690764994700345132688685240086818108383431779585790801507880145706572397716264910942184297499503852885545863140439184311783304642385691394997130055060657495199966583825902961704103040728271769290539880382352563915154585361721644173253907143779018215808875912547828240061597785027816286486034717923614572141534439284921061688164685319302291928822174508757613394985026834391936801213131720627471430914823981499383824295567890389704091753492463261806926749582959386100706351173430860400666524326634882584891968098125806375433558232800840330697020091191238704020390893965794056219434054416670647199044192787313825859768408375860821947734464652602962801697074147154368816740425467932030442283906297291413688585633201994322098836825587938034787724120595994870379167208369234880637147349444019062940092855816204398202056607988190613618164617324982166010300777478872348889749305830952417192404266586856899081179999933169270519664616885864286102504047773977094300292299333054283675025770403017693671457227540040770492644545555141383108133193191186305505105210576300449675125835785354537625479184224925624911054164984278678789167673476339626411351028291917852214127696663911937161122881197019338930167336044239515837838470492400325312897674776078755439400763903912570488818109291713266108536063552803781383967267117841780337600541798585292457875891781166491703615372878109217627515582776856359069903432797152726717019852522087360348452894794634858430238536951423593453084920169423891482969547642675978489044554703125554612928573777016352210719189560761930034605670341332249548610443285141976143128111503411788162002169642395115861178718219197553173866830158103714347993475243282770168701857562483483280013701551515432177490294456299704783230845187690316462237797084269687738126250119853814858193748227409580782607103143390777874002512652090971898883962717327962656548831654943147489114748053154989140299367556833984550900871489221156901140272490268940175765337094461821471940028290514395992664464784998695187393303486273996278141298800110868614729065533079520321543063878768295143678068771793308141342778959359200694760177541872345926600478280303890056070577744636882311919599318428572578398909017740010122118019578061425243539011900934653304063767935810770594753132962915193736901713685726001323123798972052924926691907115381965052941163494690523229461421409086760816969444762862645399132641303766099733279323137092445549711745757431055598870556283293968472238002875323630194637758125325174920467036748311953777248378633783407667676772701896506898545317091185167960488054681782947180550195229986887622701686350349928582339301263138687125044620876082980837250826170445102124927419751742853285640211049435157327590318807794930803635729535612831564132753242180594121586530975212640762564725720421073197151887066343487729385959069479236926124265961287687620772000756062382126736134542119156655570059524851374726920575135088948376826843680989653574484099441250924222427100319477533802854086000029109188278634194257076632418541321578924332506482917630463552936952984738927277671339321796736572250883659017977474271272422436421822031006685132054302421439322638162578063746294467436946639203239499009202796713867362953788214456868173776101223409196387762477263011519855383876281421379317065772661949058289690174511815226568342092067641777894141613841735158931734715586544687094256778419270793999739752496900428451444628511556686206540597273125282163812057909986819691763670353256703933155029899934609996846901536433015765220109668026323607254624670873928934683857737466088370799349708461461275343085796621852868809265873772275379564898757868406722520193487920076483973830907309832561259621733620832866663552565525161099202702908452618908719607522990087262140565235730746920799611291167329083188165365432010215886470849927719079464404219314507018451716480442935548545455029597526330661595297650952464245229226966293605722306553145098599992278894031053557916245434321055220541131997434828909834169882904325474234551269401076650963291554601053806825050359091858942653248017327990908371581920233196165416020881551270144454383427091861764205142070602495818921415637484679863826266054884534993223115248662083382455528249368099524148475189992122838918710014074699499581960381222106742193559437197067407945368631977956157980987804083811590529735465951397166016539841794205875796824341418891913026954816660136028344893392732527985282033609436211576367509631223172728682748305342514321539019723156867172388034448764425416154503857779282546926399046667531693350652621106643937837766466834422480432470365551759388976198484737332605544832019030975087963934725378237066985054584055769983997137105347391007130777838132515339294425490685787019419675850288815491267139394698323348648476566637701717139022611100795759048716250854336023881239999198074715754550667686975178277864349128082890736170275299349077398618011651712588771367502099939232215577301451702437036462420892768095919645569376084444975737538085556446943621251401264511939905106017798474268563097650722557877480132289995294700356126329681719025098723092017721242487779076299119978486031149889848416610989580704168531604281367020163159259593913875335533878799354474339507540433301799012886226073286289325882572624698192327393837890419477926250299502303202373500103314154771506555343326510161197266071018302707855122662317746866766837348446713943559210232537300247796778936951292059248054840302029112869087987816992836016470874043799119033071982296036443108274643396492497028392578611222399946189228096439316336938658441176993796426688620694897320216528316422741361264158148665635303683059217241457048956883866962731883150775026711513889450906620909456869021153545419659667666634459702196631799213294596306037495259070658039300192031121116881675613921559501806898581429413832066128753822629211105297197931223353057981217104321024141919652255440204282848699578067664089341606098960299668915954569324417145348802313628499414458865558488610918795759987244947158201489245354945891071808295783031164410228318456182273672659625479409839398348482447235414291104387657167519539712464585059926621776138440776154946919840356831853623409773446169523811759122397953205364241802179265524834197899947278745615786560531284739443289220364161501441519293279106973072726097947527936644296498797376237926593296477861930350519741734581066673367740844348296003707813452930202895787891069230181388505891147018384416512637316555559709361545616272017889656526894263307263158410509920780095192315210600787166250408447595977311930808343777975454254395202471593184877535609304585571224733177771118025383486962948348304658969694430299913289544874726734429723419801099532904635769697776782263416996702438219228306391915550579351772921421130049274510458197373808566867947103275333263891976260718460442377307771343518550053771896317682754251677969836118668231603654230138382843910948839544189928091401841239785361687513036658716571970182092675127570841656365279176388654140362953824975326196556029078912301475835809286179912284073362396717403311795209669596826885967844376712476301409000123311964999211200885451897582674286975757876998265181893777556181372377936798821683340447086807556389797522515100911320106165020596645264299185508975271279082816780058139236113691648537300790209831764698983855016859379938756702728233367212943292255053768909182444224220796923565337540402754660185930935783536972714965175094953844390264414142732277969664635653892757252894030448505999978066827631460664963089299917106117783551595910510937426373834710217719585582813135646281311815118461888210775440264048907191599955757432996644164494042062571144903971344089522300176392929292297582755620445576176316235985367769995520183102225778723833345001071638462452835070312403946019573464355099321124339854636383517933563624287153034209012557681813337319227968078754801522815956521335689086305395807206474488450985080933504021223101410656454154267500603054114553425143968979706943940696267011575338220048307344349854469554807946674136224074410273829801235435083344374485824369683069651313412914922126030397480432294664181717699655873791318632272677465302600352137220149162975639239612296390208204137497336972430455233424456555779355385637990002189626627407316273385930957147749962408291542425510244046126752557006732019118345207725372024084298007040990120021743576104557236121047056640768415225187681638050183305852439305630684309465671027818566644605805055839285654917725098266539306129698943482146863723517506785793094325509957542159655659182691523545873477744699918671121279248714916747721363190169702769397253779169365314591936987282156803639565067082265561250037890153549728883216805160520478556828574145759660119991265125337241272824456887512602289577839138997903099437699746566247044491835921581727272226129063291392766299509397145942208019732669603442027312995452528365893976018817178109241138934811291524399229982960474985419208956615777735666802155005870993198162024397894135911353362310420188234227485852324531701465357862562118717783882185865361051628055900540539178246945160769262833569166494886295094128374893191299822672738657995069427631501834335707927127471300560412327182180955788593951906288809534310319369710096907838106425620617135076254771293285775310079927706399998011767863591046092647615886077246228969976169361470845061311760810896336477936403832828466759034723832717179100119380409400433304883170365224210360838014634776980220278634508414228671602897017632070465223561710157243674128276165020373664670007665550270302503031440879149539099355918656273594208204950503560431898701007223574474617294281814008949810725683171134561175437146624718863862277305154966733678589706612877422255063451589792203527140650265468542302559713805592742777390859979882913675293831354077640821366691998323063434347454796777724376123881521473547145485956616127451543911473982632315071318334837596578296492684368457431615630571804240424911300570159023242680111388497883108372381610068084069618339191881086441596267955003833435496710924398070292783720565374034884299087684731553838402134448957109003747015583259410466717140164326728428784172512756511122206244952690979039469825390661510867514447626367334113747729569841570120083652379114960216789787601178704801091493960557681911423011081221741065981667313504071279974669278594417955019762157433054966507353752808090693606288318794360442876502586629562841448444761341901679785688516780630348988678024185514715537144927979290509695017186294642574338025984797247187429694660049207748371669609530189764210180992498673412822242443057506943965919089799297271322722262503854754423792265856873252387345387403812994645082810048353446604991149910415763439359228802784671853344440341771471145599723023588166169788524870876528386811332289794208848362664553878236659998541099935949141412490797596738361946373324728657421007170726431412951968858448161410872923367598251381696342794192840920117337355207857529471888668071514588904711339798207523657308918212732392402578908160714560850964947506227726282091384901100779953128365530072961514631405572860387393150868031065573449277457964989685440752212149317173049679475069699888284496769237414249996155146443654680314204904831251304194445505283559965200159438298881332637745869779336020439755604576966135627327025964857044334542658184094628193231621881445771527163659066242696947971194453804761883977172843369955495365254293743722453285757128080573744021829268529358472102037185211232242753095971292272632236399365317542067632888842354663604384017972587710471613702133682933477538313712339879363684201564661582760743739385093418981302114853168389349033063971833021735217847761262908117823349261065350738303885821914080504028583471260527529030045636864269449908970574159384402659568376173318453100190112316111221975400967011222140180696072631263369322782888670992191800429232245455227207673468100721415645967323840214731369501736679922942113722184896924152731606899395454385384589871437022118207267376144707568609469892073571061596146281561967155806049301272983893111664919610292293769925128022679382217815727997020334488682824420242077355522304763173446682904670659610413116472659239909631073144162848297338210780587519439368563008984325541113550311933563604095406016189682741442606436621037987874776568703902343115895418777704540387224435926247838363677788710509815213020150438441953784994678257795069438591968529450158922944031926684550129316220082140617334008313255348262801172672355199852345643190708667657864892537908818075799664802215603356493438394131298092057665620844009924819910923698690476840557944637697041023376383298016796320928393975309966038270555776313775029673898252805527321319257900158228181000862280833376794372175944417280984605713426042719071772369033007723057999816413828785829354767189539236270624816209657006903042069923104076754285096079167692712086012453845119800184196530556227881170080180712441400473087449271898905583986867436770135238219805430853204781846377624434577096107637438035403496735354439243000920220194898926742909684321573723162765721863259591975285371357969701154026664791129549602535038105917955691493837854266891033828704091789339025054377754792800377309463911539698368141882523939904494526308665505043332173231471147822895396236114872696861184178154970206186725347986680753628414771671324368655879514913808123600307922709160952364004047300458180103909239489383835290193849787385421929974385688374874271983425002811830655579674436065123042172125521069993023302660005303203160862561775481417676225289182355815020772079723940752854817329566755824212708960990945200654956231036095426422352494401356201396305261734590834730226336104241982743558367009515388240095940753860099367118855206937665126539417647489172452256549270131742099403539258267350595385332004368031878329214631020016722932783725814740295229977092649354166099927607224167308040989490094951798356349974212208605569911913484036245067555383412817031735462432923250886079681725037250827246599554467102313180816683790110775590813404829422973092791245431158518249573587509150597479883762742111070949442025962163647918708645775972137184832500000564122316751181781950804349732332480927297186417150839032766631165890460690453113715074704275909485444775607366942263829061776976188001429223470406421782330442343306680812427185941653047708560886561193372160901742180785222283849926692554463307350499125242435726012149566725488056754741457236916534718270663785150562636464222156726665966809745436281533337568499746898550017485156904278510811565185014357680627745274222280577293518683753989217350415357145199413250804076056226714322271741359351038102866905198969447907411336218940774918934619486659528806304393309442899137031573301296305922872320558875680665762359723093676673265577268801958034308081889992326126450068338569681324526666261032272289321532391213026622738515987422315586329725790677936145596749454555792632909632383942802054777395026431986725428538473534643297043483520710071939302529228959885723513921703349404311018024482490581378594396780930283546652074323029901554936607313244940385890553086271336673057094957673526116757952343696964976327844510731532571202892675888170554984786850176166003878754043683650170199614321798315728248949162921555431104829541871255219105410397680368790771252175997809109360723800783960836077809090294940277710355277995944316989831436402247386146334122474219492425960880973204743043307207759329422162500259946895451909528716321099273872565932694413888838509015734582095813759397927447713808302354613537271431555881422202418098595413495052770860777880035115068644164797087697002334417854583181643643008745935804189778714266977100850601864844645531239546829512961220698787786657500105539109146005220449938751061540840719649862021343916802701784462996383020781040104244476521337220859961026166631970104758268165974105497251488112319414359829157949474670568677405757650585682789097346417909845263011040942031633193477632097244720746508593524345489892005812331385197898380736683284589915419456694717422107454626338727687245689737748046233802296942214262190733751423364702802391098902558224349167593063164050911445415657169642354644960109758138207645495296563789708064583446821454689254272401279198375107377538216262433622199540307729768828441201155562977316854519678470202676465455089079642207778358763471500614807471768347689340408375685724313221159537834125798818520596906636408016266190599034456785865549956895800024113352771131498330922317196166340502379058783803357741487793169860136411060071828778020420297407934278376718825268277962433895490277481112630949318351776977729862985550205691052409067137713990140210841072379120917906047572575894726268215261449360903861251479195636717221713810374315096195791363304682532196606751021159363487011214709503694741138132327178600293617963970227765760854007314945489717465126322827170272815622552922791179267082835906726030681983267330041610314525006253475232462118559259384600784263123741244324692423713969512347736964453771045438972746208630010101226730724889383922375513256476857161911477214357751595576536846299097692724151726101649654412489740539957573059334725876442121952299912028739107334128067590818101709480632393750513675743891175165230573931628045647677317823944366506579418176795335620026720014956077754264950107704244500149214647104699610482928691193292654874778504213463186375056803542049694116065184345868266164680966254405219960442583540380082971202768454107778888687398058822440400744070799457721571983844990884285049682684874523060321523972518529029391800277036178759083832637025405652135478135217957220550270109237045189808507577872260202204614024195915559159676474199509469916035810080143994936745511100477722912315745122826928669230095505562453003228683032443931359716127515192837512514651131202482698506109645241240526123454079016380161934471819789115386942482443129679376743862911890884404137627752765493801536892308939606848016087157360457636584341210161480172794234805465653165504016547313326184281390439017493713298338584209921186595788684238530056984961494231847173530467712671987712094285551386063101444985592962239489142418321598310212802051022421262181705552083525421775416970754981475744469204788459665737055709366297236334514955274610477059612876869084417828607155730235893802015869938602593745622178855155755552538194060414443438828987438943826465586935969635043692887391632843220127797766522831048684840576597328442276789212281782696164906575174397140372183138631653660139049930117093853457979946840322976611875773874938185665797476590801970615268133901694351750771727915639273400669431922576802376116556086540493523827420417956024205120169772870210927938500368558948072184555920998608390903018450269694792663275575733222904475690503099258282237849011569300132703188685732108557296671734010684951335796715943842904547352939286069091077413007619797705045307510024970430050283603855632424617319200486387116713071130330073177456022768123673944904583261828826584278898848313090231289870132558903490504073448034672891621601833215231946098600447706234965692943067124939745532037232012714375131285450308638246560827221752621996662559476105646193984516034898077229390681860764018932823349526884150113130154252217903563866263360384841262289746740554481240858430180939338936966647225425042666035991033208872867997697493939715994813309623636980180792949755557209272742292064456407622148936690795508081405513414881828082868056847189671331451879372252704180046940281614781900146062781914889453205571122854340559207941759377861026130637608715519485746357274588496012110220060539415909449998225749992065090400530242950410693265885580282326626905468042082309639495473167776621591908632743366000265926110998568324159206451383435420934150217402891134090891084184187868203786874428802802372613826958226891832560981493293008367013742831878308050587777123622032002400532796098449651524233566509156159700325819405372082850560213965485448790251440098831677371843125664508786808447357814883305796212928566164832124788743425632945323550100532619958091457463676384847915336415982725408818066085302843969004671371666820288415065938646668132842477781764085561709375272763765823284906198693817543260470378684514911751493380133490743317806743605451824877025401129686729115178313860167270319539503331975417452773218615360606865893119334746947610356115538531341347874409813103927605102792071143333337001085874782388267467632150539382068528462193778065361776443801800000051528098622376903405074750607414631505218321424142622070116521458906060748278468587843892711579934389893429786316040967422670467853390243300326925766661301932965832039323740296988637160653039832778043118635300394883238637050019924351292892890947565241667234578079978087672790508545470331841423744117943827647358825761090419093240329647305204529849590648197114195004871822789619117815167550628635761808613291879773775483127207882514546310915503996110352396823341566908396243639052417080361612610690362216150243805145461834018981451776479135794824772426714697665124004564511839943159844130542785465603890474616993129134470117073707810635873995317936712459919351708385000484990486140632057767246526461737924415670184317026604848274082763033397362450003496054703421280755574647858926660872837216695843668657190324418806332728516696357670874764890029053454626819194515015115230462207352711181938557374838239353030908255165628251299139035262269140322197269442883740249226041478544681122149643296166205061295551957150544230498997444985471034510962497884421951395412725717491103847977429463872975962619803479585947399643138611101959908425778596248004526038465296559852280458960342611233886721055184080799298984767741720065618164383257076345744658119610336217298462403512661773795388091664457704764924790253165042437101318514195725367759240538125456914679540619747692785787264809394823896674967641413977805415074057677063801519687301708292662532978024344110461756459501892604049235159383832935818337868681828386313011035268500817127247828402995920579880267964742330742062713777843678198702038107751524460296452889293010946661943645280319742174561800948851033324976132247586337035873685133205216500354620863591629887126694433083000979886003895541344520495827317362809062104854072121353667652516233065744541053575568482910217492573108721875527456532559315762696185055430534725878466687888143421518058081931688533935639778008648988001711717155417432814194022017095052263126428519311215224959694152581971073912955651439310680577333666441304836225152727499707993718610933410313133524854934123589359323063184143903693715041284635701664100944737522780470558083798017990014937264140967431496249106688287495731875825428358838545849618371949035704738530085583546442748689371352365260422187282445299308487801963170051014716761624873645705266763221683700742092675786791136086941239363547459124959981823082080591253063827167506710147146954272479806872711361241186223143845295838889646642470781503197916826737273941945984203762572054192940546023283955053847011724005792856744975927135395792931924698694232118036744671019549582682127018538180228214284403438833648708531634392301635060810944763587500155573288904011791485691810159092649250905401966168594992075213427791819612930538769446831543156887209373886533385179989496344867957711679044359818474753971413717275711613642631131319708073195760023553710075344713577144294046984992106742967461306305732748007514505077295866981929022094411389497530645777858478372529110501929962011552300258972890473321939282870468735174242902675315568596115901332485526832353930066680624403399669728824337280920383125373843865072112355445874976468813003141837138958972118367041763134964371153097175978618295689145731152980166195888703560606056285194190502855650112688063165704581269602557552906846930868832763785991066323741984735235972301510302786817243117704716571531669013637444731570014113760480873075088190310527838450454794011785691419452726966248376712165278003469005540210357437063549032207461551769483942550158681429668444267192369968657391905554392018073362061327830987337778291543518867458338882387870681637963049721178599717944694275644770057033936463619923840837696875859314537522129513693972868904380414685793330711184679776298368816594669789695043366555904187328483549833692163995009180621638116529784297615654256224519268343933810403542179728168382295417893384971894167284641419851855289247136110177970133586829983146235136574876434110110415046284155064533022798201783842099098395774425032482419122387525451876696851996581022079273826417960315979193687823671010814235127232418757913191885602640215728396991176464084232771215683938220112729346075990800443521867116689719760492876608725940004074733106753200389260289174125189003208824081947531115934309511816613175813780419204658831431757954738280037482206183602819864810522445092206366591754671522630626374455555296984390235816086281797870904109227781723458168285575304634607418609202693067848616399271869794367745556809702376208050597488581121648889885892424874544106121675139082711456528198006130573039969608483767054122333578311164132601318757173073166566474991259589448067180832988221773187879964038853524853626311579091782970342982752367785986979111640549274715571453556662498082492458141246022826744465307715434248081765834121803586454081534018814689619688721184393280202412198320156174749989929728111522022674822098387923706033189670270648153065248008988257977482668432003602826590873782573147498962647822379881993457971939200497499603403457735816047483849796388690192049326856118394917688081227015992471535250871818551608768721617640816460651966663694485403638636557733716838254528327136665854950751057927030925807276514727636174254826914439797027104627165766317826206614803037441491580144486458273446542255825903368533014634595038318536200914433994935797298691373055462045505790753835684927239532798456927657565384120402182637779998151420619187870884849937283677217138162548483218264945192560313997358590742272824642956593931994421290333713809042853644485628782430001076846730280922412949675213607664154995552340005143599553758981481764990106126167349853825030978248186662887709616437727721596094798215294855819111411837698988429917606686872067144541506262129688450816160443331071169244906109036145043029926797409761159668857352734380294300805336800242835148356070152099369649659616003274918511628451734063550985735787249927155212740062041147006000362897764142146839565328195337647387780674625073781101434105559225033439674695056764524769762731080973768268561555910400934410797503952228027104963173430953982399857895374003757091320160382304727516979935921205804431412734048746002754945077282704478304131640124697705497997791223157715328630024216115085649635255265000711286609830831780897369807574219569593114852812313200848592416446021750649131517975447508114081871039221454246695846430694075207796790334809476697118205881512482229676634864072713749407420224488084309110387134879609731896477733496527016419305866300693600184840074658825440160979706556696825405465963427871341491291895334378873519586198260761558385853960278402717538590851409432082675320816454980017490107876956606511482993030134199862478136054426390756019835928965524798080980529136222787514144236720785872740736866294903291487806894375469053029147913237743710035325426718664822331899506347381980704000038280301675567491062470985922798806451559362087484947194770738108851623620416958763111865532565511932589043156330622163512795704272122124257297938076974779643333895276125082705971606775835679555762338072855134573162452281273965951580877009959620468650126998053762212378057136973760928170679706761335621120713579764429487291794298054922868507030975007530107262549178978654957069458357331209824820202216611415063287499534033618602592811533659634171908170429434817760733365389477098928448527712668324228476068341204611958952043115510130297382159191430663242972464033035962479360101086652172078912094056092059736899281336164337636022887207886898784218530648087987925813640166255942962074548742333650193630082866433110032949328373176425452752031840198059345934748782952589666454786161357029851345042312484582431400470613035749000216531401347185854911029342020209919532242573626582763591644681422185242691577100252059365490563336861932223801535227584908978323356000381538981442613611568452770418762296283353277692944639413980661136980602177109455327464153621301510414776910414001151987430137522683639891583383479654839268198429938733942462427115388511800496555164242204228153748037425719293987286004098606220928596063759306206953923081900240857297885226826650639253341554394453414371264453342863623491405306453353197355844439871141259776392353343672190858404282306816883896311967484148620630152375189590653899453973470152104991034661056732895316783475158388216618291638408005998752771147007233180571730075944409189441256313609144173728309278161791226096745149597562544558535744244468972636428948053519814559877140561816182569193838628266579386519038395200735576690608583017341497381705540547162613774976994832235848699220928106636396988130490061039830162989953498497633485467910522714990187349369353352458584038842571829769335194005525731306769185960159373252996908682721359087575818897730750234837218604238559867757458844366640513504597864009090742214206784304922776593654552704576630892917907197784662661428515654703018066318873388893790080982608099318112048815092914952861906643149315269530307106547926732357105342646181825924150764352377801051446302347025511678838987591417506022655524232852135174653731111209392309966655050932164230368811160616818864701618524873489312790750659162476891449364229451844440418556370778218060268504535451193961709511841004460512256416131459541244675871313463677282438602101516863928189821694910478202466755631023933218373574319226961939140016517141857253665289706014509969670755790999693093383003007519082386921820179245626788493877710619438220316804313236359635188109606926204090764243727000385463402093746454316909997222874814510727079577783644682786902986409299871334365060737365239098378626684847908687541693133313684837331755753786693319527477241564454193276466848849400597060773709005432682867798870103144035953320096680522969042509596836832126217763663737441593244439299419573401732769827602453916797575939037479685335210587648692126236740048247897357883383625012842011404936949888919453401421219609433043854530124210426245088147635399218281408259599932572937793210353446135187324598401265793835646918175241856418487565178101833323038643445856874310584618266478233418701266253777790149399185803395705500374637459977924628203484386180806216474978856736315405493371177315405790766706790196174479920597029406531545817966367415653682657524752570632725891895718151917742088682975946706412456822622372488239987788727610212281890552527752766601292113507537664668144991878191782560566870198711475649525940027324659907228796039373712932121226185856900317837006758482521305569302025429335405558970658941116151795976973223318256716144973548155426863649870741313043048795224555357250924828487114208493409640486284444675902135406295542015508057794538212734304169811425480796552066522790511687366189585871965469360681743721211447989484599057853526051681283362104754596674747840110459990558975262530106212879311736360832633323260143264160116272460055651105800613532908654394763494819834749609387333934609144761663686885729875141053685953714888380656664824776344862644707825135632221505939891339775340193941452846618091406111837628623115968302121573265722686233287925037856270389100197826790723350176292589655973332913438132725672656946543133867932870154015364767406247728987441366175946410949976878050852938600378684851025804951855430572771736501498632207276303297122319623257724448380730257257381174221216627234953989574551341289111496000740325895547590417244269914544815227270234505577260552395658059010500980486930177464971095671159747464837189379048083770720543181997334118154146192224079050880699534610234911517021103759180651328475468574033126498097462327463800083829784775645096838380672693181874160259572712101418190896820603073315630700083454056813027490259335458210803646885570941254506596172256630676460874813641029505475492362759935272213842341285629798630221789231122498180491221354670439887801956514624453838128901275229679372171184952642438715303365271048839193218355883021126271267052554132162923680740945261665202256291780365056227819961017479982010076050492592451840795680507282932429672285071579377963784422981465505236083825665143263710611899185086130647145345777661700280174971646927607898070611434578300673773101898884951603575820827064778959455526142943636906456407404047708798481068368865976675117126933919008166051736852326242178420959906793397156030896420078444195162887344282286660045223001807702348931845744591431730673685770132469305970595373957580834262177218040396299300581193218867668017492661694838310918139698505808796819610224482611893923268374679815659445084144117283408279381435244713177723224472812813552311272183238491020512144144815193435278982978820136487554623514664131968298912373884966254866401111353087365323810543033059370240662912260101125669921836668682107420262575204981733527128263015348797022823002444485271210522665057701252033390184048497359745491955223822951978695905724005276679871079507805521092510410438109170155145903299823568163581510169606940535055486375892662846509777466526449088742081153506916593150272626119501992693858586316666057207495862929775901329223916853078394095888741466425964513033764969903448870393017583765136310511707307108599284408144941063171541652460632279903972524433703192356501428150035920482672077351487095747656324195407973028032793952101940837329926560820369747195961990463753809115305164120722226773219965533908993540781442193007176550216033724341754932472528768157700026249439225294640446458150612660490779604528053102509330664294073069338356375277635549042131858186467945288439873294107391632849022426526170751642711597637864078962476388040176642988712242431106529731593527536937619854080726986174151764869541530398039719815949317017001042523894483987727142097661442821256167944959310548398404415005523312441843675146173718345748839807193899539998139218340706767783972397001997121506213211723472494303169299897141120812960834364385936419843464372122268293767017531739594991188827859559530806776829368192455441658974398203397338297168723566248167750969232434855119835470484034737686090954444288809948718690516164431997758924071858528634763332563680231172520217932819824789130774811538383405259731068223567475687956625540988864689150237379399534243546048794443658588770430399920888629679349460031210520103722067440643847133901881894108369188224818299695617989712592186176922664699061042232594625139069519479884714089305243227838374178694099656494858039217201427336511769237447602486159292716113376309203480901411078715848206752524866780382697758402482855210987277826606140368170307985732983778881033578992251051741716411628339927442456303173600501214246995457380194815906262392292595806083386801865159620094254833776522671643561654035596533745586993973176970256476633971711985634036251382084683044336225480945885841784173955627775469568715979831905925311171118777625010050223697596029762640297137590857339031403656361934374626466637786848874107029525142861191319496767500700306204444192857781226787668144755811324822666941432828852207278332475741862228132053011837874298529288328380596613158730039953865514754318063034995454100859301123298904859167740844301113886800137051154383522367312790801192551584982926141043671179638938906639070221479058782750117623691539859859913304152760212607841561395333017551715685842994804517977534983898639206556646991517181559520079032958790924239234473192533004776155839747207576375293371900249658174419189847425224226870107405387976476584164328514067862703395349175485958628929010457696969462397189671005650292944062347725666284394887376636021839693939768943273153586520765562248333514888674977429550866015039023143493450561678913140051418453682779934955153193077134508971465953100702314059784175692122614587528914374459334305695660447280865925545459358989343374517977875383266473655518291875608177767140660135860768213426509841951980677071927311274206480706203629384871326154986652688531681393445051238396844899479069853035373848125639892194965118650417702729706285171145841799384227316279798046183335147846885610930732503173443351118260441400569159486492841074399904621002266297551297375940108036018572920889803834012503720455401236732688649754625262555922991046103830973100268662440896923121317487581732053480985416162589512868721314704917245721954252376673115363900611597744535502735757507086317789721234178008091053612661252643880277232463232555201656058778072464549048070562433305261827647578611206054948490462021851705060382838221143888901887354928336139132463607716203608387521075070773935158570316589426354735772433373884683251687059101675911106488675290129160996233715667729321643063696031682701045864145950294400618178796150632324825595307828836791457806842430517428976918778749427253702024372067007842007576898688546074427104170042072952964134765006156708215747803072797531825014956699166597570878334445546492438106830710750645885043373561776301627799136977611140614221384617933772289126404261779272789001005207981988477875454110533913744001279356357525315635431287941972714407984115722996716725485382327617220073872962286014338491367854132393156820963547597154473512175675408842091136488774882748836385412749954960255824218910594453740012501559620099874885177420276497161041625488120316143888056264010679777433047082540061360285995832331512902972934886380047885594815931688679369572121428259568085076207431643492299574694750812545377685227860402034175201980160407626199383341873309563522207931433565906108925248791930673759024504007423031487056659862082325074493505401175523090876506728258463551004963458158077143071892746729309103038053029075086875041435945127379888428562830078510651172510963149089322848281495831239930319434562416675209291396293852683366622782280824069159315981653975103186073285731302448444264804826590713922819743501410258593932266534746267174738898584575788866713285356217043770495108518446526124406463442022060116832626550319300859715015978617633267558883130770373384547639941595281023048836071745326474686419338760110163274685532515268296510251355996142923876712697709475236217909429496908464354419468633104148814699280444351173955972314418962572018061009625878808229295800436230923487482292406783453315096279455439570809147501600384997910949768201301490349816567413396385298548467390600141570135323125051517218617991511613400153951649765903643608686394778624135022752367208228840835362768902398241507632625095037449669268035546804546653882335054801745482762642131387496128477648346081451077062423294965708150458722938033549051120769745592129328046395149052755707811461394055471789269245831915927236428748623294060030333563607875913912368355742911489285746647789604610208602324692983995477237441408633077133943437359133686410706594929512795864974694557155855516864801648317655500685340987964502290074035537055614486085000202420335078752733922733066724509020332134115795536199996023215652985418688540056817241926933539124824587176573410935508509748637946030850860080288222798193584551447471617372452838098297759412712440823908571780275028628898678479430729396639397258922009547184830961634850991251117918881213795417893551522660728132376759998676792295936439663035206435226553936800646422948037218690087725381429200428152612592469223549824755495564040040408720308859600467303390089588109607340957939139707659630103669134561675914905277815610587787882443541131485144850868775944471769906817718317308625508806371494863091439830210236141959846107511974497628986633735278073572539537376060432181224821009196079020059546095413774811872983608002415121245664869242744632633205541659976708848781251097171169386085030069033208981368191507021117261639814791457128071777355290499119582299960358623600569648509245492859714623907514857512487321678444861426110859575533906158479701628029517319811975433528267633696845371480631871757376639325577992482161434971547660324722480985934975146766980142133786628095363188050586228039208905500736394217608131136470525900811076428035958927753118421800207271139577492225886657803885027391631864439479986125838630315283395030932241942126875790543765968113131452341584160571058791126748244703997144765378525358119240220684616658199319121524373031336246221769517979070320204428437926289213493495062941739758049509576649867295041575561403754607975251239852361474478507016532568651386136814500625695201673987516855064815244080954876619298925621305538164425178329898024047516288228459867887104590511981136234716510105958848536332034894701778337432160201265508575166354739334360493130288712029651261018913869662047322967694722426974652120877557879001420024655799415602172838818617992185909914245457728506815827635589722726255597504724432492035362328917991458933850194340373009913196096470034166887897042718436566068607223893090813274973851109063328804583272629655107378809329041962256421291494478940846618699579920202821080052226359520064603490481553857927097528472900132875971296777585038422444537143074384962701688817947047236307799267825426304327312439610556395013104178189578839142195738451895353372008552178000744989137669596209893312119378618338731223149789313494593767264355252651498470224681967487426721429076796630628201555350675812766547950760518156905979360833648911813407954160647037850329650335468988547241121185646788416821678160678396680767110567031890038103430528935125269958072609903086874295833685892513833825135399240417744109235210624041294346075114607346750568012889259770538062468517428839804881913936646867815501775164566267893137042680570626345193066248235341912233898668026975029709036851984125728731644917902965019147491818710850356965979363613825654906589365096761086046276151277695413855617206110521314417630094282600203665240522168831657221152120462083378660318904571782247470982600274131110208763104725331199748809134588713661339591810930413370488700835530409574794771945218400306375327042093341800896103741459127852040766725296968975512354489895420462612525882773925633652657985755217953643449186868996130100909644684022564080352782285811833815484042623906557386133910275538533723064662017456997700906943881645246227144763286309417878235852931363411244988452041785159834938474173060571184681777114170705261805712049407989528402843631330042405704852859525917684756344840785662280784881910845656468394891868670249367071460758575383487088018385490054410070312358758003595121290024246602006946871467086261973625113952717228854961640354689309350074940515608309332457441221844313988397052232149102948155296612033234820609322088056939028430176138185573411409143017928359338381399377080291409284307334815695945528733383782695215463071987010325385364062137855170197669970976785002793612010839019614744823890792996241360720916253074259319686703418009640664060279959792184324833403888613855131098497530615841947557638472953055448017302410336077920990382031345592219339000694128233807805548981443948979026063920997067042745882121590639387424839259049304565736315303384557674925951807415440074109211711504054214071604492789638232202153716821186716287805355856245031643204558243811091502622998214101533826466389928871498197958571080280868290118680224234475080086202853252144845082275848358529426519034007269096949354237020644220829239978146831152615938230056008686046089700140536560979300161385226873384334146043269852907247007437873199159824741213686552061405574967167057591346272125804449098073059655010801061798403035469213127612708219962588169631664486364040142542099892868983614034552044750435199257638727420331511657083292428196622369918406331803495481088605980402375984240111273183267813030747403543981942617740904249189952617520907639790041356478410900245294256506586891754760163137815576868388675662888377754093367688579849035110303252475056834157993056080533590126959103517785273541938793722603639605950139186164059077147955678415418822153654106320034172878076548488676958933898567020861786779154957389217387334509547498708758196770130975050439460622271632163489016821956365234765357857726620556492751307373276321652050280823906541408125953833792469685210612261675815191956042346092132918082186676141306920559627130845770476659969412304990440613334903473415978955052908957741416571814826408048393566903757975104361866181504706397734927213586770348408676274777064825851683617310826157597839155785037808652800543760221017055372720578006930795772876052882814733020853624522841540322069141723474438148221558840037317953421508706062217324198315340179589771678138121149111620469297542678314813284703368345147475983887035583205102412306351045696143480461201634817006428484283831450739602454856209738316346534960252466902087774940408787951068914902985226609605538399204445833686811402176029179322243140204318983652449017817902021829317817771572095894702311467076390114980037769889872779023499797822623272506197959843950084853204210802573305406999343500083001596381949554858834766019064801749483854069681889001800051309216116174013153152273331551634146772598667288089724878492814517993622220469018254102636654016254703302520729855170487275752738271178227266075293988461180809098282781803697197968144492406484946948746371164269461138671024818079677069441774622395348435312644836075128594289001773445297655426861945784658230929802817832225499671784612345206542696539938964682945348893702676587346905569040905835473899741207205088392877996822677494117098393431164843515440234257015949584585059105417925971541789117744276027848843486887968930427087715607897291787981820443095416131972654481787319486351999407400238632471477640459874605059744382475821607239249595223999775694974940542912932455210312595644654424489699907447482462623935390045624400416824861075740281277478372453390456565752611930238171613057634602058482442434389792639128951661969736270344273809514605488142287477151426634663598413239023087497945479015971474856732952859685332549400253922555371245397584319560044068285629579703661629927686388546301616814476173937487221275097615132063125457291774402150733685833284477454303737726202280552360745916096967473363441831252111935046067222038525465816355830911689051176783638993584652000985180693156956664537418869419199308518051647121340840911204964464613968715115324539941896838201846696300097723631410868541057300307477215575547509343794057900336260126086816208193284250274683103477960793486353709786237578351461485260140359431388108518874377011414376638109513364102263776783652833132255879280768430483399416159699628374478611510697044248094763718405665855754835335590164964155150882031185258407700366030351602091820302623980486854434771180135938249378034439995185231232858328232731474853492106501009108843842719980742364979739500945870262561284405053864401519722593208563179002281271590407879667898356604707535464213241791787908817687718640356184259983801711985367082087118658703157819055147566091663236604639338859091545939638527270027776119030650076319184686557074870350431542826325560090708751054529042684472988826885732919666076242607921235837897142032916883682579039895424813916215517230470114817037764466558471819599206356124446896225056999071582330035387922603206523929266195902546516701319698445753896661341413997709144470821446663780986716814687553135279389225018524382204969229261283829883012330376418987895058644785270934871982346026044230533585453667632222811937065679586814575222508398394205038283370222184439093475731191015670837287470458834229806276244160946818647824957150165116880828584247566350490036638559104475417878473877917585095601233363900785087381335810370989239348938176926622087865011839541859714245200863690517076916709295171570675435259717175259012752055909139162427654801158797397338039561183034440026885442966589803271606170529757045783041456069472456221876836754393969593810382362781218731124948585444011444728515557827814665416077250720518151022239322546866646104085314123219971163368643856587992884414124127914212757700853711412197187242553433565777718058528384173119965475453366459585803200978085274565258739521731984621163296037489709697686965835711564423540202533534219162817542946137365982766012444289995382286848222563598770174138036151110940947542758697720889595782087599097726271921887264502018890394887094820362555741888126921177725947770819167390236236419688810435685458866798791154872770727337142442470031443538732761525918647129057034980403267799165090684615732836723368119719430649991780828494688721172511980241201245721175957074778528662928252846491293145487833049346271555693243998696485666149386178591567128626586622992488396552079543562121505183057120543511813515108462866257053516828149770923317016461218924484368001213502804925823431014373821553494140331713606695631963544264979539506461721022927532294463284464282023568957055520535537417955458132643226030602023744447419524616119030626979606608514548868984574080432490261098220879678765406358257694436792216828177008256503109093315617177569705970984699022879511765710088840538913328316234356292198826291335594050609686375311848881545355593248867472172159274341394737553212934385678114823393001545079078261521493566897968310111402256469964495168988700637554641425292318178072378125229230698962395843275815482653356045798357719002023602552838144277778127245610887514061757160470295151692471491690815400671011613959816280271227254062781697244362061424161675813974012677861447561467513434844840667102356776089918184923921437932076825820092088329907246161862610220681046202704016408195497360695692620395237200845170713937635751491636069277782503174093834745894960652883797513948456265060132008480165042855816134633247929680503409055573744211025087654349639104722572911500948143903123542140113708527358359963822846446611276976735550977760141519209087704200216133538795562128740725362248072526327479155227659060793772736962698391699636213823904551672751985651300380531174032481913765411507967088979445021708016165525875267530469197582859545878505807947325146368383648006509094837168833429208397784946948173297806040277011819053642209736539914715770750545770371921415211492839711649245164664963511429181324982186362244883042172327995075559879221203518262080441418501064284785368374415814118939964980589313958994121291486121717590724550427943421744367231313406545546666309516141624746596160140418946458531756955075448973149455803521473799645076672835921081410925031942561369148119513524055652726575788589054521146737609599924882787502972733140542212198940781408073942884041004895990000597174585546088742579409294529438445428362250681539809999082040227131841771422114303000752853855367513125611182895164637357145264917557267785023516085763462950044831975449226716116938981827611549132955236592512504735774829063490809416611354453383513142301409924433419202917550134321431316246115232739377981800480134997677356497479837843221429358985390030387362061700468845230891374142263721246057362004424422926445902920236249778643090618638070495452510026101825805951208183541821948207038990866045909477818134679910087874589137314481443058842100647747735754819791501445822737267852160866942897581819165892108531406097591065566960340016766963632595611967776704998282723838343091453486448853158440524718973728319484335833667524578350782500310341589691514635399111938090159751422060616578172081250042365048707575005302219700639294348001069796407834771293371400995347722985807223290800295459606526249562703218899217661638341358705259043328051784737504676347764978902779353965155231337052937183565811801852775292830365893348352244729567128107388632122102464597084299879224866955480921601876213940372901817715413394786228279712237349370680850280828954376657870080714436389358730502010353595269444355628896483183901363565192630669188055330965452153905015871993041770522409977998422619299083238764352941182881459281142899460276672821488175158527337880962779081618472515230605120702817757251993623277911938939086916988786030372811273369680856359333564105353848839830375486325486207097821799409394758143370342505629761408739596711380752010225207320846973038000500453093214895737776419497606149236196621281770657378478220737289324577601887063041943417012409078472811886050999188013078662438463236459443941185397990594155014423548390670375144247143866981563473581139607335787109010039806821402526693407388753768201128815235574134670987972137839999304087615044149124069788812127425171133506141179443098467176382161029496006381679288601381246530490855545419911408182353391566866793056290278957924041245213048995056269229335056050399232045844299203360854341036525709821302412274176282949236698960989599653698341284055796835368048413487870967305373735343691026620191058973778926522723334571601814777516114320977692562149607389915068010708691870808945058379921033720361901275094250097287139371688414081494684681844248540360663504255325237231544900659685026234641065972442190379738799763738550954475214527750653386133115607388835194620751892105344485396000620863066137251891749593269028343632393785819635749784389944063645753086779252204475764030542698086939701125097450428653604675578849853897664196174544767299163731904807061597277183417319715246398380880567005618060202639979249839488538703460662966613329249491003752281456229027799668605540385299746687015135034254403575825614610906028060547250947781822166517181324584929739739219347501773021848095025381974248650458718955114419260301725069874971399310922793764198940449216286970069587081378662634118501822379955415047262128009684272189245825633440127427200832741472631966426799158064498741212378803988945722407342682518889746962728793318492694442971061099069287238921696392719156941967873384443595919087336918696096018743036602610478020236759794201241623313074704573888538152062215172528113798684407951624287172447542217805954147633951536643861388294855083811025545764097629139399592499642134929402601381449944348109454150688286443966345550321459435732868084032603814456588673429058973752734426172399734431058331491211716547566739079882341770362732280821853581553154582030265137002867674500068420904789614366848450041134684871173611540046834402686639900807223627201007484848229024529613678878882357389038434833794750815701630970706826801978421741584036940555575528793077725047777345141960791534362684659417857296528116996325573224224493920355080210903116488360372857483732852461018796133915915889101780862905636853954518675076844819518688681748082617530180370929817098591697672365291382660313741137675553306744799172254352771306893474151547529608535818938848482270784457243461635747743967895790590156057478342938116946474508877642908570548079088137568227000730190317901101977912298528862628973217302182076751035538626365975857057017747733771069912094209908616720020109005627914031925917919779156155516814223481228795254471791649256358233321482564753189442633809272676100730643812252834773414772709378937968836432867476426958679121080140496319430020148773967781087598999666073271397879112985647564236347890628408868773413008869012856247986297069275386883258911698006986280885799761754894147280243492272201541896626628912779451898702594467385887799817678666564575633739773598841873228285790180673368504683640669764579740836526466227038310919926403577582547768918390854081157635047279935673910186890649041760446232147070801253250511465351147310389196175775212350856763457803965499745802822394216896636036347149397249857785501325700964459299174014947701747508421231957130095984316321610625859154866944416022603914547384482085252151131950488642118101861795760342186276313842884668220490894405252967833438974966123813048663119445561794985672032937921898830481969493082955992561955607381974707653857463907569008707471574410816094759498498199299918554148760723616393961342389689583818100054292861606307379880347685648286916459365042777384266451382202197003151594148037573741860101603523694278726021476783155239739766004111906449345557693217845795255449545058229576763953867396383648008600266906489845567428358508278537748405674971182835581945638222783518367524492811364622940475477948096549945191499873936472351452811109812154987101077005116722823540085252766842866914406297303278118529539841646197807413467951693436123755065957032893920427874751985650782955375247691016993931908174533469824377772106173020275044123314394196448224813762038927878344115257703934171378060259425264698623023656537068992698068523118099386297281299636620465032197521469440628532878822046355700684766719878449292382500647539298745450114424059506163059079360977077808618663526756748877257860604189660172149570508032634863578800810719899498207245631926396431108631817397719505003558333194127345260872772189725785779812603203074862650794777036437295905954610213544414344773985071700131279782451007769554317795742821408101972936310747317142146764817446394146683601158704282397130772005189238372847090899769652688725260425101390584335599220744273523345886311078261062212407307325208998271333288837539433292012012147898863877933050070608057502605610289469130274533450120283284985516351908023821923813339458649757911238114874903138181785959656397285451333704228625345933105274209536362800304512851526299884895867825957601046240153207393780662413260120639459135204434691986180688811380215787716201082291320826944037871477104519517761288791536102998215467525683592482043058440061941359866423352089263331625527155523343351691929748622783463038905332088670946629706012307303678641414580249141579297127887039471228658985775901746628278590285503530704864965800565022199408076425871204735425167761851367195675925978898072648816542472819134620592381816627655142420524602882254956110492036623924931298690482999096637546362589787374780114967019542731867591801543464538287065452665480227061795193114103768736997619514787128745982108860698023529774827756269346068634366674225974190987645086413407329661534622452385458690125201261294152172589131733295824302141801066438927484364616198185288192082457409461964793396361755004154219180297357067960578026473031078237922747337428836899090061532667140322515016887316230934312211635633919582793892171549297027992543484300280629687303828884981494796355151416203424707248190284077870613762336595024608092053938955294119505614450383186377128383888744072188898624474744215042680486265126937960670753894518538201648997868646837749706019880596095689639344354266630037581202342668215523793893748578702098434747563621304278000173255667670667771941075534689153196710548421105156338500667195826509696025728481319427909047183405808466820950585746061676864730464025646497724846216271171295475426480768402115449314947356430580256019486182218300618304578233891597825899132636275484052553104010564183965242952047431934888802422582718917596980501006633124883178953317144138320023000485206045175236942444006957900143016654943150988712586755784383004777968364390647280732463328428661336233466620821362649357436492305949662361890897702829921472946379518367710999977084016659433537526459052287148364511675534569088111595487916241131876203482957823777922326891939141347010481773564884131043272094559065758043656668296349892924003156414801748812060706902206024873983039939296150384152394449088569157547004100175866136563975645247309883400986446166310097208289524143177561218757893325910699295603699032379532004136241204023862731750736493844254182691041934091447502392198547289003916133843857916028396382528917057455290555586405578133760647703123365403237377701475040558092147353467983554016772368997966596384554155653363171012258085058667532518674890119521625675922130503633515198893822955790921865763966508324654969882528604021435408216554745104303542633598121117915459626850565235634242415183960798626209207240615595584656453750494512211082819391377691894660455021709411594504678825399358966614169096813464001391862871361502851448056611426253945597348067353483708937806752325960355193648054751467596426274709463743477701155788545971368805076501082649658028936280995258168160483185701505797546013710299711738249821885184930715564925439488269333337097977425545714359450948947208879531830283139557771125146680020647375656350484239163383969200437530303598113071828305985721067008957045617039482222629601351247624269001816870945109573451273963035979146114430201200816696582733755240008659328540393728877217365132351299954555165149756494915298856806952352931210776501746422216431302493975231954876219270264934235039312684573719033169482493608564015633027837658191969979380433038914433219276569427165623895867509099807332970297769697491498660368957816381245965457549980313445686445979009567529159219194871053443275070419362107876600349044849133760059713998052837339214536188690968685230278977776139688812573389247376595703066645190481845603211739975156862156280668288735898830261685917752246359714671131776542326592961331358954508334039692012477509420928360791738723646148523956451035158287489242397487405720561119954240239472600245907133912061222478659658953241004063038553024209530074960865218075597800121269242539740259315133742617531911063562030559762311482240100615131557142031136715348997439847281934498362694549936695811471766961443679147208315433329928572514722659521135613227316313827873190225010182589975626171622119137332318189834470485243299310812578482109371811083698187037893289711108962959193279191302269964264773213544220804764046519215726155084664604947911309651001334022271814509636666764475919167790739979282605544595607919656073738312208421380171579234568359300088048274992086002185088255132034826838470723031361588012131633602419035657035955333751619556642186797936031909248746837367876440482766807392512366107242986090724503727447706363619150997955904764071995771114636239184104495176054059167124310387695437947313387664061989502976234611240034181310238861034995147096114601389496244133148125821064677022631869326632955889142844784606165602861549891597629700973815260811313558380593349614759459583289166145933973610421930421734148151224631255428274592964545777936138641484443798962307423832276345739867065749638313359494154099656952377592768040761273122488491719439369167171594559856426030018387533238741479460492427278129435910095698298649519105289626008664376542510246637073314085708403865559631523841252555924105581054897445658973239545917675944884502313093216341360375438788198067471433251127841804187715003428878462188026552278534124648448651325609349008806252289536744093807349085744869644203544457075014105552584221543872933240857713373615377394466356241175132403147649503926655051205775500811634655609806762103420845511734689150852133580576539483286236722196945027473940364481932512710458219315730038697039751822857136365202460950886533678224098671755620394542663768271259698629881663436577090747381361395008048677337749050343009050213630226604697326136132556250814741495175833919274397744209940067685511410932735846790899503074981778106491726492537933213054339483516685352764169008317191209613730711507346335130085758306703597696820915660521546025553389137874831737609392720192880446678291955004032646017534161553404604275270893828547794937750114241337490653845397048397357648616287585730423826563698473768253183210263455044570101026517847498750557385664012628675413349591451502898878255493246372280533012014405698662388705131987882955823052868647208314093372114485643197238146583182316260955659687393405844365479285060559664603496896415820122988209504610553946270816382460973486335137658987363192110200971425698577962215238348022110453173690510271191440964066002468926389364482383229118712125285057386880850878797720251829111408764613041753087450622566972922647055548754301788313587996125459190849729578128296710274681724791372112727299187154674906942180621461000382839414349603154327256178365442855379738206677284865557798647129515556047833314669136047611046957073765265061839318943577840239452163030680052668127097213832901359788916351759623085730024956059963573331211305970486049724598561103346341160539842047319181046926685816385424740815016349603525933384382284524965035640300092429559476904098882394932015414668645713497103759668805687918356039485355766880313375922605310544753089991072141088072208230066858752257944002821579060607322976681074189497608678661072228799892499317835422087984121240227824705054068302363456058216228602686971073534954788862379639465201295459938638079374728097772022543707598136190337870940145939432289628705126689285986107926894735743148770118171861572859212729301379173762562904526129186508705150042753515494474981870271038727899354381413527004241498887466023698861595040735836451070766475265020500985709162464457483250491865300121426192709880087586719682652432641377459444223087187493024366370167797722828122105816517939696569405173694505769506296717490811747613964292767645764502214407031692850918704256521676150213446120190736224683857093807551810473241263592107733641601519479723825192559920996510640374295402870565040392932221270728877891320086965280323923490946141801346913236691759672251057592139268103226862751791687264618052922830731825487379565504844943240575994016070384575709959197010353806239163626126044449666494475592083351518086312900549508765681773951676052806951741666912308832618738887990349765405820205511114676877944661787844397682316902397062858449885880123273509463967149938375009094258857287211850732295714487439272753794089225548670806245757453337661003101763443816656380183903547866150517456046149322156296015621363134963162369001798771579958080271330407063350424144136714418204855555745249056087325413090270427707505403472833727683929401136253867627889181081922195987453320921471120877077058216077545259066014454237929723868445745542385396338546383590670350516826249511726918589698672364494013844480840235330586539015967674429790380487661600517210841386631909000266108577346446723429206200990151868355414174734328921491052125511973053987571308155704839497374297868919665451912872894425385739901067459053426458313739765696742155704000766820139624141940932574488815086747611552006455860668266693766371339370628276924692753881088170078857103047874521322994419793724025501959016137412526234505890535962119454529538867170339406092333793466854590025972581912379237059001027240334422626134857124643958079751625288142489306393939099959286932241243749795162278397831073808150275296615119222885850559636852032889761728115397730429267003828755905645324783460321798871037002679205315528349781654243182235215301919374169382692524507001846845931431830917816226814468149024361455187775006331734195477224269024109263605188732842295106804368426439201023731293439652591627259098398097372080075988803114803305928168167050322922923449067790488712975644135546732865587604838292883596777028056790323554700570889830246338656711677004316871189631267693113038531774836626015411417255316769012411147886851679987210394232364106883304457533222105331702045848416799057543595007761385688621833538693512735574633668845856379136376553010659977351584529601949038519525605179697079003556001170660315447309987331259892464970539939908524532420373647784889295690531588194341706844003523461252662022182998850841118821564155436474344829574986598124053100720082880971320116478522469454100426292250984307609729118473994529614849908510382664440273390093589093274329562353193289134534798665691840763876838125258292533447284470577083647119571397204482576845724819656361211359432433074669582521588786313334033561871745759275590509836135819095371530821800914436626310736585425576043625593831945920954713012356230821212796051517828091067956448074402617137068216903890022790107984353020590963090399119607193772618556201049231833909835709121066015563067321970787880758885876081553164379605707062385964528839638611863530105156627974985583219731237553000769671442311323631210503467828497052767048186201962249504551916802289738988987584444291251457721396317335823817197490967586445148645068806553608934347534971737654846198533967803126497856797139013166077319751369705491167581764261191876489623018668387272842387690395188936759612207459617950064668576103354936544560853584034545405164983125724831629686882098028424808278553296621304054594297675739858736481468543105620477311510363579494511657238226958613442064063003854846889602628768903341312989501667426115632190355336240360480996197682137949273480820659596966557715251434810346074708425465733763835633580283443512664428837463722858211242402606238339176872252542748697996354397062712021055452284131438210907430001940342592157252704941219454176046104182259567330802552766184771802748147471591775123335803498321864266947112421846080039426434553153008210932573131867250294849379597201091528553290573142690296562785199796550124500122295151593343692961093296384879199164581136854710738974864547661162970436710122653003112609233794775294209702702420555355685520239838838720362767692609103881235146456953960181363872222768398862526264521090025739471140615087041040816659161159567045705275357889959610359337163391078260710509981154494853052665676245440834933750086998923402063349461035433684930137887142899339560649333987132163488956444709535053098386442908057381848935427433062424137765253617622004299893348779909672740603503326263833405999426684036185640369492701676804725089545506804854325224591494633372712703744198192263483423757748325452087368242124271516273944547742333558863926404767334164841719075488951188786912029741074460658029774262318397533292266009536856526045366284451754097453554348186432056019680151317941430722244421721283601991337323716759120457193795503607531267656286570133353486647910629362551852303439874346228320496223340594725565165630849773293856339137995668815507484485164841964832173065444715425794387027570666340893610332200132898740579168396604522614376523500366361012781136675617929830205700305647453338441245336196318717919328000334080970755088254071805818229967021138933012893113607304825145291782977568235601400047724833500342570227398946558989549488843979875491005556298472284695636187370915029855580949065489098638036908818232111894985083865800346730065686115746691228742802284960999783038177205075047819955688130726265412862847922628741801586609613067174039309604391273014010457631926236906548331677300565686953606515059442954984777334670241797358524416566823995952696154231081897000287237697660615673323537683317715032190147722610102269524456850175467697701167192729980159859750266384661070615723958385026287261849131748378382924729628740070918765777014722093617168545262569573025219374293214123601328748888292086255770815010560008675004293552436074136995567475120214506145503098568913461170767539754799657374586415107672731253255403695599047511680839481456853364962707725271962830797510242738735500544835177826277572125736720691971066511169297594443978757512728825205656308882052935092878853837626753044566190476707113696329759668912545156834245260884713104109782988964597451598960455535739079472940688946744225738421509603641199453831834429464833886922712076732908728506098460741699995143731585834240555924968941553177764721892224833069542116524725227913260359205171614171412362297361871308306353310268301087483080487766844474588464870577361742597259975669973776301756665076929916769799178251135164088834550152464767637944485244668518618660570434108261073947662976003177180909529247846427233689561256537507064250707568550685269776664388367613942216825350717058205471206281081323966206871809651367661159559815849449721729795893951010854226693752076916933266016734407418316796788194885363803457985919094325839075377378940745553649621903307857471147331124549290184309086576083031295266421624938040822346956119948202015668089067085604305880699037097028879921537409661659592513667564024747575877459006695905206963372776857086935024333905000111935877852387045265912632323118930431819543467116661737071132670212788603578851038239886597344301379126298239137725997161208465118498619287753247148430993126621999708943080007029811622866896044443151668372106468662499623495962031877755539486424778050771198385262274521124305975779529020408996802101944204530191681429895239425493855101253153261927092594704693547069761596817812497300743499915605392615363091101385478043996042730594681259066232353560483937628759751926709347550002946669787896318986091547857565078162272973976234396676871895748911288431489831513519788884430439999423794366841518284410920598875907341486238351526051024462302360687167919558700563967499111498203350355145429473537688897962201706597675550334948984146967184926364234652762586801795052366309575543485279454331591892708321053520771059700399306715394486595097970582254631643597495133049390842338550049625087759003902972937726951528250642250107327941586770481848095912679231540728071841417993243479220732939548921759134019264475047927505621442418919213745897271971906673794120076896390097690202285516857891345693246690489915420688717367029727510903477781496526241812478551216748535147377782714793351407456949739187920956562501793982921562382937123252125961594981861497008056754554237284496347990081665430177523969766115219293584360065698975934334439323052019696657675982326661587315928647091047267183784739382980700354707194874380219860624460179805701862127270866498830748856399245881411423105530654082646448603387369932249338293637225261986737114761494804568352206912523219019937446794181693140216037026140416479738242245218676793065755450051604525928795949691966927208793148809270320272865039657812955308954489933131912152757972716703076306986624709355884106832678407480241812016727448379154601415535724789603368210736351081198761370509685525847113991271995896198867508975105370834227833790895503224887579944922779849768351740141262666594049375963228022984915451649656887465146743666491070147767823850332077014837409589375806348080309743002604154250404245727352219937775072095565218328818111883981872847019367628497700544047285032469955075705240249065110214919928039430056527142777570989251684981156247869788118503906393998350582548761565257135948993167410133847715149326650441321778575593865431052595012524835431187576722080144513927266943744627016520877035593438596754114575430080214890042904162222721766056972061469672802829889575284050137625669429048016752342888584117250367787583250014774303345121377020077362466613162010678209722453539493749387141582229838000003277442885560303998192796471967949318581153493233495462941019100558039331713913428065655874158834499508585618780229054398674700508980503572074147802818600922740475883956500259545162839286401378983402085412677431534858002937599885970775669248176709038317228167184324109127221891391093791075040406512749517012720333631129609384868508257632410014901102790204346414317769511144950068286222256597128842844507705100349952647590760291785278470032143705688205628633515686536779059411071010645908683414100586798943241051024089435768939935505244563783926317992472150934278662751932093301359417332732654188982982041125513078909931522269737585619711944417382153641791519522624231235130533591978768524669743981731138115794127084219800673960292470574704010273489013218874494939117413633346018755798720444203953116806693627493332550669689261270757117547410018044784228269766615497502878433842851289953643730610949107290966926591773116640233578336808390861942536372138217470748851322119469020167600838008912591475715777367552219394003873117996234973188146356757569148036217136028198462159429583394713834279086230405316143210454054611854750744017145382839782747351833742724603726114909688463121732706714536420502692411016663936591915159563990838017513070021635027735569206602678898236226231414998731986181617232808016238569505242908879956938295247977185112809626793501020744541058463361095337803311214310721674158478455542167181000254483818000160612236522359275653369474847043254898138800254060136364624944696379735244734023102573302516501330608428244376155168426413757626113185107077859971470611284305640138531107965001348154271269691235714862384030704363165759909387425646929880632683936696772348048065739305321314371087716166536222238627219612464324425072619393145105452650498320480742845332476930062832077172682170061673727830501678132175307470896689521739044337259010692785736734604603281067269612981708459114416425238295208264266855396946675265196264270211445759328202502892439882921746672428943074680636392797174060971148995582623459251515503050806974210517666855236360566438295858530798898556193997163635268505171197740100072145359867882421241956071935358986600391802027668658286405746747109274840035681464119658903936049654732211725640495113865088144021833355257963077978238109381235434021788450996657054725299125143602353430012751618520127389623958892009646273284220607743729082565123835978558246689774498444042173188503637502038058465937291284119498404984591537935249427779610992931076119915733125653737816967434629760852885215641756859397604778766657388116430869064520512187024432790248450799691372204973165937261588104664152078786366165269368972548912266307098868335472311320732969115035385048309669011301852722306445599165029304848921738117083262740220567521140194394844145864767337446703021749606652568811980069594332398761370558069099336588098404273529283801189268265832290626998342983352230630971442791486676972079353845440146527963072289010931440545905070390708023627046586624928804820828903987489527134407651128715774596088250197788061394723809115047334895230916544763508920638504486867485922934637458049518550642390117735227189135637910950959727776886891356957896320505258675704596017653455184130534886238787551363275409545275596959987109549826353243591765905254996391744706481801370817516600978264411227662920658311979029077920116592113712501392952450697769722075867834100288111735298947309159306611015300933760554629808398505917975457500043919281539313479951664796323740407533851698671930234966536740995125198396280140959425122665988459633563217267511026364807732654845140901485518981966852335757326199394721569106600597061824955351770749004056210056974780273411218573411881116520138247368060377392164264334353315917985806484769115329572603000653306749355568632368366689327715604516361286130611512561108638295119409220567692760600865195861708513751405099954785339218119734690435927083916546629571296481340752426917385851329618571078047908062575913515840024049500733943881231510910165572713346482506943708457814168340625330565606369190213037943432845215623904864187588024097419210843547117148556586029079641713521988177685637385082229984988580065658502166399939953244982719730099803112481134525977389499941759353316229255435264781237802831432967405040701135726296104927255553382999465242564248635428896910366461358273439183033725239499646817058044194714081012785117839591107879556339908038080277700831584192122148090145448249820801549767312945823682364841628991004040350934369785253932326325356817588299168664983857183446177381253846636680801115758255501006463455352423467676222167530869267086165845073948117512978120852419064418599157532464717666589112014580827965314024834850329107843865448492526649227805558559138110846590070608816168555925933428768822578882892033096536809140100555817826746042490832646944870045022490681099346853793859549427006395850646515228491272017507146519390911981851898663969373158963906540034549494104482254706267032087289429788667690780049624831548335803188089224584305263126364650508589281448718237430376976084677782533958924926365779014762804620628408513292613620395266657142511876963854945697199878754929068048391147012943494946767351111282248119213537829143876895194696433191172797221976805907884291809143609909290170001734741447005155877649091682257928197929736110516008845459697517645755212928758661633531671257722250132518884283010553494981030745521488968366825300376917392158025448116079979507109423845997543357711269447627812788698065321736053589249414619250203021648730783013550834298955694640616275468677293789661182994870545993581252156928958669360954655974075840069057043940960582895815236059290160224466183461700818080695763480156646425393399813982620864466800173638635872184853295162456604602661746925259676697832303741088140191392881411359112888069317613793928123159852152075566189574748997936460696778023366958846364681406352918189084453665303346599101441450235549935106037341729388726266733257606153053494952494849160803022639727140311998765443989934156859657211078220681091883371944187403391924083536390052506154700131473959013065000088761312740996592331722239311622068436052161369781524416259554303842993132506808882336876396359063299018545004907775649963196148381802833674472912151190217028558950658940153445162514590532890395894980687750783567640724084210704608849277316427339982505914856168834784347906111477080085546874522611978990256301657443891740194550430722545580188147652642477318874123922205867626840894545044056149922971173415885642858326554382988937432814579340003205054388832031873773388851544186688610883554957517711882044860499421447593178785519809295475613153648004138935268890266189078082968824751732021474332147989433906024801584036904116809965633583753645405825321979570625803012546893381126863658577354299675938312311681574809922581607346721335959451822309766825272925123920249978844542809094403072601596479353970300709510071119784404455579777400836901133869334464150356537002990303130328593054473241064023144063628005569610529678578613815934221867637364455052997593846495624650370233359729238373941619144076854887543918459464868262955188359782918770565867255667401379501721657506758267310901284848107448051647682009216738975437876538994930654318813738715184011154984301917945744852474373017399391853520013445103403606247201979686944627214937095120690148581190933728432307758873135915704410115546176106284318712819957462933146186606714520776772380791909881389332817161983652967426889560755999528426299035498823780807057982413385889459662238425580285963294505144740079398850482628349909238248740802230160203496032119793924770227865529205048323506289695791257866969710824504083910723547828615684202068520178492506009862891746636102684207749988405747020004319156599909289995182493604611419492832100236433132925037768118502680881400201736338968234836581132000430116361596519431403383678429244734650785581985142330065400755605123438478025534899394796271398945874671919327769400650261269518213494391215525758926410246262027202133826706949451030864985945675320364319305311710456196194333707847900191109121299255247419342923331128067600899176789198297295002346694410024662506850804658542899952914295291957250904964397852091185901208841010451389066041254957329641729109544754200215636221337749393487980507820339291165148678493661986891569734049578748724499323928115787575363533239045761156992157905016353421753946245152851541251262082932727618451600433393956389120659689440974568018896793725948309979971028350695958720666234284568199325532056875002096297065155809678581745978645118460260506234055799185296761607777152594767214360943206318871266757754024687425603790393679154318504191898954892539026598365606107240255246343729155560017143809713216664835791951467324840980602642537562948846846682920766766342518035059147719769485810708371668085909426142197513365412993577938100207237902111763097119864566948093534103791040681104068632202378919190464533466523017553140962386217439560591748709070204633706317090630994814177519395391347348181442841957544063053773612649051598272577240233560528186761763210307868080184031620044792231407908117364611181534237755060514627790383748556666706743443342708876207276967827875624557511970857614185173201408803922400484411385287632199844119346180055969302617198786058332361051761572994223742826180301986303064238500806800144960197566037396320417787875131909738907256179814940097172154769620613207166961828143783089996033258794218898919579866614785473870289476311475521983309701832811202018899902905539469574884832402744160130260961484021446359359867156269502608203917398199573410130171811967550577828622426764943161026010893925516845045043080703394202168937908389187184602708566616395006702412512078402372819389515724952334633856827055926846954755276534623043879119327382856220608564934157945939947946910280497732248062964287621272799713668271322869075521728065841310906313027891105588613582180680880813525354939296469753875445091447393466848550459963796823421302740119553775175065377270271369750419108855547811736016475613714693684236266124620601946506794499659479760708095455002622006059163071863484127578785292120707823878595483489087370486189634926601712070674205526409536057845693344534685825922574734685519032145161549600438315423162332040290873737780964214394107601090218941706953851042877679029981788063711526300915012839096927852751068159655111243998887873752357558460681598552406853596189221323961773978075400468134203758469482599501973037376055611393712511652225858254078350255073867222156992718745076303036608512602282803125158153454747824367559740103856507717058175554173249261792539938430986060093893300432109788111433088805941336860079868886409098649140489876719977465693475512818645749626246152825863055265620534481657516928496086250268523397485398390528014661798790833061562948094263711468379955616995184217059077668554017496155662404060188771046920680938825186328829372165563552125710817201760694143291099464118540584047699006467405106795710512923732741715316488646865686433840677669702197715363102620182693446794237508710364980305038600746052742233219482917777399531080815238520596113705211850539823102014929838612778564330920322315948126491834831345601770943230848782347074808323315688618626797785900951578442989712797189590180407330184968682892881844918214395717747509529096140547345909677729318512163585285197892962014742113421755566739558650401094818684920208208179194114496563945500865803917092210619633608874826084369276347942137201604488943022455751909926500253705903421316723677760102059315059811761093199233021696586377557064238957726726973836963091527075446295691073422988108299294111717491036949320284227247888369423734525673963090988204714727969224130158475928838394569508261051706298430512672450642867822099312436675079421424172205642482726465081675187912113984781983694950500935984058768720524016043648811554787096024687297082144352587322531706861410412790039221190386179721698929190335175516208517241074014643491274538972351361275681601514435604770998729423614110100528748410306121492202624911554956887705015855994451502473699217588517890659709130458597324831869725817705028772802368134228266293444240431577147116616344098115249344245565069408616535671843084705369368770458914237208181940090773564040987924306539929575513372607551406657158142841255886488789842823736638059215894580558634784516000834289251699754216086852713447383357232448301471988484804203280690845753978191249865389416483828460114949381697756850566622368971179156287319467884685538530731259959125588029497363466144812713765676213393476491916780064085828035886177046972023377150196444298571858455821688458315128559538359481182644031587310501286253454838428345407863328275210826765379642013983737584598151455768712481909328962158801131681410319703530220521774589783445400585950700057550713326072009037892437979596780793795934148349122697157606073866053717072176804802886001025303764897717398753701466224823823103947131579957672899120030943429788406420256180427034955415690657384216536646274207483656446041012753337348811392199227742299815303090175655939913061077789593837701144911785672212731765967595918362350845498110820251202087521481806653063132782185035412539487882813242541705199235107682760362720015669711814414976858081752908244477339068312708769146585247687334505168221259759647171814972697998749161899066189236776974792644171896818941294835433882343793876025577306755780806880795874304430346627168329814866587403882259676041186985036147903980119871368141422425444721485145895719336960912419916874013995316575731853986071541815864008786789828533174098793288665857990703091327411358061110839111454508995044069929060902946403310239705475734739990616425662687645720889531345260257630168800353594740408169099799184552673296854265896489610969545871285026985151408573449712967770227587647596894422573001255851936892458733876093102167160688950898180042523950740322296776231048689945188333915019701560131472802671118305052830472340205819645239104065673881664633463549253310097195608075532387709618974314519476351239019515460255853346460717764097327556673492761841409247406741641469491838255571546626371665051889789054244231234733358800664534192644826901083692699905375428736099298634850608464062113979371357643957723092506154665982553599568774408488345909578826630912248108322096723667264056594829655639734159675384130024255510395754107108689924345539698576809644743126940232833640841400079354905420861291330486420185280588322378745527988919160103297479078398859095394656605278566206831279014471456640101949901254846696253067756535535058185150068711905486314476644836648892569200235893010451956907954811842251247718466662195346800994111473030963474255289852147988268722158766784212268356840721206345568112537862247277590919114289251769720093221670501660423856591164035426923760556620553962070233052322949809439019226242634287079338641318282814292778454662588350295703185847037968542589734613355248687668439811626638074157358331337734332124572234250729485939127912389670275235746500752566709897510167832745603897820270567293079639359503335244661868767821396270485074919853509860298919753964645558866449749712655235745413525197392107656020154622225936521465266559150990895781883619265058164199105385362017103150213898396426356366195004069164775628718942184457153059551757458835288004517997952523494005888949112942363807278537355374904454214179541998553162062507714736633750587472129764176100564032689312141280192463546270380592630805005103478993983298140899879093034178295065012166498347426181557354167970991577707841659197473203487645829100307071795251129720152069575616431549404032354370706301934703953129212887065362522214263775856806099964914459701161424881572455290603937635037007926771283611963106155342895608955943352156982426994460741604836304664029047374228823892870371328836048793654069637124580483700801618628549995474873571369223621342271664036158590310922750966195619985975612813216102780320005038647638066253421228457959253721221952997538594423880095553234497129455423524575121548059228324634267654527631898482981501390938019400184730362520721017132433352843515907983779889726286668843946616848636996300149441334439257775466460194479951568103271025895939743568179242688741809104249338639846419670892103232503295117432849143190942031075861545846867575005395764280090865709253924242429436960147612950913070084807353218612008941721363861251048286644902328272210327432774722711773171856765941388521893001227228531478008881552593670915931150046578316671315891652411054934958647897990309264386771616858983086870658904344293936770425524654824102821462366324858957017414459723051535181794280379407763142843541741645891750134574092889345086334898808402080391662778560162781924787198080861145437785903553147934141610760037013153141029742227500323125063941260857978927177581890207317853476350693390517991295321598546756505816573706495979650302368655935998102040142674210862567453019407127598437725438202794433025700732060404147974021950313296001139666217952768313152262748315468618949046721357364429197421117046613731657438361302863623723547412607684923164072369151134135030964947249878815722915544233302581902219561913900310035633133751590729554166342422814534409594723503557044837436859882673300063145882313353915447695282177375612102272249438415841041141887003307045729438045853329321066650601016202953752579774206892803837413693065379833227743913744072289312735141000721401527777577300962224653337757396612583067734951962310652899324486167124892578886252128725257759453738412433264376691861971177853134162032635400073308535894857783405508252995121519942924765447920064855674362744265894260765861312060221462706667492946222737639065067986240724029319750460539551733945168153359591175028482941094946351811408911659115928168600728483021256610664101809220910448491681700727298111864670301391382616476454095192810326969689708348051334812714623083118401534976840356846454513911573854122239865860105634043579957490189286200352044451283071061636700600126352801014921845113348313672188927442529330141677627235577144527688547690587067464292651794002028581875784103537390122507381204899011569760586748242344107451713064207387304804367899776881578571692515777946753364478408476155596495461720950351341318580073428800024365978884563805317427803231344004328669997365409158189609877548366788032650618150259490213991585056792092520080670075848866070418257199863767621471474019169464949131310459099848478833403162349032946619939511629014054571925690577706420912250872455539019989046437853806946191969421047379693151887639590686263600008635898412731061958327006126708285295768942127559697580893827509059084415026674507123477543440343121950126468951569908212611148472830628834320198354304260147901958548124117197826759760398478651198626821346361459551589276194214218468009851631971990926548843163116521203536111480656398179841709351987820153009160717217996000335781910084757240269881299233711142104157785031748990520332128007386327240909325294350781791362228576043701755900949976026015952782675592231061691619614584520105396086836175003228369346297752724876438019745187741062153168519214770622745446216231119530033160071258387079275643556231154030317173034541695697947198055753737274096176054410444936871484092401576412074440510018054235192901407009761091403771259241975057863421234738024024652392054924774345818860127425276922593663163998783232406790434668545845230157121815819766094439113142664294898055886172547101004493950338295978487113846043932352293385339139805086543488948445340854779914128733930652526208679280550445829804432214900819277088498758190090186687569451758995530177061254986683189262054194452873093588738632418174908869002211261759170572961797346663534443875727479667143044012982347165470709777225704009633599222626235800318674964717458201559835247362307534090553717218142019070500113830574865085705360502288002116409674732536434600551564058148267065302058599127825775714391884492959308324478174789119964176976908729804145752518317700568057200286857438886493299203923862448169194418497100999081847508868794033956157090869689901562516958682329491238667144792453463611261047502323185310325686309898904298487241014548283943345661989592917930014721700628198648110367305809828634222430821036868757137545035964979466307687505608339625658998000859451073230860994374813323487700178323730868546240371452045224206671386730253264164781304463312840662459432743069370430684428309230945714033436534094369919379007846190290007633154613324178885894692878108487763790437080276289300543235290789146004542149605084279792372271545093575382535776006693574371178021790625726733738641497738402892254577451452907106885432163946155327421527889546061131421021044066854596154046861663181766601709483183397599045691384812152672719616836780452031062103244327916083239108719398118639047699007684832351503969643123565595247239745021188624812025454863582267219186250356476701028898746135513146113461697269609610137393503893063415507590370422123838827567603307530452611144516772906165315104779489558808807282557753046035990539584743330924519495855647918043121921142057723689630773628106800764558740832333164693562264603565886547302927732128181029880498481930785997111505005039622682145696088220742054037531739474066651101998245074279281288364547142839037172760498866140923957317440423878826919975013017262733348589249841177541501197481296702923024985024780753870519588821994855273662437362047411163897656604405147298647823879403695411344381055965700632773344490106198429053803425233670532674751834250874465431795059865294345628747210686756405985663082357036221332106451030036250847572760479767997229696886801548229907088636063152336713678698276759057221240519052210289766033254546923583844316230859937022443310240545468731341949641352452829671589244415213726575023186539786253202206230387511328642203436893812071944007269753726968786253366945975247168263685360640672870149233981106396847684749169238206771075050037281137392139801289656105834658767886470390741914685252297377435621355516236501757269810932606441671917451431478390646316667365464962102229806584633141947145556500649149365772089167120039098915390110630604266734331542005588888861885716329038589264000386677028798099363115683613400191952379695776409458036445772097976609645913213827144452890710199235337290568026216039642474342026985400692314580698201942319333151367901339509831105797523475621582946533261796083834696705463742929096539493068599019668386026309879900153180461225824934234910127677142377767918902038561770365232873473273777191708932209107227620172266536745108812818103840650766860312472228029451192272888420224168014173153917873667992034103750886525813801937235962084188864844223655310858127217702101358332455429173456262464824280669463583957138748937126296541632502147835629500473437753799309593740382808226483866975819236249703139204736666969910331002471337424928694299454815824265291022502589031795446676826469175372439321966726783135276389702682418123634130672436955952620503845109100706646039000396136578058752181681345749633900102709492122803793330912299207586448237688490208511491883021164552446697848983799411118018435587438477099089006487987157605399804346130006915944012472952525187067255354451867455420693756649917120333137601298790834188494712331803909497072663021225957494946515100398912859639916169501325033908311324865235053105633893236224437588970991965263607359746024083543744197040794018851894376499185979366664525690072528125257409073584246467597488478502524818781846332287668709425354484291878480648475909414992975320727086175866110830856311863159128128296399419575598142185886797398333802727870298438123202832228965804675103148152171290778029994819769747492464899715219077700009308152078191867195354579724587794991277545821427158094115781100535064364031784829866285734063404512469909969524778570602258312104694848182073283308882041598458889939424125289230127523054212696766236987456044515226966838491601957334517951280003390933853750467962104533459022502816654366253313162508964521552574812714148149441321358773048846887998929879573025323992665820507529718758872237905311949874232086647791844470813006013795625411332976338949850213751710653123713289302446330851323880113604595197832095300032565089787769583046028748018516521977626243682586369289008822893433409753297504060543311538384639770426530095139535081776582930851746137442276242856695572915688323058360042053189242036041022301496281207648802499401200573720983942690038334587472736898623381901306688702354171843657453930676152467949832517382350872637160167087657917868827172582782696711200336158765379893664715604137015826663246234557929306573625601266201439829833062694441121887393036892748430412907899179864461554646237444264529581378905572397530751574238035038766046147697494987585960458765603857664411673623892077528552724514496214226858286653948075828075825765082665568127958290137689702425024496423083455773840288397744038618225856648921863616241799145668095675686132263664432866084936516021485143581212407364227104391085229996289878910599862960309389578039167397804317216840257619626030922777932582340775277950353271385158650059247666230947164299833056575653281715426734757558336280401369260389822848662112478750143559916480545023862597029214920882699618495382457738657516543322565692611085469168480601674538153686206779944884786996151339861780890519288702553828939365061587775158520275413346163506517758454965017052805079594797969712634083913612198921184611478236276317691041982564376509946755322104366920342586786420026780247425921092269700143029381950229988385910987298143564277403071188206845447984853908713837371098107913298033106063883135606867894128609098108551277745055026508136001580331155582649975010964427180507787783244902224597061298817509310113880249194047015232235321441993266622585598404804120560794301612788680859730265749668456949812060923141411891595581890337776427496955655150960802077534089441277172829134449731128199063078922728179556352790723582607724085082424390008904793954805400167223354418140456519024335728244718605524777998086959651263639721116934918891687632648751855329949475893516811077859245327081112636279791333926427963084807630756745305663400161048291969618324504367092853130359961113056857085057367326323372827495556674923571073337311084541816075132582313617388160691282182730096295146354327875421846364427937692261644716811241937268578038810271993291650305462005512421901277603207401898255709703438290214092355804780027834077706200107405703404346401672221690186231738426371270364415982228712107665319893717886426814188176783390569200105861942195332558762902673696668399115145729191052935765024389421386437974143296749225326186119811112352157621757356965938289031547440867111799798809760307850920764050023052992048177386014141607964080675732214663918574643141246079402820929152564434739129059405640986708603343121450009356772258998556389230318163031646592607529014039851693942755041788639409429953733730107031651259895377793750742411628747657555482505674930640312596489671755495462216294679894472782379949305012582482258954241357163598102242875831843687891571727851926285147341653516680360979218434774289175525318180713749422974950272066908127242179096826114771998954020695764590563330035625694461322938769012991700235655985569101688726575857731642458873206996867682220921984055365986897262542160462130764501880263957570880023347718754283133708614326298904558165697372601215591284723109793890147947512492579153569478113554822573587639130235197167691621530557853474178707844914839917160363916217715234136436587570124192956290606266570363724326835832569124121891484949696394691839900149463246174492128233647711299608587137362261951273691843349348538369412122475965488151781986675286390525654418355632218163618001565757049177904871810182741923511495212918560502170948658414999861781098850986377198614704815187418805918787358589998160189361685455691333409257590078093960015307836308443798811762293904294442082095531556919259691754466442774554670131674446207175116056136539496496992542608634925200706590705578310434628867088264637597836471071551199496793448705951623802341157456327196017057005097964719279075049010362939796288972266629160684976069442324295763628661290095741554689362358335049718903660225214888172923560858467681313105467054871086902093420366106344966611556767026181171600300387008542763143233506238450832442721766513280602588030390644148384955223216830365295678655659080153660292734693708655069745951693267539741082631375898133655878055673170441602488673972146373344840925581649039576530629941553017116051811209972531405500577881272650532258432213394080885818923950294840875538683380217431453638050226958194428333521712240265788060752313797276833232709451443158772425262724617259193844158716956153165997797384611035638290517410930145649572803969206981512370077323857994322839469895012740237257576981765775761550874978663654150937624647882752057301277753752614104674406242135881599066984199985734220217435570711653196947743592906061760809587416256046883890368290986445638801288304592298025538005170569285501387015066049393150198262519322610092272986149840721399443071841968993194788442225831333362339007894325033637609992374540112623974315860391654138357668122598767986638929322025074952369018784584901918565378982474920976605582667361874042368565880890556356403509340535511944747175519650499638268088356345008239320438995308551990076252924432107838241073868734273430123737612787638498223212125587850867370517323592400987284960652752500690267503341519407050618283665064870436338613738775512058733659062264225648667299435522131597674804163028475425230859284885071969712673856129493654014295203847732045836170619218690370170141238461147754576224967646649750948626309353283476014641299517842363339926393711752917879390237204577935481693892389868652227691370940827637878959057931384033952690912162754344382782899859445989259827250196348276562457201490515723279390762278188873187422557211755060662119782533247103337496303391803499883364726927883484760979687309045550394350673092930567956437539483215345380783715506185116092219652412571287392450811738078207493685230961633957259621557342903486363713999874504602359376689405255615364726647267545249304131279442053909747234465547746067160651953833910562658215555541151634476865050532095421207584463973732959776830015497135243333077718336019260630196595296361014706716185835156117831019117153753061509571389905612746173751079798390520033756022210916095651233260651584431247400575720415209388793994255386921632330650020535089379525610417670584761327755146936481181630472615405357812497818704907267154286665502503197610989792826205379080057954330194143719888752058123297604337990140440945994062062640583037131855505989633906814071492787957526084104021021631012001064203245312966986650726301890902234805473718195431698215800522593361314994342607029058136573639763209457574262608540337163173213164099547689534040217327039951366232626570504112441957183435328171990865514342256265250025605754976402020761856034736868022878393390945133690220791024763538302255865626893553190640607817476252853966765779971105709681272667562140217319817902077920889795383787050793262424466357542617315774144202951505310592853911332867519169040349765704152387716141252746978594613164308434250859676886248620470349944311543035305171151801769579260793303692826312113302118955660874344366244628534291276411017556515800677334400353879930739848950027584659011436155704889511489256616654867748063976991334614083093060516027007848600876886503477570053817889422078553925873241688902438058497628358852311492195495260889662640830559328928137389494116965847107765164638421303876697953597965894102456794687137612523115656779336150919184750970010087354825832301776323240575614171043401841984296126464644891044376762318719809817852630678522025700723016255504683280801144188615673297820928866298253724163278685142355284885269566128548722488631833817333982606271733037982587795448512002777357962451807317597761997987373778673621366338758639245962076638003889858697373571422471503046764722595980857199641944437425465800190146719469230636895631619214673250103750772863796802569425279556503880693823947629783482191699371145713532736956926307985949917561953655551757708920935667967597246271061943523383384814474544705207721002936806956866240783500255645850250171046854889267167733555573244739674228278486211860495002315631757327252483395120248486767770951011859034812925946144813154032925128522301680984799110217527029579772340653955970538115464160918338165221997414744789530413194134517280914716705637630565132370464468289821573483340391858799541722953368444912721829889529081470547712534870807792274846845024083975689095870011424922811126054210557420181223734442480132641671765509890396784719787064855544842838941512516332835594538724249619574252467257592074219859632012345565882565891623525071660120880315098692095445884671307535959273253014043533286728335840667224869113171357437490041804194790160676065878896590035145434498637002044264657134178638889083023036635083993956087845877718851108462740346183177493948179052759017516799853847676076877310364910158094640391450929159224654429272295663720072011996407092083732948138340576701950205167852192893781033808464018011466166958059188310159446858525554671251045734837499513464405504835762087573236465912687638121353311662977491125504859812782879800404730258503995688193256319410422079590475958019602596008381187555715891926808459957466028456487811229443695632851185900707048921115850063435786809384981441083780588933993436083792203032477175199256837967806573029538954083840854271017743634983649046024274534389743122440793335636902958941283822026361222377232807130366057668532277394970598266577049832823468323549071685060932123857199910600561076456758255376194492374714916666382865379937199275464489428179232560654616205471057584710191220386461672528044526769513057863589932253787087852086831426406226109944632637112783000361786844706927867753708188474514941250175855976986248612124168764900381354730403223203592531836752258560907918192544432486667798172389255602836523264256948190393013729633912351654721500700281649323665695169684383897907463763393296182017132620685577436081556818130625249771040459087029611525113885078752242868924846817045941699679155165993417324922282997677421884558803501809115555322383271783693508330389199098399600029605528126114293339984409977169597689054199292469554858903615706565120668561076010809497381594279101383634792989884389545107118459125003440738533356379020538721565291461606870289922549185925345351508058801802913789075025921147656969804848828334824376200650620820474714441883655418551648133639835789387812650893244063608360496156571214953380229204671835066759760956063176998615672623653989693478145067157929343173472550017632649779807042541412524874104164049993467639494197662070720012358584123487688078105818920338728687857261541742555082614638154545079246708231436056315368376526009097747157418053661387803354966998733574610390939376802892297152645244590183464617789917091799595541084544057814757745542046475400461572662255157096824809765146675712031660305830432507147568218385840397105152180816431849296917737390610081134249187533962126529024127689179505953233548968473582874421401378874084174730524264706836842145895727757947297838395021141742914762784197864017693166594354689104008763778753077262402355763272872432852842620149220429538149658021676834838668105610855979654496610750664302516010747893349046224440632160809719158395437029256297705347106505590364046415833086008030352144313972782218937131053183420160486724889542465152065611595191155108953979005832408847652532606538956462446011220524330486698585906457217010298090080515448874086604607809188161572073407725013516727240249485498414858272249656830920984743587540595596340825264525757892954027488742712758673430754879190753641221379605845311794493437206631929338936085791368944759993532024418634014058833299464937690350170832431934582051420747071607790819205028456267104977895899827783978601109223321916827581858381382629790155777280256690582576403847259510487982924738763431619518413351794531700192134583116383732603154955611465397584863010523914519308179284351784477985878200888074261312053184740124225309131080946115660819742603094998658010936498912591228055971496484851163101090667746436340562261084624145994273649340847118930014226483326692301021295190996305680952833280752057202805564513730457132883296894592804911696426656556048440173391766987230657330664164801514938709267358420014430757555373380788358986406574146391349972501830115855398968199440888058098997082243510334754348384215634438386987540832359013856555222271964543362899452539737367065040455680399183091392282818241638155831503034078866936384982557895698970785236966168036928847459818808359573184634251667285293731395447964993626134107037549244328656321524035094840585892780376381853260007842290567723386557881142325854354357748336465720671324080558686838812781776711705691491981913469181368047113327457753000897746590690342227173071209426604022662361788312038495364561972482398044289087858997212427695152290367237162336673697083356328726203553295713324391785189897046864964429926047237845328098122263066429954369125542050477889940844860725610158655454836993835781015581778532840301538303587901201748388276727972737754807044565494387204200098386142119190671193379320208124005311586457637517147182943823647454586208139954977114942718184364126919071133387287034783168841739049126730064207656263232608529606827402164034800229614513134860217905392203160524808884822461919813437265456661128806501802486233764695350345351945381186699013257525414669448466892011298587339450130525748387678748081610170292578278085475128570483789430600371558019106733917027792419628490865504140011423956760647547268580147695306757848617730846218446831103303667943710175875571592290115613064949472135979527249939229951894855052782213983434549854409110541790622003475343800289491651166349480025290980263789539957185075716935543169241414606229410013641114156790309632548449912428526436469067929894794355703874679122312901200493550260256318015963132522202484305032842498372994675389175605462945915985906812524244856743692150557166791340241571875376723607860542150559052229327240974846331385765608465396453779394653803219473229994521405379074959641336458451052585852450524170255125383291502459346721126224913364335574410985728752207207803862663040144270915886943528258534362619048476164133662278133389384000240401727610370906323779403415789203849863767889329009123432098474640200795899034188250940227383596393204355879784165194709042627403272074449357834910035658685199502103601921598718469859590736757145762613462656260928372606889893268061752774038714932351580361069300152945843806045740386129710384684567622728422577235883482886865395572694862030349732481867647759712361510036803216172042410979525087364876446322266626445293550551345799979328805346644842028425686424223403729158692425816971887460431283007247192159231347526886535304925293056001191364343077294202325627079822647895359428073615209288756533481118517808390268232454687176206215665668392589502028763593375009909798869371986050236584685150516500074434246470772331444422224730788675221189391670899662254643844727632791480711998305120844826512665710955854107518983281933427221703538175634231722056235339038068718106492321490054419890739024699421183088167122226336456358743972835505057092312716334127377771267434253231350180485020485773163804023838612624189438911904291808861102562945032715569423713304938186745737407560601050226945982794224449212457436078229806880573729267566288890581192545296120065003590982123837304937751176061529031905584082834505558834102031623818990181983279070459425069349829576479360837642886967685549803678912522196762673939909937609892385753248289413382262591585625899473250355375450253957807348515658598522807320940869512567268804313577736249816110673589389459291367902649878533161383456645803679608089337543342470098759853110140325972580450564185120249301694845004985561936828667858354460895332698128553096417996470873948179897978084546257864766294709263959676315981107266770583206915762406112700507755999064943159542267657542182565407303534863332024365031299884337915346665626202362874778520030444587554495908452575189560674495382431042339479113845658812489774854945478251076540656622207954404140465124874246127603008824220865733290398634825121995374855057467851637350755245508576291160822845164870000267741233071967777736817236017511694198659367419348327365137454522078992386786756022091253822598682637460509479759716269887586188304539457959604062907233951616373833855241942366915781613872667683516624198432691616595374878544712662235376113017904914560905403490126944525472294308580440812309528637983375401319605163975369136515489364749053702234017913040420176060946006902751404483893101472113882238220557458189417976239453643987057647207476224678683871284678748978376271020148272349848117381420006212072781099125432879842750155713528782886537579153118371328433200562813594975218161301764106847775932516350625538806922411382296136376420161965659905942037470002174811399085885971447315337713227904644256455869097054709527844733037492208782031325148366207499372538928501354306879887017601995070115508398122595919476539264010887912153568661697083021153493550473820181074302344220304311104188460145161434639567894315667862076267222092019529543476350017432958971070805175882359195511939548600083660627828399903448632637364350064856305635696785812833660941741798556743870678598770629399225716649968641466862007497390076481290391236512394133677474977842116534603316728585116579317889409757864681881856286086794153378140170284472615769889293362191512453158507230592035055067126043192050981921785513947217153722288033643455388436620374093906914235018115262724260888015267282325915886951414636566760177090368092223015004288900829213855326720569425119118821018405330530519249934596486438117238230889480486001686933473109692558260095310102179568575370905423001217630880217714479089630516682245101233845700968812731012451339814048083178446266475361866914595553103120088618999302539902367696861560561785990106646543591985612641193404707773901034081168898773884692700336376601319234419680108810166690915979539283935447343852818429333472999196175968308026059093039518256272698826007523499781331466942453759228933209698470107931537002689885763716406539865035178555733025283960002106657917076749277121935150341840035468576740172979337881121411407879601409067897155349078459706549769293240907807925588197835329274234209421884523576265974098922048886891405331716160277166331188048698097028179312026919703557845171835672546347618189286760867095034276884501436353814737434336626318121507804614585326705125058694343571673427611201673534637060474314139795326612249127391801438272203383155982031245862238736603044467788095932324662564631917153008200441337882225235944512418431865144481891151603123998445887531134903787662918479127583020674236787276138996751068382309021275392345545767732836611573648262993351838033259953149717351124877289771621548465333787914431097525665514982734810942088243213674589379583260619814606332103730422247743576487821140091312784770980984451037044247523992125452343949372937828131767166914998669873677525559657003941780610780746714203183411565917783475112617943237802810130716866977057423171708363483967768280776933647240499833686502689214156243161487891600829446811053389724505573242894569384171414922739810480578358039372113118908630295211805243264731534053282916324227995510535434180397420311061742115137314113049380145430322366362683591032918046722286612109446383732639351761942496233103482346956346431185668128740375949896705152850993958500899009423457809272751308294749130576891019803945889700038478386135980915033659213544757386335687610308580949544909907293315784938112570734443697801864843291295791058271397487881529917745241012009029294932460432990910614571014001636545328373118831534786194967320846693038683504399465414144581056770422863494098653979470194416106506669400956985873077250071426596843623720768709539302441039595615008453735973955415624878367325799081058562697707435467465697260188030719697337539285533396710173261946357029020728189565045668531855100588907800698275531069109619594246749879975793852374053021943821397353025803716845477359744103772871228679406652452786903810692699430866871925067177000776312005876854028937207812426386222907247590300627538012070002633852180447290450569906029904358849675100304620292396899834806720377846101949162662595965633005755198291331196923360342239942143343921281375544915830893000678001822626433777006734587384047807886745069759999368119238938218586544126925984987399730676660400361903099184509305010724190820807434124860274198810166874766772159669308037519791808700841607522658176499276002873756308521474282022821670908076795482371854733897051866085500856518059540046099170214942237493641547864214341841153640253799932671060652157621467426917949080625442195228832739372903984543604638614976658072778406343962457173716314331960130142344983802621500847846057543276696123115622975611140663937719990281070317534312361620268794320061346634959617832163874384168408626068773287062088244692483181345078085792349193275894863820877220770016435677949923701312892746343647284528806884874342758100937628383888767617167604174863628362379881688928286409832268343866757119179411469362247850963398805609667669252816258562455187057878648293716026155428551743709631893621293777656428065612586311256777723448197979047698572233134647681957113195744737961463557499874996178431142639173772392888386052775824786191165610643638969574686428855709672136549894196118645180146060382333271452614242997323735441026702211087458917557138246832873768336610765397794512417346038460624550040635723993962241584079873192643200719235784806791482122123498991206608376032423292175688916192805585077437412393546750629781636964193131974124613941778719404610669988060790918325490648754211868598869986976422118805519412699153721851573643045687170926375675618574838623201195296122043653476946038745469654553253158435045263898749562793909387932729495367623463548845234040979814901035463128580322090904075683876578117668573128875956434810529434560674269272064709981779809586679433655398358564422272561107788218302796412389133699669670769954113418768236272336242672577159904421579130325950304842442513162589027419280632050462058693762622335100252775658020946720807340183058092590438689079252120802789947012828329982727821796918798256962849081002997715622536168480571946207948485172848141537917593206532239505132356084927509141547874971391259510042089124129404836938039731096961123900656710940027759737961553296427146864953141675453674375262396142079194184086270355318245510632001579502539884222417095092917071345090441472985459812527659252853361416679120210695561314895522745885046258123145085547406725970869972539395756861735917792154952485749868990683241517603743177688999100060707459883206740186824322231528615886709950935029449105303484502937129047761559449064222791447071097415228405605194242695777283163623406795281236580475237337187117735386955146973167147389723530198945878761342884717310182432502949969685215024154934949108661302805421506017259771998411867556071540771633489616670975621311222697862382362515310910216051660005247749574648055212860217361079078833315726118041459707192202561791912749501774323232257827289007305833730396907975958522152746702534855860816843406481365091411039234396575333897663326447367802105006842985436381121750556579885153491139952488908221248720809092090440626852539949588919164700489895984659229030273312305864253434635509507455764578327686848151585398007299107714628619625553081947993002274617892682737820270205869768641161525264226806171742530707492268049101762109052702007143108860156615024712295706766922333899543393978868114593562125900425089237866513275863068139438409605409993366363977722071736332853219386654172591391817420046276724094431502454590501362354624283159971733019593553570129753286840184648678967376496855841097414307986557419101726848409246814960383261369934315759449774048080566194330221550296387351603384432330619870847323863964935742709342529994822328538890061236580885144193865612806465428918094635100627113786622147790930841794828092608549644466414879957198629834101540148991240345457124449530548247775082018659142336274695253304685352561421727734828982901319414138000675036543177744959051776453533445110747328135827802610113030805798991690134949197363603367583109517059107180936747373206219439967218522876395378228119612341956757513351548356267791395365026173799107058555722182066874871527947656045724540757461026220771460990848575373915946617055086810810736322730804953366339694082460295161729633765006303145834603530718974530779826893780045611703616731701980499238006405975833916473659418499042145956232247501608352334073406696685525950748954458378959231440355937338291777644924017692489056811631389035978139420473256531873286928460135639589711458202135927064555596767310469065070184620501848675714847393155158323346283135536002011980104796250636529475256788641918705390331351756061486034028000603975359283305086583220872557920182542088649426787872472710056058525193340027187114112485184111268167746813055909195692981323129836673717546903167912631803027010263589003838206832547743753697586323512078451599492886192017876595763268177358618505635153820393162152359118942620424283790333059102793619964486486061925084786512142283566579374364128491346039665362494902952867506305547494842004108052515072176097019521138173125594367477651633632267564173639565212106653307225695686154670206157592812711836150306970653141081081621404341063733034055311974237332760090404103462598727784646870186879173254934865425826563168745767378530757663448829263716325757714740245742614535442342653187780003839072922266647128149085535613601102352312750067869143233619040117601142644646833967975085859706394456611965158400740255033412839256412437939877913435479449456670196300356786450164481306761862043819487848092266740317485376301629588817442349619889625189789485968197505283872051975941015150025554237929772010577970066310153376000932497858806704212939298044550155634883084885564984583056855644913601161604183864698840113943364950350899750288440551072688293488784558079816966116620998474743270066078114235730688090839920640818782000270182790662070183872631287841446715744873307522502059906458456490646300284049599026004998436741870199188702720344155438049753630128095751017615409917753074843476869209887288410199924668503113938170906605582168039897492068259156708292566597879768092335629948856344104705839255501442934954649621916006555479104805529899359890487378912285301462725825420867993758635191900528986280691793853702847559522248797769319432615545020790235923017021536258504798294096313306266913295052084011593500354494456978753624172394570866285616182282969473329252121364053370789829792453897185670702244769564353882548577997819816709742697958057114466097301231894218895666786632444552806082032754350221795867316760569486613524078479188044197263201577150868048311975464707619234513822072788657338024902013611734710275713891527938026769273251423640960912256990867476258737857284568112416823380151675345692935691240971137161228656400303876547691898581591867608892651120757269410803710218887450716406596540211218273891622502214527229137862242081919412192673268501407100143070158013384677197611127089311040507610795153450579743862405906064644028439777101419902832807999187474175040997909239363196618258400731319658185527383364983689897708844221978473529645312579952606709339178603368215002097989075479991985997442266714543752048169278021439247094632414483618241055599683954537651416100776217063960158159593193250296198823665765255459586376739732650911417521564786130775622902986547340519613272489042681090133663492481593048460060262039274523443395905618122995551049309961965238580674772879588162959137874602086559361143922026254315531073653266128744563391029762249293581141870206675383161299162033679871899796577924821884682828954741445422480819670331236611100956541760537940526426025654423875897557045938147604440422608727458291108819477553029033050993444990427974921435124734632871198760377318765230708557722289181943193620074448000410613707943308523298089139319722844674139871535449220794979099499175233415830125191756428536874016078972348753986321321171153543548174159107171663454490162046836056170031789859356325227460851211731070893675585926760491304463577630160105126506804964018510359201004886947341389674092411523066151738669525718612496384814345275481095051244182328689472246673567337605751504722880329816950777887308668201104529646045461395296381450892173569136002856227685659222496129793512667201901312156485763355348577351735395548297102265018643596305571755717347696301886266700326372486215352358232480319667870340846600844416460921312174149113778982189203597361728806567500159915545224594982839855194233909926819321484253590593367003631646472581313668507795021838742781246559587159896439567445388571622910693526403676087413273384992218876619923106018582039011269572858438155106587853427854747564667852498225453524424771884681898282047906548684508786352265940325289184298029834906917275895774742517077092466482006884503060499470429966595476630692651992227233324650916291111108892162606293717244455586486953195254399228548338018110591495685825396839674399293198663665393281494787397367891777853914665929596371043137709154500871975720425315919025725333272830507410177420088173136805482345959556739106913085533873278839049446356011222510184513471424716990787643285685338881507369543511704780746389557342587770573424055304214937287624148320453970197362850604427526777082606663321029452616399336848719191694542718033491742477320296099356355743867330480435529122625222130881645324563719653788351913916227604126089985530186190773104965888756019511110455228890087217326440334595349002249609010110322690247434314605168750671377560546505500652658748626213995080152445029149041531894369375214073281150232479905867962286487836557114127838083668656151835005943121698481490747684345471415019914894145726267714653566548970449995618830232795267135034635509703484774145908703176005373119353423379751839558865924563754855657023789569693442861252780698943973977706415356264820790091893482243881520292707077500250628118066905913868010673104109840055325843655426706586031479643043920481741763543843925572741340602931478076164274759897458908639938659579574056289614993643787701686934792880491840469607158265735551321349349426523606295301937001077415437428939689150439302574930634574074205959551371264672386281449090271220159772633805925177450123491135288368448643568220995934878944048899242013142028042344624717429991521463954393817932220170789336018176239598073793725269761758146523600597812002178022784762675620748291691318708405739638431068954371136221487997018055116948329238459001689331865432445157720029941281044053094011436621399752767289285637729517254963762800788144445428255839204603564621734380695004587108633383477362542424169214095235715633827759483248972539752434330346280593275062054123292026866377328204781976954386084243233514659807270569139532679933843711542115240021760767775043556954528520972044267130141027737021457741411012625339349040247475532029083830998146963500647380967997529915065370979212802896934709577170201612855924757698452721577010506152971130727113867220315659610984209239300048127440376063564049509714623015290659767430684747130554015967850568879812965001844186949066234390398315173045703801426072860127132158426419739358995632339809511675202811583668663986890400261613650867377518995599097668792978934246495056373477962554097179477651444583672846680582802549452612061882692653732703257608636045281030973582803414344812784051134946740008631928574415336137770678263892348301389557690063760505840872719718898035053421250252973583700556570432141343909812758940198268804818301601868221232176444053732942019488275317478474376131217507791257671522334604069505732886232848412353273519698776112701868902345492481525911218978992953672259061132683443817455608363330864399132188240480147613918084384122891361957702434993866798747986146065163528487888184701127270396226694102724747989538142626966717100262564702992489717181368697658889237151057902618602915668486070311791830739062966778019121011247218156808523620037140623038353510039339308545315312634054296359021189813021399129647115466474168155148989725949494956314544584161746277695166711782995541527614550275336568300038809378297143678314521848737795681005631693663374827090918401350332883949357650709552422292865357777509600011760255718502144247817798068592314007169525236715010494025459012683440926934268194226741151655348838602475428387089257762977639353454487914496934666932320256775059984710083446955031637741383479298402089801467246195087005377156874287567291149512733509255262792563511694356372040676811009007439999932032225880159142513553107455377342251556432059352422846726899932376794849642450331317974207503410876686586221647095722523647245801147433427738283705021978103803410809566895582548251197777832979402031750502288397059595108795293658443760682332700838122245621587039538750671588794841640845292919286697683546638904031072153952460700955413139815379154685781054351783888138566494433971311221100307367123567038493791657490934852747030127220173640534075846235873697123045682065251519469536212959447316736774277486863509527473746311892508770328956313495629606969458510777518237817855518687513535081216529700939237159504298460160635403037534907349417518641119862224565945397840821361373843140911125958698049659123904949449539700618728255545598139828088908558862558855009072926649025695452108255315394086335332917129794594136390377349116382904032710538441502400204365781046346281039813862668837884751587682291661555423155054289669188329654223766662181044402176198961966320122568089429081788876118530107352898980567660458783935222527799334735675419748416018924215238333566451763044089660387511578535333988850981938388327948474262612121141816804968304786756003474707372628813002164078079225607704911984510738412060747111500589275820776062211060012788007248098340599201465346438999805847639038472429374540992985058457155460885294646767003452072472258210886044362375187304165483276435102256177426205033170764138435342074770870386094178290770034935342912657391980980115159071827090061510617862590519173780111399653733404717878370626286105861118558069292321029620681405965396548225466538280668357589001832623826590223583010889796439797094464207774018555419236623410600409236397815808853065138967217141807706707777983312323151984515446004401102608720564703753473229769280221889361311366977939593302203880092200455222027153307097221033916057155572994106943198047781174772593941781315919470666238865368662206541700442667802098896128708128086737586050619564429223661835327526688238518882103912322912755850358878674951124105625821944106273303338414928441440306951347952606199269952589671226781764996956902293408339393946906035210178667518803669975208121136994314214415813910305531800253430116102183828102266130326471808206859522072081358807307625559898047789636961261199829291446688457055374423035589529373632984853911586687243722301783319126826481028099195660918531987044662944030825852561723309184539612650445829719902915987677480788180906843661864420139950020768630303786762785793302522478908679171713201371072954463757338317702985296499666148292353109076523446959874260171787948080165390865763995937720379747630373179809941237215134548697619432417696550860876991966893836131728495557110839546925880624817046948223361721246422319487870765771194890888530839673802046911931201886454143599591221053809307088614731602684794069680107457903509861978126680776861134385435411646023291239329160249644524648687919017388582732501638233649862788299277015693168135653329305541769870078851917034489352111211976334981470111517068055719780894209606719236287768196979517020562877079850147948643240416357025682022346557632216762981971176111499413967701083418998486048396483584906523534432973149786303514167351858302648312893099636079072111287480826928339765826853657670303213938489622714810318738028136270122340283979869859526698095386741424859950989144774160882262761833979932022217001452497529448596925764398864935404991180042155732341616688304014533031770868768515163277842633818171675960473878715349483095570204858591670729539541080958343844881126750935660056505622670860180228979471171588008427638797631770887602214234286837407935912547507024324639399853786479979609179684805004808620456186795745641273791961551435500539043248008929084932685292200761798103880470493542256285128279588136833171144441076500022418255701618721237907048926289404367209685811171279993368975838673398420564167001378680594375985959474931838646346348377391400929906008989061839802584417643689204083122111313899310155764564145541524758034332683847515645842019274352659245583313124948396085581488354870463840157225903745033928873412895306125367507901098208098532902792352777165196369429226851597284500376972401456303277820986103091459252581743233998446853107112346154771006807138198011916208169240659164685344667365556352315441954888133608427841702932803368668278879247199955549952851821412335107150590140985345897966838557404294875109737020031368895473398184503827167933173727342186627583257107229647911074066174889509722669743803314022598367478952936593384490998340782424442757624031091310845645095349107051570808432682202970683774478185844577366016456131207706812288123538960918205200252517472009364334901064748252371691083569640663366857760735073647540698383934823033578281074141948893117639674180165423963978866876271614832443146290439068621765179919783358950912277822860936379589697479018408478247611099355293442874669222381301267350550035551803551616733581189719174739264276069579458941567644263439002438981616264221693034429814772756411927926895475952216553206123132777799833629596022459541228683152063302305393565328371744280856090572278381698573099854133805871848118912405940221291696943100401368564492903909860920120336542773936451276529384041804145800996317113237092771578219522387259476579055598584738508901770412233358472205208846782159972906928556344413570384145659711433737770768863912239414758994922190716304822452251305903787273158289748862460754587296699131030540493037622803319527365953783215891843178803653787105013297946798291999736144041287214730726620349711426858743979390575911597475626601479208854439254102050725671713225343804415279577644118371167981791538776237619582519402813298646715714147304361444714996766571182830422330294692645130475703070771958219310657570512699872953252228822749020739975175907175000298688773646056081323214317854959385838627970324800525140226739920586078144420890223671110755571150260790747037150998595110272662035575426047708910082732220196798090564260757517111755930076795352170884966368208454559822043657214018759413386526398506831953617837954014764694912866665590961718923300297485185261379380325715604331600348336859879090951183875040146819700183860926128476314726407143362838229376545261388838886391097030739311241387886990351045718144329166012897483606019966458968301397044234380914265533791876608010539716609970496427356464040746108112970334198148194850720904796791311926808832299568072454698672233652607403675107798441480462023520823219244339453656232892489679639113874900517130047789595089785028137263226164369632760149845397259755358556007361918464171511017105074599216708713397758113666810852714871782357510960082036647294687682429591970692879141870548839224129115689899659002035533018249182470541793543236960208724248869149881672182282765888638790999562582866171909317055381976268636038331580710922171454404942553751208214299260088078350632393730942348724559027237614082969503135394956180618563540609835641043746687368868078830180472883294792539647518473916749929174157346009446544477759782355604609959553782424799437118913127258426675513759213269975862185007784668870993224351872901609435271681510037483694737731507844684004333253927032310573193386387910589793381777755661270982742052982546015478189820725392161862721569551173526168748088225747166957215690083528446635166166509864339547492279772907673594152503132629754119904483399549864932685557402045859192824729726608931502562923820954381281628281827920647242768609299036556043366455380907596444822097369815394837562855902942634197353586834792260363363697937280934140424178016645331503785457210257769407895531004323558389130681803164362122737775941403706145474870253680399159969806370513852121142933558197180134103751992921293131093998620800781262872351105839191437380320484293377125064514169284802096536710034287660417477521808936425482914683425627882981958946586149706789985145524688384758476130390828591539703622301623835288449320050978072500662623993230687767347025890878951514825304143910164857019224196280506638167774297435952152263079394469613661371040627565695123189194963615216972466690225012092887757432034723387709967090859949088756569473868220938526793858607446558048706861397666643296801080027361484340039196480766833950536557669006722549560379110349462965932836080393867315074475921420864791041434284344689651372478896666822962506115402106043667858483243564429041124704109374367658727689989450401979130000390848868272097800532166659096001144544315985621225481274795346286493130662311400745618417309107196438086977344434987257083550554022190386982034732346954438040145095924547590396773831862579131824271380636079399503148686120265609634498504289296515440022689393521146421754766351940685160306389073363433616351126009262779647584523277452204025473190796000306570914063709149694231775463744204798596070340322629210153062432013563501970123386322278038548933470435774523059336253963889850337241222500492778245125531300811177128934482241816150412817874115977466221015407601079028928360973584597374888628265508006186149372077799726548558218114771920559042340339383625771333631664852308695375334387304020353172260046844967495547913978254213149683551565720468496706024604402374255022077304871861869249553261859916464125577973953324308335580156344229994033331351494598659109691912064012217743378588337383338604786607078684153956564519938700455612580965517733533051186722697208166921554355908674269161373633725494710585185013408492665195950497258880987690857139400088887859067132067313641029343227409654594403399192408171963674880110032937135715711850968420046698728153313719134175894659068110745927845994509942563246166208230859814544141429288661890684096682115410295805107710304120237833217337861765973853195223966306440732985144167057424066677914530005955882616893951925660227287689924501152537600631191074753862296585143791385302297610761947662943513707282745362959372023125584516339303089913231715402183127125927610809485199234290871863449548511221073231842362611668288862953409751061525453987543538077245655504283643399361509567858302892113569303720884177230028323356700005006452323969643885271520115999814109665763082877940427464987014168774509528786397696456318731165325940741929578133895434256435279389469724017500460712192386012996850873463272089050475490139509031541102769269135590970436253857020597366634271139653733526122782624250492561458088261338388615269266242434853979529571409764466744977495112002700495275118097885918366778663490402526032190175017679085625409713369681032146760791899711125818856374579491766533897280477285945727227300963890233317277279014655696243479368833099055390527572163714005962073733878851671993673711603637743008613929824747817342083859306331051627058399547769350835136620019278495079134936042432585554578125492499320958089189551151597381736080496640226135303263719194351387692494697788113339627766025187538159529645895136552986593967366542456734678690092982410836397021616479199110709678465100801660589796858792458847399858042675637272405015251060993064024043240851810531952446620640603587643075293361638480396859839005924664293806436826736869123764162489566328306845567669249417331756340907827361994481150820236721303084184669579396061697296718182156527372537074632397740900470081231132922036972567504172142246538898496724856658749190572243193544717452164971345850516658732620628737696979994867953179977749154296689172690605268015241872910607185351016828888267160810732740458570161068354031013784857808346112143764132450937054771309671780669151838184361085960149494583147921273950256305607935123556459627043498619722944125453219927480549749404225796452275057192157544506303491288759906971492725066158391853421559904369647251614462462026438664459524186772560894494025440887935412631465993493618814544442514635616274746334232221625577211148966421039724961522824290051610640919207409931888021334034494047262091613861560938015921015199089621057785087392677305534852730627355021023740236071411737582180892150609060758428856722349486870749785307265766611550245286074364622545806252622504048863224311918965195119039181609829419572288564270307673194607542179842451042270574969098415865907996718903095591764695220815274719829408593297061366928083111753397896830631545205279646941400764635728611506502099814669841743125829394208646277944457589100330097357314625786893253591338667177174960691391565305863622338765442367080125096034746627887066629083983222213458866893029882618791518793271225763986904349587341421189241211798532910553474709259228642577246739852633234786475550594414437763432274284986812047453494283816072389023282307917363936693500134979406926555184519329599615062075521502344157859469481574801693384544604170401762234920489910327488160020701368734034882097887392003870120311509039173968606355602540599328223255495723111332968607927017788152891504452449339123440981041587820406057895102765984391202125764749531358608122464983210293363952295950009409714475755512216568556246080159416939748972443815603546886892656733235459708450983875129969219536202915556970299320468083927042366090357692120074230315477015209749924282818507082992991210071236338860594180692877781273105079668116804550514494886206083207768423469511575521247217558205983550065559604140097500409282493389888853354443460571407017155638864356089373870133689476990640387932143270365601663720306737077940039786484009866606111639764416772866843347219290520865814988509642188032377139175190197187066078421038804184171265549873093692649340058861227297990260111820857146189870602196674515301292395728527643554669830783149474411119723183306592332604515004405408874643802585087287656328364885189744665220162889151396763594012065125674514549775285944345918100737969231189830837757642875751102122153070825580192700774351652360505754224195055658787024427427625227032856536715400631267511833191829975888711766578458428414642687978302407050182587924513107731948576467877283651126678573569889939086691342791820923356729807288364266194274395195300102221065132985371680368165004188477013261938750809250042304196984662996124659777034386388162937450529975959537786275053753901685965667656132190507872275124361676494120622267077332053539050149534375758259872864678032580937056571668766847570972276896900950583606811778476579731758225520882965484898115879054328331589776816886394086888816228636113402330551760296423316437693200813279037951607894445894463462042517109385371978118689341322937676915358681631203510228579028588762446257258848719050641111523774092952704248141827753795935485519060596757038722111061106208570799671878530322113194185417104632445553054342000861667919077976219246378097403732358025380830154814617814094452145041088087246480400891694787952478498826961272776451188062893161260495654446929766438021921630376466366390104453220521005413799906751397352671359080685504685475115262167960101963608094385878345137899935942486633003564769480986427620736882004907820999069298126144606326922425275673708703403023389929884316220502187041507248096694680216033477881023173752194079940500813217371866139639769337018145207442633021794285201935299650206157488555837212442195431995708860089593718608495682950719274173533231726899446923041598355058339684006120644969533119716189242508568643920522223624433422297070059948712891883909832088771544831835352503813150694788865672424395000095590059967596494585643336411754960710690093409937341129945924726626837967388135358755970863285020590233024276505123641982684827719684433942463951989931627670281194555126824996323330860679534633416746466539592307295642050884860723948017034232095360680441864152106425457634263753461067104367744269603146510687218472026059299205758435401085687467450333576893362867411928211560491265809513222444198134802809274794360901386755807265811042456255394713829332734658333132873045828891828780682243625161205400888940888840822655142516426914886359849398805700782438720557910912560596071302801459623615738640220571210441754509297897686734757706668608364476114340869574944568024788275067124619466125891586509051740206531068051907720793001142049390494984659852498249167522363637107191911847050053994356907854204287901636052972228020404611026620101251578577908315630962395371084760890160681398705873551376639300345785890474669150188423332549003529227026495083907498352668356406436155277649458198773209784915269534251296599456667187935238719751581904706415595484325651462647200066233421975933166369134956717482842333667396423543107428417667343870571989907349181027895273895098971534571911835212816211810034665887249291507946345469180758554180569763673026589352536695744690378307880196946507341644875702207157074381487667945818499551872157401146588481328296114670988857262699898065542358674067852354394801396467649533184703276092551328889772294846871590575167379694723250716350914641877341692687707994091315957082983752872046846602628383901758103170650905468150133197599047301235283644042997686222149035446640162933835593318838542262401963955513247163187041289047703545385123696379191543931271706117907929246525953273119403594877261741482598186876848288463494458272679465577669261387855106479311234627756063837381310551586152251209151482838620884073563872508297826405104788907776276497576165023624939812988514950423807185308526808848974954226442722626989383178591219252061260711643474963614406747933317451304275304330826880518734553220546351508202001130703432974726840343145413008255590159047686448481345102247575942768727014775568156099886954657126167128134256841747478993131571769017287344110428714280757728566859812936049296899080417855632791709826170425487681452249176525513830793380173372726406213345354427794935684044699632232920880209923569081740691155870506161806541951692836394090697239893342746543761446957743860260729358911118973874365959608887077020741262774781764932720352660059725989928417544650099911481710746857084485104688867201594713457864693381591363560657495017894991065059734325483211955994271851658345824455029350070134025238958174153706818290246737731776979764430010459855146255351740322810086972042361952120720570669391897171710173919272544966588917830870769442846930736381018311231763169481360966856663371210146098194169149058159641018029194808899125377854819815565989517925245527712351775187124311687953249096092400164295707709521120489969237881472313643845288218891017559418587647901237619416406594328571685774490061633885166929748655120982038751480277004706848658378746459318281411739312056065203485867744913714529492458228254082879319986069204038543405052101372388950606015278816831140370005305731637786412633431704350872292627120187454254213237479375919640704882386558758431569922997170237815171270030407228366105023320445270317690922973169860815371958120599719309753950674867974872450524380224199718584191633122837286154619532172589412017856411858574383267351820275329260406530199976515899997495872592002980843670733238594984474433892729071531819388364270125092761158203757532468008783883361255755130362676297405935306985449556062359886136644546374586475813668284182254956354724528993245364679413411414853788849403465328022197717745463217249763460826006548305782697459523004577820576574885406321204144240159006477676592605093964580182009515616328542706704471713153409165137521749034007055329370094741601704407313521560333868436330336718196802807216475452492130078907980644905896261026906880577057304293455038394537039470223103144029562809319425718798669829667395423886582104163926251548635413704406771003524322622495432453602970186811644486651208812245456259737925344757891517317036990424207835104657429079497274509314829427229916931918754340113950857691676004010292055618867182519084067789482275196910656517704306181447651063522047714388790469178016029646933694608427411592587252034229218637192597754630755907991736028477100865887364232488601043654648384646155664600139086016158500982315833658751079036036521867185161271545287071190753750333603799631904411333616171161302820283226573545724707615468979051182860265121144154969555926476407722729291188491228018961329032552758941482107857570313717114978756933317055670688551964233363290812819016985753187703156718380468366068273291343633861488064498118268887873322575117217155510338456861577369338873577868547862134596470647625965578839995104365900617287448245652665430989117786321121595388412551811883004709518270664774324371689113261298191909135476147370286685500709299103963209173555316069836648851239645311945696976316805629297024972370542634291153064141374551926110701709124758996875095102685683031471845208206325358721566119678948059752510174388135417195211157309065335544201559332452233766845129596229480160321782911533240637663927932335848851281829972025243699172211973733584756913000917325032897024664008657072481598449683689183668293940731311265480453776649635996647533345965328973709520792979327699241272616934412704293217908069821429851700349532547434987043066856508196574972413134573135329066839911518538001529822556449013913632013463671959341283679436762560979650236308053651329135670169445329412864805889817095905160800907080368555133534493720340189842822655467598669183490677707308248275192132548190247064093427595539066485565020944640223472577589845203798252743778394046880387076588951091823353821343957584210194737750378016305400773471041415107698022436018351131172178625778067197095607151342647202435658863723052961205183859541704289187479727973062654082191165063842565224915774068820066832190902537871267221816690257373553085055859278205732295677758530967505552746486943153078037348733082154102492797494667823118834450230742210725617598489619178425459198572095264492371871603348015371707246819397518998582252154947077371291883200721041050202782814235846360598611798634915405269953073137472528086179658044985048805097310280040833261546662344365001250302365068036395927972489049391080716821503772449224095419757321238232364863123472311500387262263127777626764041257128410456813103810633855276408451601314118844550308795952966447437477043732064422052968050746905886256977212829996400519734870995046350111996560959659052384084332200613775907347272764789324831057085346356223150305514691489464719029876747114263009333926927600409364312774584112035826829038150539938373440776254587366870609262982793499570133078087366921408241355486012086221610392739757267963784966364914291871150990993990833552717818976693078550639987986980702093757620924038439518293368689554915815638046883252905398856455317985408394084608845822261528395723601971633847292424412382394576965709471383188291137915112045258894174227133297941214062094071675699415085229513443475375390671041576260943963391703163699772756672889580485925714606951433903192814793875339665601755414749837935829722478661585497943781202044735386656106445958367325576244143074991915573862563336370171926268482595996124657230502449656715113264976256117870936876685272235729778359079736622535909609131874721448395785861665078448632126730175315813527542498615948436648220676921785894062072413887720160043195560449889695441296744002940767055043396671846792715199859828448577168260907215180784241951423731469924409598057190151799119195213863710851386311336079745086975652204328622602627809255376526316823541540996405344455578850879323366371372321457386574913949447115265332300223609194775956221304705461185186316488962508650193023533862429408931045770577196797182296641895968939388826874029890010702338460725479130955280561066269622920790756815173350499716939448109398747839799252913539536543522085909502252960754799024757709098912308150506573819668608492469417608440409929181368577826514528305223104328310812974252570476328367080620841335945489030139289384637672596236388313555205771119595182609685140190730478971090922433104209378333088098428370876578050349115316630093419565681383633410296878472529958131853562871077291310917587788573001391180133236636066869556125527672285223327166703028760550728676055169068134004982389624723041787440307276798968819748928996204702368273839566887475567200595963839653996334161377736109049695723390517374472837868732438432320038857234526265416145042025829744462610755161193777408086074479897252518187725527156020044592639831957599307390375216936002885195612336336769541332622510928746663110114266823746533025690619712922588149223366139933991126547957819972970511103157965078814760558572550400402669893887658802638652076920725395902506368197664202144247797074417504932038342152140264219960636568739193642576888213009648208111997800374100008808229896111564269106865864043610513312120709791422969599727872748677784835913462028022857752294802484176299590431191119944665969131349146960776623626694214056481570928527509463357527553045146954444334532620711027634688504121926034611534540836415748012410168353816936545360213424774957039692904247329980442505624775412075015216248564891761660148221932492758145676387543541397271226405976334516396229624077329777728618998949712668874674303525865805013208789400623492557344505700200137021211639270602062954786044290287258209844040773323098599913766568402432029755017201072200749943044412097742367825742043597192268369023813155496945564518260376494189026361149104996510361683151125615172994098384295489953858254726004436283980699958482679828290592190396614143325645135672488164419667014426170056750272688933329113611451088968228415579818269334717226509970411703855259017441663912444676375203861231511829184016748466381590744364300087132759698297394591867521895809347444448415149332029278538788531607110983200360886168814552960487348289425463902336475884564811494384748921108042397876900961268656026997907605619039980122986666656127499141338571760637502971435697599199670956167063197996438611645001100236232488313046439132963831067434310400307870154288429719103553397627251760469921889475195422366564336116794924967099397931846595812152386568314705447569462379045649714728931809854237645221403574372481840093922720067692136674500347101196698557221755486067560216181811196031882149473384025458237347835651024368731518882226292994364277816320223732437744845304590626522341946087492007677630333082391842839499372834176675309153698787818731311426327215855331949449823362353028685421739914904253314933944409752917829299040368347697506379235694174229815669447714563791041496711262581317311987554257237821900889462136516645838044566254078725185411824867729856325239265862669035134132404635459760059139915269373930930364271447697160080497909219222540702763662591548902808123092855852967342139309660557707954150273033105076018482720734483996294565666610768804881469237394997913793196298843016562792958678877357409773460966908751148418096810011546991115611747212941636489745198314001289661231025589450567263198368998800544294812556734884097173856316194259673968483129919585032097621901012168899730128247436682430761119836352107234031791062250868904100148622875303571220599641262591578323341442997291867485205876456415048744811026161610338621656872781119263382365193157980962016207371757415142694505236565470813175941455933363888562525838107037393483495638173986437544407409683831541951373870421498212011661583611839275464563544485027712581906922152827969752240386863877940796771223544751259656742426046594442065478682821093824675975029449321624169823524124605807312868899199461794137353415900432650586324850091157231695850923552989586890042576408341805176251822444487630403740034984444987467730099044036126520173867630971543955507764158059809329111228771391919082250484628651438653340559501505103444274639747170407468317009193060281340026730137785484554898189023600118176381915981140088927065129089238425606666102790471847042218611802590614119307349272423702243353083398331112062541931602354296854075032961832136603268954777694747093427494418908464669804307137951737428866826392246937243261302797217185637880371638210990509001913713009741569617838188118327900262387903163666233876587110079250403566511681256570694556768089446800432288571838959905573283792113484390334877280270382500867258822810911231308056316906613786466935166236333027445394671624672559659956773043196247829272131563420706019472432117321033216526588911980742522358555355796164712241293685777379577772292095544514378373193259166393160207245582889810858055787119451192241219527053950569270600676455954480536121043649947017933910114089460346415644423947287783622601138190287134197221872592205497620304867779254410743336967308632342386343098352075919402062933368592724785356195694713013606427656676186273137491564569033253568414391905379728729368511814561846637922430734844401885190719285815737008188169924761754215656959237252461567939465537174330817040406205666407472736205510953220596650484240003565910083486556720440267309937148584297184861103562258120360257031717424425907803229462438348804242858160966456290561756267890691427872641879018875839317835915265133269183278686990752711416642607808659800759725484321026099037715709204903593671286249793179739870505983833809963649694864364678888705574033187827919101130354192909065698894114520520863056160837710755766830919971323312226246076576905718377001501399675900052564206268083124713644288692125311707748195550036086651061326269499471485310956778803089001615516111365871783023483394082530355695051791578769759849517315260667281652125594219686407890942015675153154719994397932467729330680344245773686710493831070908037551323908342315059261197622779148609938994856000089212202297760183128437189347818157755581003493325678766563046781300333746592566661691158536841849387268947983905764128484039321714234763158272870793901957636344548834574971748088665911039542563156704149479078242550297707040579673117231349001386902626071953772453005263323371132453009600515601686562843995180306988727395386134356564604546680324479679097070595664864017973012309917721863582785461594144851528457284212894094089551325088354669205999848120239304288419982438372731955418990562326680005034537624497972635408516906769215727868523600562734899988552343567036641130201015762491775443270223787530537425207762188684247527148501674724216934268029111542569162452091435428055604496011232534855674559543005380414674944721167248045756977337562069247230879301240959493760345370815396274940422061584174212630303574651158551624960847651586378138232204791323119035696685637100192232640266416180498734878920634849328823504034552631830693857328247206040228690989905912880679827664211070850678700108691234008820748170985623121621864639032770938567769371572799790306852596914543305984420948843441788558248676474480476977316410001428926721762418576946661098892788748128235661776010125036819979414467983328040913375519111716275667908743611749364878801168075849406388005239438968095764882619054278782328458867519388541148622110079317819037290239128902554169969842517024160183111936171206994137739700836295866467597066499204694713951581762222189743745503366517635163294168323151384295638909909392133189784919501656230896137747022479186626005085470531077471598375323172558498759982559923056175719246287127288681009551130278249214518445158878932633633582141227792702102692645899582018603723548288539276022566375995324372583637736659499435221152848712776998816451921322798280824858141680640522195995333638851189543023267618679077395787236303368214809077533272655161452324189244042463807423956186437605922178544937227048574785650239514550942927981289430465161594591298919612743725939722721383630832243719452696558617762651514925985134799973694712033592351461190891049811449468039095092201401391016549895756827596879165744486978853278601808810569596126926886227838839947417526502813802553999684972397323092059411668493922234182129392309603787649066728627322023708897750344104190142080589035512905622253461121460963986452146131448596872910518701726254852225185773826903934522870319743053197868899482122291276326854104448902443399473662372517770320360139372218097652535415756191194748238201250153086937191219381603945187116361510121187400749383645605775269741847151063933133405969559144739058366512713536774818330105396637094950229905229460171654223406727433233743284326544446204507263784347819921079303234145959961607757992459251543180818090630227975491501409110666805557448886576996746093158062818275910989661731713275321704626994957887139733687162402716654967383082491353956251833245900556688419835766561531257646343358977440755488403168167153108758728640802020741027673831372843902566643037706797394952230023213687851754379203608895055761510340122368656674137446448144722202429545025628497097298001382041075091491416596431678289036945198247167584680784761192039190380394851399830436877783562736139347744998391181663169039548410957485052390327286366282936228688928640117943972384501386863728184742682574021252368475356761397041398925733412929801331402373275185048532224526015085755397170806775261139203847929404520210111362326999327089944337313552238016512302784303462136263312888365685549746703085925081882758506365947550384067245580801879466997372812567511864103241755369577700505998506819784786674521134365524267551970493736193444756469787472616782153437775738262679680072411373638051807534915237321518656106278999809054691089874130129429922322569520795148396716671790801992385878018701314454242309378047395195296281819102108030003687094578457831035015418331168220787546627096723842559154087115544499612584310531576851098665930439177929128886183791204816549268110201970326834449323371442606875387963142782950924818074169710547895729372924947352357256823194819608280243358270980195871115173885835945183536322182719791766584983003301091484536146864864222743232535430598092511055362987797204756690931148015148980376020315916865307380176176466432903972525620489904301450679321930282713509540350886747755536362197952494909833621142565343057172176084441113626560061095035676362602191239295360444811788432515097155829253653743600646864396871954035880368113523211455214818005573902024857121358238872098102499247289910260080067454974641269408745857837891047263859237522823468386059211365580075961946167488357838988673309444936874239070244891526964582918102833414873369085736859865383601096973025672339031935596192238289301178771846180178427029297215839110848357035337067833771063644524216096100821679611408015075050670576608079094796153356817175032602837690992700824730185506334345917108336780964649556662365613461956062790189787729260413780297204477507282090303976847595499628411385208556282524788437334112921162649186012458851706667901421088521272911569308004159087973761016975116002722555438165036737321183027151066157800496708384209031615607902683857473778167711286027966098197172806480413375927971428704068122608802395585070618959032436873482055794556079110657008262480787394463053293706018200836057673795583259551257794289670211052093222028689654847424657660788833345905136106219075737348303889662253856587551420641029915026503048908418790609207024202411064085716075766703038654396767181730129288664684930835993745440040026509687191168439043767987392378002845876699132731957952261046293915753559046875430272197499757257655846065303154212532242881088389869815584063503133958495512364859490682518321301987146654341744232704003292995970278744215165982715224276757363024225207959036439456021616208113779928327734463196456858403066927488776962647153024680124171363274835863226399756131614068393492701600070724477622583047188969048907263891206647400554864145447254799212003042514380743916680158089262992705171646461243040766289016456373085613514406688998092437366463360586303104310499646026428245443703246871531334276738641085317497682768643882865201447678388846185248092681316711011974688757334726646120760905155231955269074532989576215001001917109252078811708489612420971700453675787912632765767648151146378474838933995581956091154706690768401055968812674815265206803212947122127104067816209142670681107170190002505689102121628590041484814379879122701266842693023824958470053506159822412616156208348659540307739490700090917358810924637578564456794491235093809515995476918791537426134711770386419472056408216777533936984912324948494942537534617757885871687172426754542066928758254405089515521156875010713228964172717013490652460818182395747428813518742976483871086927233424224186709678808303378689668389625092339812299678629208619288549550365566778452217471889196598576003684650690551252635990916636331178600611906118069555855948004369486114353156912237955759816237123108376913165796270001528495197694347153994276457831780664072483736499913797571846773353063303803667550583921976575090154730248745900980751561688755294229373319335601586571186842093468535236774135818209956259667049119524210576482067077884974645192568245779156303821344191060410486904969349116043505883740279447887955793559625763527071190277908701934622290502868550654622597933501684489316900650417407020221787255905608278663938065030320253977899539646695916852504156436852918741758867167826197024057615822777137828235481755996731323902859592114875194382475129381851587366931370143966718434989387510147478912551927374287270747484115769165015326286380135118076768400869583800526970815962750745142399767307909886942618429622947688401290310946079412080076222698547937586298411082923382268948489265510747079193815533516643069155581255551365300755759913189975214868920571933041880364008144717230332317405884119789404451211955152717773582257779336964272963647856778172107487848723709524200605621446632474187845983922117770084317543395058039600467299140796683164736090245105297898336338767131225681745477198513527997773217719130320199852772583283776529765360176538714436605398222978511314966140863090429996278464828266617226505826218862788258272297584782018056864108022375537457063908022794668060142161266508349615917550354606799788377418690652971544709307260623395710108757626649930676988408208222075567432458313932028764883805928268352709938898685975448640443610582795489556484993317725389835947561597559222080097899778613878520305200703812313753761459430002735683111452759423573423630367840859293308432697576235048292441174299772655767305347296465647978724736821708607222858466664773378434079523924965579538200584011125624609107209875758485456855294738843537526053690402850222195318679893029193379680248237763571441747030503843714013873470619760011375918612311550700988882088608192680941854760408241240397986114494801885507729234986480617010951008401860233871358530060978281076154665502071979185858911215807608365260024478933610440473536885441643976478645169765660128942558176226049850926353393734747243801925935372456048376464594897100317377812468237014681914607394823110272404721960291728724129159505554819618760939964388543180070560221279484306652162421247513272890318388571478294888007836870212394835765399327708283045711067749252212423274336957320059128003003461407960269987859632219637051754284122086682524041996390673182405824867700528259693506491239946021142915307924877479479820816495101661800030479686388511288428255121743485915841053081237915352579525004470297470192716804634744549329979550175650712473307672270629604441321812508483579468551194958134848964559693851679742048047122662247285263708621563503456390299988690529096127515353992217001112936028306553109491511445766367330533264800138454217697803109322625794143234149035513168086775543375979282844245296724778050312569532422816308585529869509081552020068728840974937920374010831387936123969561582485302168926966458347982442343621098212461498311372283390855189321540194932652292128453420323301666666798477825779131397855755311908087466363889243738175377948302703737367253265055646939596782135251877564751190484856266208782733175416383952488372998525493806167217486650560567305443701575126088695350465029009276261089855212474699216111912840594680586314433728044893937915074876378645842731889637720803720449818073440196682698596414504885112906014401122803149823455260590813820789279642694436964835306183880699612014239453658532208593781290913987106506853983057135719703749788446576406049595026515850924600997427242336746697806647460190497076367185536514802400298638612609342847486113282144366627268022585597055032895330094832547786342187489071237723320105926859809359722455694961833656434597671136102794813939813929676179116684100120715663991278849647965779033774933287782438619424316564857822594483685607934939718798339335241725247477168148739451657241608215151381341015902786166945597836815295454842718148861880873736262382890847351742443947895358060612643048051898194074742114440444641715434002395786268985781569228836119496801376936227453265296518810951842587660899778280127132894067688099289449144829816774066438427021094635015380965211812281444807124675643656116041360181629582956031699855078633633338257505639874217307876004027701307119407356288412144884505322710978084257873470674596291859660699837864887440747295626759853291249406878179162346964210656974099662695115368979469099956345438987224859444969052596922650522193263142206746263355078344218281727249468904674385567908855500990340786116298897348302599329029067929832554839000653856419566619142276872162995923357637622758451261416763326141254853704631030904684167643556336487412940195749234374287076043661842155922819408832286964038765620884432790928648666676592464881074460550023269028501378685812587288431934359980629948700801329193820666385995291165021363168648875585273897902459345888140498826117669443660040523478753508163155539628187887617052641188801053405432149627417517802967975605863514207693695459630428929614155453110634358257822873198885811587860313800478538760330550564932657906506831572026529280463498637379704270299117569112416400143366564747992882711969992413750845351318124355307822240891649994762582775957705923457966628998810196980309697493999845551906412003900660147960074529053989081798634325745820839336652249589599625026826095506500594036799846168377845876452582305063809061276874693571213388457528908886303484603875504567807475153711423070040925149231241693315733012006714652799043273977009097872174892750281547451344547251801814394256177661309782342100940528643415334306300492571107380419305387523028879290126193743175822599077257880808502248575653608612259640081059363483234694491561577416970657379678174442028179790507892046368711467043390106006930910684422732087296349300903654121455772470964476196657051915341656563862286288274436637131159105051421830140333855665505096015564618648171539590378647217016032431698296968780070912659302039923732100722784431284170167797538997053417745521009988816991706629730051655245913901626158811437457035924203269974750529383697928126262159494491757115910955700053146948739015227049167383722502541355138884274919061240955519732506691602004109816981521966907929728430768123833838176035480645591593947390132375224439195782973395691714607781707439691360023138494261106396936318940142410548657318297990312248389873026726622984748080193024108213020274150928393594402339826283882744260094209185331533616003152157430572336736659493623569483029729986881479472013524489888567784895903536080420629400354615500981592692909381860261160100185122916742047800599332879026135957465404087533435571884276580192661764638962146865235874969679439542606466538438653283653985040918520639114758574289347048170412508909623420889837696214484615056438542202855909811464652417830026686581877245675942289569228321678758887524620614865920744746766160894141233739559187533757020947793540153384889574006159967908378652632795351126108708984254846749771828550546513664845564273783659037993729983178651268707948025969804328136323199610243138773584917458234223495888632710943222396756387460854051761550107661021629420178443412119940255540932083096485579103090482325193979206352540916089547536179940213553283309666971222478956550440893903996111218488477499478315957776333774806568061760634007320126212041421442955318059569349588943375575227854631638567984497750343131112800395193344883814192110128733826333083994231363766622537254591050371693860021827549613649161333288236327368204096230155796717713012221042824537004084997553628573086586274541777398434359867031247391685848964605152569921528052909888595910193759202932157584384709460749589581619253423731743053872702916495517046541322020095721303235849976116788348166040591192513509949517810988793521405581851528566512887622658935134655936889621376661671706583525909392676592716468960817263686975176306332138044721581680256555198636770605267186493437579559143391070589561884882357386281865160588466173941946144120344008804796719660128549885275745378872635706893069232830112777127872622952311365498090286723009365115375540842535709174776208633260027920306763184506724055282565259255418889736970678971967416812088352177797535260560889660599786805625832566862692144580492050459569448526540640664954265084925014551148682544326275745600213561946832722645623953416970322824093675217947458150976129347968359253095866168242366331386665268108955719790528806132523907925334228553706603041098757845838881194926515077990075446138842552767665531463605259061214594267518273172374416361532408939024124731347596334576944652357256338901804560545817793950997249449615778139351924160326008588450944499894596934583397009070467649902124893043971655093574885570013859988389551181417550498618630494827786423789122997667801898832360039705245993232987417329376174475509624004406303275273084091528735537954020329233555216692135151664398507490618083520241057352042525234865051417231093200823293116004845483013628805318296725276415977760592372157818403727786672533843170678412672499837713809336300416645709838985698962824829560614200559980579057300136226565445104972579346233103654580546639523512855925686551327302169143223566382610817983626823075545327445211794244326404663951805134895240134768709649931420335367084412340525140289013700245136115556992288138572092188059604196343561395628866991022835856787617145922044454703783154595878633646650766958527675054782959263005166937486016753886053908203478211474927790153712406167187825748984045896602095469935141016537685004143186503206660659856316692025501514102092252644093851435193937082835822615892117575610776738064629251184409525578475428334195522318510376723738635174043250582756613496657677362746574802085644097606669646914295410824688453850318415790211885830874092674372840762014370847981183648614515661740430649739347191552772605739487451340560866933332699675295224086657486272081936977135532414469148760355933810279237108444752266336181955409172201722231189764950488756182926416581488867338644205134336464514604249850590283935630360283609768599533897524319263843017333457421317178116317038687080363211713663798434851391447223972986136164771361060426609997759940589314071635582287386328544634514107617420471269197238036503753013032256062256836836943941893967744304674173275482222021073102994496107188957525957528225997358533444291322319291327433212339598725336136033711076473023331272814433748122448273163748350550021076715722647060377320425382506365638234891192507923761939610903071634681710298649982914119395229545754329734731390319209852261609802435942043467389352142090448206405075384540282726040259774306032135806168847106789728890700500688950823707565131312834418997702679546999356027372215883345136814622870533558843701515134517509132768973768753782300627973590640146898111251289866051178414454793821889941339758245818644342098597860556599931896342289631509912186703545242714635173444535713541703193228475162205934973928539730791066287411358365763337354642612607339290057742506801942990184737464991845889738887732098024606695323494951916057173488697499421339286423158237164512385535553898950644777202276812039624376849223069701283606564402137787289019348296235499516291577233465278113609095143519070305560896622070691620404152872684137713882528492060684632744657872586843953000356917377750880777456838393200654769976684050501284013579106681798414697082651217184662058825938692649861159556139217396439034212564417457596009739531003447512204169162933675713136069613493208488391485243331453053885704494803449943771073210932138176235386766800898497051250077822949327463990654157521521226752959509402349550105609383135854211278070526710181103143233191513692078591380653028329870842117625360618729746508657967166434078901640802467672409257503168314325994850385389912431171191931793745030744063699170961591450082032156626583204739802355421444455663063045452284981491204663388259487891089654903038782501898148315823225616940652407413189847986925454922224717619039276038266015858850413775083582066803914047687892931062290870462661382470096184511262803892100933600957818774303974718289751529604894309552400303224682287957865914678170662154636443036943949484454956210291795502124937042950785566331736937165825584308832116871887299373791261081230481722353516665544637409954124495144179647502226368946468295647206381520285407513559909724979227070077606288828292910131188644087326613899171234763686277610738056230130143819776201142536509276916310093966501278395632580284742593929301292108354873116211807913757679195878179345284380150385510877418025252128780838497298659012044868442516080987371772464678288286506004780029653271136448714870281287495684064029067241910156802164230506184385552530599883054280802078405690198116773908113908654113967466972953721495384579508158605999979351697513000650068350711672039250983022486053231617815259326005730485829129462948501247893812211336547529917026834522556639646268785161645790232775684324541685065802970017910173138123625537994675118444193347130282635966368877610502929676303253542590224347022306815480231035060128800197281729053726649210364010371883436379776844569150823608470667240463857203097756023454775556624828848189364927749959895403161682054909111750854006388532376043598365039513029256096286546558395099037988796497259557724232792162660058062568841627154477450609768444241558417795312912827513164687156559010313954940559758028623214821315126956978696568650230232941349524833408968347277610046979708635965961330905825947667606228124088444021180378968145708689227261899283023065876411699277317612715353442193498975861171645634966104044535232244697894963917069747093900052965400762465970018344371576744552617598997685112663294746879658670703132288356675418050948788579934753189355159349249769392403775814223561531845194600843035614980735798964007415791705152219437854882720858535043304453078968926362380294023193439563768434670566499917300275051158386537229338447511933557056882961179874874707913929961035892775711150009998561335490169223404412516920627443589988924943594465645727600059138060177177290633488329708037742649937473711847102760329689843299487535509473482953646014338814435974638637322919451919413841065229293907984470504279263480341991469529143122163898335809442011621830192185482645200382034981474073485109222565615401922930850240674551881832088093247549023795362340364027516073634131354912441741267787598877792478643009086463123115314536158238949708865898944151979905578906068967646482808438487619647900838536884924834697611029024649244375750468144919207475012033550409174601088181163850807408877240311752701129907425908076779100954465786648571614438923056252246633282119578997751381347668798537163894885387877871699640686978742980821990368620570155891086993738040434824754219327179766419791312384397857956585455466703813061384340059544955829112975544809752135674376806592207044755098405008816643871096360209664131318861716111425789255834888248914381965297152474494406879305189346712822307633551869584168413887701862196582920550847996392962068136418346594317013543447996849566074489308990002934010268735431504745015794565147563827818398800591530110925892804860438493683843556434132428236804238733511293374356616408472148333834063461299856937411611246209392386281402392530827580075206233440054341009797832368712516750218108091071879459100638358378170780111835894250002349977376163762226445041370381640759336992246483796599990158423927434095031810092379475669220660159153371675019033242852690152656230697268855186212190345598942821742944640024932582830678659784136519684343595185295449958713676636954421411985362782961089748537019097861460709445162342317918303287405932230032916429799262547348423048539631200343064863618290652398882476304157779789228480409801478735760799050400724318094453962459891838110079034361376403699478735857639780042837022773686340566167605396518275084423633698507669856645292567806556225288547504905842031921401132570666694688897541382820890634933529592999762314029723311754750992785741408414818794966038209092015885096839362851062030562331558062424391036676469349495643159700747276172004457932129711966578752350008853514036951358430145381958750376215022689672927900131752694333038285119072222822090399026662068934247185738570218401562604712612330980333224472821397141541031106094437332050788975497089093288843926093427200619936035456825242594317897706168732561755505160015528963304344430631942760895273518793596169512316177927319144869437342139232308196788200650938197428552319631143103135296990686485399553045667213580209764441097133718543844732971642528474700994092740968980861175637485522627231610437860815820608376755563929453260069713062846445563729552114526564890492500237712736300883651983655168043597967971976017904164424782553282281811370812421775095719087625393110852239010663237910728610361963197800953594336614351595669881483218474744266217382322503630292677120023008910248930643296284948404141425265031458527352341191179035213128786739859529912531350756024244583796121532481833276787398164717396853334381013222041846194422632369804487690390810106886230150325736959901639155527668629670830059749231064632961156470865831505234771909657076852500241612823030312548144975833975301614376606683523276666339606186843769930566627547002493660459244733936416779525574548296070199654087028261151804532652986331202047396742193273314545403457320193215412746682832748022542160103418602583788722074069954167401316045548362317457673146992607751663804178453726807418891372542292850298305728331221097144376464682608194508062091429411313877853135935275796667088905493218973316307427024952972601873939350287766064187116908053025866584452607150966489444165984782359574930242370373528665136558894767951798195552107554415204417936974454103942566270964439394566237037074796063786894496408639486247606627705239008184009737866143144678718456358239403374067591882372565784995927419871901383843996758592770664228057833482519717921377103471767576255524630242674262262176757971012554547420522736817134311740538505908459898515207833836093046731048088029713974828609927053006612210055406391366416214035056120106531034196662217077033244364377855350815159969634345089038457884857550185077815349986475100412149108947906432807713502874276781350065904677864366544419771870864097633061111269219298745839637086752456952405825321954752111094567661492528293752328486166716548578809152633694551012946638039156656984877675391811120583725065722046479236944434981409372381328863747688490218116822142960203685477038284390971362969119242224338044162222886115933180900381272339398929032310975301378442226094322884011626999410494194338094507218048141968413303099740132708853466148378022985977951572421287781836526164517610873678821485886789533488305831047051651111568034162620771486810171323780669465160366132779540408278649963411587115733806072748823523348445377513012282800193461437098026715702385781045858806662323316042671234954686820731856931864673378046996219897287184283942145915888868105375281176172033898167878618938869795553272910518911395392844063158444546809242645396674698995246044438537140322217102254544133826979489266573185170695553931797910481225190208415600396082455279435477499485335361264276215727848218713254382189343814994821029869897091672858124177982789603888781470237594858564524795214397853600587105631117067379449741940350959649125294747363969057056240540399419201524506683856404662665493417299898923998147690401497871555572436779928213608094865834581802637060634887756481862825514542945907193107449656681329725136573697001517145713254974875229049450719857639591879545785033979934297081998052879505594530568767135987479372202008759146432413198368062178439656873730267287072005338362606679011698996219550224443775113962007292211769009881928426609260851642412891430163555351970449581818428152661628499545824667920982361788843034803760346396950440387914273239948293863737069793209814346130343752609361242941998976866039477189512277850835869892113949153998374070181472639049073402699912924399310924364301246354989626440570675244993035364336262035741642360621740321638380197837976446321811108660106830081024413612270360467388774102802873040616057312745317991531160675615072207842442401234240145500359209414248374640907977965482050752161898156637306373882598760877113433262942713563113348475996292029920977321680505762313081649026577278066639844619948264059345417613724263097305345455627076585040008254739201224118216062400717244795111055005103362146433372127994696019801089112738105313564433146198135077655621817299530932516936144825856793413706362758551509186214182542986807462366532528684901076772352796139044406807613724158583200377987736974123623288880970105617499392940704646944787861411755984441332129298659304264263060498840268956933384846394430679666578139486334773815668883218191498007004296377957014907111256746070047367839958119187805231101078327823375266939624439500076667158384360689706533851098354596185547341977214245090448704834882605605369389925404299616529141230973747446647482852172335122711982599579925650721169370288899172720551213786869190080352472638416330548460931352851546434435673327815952452308496532475204485206258051264687602901073844104204944710673382764152512852694656075707674473333514971183120388393764720756304023149025736786235202468528505950370166590943978093386133073365716206610702210285154187355486593000828785194331680716281338795578473614594122347154480200444096398409144805278247885551106411423056241502062741316428932286134773292038872676661636698979002966112549342850586397335002976499152581253692593103816054299549961786929739063302423343321240159827520307971269197812046329908779302083855440168786087664864844117158003754836937275879187473269037312173894079384229345523019713198800073469405069069770347168054119454981917196506777707746321383867340539733556002529158992497589570880898305927625107395091187404612136521721553825918660858436795763304452588668345631856005656073953820739598138621357018283947625078659092860274097807764456436699781762136177370001665348762357502171374070754078693877422712737864705271489803894823433673505997373824364868620871369228429713903253171768605929352877687827664460771428041093769474834332083569216013058145000387380366927209143155977899375211002637944365864272505318038259389234733498373089827909261179532791424958771030718040567331949523288771315223394197278733582418103382996401387147287553670519656972559808477992836343616589635683892366679243534194795535795874815977453307564353562114218658004772093981380229787047407121263621836196583423140657995706509324128862906839982864327422098548827669935702090890179120647842656028112105628735795754612060278348411376496534623923002671181646492894297526101929733748686361975738589563433834753195646769992148911024915964085642845919060733658376635946515007430292026664700272835445864985045876364325327480435435332199469285603202867018292698623881347054504999494490306862233422975970596683312084354476753444867977192568718507932827308115062159193740214526359266809103348519769867328905978030972907432847023858092724884176614541334672166122380139747304500257365766765148143044895109238628519337470550477320675841002179130997056768406611521739398156254825618680618225125151825552308061405823134906981175745241741026148045746271119777854361424636096265680391243247919635901412684064873026152719275311669475194469594264060404753335546313727612836534783363552841620207823910014694738378323595957971160999240947965665575401342547647241172931352545073068227249322620568660819201984844762700753533737427349917455567164294040946144851416863882275799853488093162720932592130079204871910484069845222293760751384642320068601980278433442881105749012870245089686127466797216636254219070942193917390912481114677512920353319124248936803005930213650905783305428643092395595144546678395708205326991444219692787947598345167398269881206830894572531419657373818021497816573470491081639864585134209848715657719407990624135805472214900524283888341827791744855241500264331151908109522197043889846784859063162710711465805072656683224138142870416727379778288846193057135026125120933156585510038814621503959275232315437423655227906020559876609436814182356643883275661434748207928392650764872470918221310943829890402118651876238743411022699525558194351703546545921239736326271636203301522886668726763500408415395002767062462271824903593397216517028848708323377109950931047747696292715884007987240314546941845832555612146298960774718696958361332731268930272669926457307745726598223617762987596853300169103740358796193736339174285113428792599369406393008265295548627062353813709139453956198065842479725315255608908431572795118675846388802398618373684622600978475169818430568523428630444702316927254052596835033482842987451801680493368268227972600112557558821211328912920930047167971536331618523655928564114351034537078027293553747451915171097488449453378840079923430280921023403224733480036578165477302663448702146293560186371735761124593059753218452884471748958525102844849741400510167114716421129608333053654437513277998631053547907490262153796709787284773925558229787668683916082755891340498818981600558810189832672907701898408537333130661397295236439199033271399730978415105700322349466279920240211395148510631582697703902733814321993437275120275363246652300497416173401605892251641790344825047940281547732523971396805017391708931333820857294631970603227437447857690481403217699241867791702270394675108608873331406214802500971146648985329852992976040505821764913163438270807822049780664024462997659427922226901964697950620546330832143429678596981865827280129241683839165289234393132589503219670010701969459948596729641016442019256012856391109316160617566093102477614468616698824201646807794662876360354358130444109052493862332829558790894255583184492569290734470256857651239633238128477975556424941716969137010873640192340280673458279548804762419131825542428442329820494604533327598416998664836136852045545914395298548028745601138614143431565020270597063383321995757128672791424073325737616762781418664102257559516063816986708482125295420077749104612079499114611228133155471278317717665194241892064083927887343433951948537501306262573106408581421737006111493794626394923291780679056099037780219902735719663130510490267661096158269306736766474241729372690762509087475779041173728003975429257179995863488346805724644087238383289835932983834227145970495656542003342111257261704333740423020634261402371476758154300889625387162956519809686206700736917188928254563509948463854425831802120044635440453718165376480944728943455744597207859635701063689444262146785797354769783207739429333068182586094739788270412291693184852171208601750215719080885485110094844499302067008377496864813778920202923153090695229326231045780633352573478655751112313448215019014976536926929148466730328667282110320405418585519849280979395344143821093527260505803067775704416346984636166390399540961674276358829952874423739987490059257073220271367735329852067026955280151878005580421173801004102326879132281591905559632099671148812060973063558234777445639444966396927315995607430129448651796134102984539377948453245883827294521817983662437061927454007802386576910186807359310829228398444152509685712673127155193435343334243173435127295468801770043720595717310046898533670417389323413597989440751949686603245530302934175473806050339543479926002747386071733725454462704703607250797997221244353862808778601964466894637048052840811881986408313580772932841664769931051921358590193073751600085272348269335700203424529514374064451762768403416132116110718222418300062974405597814177958917871122491699076527841973139278196317541679658041814284340764972358817708040224523747268937805655690886042454309453306296819340166521158448845095039358773695733055156261014414493765402804105553261533800847803191905354291419608361262654298781039758176825480450575556034953221297075786105945624712853068660587715402006992434552610760489750672851553961969911350527277861303278260455659340272944613323371203553360247361528911402245691859436314754450009664081221238859937950818680478764470097014823984930616173175282909168630690045246481152931111252112710279010409143073573185229684569667378586977224012319450251656569837457465917317377533986711343754868884876146453245850590269911702157622916724409093838388259657653469828575412774583518598689652461835583097246658890797077273085745220128434226399721275328971332717438033654898337325915404162839387973688517406260019406517497974593584394386469837508471402532100852671048210237728639651082732437289152684216949051650575803155835106148297205459210958595006100081600774393276933601876439600053976453103623267000845916786382620033708736101569998611211714360312626556195825558321447660717895113155907688114357125636144696965559782773828121498979523180789714985398358614719836307656529579076307309066175000768779918943370748966551227551563130768124110435970438615291766903880691467963183632497474212811419799166296455026443633262987423737345058950285473730569464628998683162552795110724344084957812496914873185389168086538806516634098932645263078072276043267054221232110177235899289564480850018412518162391099836862112311930901197648109719075280333293653877901541132845496075194022988174168761144956677812709041857609435356012767915258896655612317520125182255062967318231768968981589759499180094550932486113205674495852117007178446158184287520785977577178945887465939627468642728951633732146111548614430862634119410956598004032282015375678644885719576855727240288229443496477917289248571172183245657016713071868408334556977419077797666639868151504330916022006153599739215221098545886817130183465308187888442944366570185090347878160065103142132659973480061700672717452427302418148836554588226317892798841175749673894443352340202151023902555243082051636645488027836658198327475260426643902176212747943878949218786505145384268816250314132143529652312769859166718386297936917811829330819791860061483291131869298823399035466559789209357408962935757982269844642890121736339198277679778754974794732835664672248667854618869754648568054232372334473116974772551931597421286945778573265819075620590961911378980227367357552725366006011616326800977845022202301598782860397902244753255677868849817948069010513126273845602058443604972269147219726650770015310749427277059436328304876502597236294449615938198632547184337955601750404958916563429281758778540387458438660673423086378735181735007784577813646861799246037806668215931888686411760989537139322846419687121315748915934841150407949574566812957891239918687158050563477529740793196988365778912904411832365563984043571595961334746407887232034238980398120086251668071604232962462872870092242496422159614242642880127394260723356619793500459446919716242916887836610623347102425952060179072320544447165715525170635133283505638536199719417882238407164228715257335706483958303437570666662088905287737559867076654050689968228653084850820295887691159799805423907374449771738643137876460672763345332425668415447771872426331158164743137870457406215691807737619322307429989263921492548832152753037473098383663146070619189421093175798558465351142397137279653942608115466358082761776572638006218163742963664864724875647245903190818352521034628574635967629045960813182858065548650418221932742366660523863824559281061548998056439785862679346836853344023870160003668270792750612378036047018243436254949178616363390623472220645537008027597213734236896112487925173427860908151050536419102305587069669289354166076557734810649851289090209903353021848300692050000636894471143201085367368801450357916133213554733512658132210426478600523003859651801032978312723506277905321496887504666183916762345582313945505939513646267484404586824751940486466040802568648322618801166664156766123313954339975439468726210031783147769939406117807841149015356237715495016649061208763354769668398117382761581579817826170102045193211445947525049727074662109066305183053875350537531228313267865875108707562952892801682560706198084699822114159538083824590172423058692600097163523182952556862657584319178440334054279847645379519884585075373095627236372800000008982236863724189002094521123130704949604713394111021701777402277460228227879446184801744592512992128649204005084203091291014330124451088503005808517758797654602417051308256919327702851591023060367937441011874480564890926781842235733818438606007600604394183951726376315883785129485031986238260849391904372274743004467986174769489599512905657902056998069584500745952747504721243189494282816076686315453734726392571432653174586577079702558690790990093790142266229131303241169208035416835643632912792600652547116054573269847192070139035969868903759458146863589136371808793622541086583655005866988709337468137359637333507272886273734482956992317855143303299256254100512840070094801468923288153177381631944256512828159488302294972061885689640553903669953213404496931371805792493703868514236599419084098793799628726946248133153940128495311639405487647552026260940594419063564437981993683950675198743997367518515333527497347399519701651373123451753998761807383160052616120305473231842928909380604892523742438426277901794903402514388120784669237945747566236119734223980238686364027820061361734793705817927625971110038496380737980761574450136534485938957356643209555149737006659796384124286382000471829348787636268923471007081333586174059781033715670860335149859862870925301027252097763319451356475231770390662814549412064837692780466487500017171676256328553551117444343893153896779375643930455025604425366552936643320782134774960530373391756818475334013465459370232980535038183527194023935222124546288036737540166064083343380240791475823348943506866389730107959509337811697903378633279454868800825800548824022952518638662124790040476416673645495802120514669699295132177127764722474218347387257003373620064046413384851175332315236920401439403405563495322374601945255251960432488894531121916419107379445975053315564212666780563994375416906440994529704980484906478287605114035375267728321537393830865530459209178721063151824674880310388517560085628601308399125043449193386601704341601794645121514858111165224976772896854889699152809172833939787356895029385058561430090636418451293046481093641017755550135878755393101851015504675993946757234255661428637877486610565754888853584654590246034928664049336356997757744112530739487094747135633730511956402363527130699464688485320760546595836006717288187065447616364893643245486972388859375634050903026714502873707086747848427852178323259572292297219571422690105667378772288584543067257753884070560760572257385693085891321986185652100672249595589945689063850648396547872494382256145289470370793041822261185382005670614642327645766149305941022526074046214279057822605841973410031073486805001858921252889770357880146603530549760617968922705691480385280734874235102888440777387765487414599161294255878091410137461204294314127524529276123913311760505788864021379267291468043755271348610791879027493812272975576855231457186329572485271850015830578663280068724889325162269069973885508828010428091302894123976603005188859884426235014380529365081696016166548129604467525670179454704420270617079991639298404369079810300925778166575250748406807887683862312799914323306870382606781084143072481385686047137716155356662028853742218004104240204921321545093854176443231777835978180355898747762338485081056953098937539940801017724424269778260175955710561550784100164229223553399737823113874021931695804134613127075649966058338240056983835091195299953569391568516971101130886159920304447338947110955818258737888770972502189931125157891558952219281077292680344902058774264334215971456484847516359950791192546525296746602948297517995712944284325511748699436464568139279530918642820386340274736334710583421356111953958653628521345791296382582358190883687243786837498333436779857763389947837032853603677275187491730591001119266624224339801109606413452512517803182165561783920558133385554028860901576134698598721191422000524291688709309793598311667465293408459166362662033138970154959844992489815998242999923236853941714848756039631796969105471169573259070882193202602979130770724008425861990597804465441798960883778419194010630558185554117760472858764033412989168533628877923365516110820844879218908458882790354271657609114632120149117361361367182172084265511494771809868640728354934795611928321372373163821290944469577031011644835393554049040074376936677393340469780981571077488830825084609471599528174596626615851725615508146633887790170046666230006466383983439146356555657941646783110734464185339228498760522190454733792357780572868975767042779008538959942380671811344088027008838885735002198082939266971092488995116919305761103977547178807460815192318967920542877752074362800945613785143215328233151576868138970988410137069839405196079812014834391211074449474368588642111619685295056773026987633076345065539618127150981170611719234747154000747287987416834191729419768597209523286048289043523849722373324441107162444465596955048558410895699272512379557301976365382654679131210167348423792716244562115213896352668950105168629900906242026022693312709663064309700561381696082774454598979850334699208676548248894641630961869174673736257023544467912318919807015524399621814026614988004483384199519498033281818508513411192444721547399159740979116884812913692304382115786508818148127908870147861105959343857577563044776386585346267234842478512051428318769377151521188928964134472801234073268927329488396165264446189833076901037545765726577196785092997742774707339678083985572177902487089795166385508037710893576696882833689750331407490316901224512063297048547192084005199830459318411644227508407210741336835739483706119413675930721416387888926487423948737829521797224521963016405791137030249053514679285214946986831725866261373310248360021002662834189716593490271536090968117372222804392356817836458456902560729482185885200778075192984248783286015955261878044636967502329624866016421340479576414972560017964990591810627862515329651970670978952383522171361488331661169149403070717237369860989449154449887482607770383208498317971573993786217132542557895668961748952641131336320951569519030253550484521310689313116425414370420750379347509169808031659633913799462296595426606542699844794497501713916133216046354000362760411998082234533368452494346416446522224069791094510818852160875059781429810227189581188593529653025979763067255819574095862138129455876564888503344079732151012054681077664518572050172706550299976358427792829070426321454252626923651708631988743520766272861288394396979125842788969944352235168319791147962685625780138060786743252219438304810205912435066164111914134737315751965552066309311477153247013458684357620167542793435784610230659223860154982807358775154374825961954757552648830436825758946816577792310992576466651488135060406963847178884619615287281490648692408182129250304766228783884947734301146760200259133090157296002519919005150691540620026367343685876842499469484582143680976754358674583625884836624016116330955945869813886588146044546876029862664972227972921841920630056504464129872422681915875638231643637805878565741228875653395800209398860888482281480876436451226632411736653372530291334748580466066140624442420025432854956745866443528362816928521700588441724001811663918875015181067392399316333513511695926382509490925569855539925899602425213594395766379954957043831314691141822023727877893493706563864195648741360664511438067914180391455971692720290125391310878270625403827017066430623819595439184769948688567596162342351273060730948789901352278711333133105898773173710452279294235169109630119941533801621961729247313956672736369825580178261419499566074989567801625668866881608272747118060236689052069064072332388243124447662051247733028868349304449023561464210534732609698962954649845809076127423675445130160250464635290994912704280396514441194645991956003534238425070072318998480662017719512242770895769239044833275602259137424826321837921580653525218162514059042693013130709937776968690396107427098081994704257514952900551301864143467981525393699097068502992510372868437167714998531182678327976671741936856402080833586619147128412722485237540446614067536069147593571600000656064653090131726356944653070466791397560927805197437387532956918215371026136106296423408941427433313574452976665827105460499415046673710709614599816874857680996951586588100252000737372472723505254027969428779675827578961723657612076927416440665252042887068972390454031988794397385368370795873805278343457350541949394608349875597975286781954998500905935710092954530505196517967514702889227546374345766348280911784829001879418365912679578415654760641722548745184421533489492670091449739527605794768720147279650517437101078795149902709010562806903067998278562176287058052517738538498022612132138799429554589993809288907167255097251443977898536450742373388069058317515582092899558084671560000071099275775326919737531934238752152410307406102456352833001345497126068886771400537264697575088701183573065586235800930401750678821663443144462274522449907022510527157997425239176097922173728706152193880711492497543696017512975486842849711948696765929819317949224180782091249399763020464626850629398987441082170321559733970187612349928812421373567447000541318201438063285191021922878416159419674582432264902741305175990325050955063524311771149058927843983820672521328975053914798568699266921726006940378493400489501046320116859405724922567942508550334905334501667896683011788788503730039025256100882314236596280738944014501584414081449319774750947205581894813859260061326299102416842530283404158760060520896414170553562829597570289556510314266329039456648096147881741513509335223760976091269001124361498577171002934736471041567122576171715340363165785912066129681317939689346164948409927391997724835222157692816097285178316508228923323816522711921978702793201062216173729366944860215018451062317399342186209985953926635847908860887957767108385025733358066971655036852008934085731819966467076729162026199391702690506724227016472686632364873425765825778114238131422484279892751812613967404701581984973453153963296016597163411385007723637620616274280131430703434156986966142429521691612020428543271561887925551206736140273338696638360321694593024866138961456484115321022440623710989736009407807269649839459109279229999730869344897386763126205973740202122507610943080666650759365670296413191151531640504976016370414422478565070783900491716687626874585343574944416144175469356580054803228318608199448046337086870355834433054541489745066710569159068293170848827057844850146306533936891845860090346691560107824062199644941975259916682681942675869737520322584966630608433935928479711869479955277362565473901126931822991805645000064191525596561406460583662594154859255380756655941685360813797577838227402293463878111177521293582397943849132116287718921274839759352658209414461159479815997474225386193020057911906075224709431696603257928285280396234254270042966639345706947561937177679018221723787583169775763432157262839974661704199227219968547204963124638678314123060869189687724938493144932004277807232909008951004001095841577382847824885521239876196808157617080841789995418734977241015991885920969802225815566604603891720449682007644549450102256503780775871881182375817702743082660399728700304786802211074322486012485755558967849706044431677528851429840788473682932765714077081669741528485162565647598142338861027106571518946513900426104051147994460164743447940098684830928701677528644249227292005172030137284725535794418657032076396179819207116777130544638968012732843720731961446671230043829175917024569659502174644439299175136613277102684601671860127283376795479685570660342064097694336678290618986818665990139369250926185311077956531938128948805248267116231843937928428334307360712292463098830360751143955989828697712985849782887049694037665048426501247789368737173255973474804263564524930024941626999356076855668470579689031365979703326730075337766656760858022780170286588277778088374772942855356335671615613750179571971648775174502108327685221955967229657421930235275576435029101206951646378299679544168800658130872363775847915168828521233528106177059736571143610969105302883297861289215456276204358869059008997866121446128908956754051496094737314214794001675885108249612818514267297351363436434421138283376663623459088324209959320203229431172062221762033144261041674532546031920881317942294863360592720088726573688657725039664967937725584588670040727804280223661118954393147380727069032173853265875720660773507924460230439242645742661368830527860911092900291300787330024138116423380219603214646490293154394459285336074448611853958241504305464553546246531790154984847292802335690131599902769991674336429138060358566380393794448765426326443330698358829493495145665678189448217863350539542534570506985557333038373215201283070609487329798789594801417329096103640972280456565802813914390501387981660396320476996110947931929871372815804487714835836265594306091007419652433146582105670932336588904588400828431254092654912073355881833324911939797872425583439183785370026641174642411013110226313243447918667277261946015078316238762114437074750196468685089653181681922033872052517284249118263700892485698196747842742886947689688177928499167316227933587595564709837543032510524883086868058331013089573221861203412611998867777984697941160768150094904872752943835147774545372869571056861330982245079961764515536776486884144864346420689051575607915336295993475739974292444599076914157996770267049041824063263528769593028557513508962425806660579952341717812853688190151722098463013032041673557951800157594661130556576408910446155809055065352182492575525320068917939945013889635992943921590178796194120691344143692476319167807833338553744148571477148580941701359237769295133145751625516004675613637237009562931283090124001910788554124756516721475195781750343426273684842955743089014834049214102412761047534102872348606516250170096838049633582897423415243393144849318151634745695906149298852894006489653510995918701498516779148022718015668590920947221880091946412806710232784706112570405019235853694779252073180678634425357166288325371447573602580405238548662800497255035744088829212434711636042316757954804727018390111088954075063076239735987155144311745279789239824004325383592419905386067703687330006536084980737397094237957975271125933917332511835380787623911810073700203971058180453915689174620087755024369077875286675321133827214093011124654795764892579762803984414506185839990836730389233056146444052605839715829360881839951376814063164352187220371639821232360974672724877444811167030217722614218405754583338815194896024551868200331681745928886037798161030726087050969031944845369906010264629494701726297353713257650394921781602031973449122799184642653446398422003598933781969101576919933757535665113488673236802312089691725899545251836527763589091285059542823440727305485680288679623674396113673073201404724299652744618831564041562912155164292582892206830010213443016294755065718431782689258086388208402828670083262393605137970260235848976385574318184009565345164252610997503262467321665499515098394350221428279854020174899080767310578328383991141824671851494475703116745844619889211698356995951399766755480683850286716950586172139085171671989246277073827081196539178467218796360931657541764631502369339389930417038864876589790133859216858941082129730617094610792685073036107234543903032068355394699669330076598629866252358249284469525597962917721940528619413170811385216761355234713568490524831953861937955633980826507279842181581546760534206512132889181239603336162602630490282859302811156021224336168094102512281815215153757472549430531585626015450786964054468238757785699896511822418846700717438414037141610794688134434118391099253164248385911812736951527997152696358535138454177539767862037190323706326284437670977925635035294968515859091433030550614610333195184880340207226179184053356385746700138469893005377841934753042233623903285597037891346002889369804840811582429036466496429660492589887942787483149313599220956080486549559243949103175557419670821722224677568947464742639398868736308915861179556204922671782825730222976547492342678935929308673060986168266597731414227443752795933533703575048594256276892929793986969162304372151764111107570746219141346776206462832612265967025073278829941687832426702555549573568476445147736685882611644960441033475087251186012896926657647636712429734562161238733846781658643957277663299332088696912936927992709010434997770821624442753023936891091588963471474177835054629315404467634875386765790134607051622502993502886433102125992794579580228660395101117262660937719247503005347988535101606579568842561218416730480488770472771826327919679962452960281286576003391693655082213043193382681222254803906537719056796214181157253889851047518754503812009708107789378378271816458259599699073558380421061009298137160880570576383632664184805452922591317088323056783801903369104502853281223143938881251698309753891282275876508284275411757048056508898709346014071470972880445000360879033275562214481890988603800003511758704412271685169817112315951700371101971634902097977541124323136560450512014002436926025920152804573015679931036033401882815658787996869922503110140221261922460188852611856295360201894005449056950706055713213475048219091350161702774254533084789765758610682360833116099778875744542771259606371949121314842965887979726831647388699974572174099410981011211435065760026162353783100826299300898134376861387316638982606164906371672664119563195672585316026288273612577087654459715054167038138925185125865898967922515690311749028298010043488695029142143866324951977089937679305407214071670140325693543544951919746149551374821555895475552850023004092316041179492112953639487691729166659655141201711763852862777974714640662748533998014566998988822619451873954766270064374401214927917929596487144645704514796334279797612141278628422739520411774951712631113045241392814825959395616727730142925774967354855140365824752593400767901556113702974903971702380497006150980178771544897909146240513553179898288864603852494793263784124595279246355334699315718950636534015030460809230719843938444937420985450137414334151448328713041950469672986772162076809706576737680966133666470030821764678118787898962329995595153901722613118290110473938588837839725270693003292064342204686403236523955425849343590443915272558237698560649410705228046088835979311452240668070672185949380444723163658933583184008055904537429199174728949611426102683233487840013186718871761046543191488182203795597443559050597787613213683349009962679899235004567078609796618101339404724721476374655380273810040895055616822366087358684674368414642308625307427233719039305086393414264927044285391233838045494928564793963665876685926756360491155766840296866198809994627131498373842732469249249256328894155215916127256019193501713716744693885805733103706048566491162963553728779900659486108665817472803129991992140244399571530014675573066000107651537505179145650892725066474236556158372759754234662610508662676745961985326823461499889505596681233608130659331406883265372147907608278501621609398987703111072994381419479992874699442707631704497636262674255528493610576296054388010865965136206682045515163262691288841307764246663987677907235427478147149397723280807351800371427059636233282843368912502080736953671022311723114024355296460435068296650422073106736224218315282085302811686148373191328741124378108874318316893400079636647822042450266863530872679011453507111595334037810861463282428718559770564854809440087030919137361463162946022635826013015318781122846585959034181318145711741854454119444436531726654541373563822534537463344473754081135041166613468010333109198572521845431120762270193919746012457983575795708552214487037093129721085679060556038075689831449044630428482856898739433558599583455511195206832122413689517906520031375053712386060783525483545490425984777914061499261016404406523606991438988450732199765799363147755095319192669765529821175051840443700500362170606244070686492294231026332516910528727566022730228308708101560169333771046368437505808097592618356027687202749633587087677197148936661616245226005467236631468365465785479861903116221769084803432963922803697448462818299535992514508703548037402818998254411066672160643592310665756777616737663548916878458533291094411934657949309836383540539861221688362264080030390261926672331947654121807432164699564672015203041429002329805350358470856300327970021238549311787224223094072496606091078623574779264725584440721947800952856854570071510659726758303467007339564637249753264779172979046819949404351576049675075267597974665034271492566473939237590474554174028739425533294301712632709778364364331362079032017596354886306632862831096133190960675418656608774443221078991296597416977853717215065297185957448218507206179479412602451131644073313799269196257929785709809408144197549629345745520445957940344444467450712079288493000527975077639552402335872178775571330070087684391051379177094140357290747595666110557836024695465500449793625046801675302085734808123700318449216414471703537329821424598336066920459919353706496815658568495913325668716976479670876837892211077557624836872087617612363029207678598596500189172203410278779033698561864175495142271458086839476982174269091355835051504460763164687610016970427227734096889006297235097658179632442267819349980056125854812654576067300021172001679679908221587190532478969148439032683748481084177413752633202390323453713821776357911455557487405503906444548730533625299322184724979890041728048341852736015609069458974733390589773677784131878114720403149546793021535574925158957274774825870891050366080095435747628362772717383938785348629124972472101783224195473335896772473414462207756190981790768901531998710632362247035905458055069428824383093037805384198935817694407135074372235460113032065894728049415320153665338248884092563237620322033750651512031941416542194991873816377068928211145762884234567150233241313309374785607946434884974395845264064903992499791765597341754441220042843824298324472931474105250899345174909089455489137641675348620118181984994220992311046611318066660909692453385642125404209325337703979945247436577683211037262848184809923241207639911284521157105703059674488518560761660717433273815500329138781126536957878233081634757618552968536854984627290426936260470260872503798861691114360253100414602705612871631421814778559479594467680667642803524962853164364055851573064698308403384673612635369588963121465906706805806806575229505725891367824345175548908950613540296525600079760501747875780662237399338252757158995148514724381326839641615303730570992455228852406862268502813467969447742640530462923931439516414769346763466270180474500904986438406537382261456204084944134533683419013143132302431360298761958490504054463033407478913229744883800990790923401130512422111632082883624839405693454589934144407798249896798788671148690097515260323100059350403696729412382266876579132115641034244248025644493335650208227809305171554312297279270448960318918657399854288178498429357635276504509017196900077056951952420876029484893647124037582194783915283994090265609401064911208415066165926454147965072761860868920469670338881186282395588730760572732599767301801773427539737340744943346779058104573233684642361876646260947515054565590861760502594460606050102485383510724048842355805796954006765063736900521392381394818069343813209714432415643752873107000224273515565801881422014314852656450831643854381065224249448217836912684403775677753562731909796117028044296754375090884854624741214945541133941553346542953153631017581468354993762489876746748801084604459081988738019972829231289886294402950535139077766322379626612873095789027084696815613011736636336270342908814082355681480976024515703782895552510687128163826354380838409812375105764430573677998318395800579298176460745176927161678182068904224342699630243433595451297882253823862301092487758104941493524641429254949143082857355442948756541194210860998794038028813767562730362987382842599982475004871211160144224640273730677973528582363023832364674035418500275109902839825522153371410351647228194667458124683093108738105132359407117839577324965451787918738276845230013332926006622502891826423762310063413314278529140281119843891307544258048068603868488759455459486799810142376876387035871529080679078056604330336086512063310987156778599802738382243099028770357189830077316232970493051714720354584320267497550173679222262459899284672689766504601609040044446799091249223161411834325661913066218254759250456186296564817199710372984890352595312703809096846204658600632205725852394722558291797050259102715106904626756699933810446614213879502055963190855295297461769424576752688824379230492328996957194144289043329095391047683032658336432259358590153195538533694926130521133046860101070425740214136255189555494434439300176997092387582910367340595310352036506762572634956578261956188611299258643727114880834425113057204458367260003107111409845793367242264838628349566454216047510635685263970102690709007616117478492672679650157387492035663519561493355452996286731444160512271638353330719598984642157320187375313354811987316882839720322808825767052836335720984615530864448767344661430768242920926886226687929519801218433567830525172660795379276145052670831740905545077544452712068432002752234735832195039551193059397811557200589095259311167397028633401314963160885463098213160792514552795072334045303859917956462157511088621412671052772977933744994164093906922513876704895460621568741089025598984396818900421100777671738936932631636288368104959189529273395526993290883395604987154383804626703938860358742988422740297147622539811934950008967030397825656534722751398430963305137380633547080681588828561985456893972366589018408976631798071093402644752385319784113277913372734665927517007834675895898024873961169318065774467226047205530818243127289376273527362245542287449927005077455255012692112624023717572101892541850447178423737362003358770789294871369179754001423547351933392882194889475411192002207456496793512045024956178803201593030459239790110240217813552583007626630776756543791811458294995841901091245640086945447790087734607714539370044162846126160040624052229153588942534211718636160054484150302058245282593183328563718187961419140551929269243020314476946453519141779833892388472861374120115202312807462762145457303729301828388084918391256397269561337949027987447873591048636692447860515971777745757698866237012710775365031619337338668778203514726344398390145154305853033220628466955887147734163473746684306693532889673477219951721136131519456135054946040181279812992806164029837169459096290589330609497764669740027841124496807541686712569432929488370060112375099796672325419285100252308458296203468011425804540713978960929539124510637933450639028724521451098474441509892877790658558951991571264381297346540137444792931751516411785500930404562923271290740599573632254918893504017279513927472905584004678747618414636897971729790138335995500749208243533396484380279247614486183447811951018657653940056799790857684074314925979742391032368683125566757352625129252695828602734463381740970784298780408923815558435285997877829539662715759491417669226688050706278744982044127829982480387962690952031328743111873494452745169469905030335644523242992438606668939715454056072453293951804911103324707803279853391979763137505309881921299672210428102183223848029901265098770218792086994125223465011844514066834361166822990286726829382322374728690757893643488428359577370491901255764325281155800256422949490425207683080352149276278851986166392675000934825866596017705819243464880199328362161307535414048603840817221374884478857005636133397125456198812148354778501829175714546000712853253811532302345458852516501443027738541733905215151175619493604365029101385146533559755884388539414262038127524949612133551116151064573208656960474670124952831871793820205473216118169766499850437757802288806684628321049390409709887717399038371496502359166809054022020411552313062768089190971504488280996060122700376238041548037222285641074599218918214719362710957144740893629845871991897389234602339735076198939468701668371591964788244344427236238974886926622876510290786581553834794213231309452790763545052141942436111826537119511010698592774156571427931581424149881717240404317815065492003789619199110875376888973476382828223216677077212960436484920651957188899237355912500825839519189701058184689271519288318832288238892043582670000151678950951110449619544386935926682121431695141011774632040278825048199827040425974845068668478870407189615381013865130038311654438250739939881825204246700529948817189764093245491339601009416002436306825848868632334613973462160762182264918976067818810665423823428556836393539583365816850669321524083176734316121894355689967887145373635811606411474863932240042582503884738432387204301441550766977097244116106299553006506401322464501746022270320721959176892517223235060468205180835476896409697935967188058949065220497175533610235151432937553175538641398534035196711163606360622000406441138620975711960858627312296638301860588499750024689099892412075431482067065712497019576001406457866475022927018107358324278048348899937529828785890047233947271058447140716429965081657761181857199158414509650864569116166223984252698396256582154181912031380046624154130897005288053769041145444832794253049139635665988114608880841134977720294260412066437581895835788018159786038647481406864423709574227405591831183599612287311475347704989631848600619472598434932556165261091443236768561079400329016707376361569108934966454107775977511596177584550438706721963861356410442307525267216600504293804395746709310716078847474093514808046777426183171087149085746692166613791617501018473573726179385967837351680928288570941738361744437392282716703389522212653944236213396906513330604517461541447509700395169925713808372683409029437393861064304224644907968596025525931722997157907616612379444690585870694387401036053436558186869519995118797057024659587372524586981057270326632916327079127798837599728604324575025052780380818057387484945816791449741807152070182806769732477395843701716785393714426457133726065077666172867761485801801270437592515633838389020305166584061577465519461360628218132131420618573203618797956419837482905296227882283639802806283108622265117251195806227099480885896795174833941292990778959752255717874366590080097366132285632885085127212114176043818439549767749744253964465792122941997325241729705006986371410941877842825854306221756768299756433820881560588542115630425388270535613188238652317762163961598587177457189197341681084554614479833121938795399353554548462557658798434654569644962821563463423645031132201942069172965807889613215469177175023058689638462978063780905393691510786972788797335887308241675725657059178612779117882255865076323856133257623750695213410647332682576225445352770585135267795615920515581634649792428028968463637150062529804953596236096193043187442318995340901664577861842715407414151099979783162090022505064727606112328931409917635084566451789345586535997338780416042227300871007423178054926151274510046313926579172924586055202929361255363065310271172095285692366916758162137334447109677547065050141326575369176106938276620316142098849904632710260654330000801385942053444950358506595408775151343592981048977053130603276893292163423998467490103144454768753956965692870136985809394623025435852526847176308501286381355707535352033224714789913461977468521737924957586775829191174538168676219023685073970268077367866666131019882526995819453864644114587200765635841054629436328250946901926627417625713347258943651482288007223386833665491749203401762897102873133656239199182162756365382062678755407939844576675867539473274842635290304218668143705097415646326079455311347225049928813190047215380620370558313183905616223067984011914637697213465161211137273651928179104633999611156745810553604362435987289061221273214628216823343102234198298332230594692433082482928819433865169058785854514330210299203993951710495131987578799955004759978712774065058268240312641869207501049125331142639918872807509436173542757950587798916357201464071571148330848396523059056575817411306917348701459526361174728122066894342346844032278237949246303773553341958728051711964579887496511744027453464341050409416560229418196745138670242851504540978495479548195809926977205364964104818899774303399458747835833012995595559626046172447036122454090359719749791040333938568509684241510392560748338854030216708286644519162785430444019235898406207468984247577468619327507289498786833520123660299628039576446990618068688500231280699424220419899920754613267772628749929691731175000227486462522491530451108622038581714344829631790097761204062859655917829801181129941774871903982501549153057850246157031641225700689862996960973900142738215015111804324927842964793699903386849927067782317877023839014345308045366304310648970697549429920754072836686982868762421717925958736569205437658751444444271873342185192522057056099963892070820767802454690164921380529133979476756295833079268513819942858483039266555484945937968172344955903512932367334490716952031997141108998646298310790977964255629828593187655016795646058401004501402200841061338144328511269557254354961270624415414903741673795741758366507454917574504382705623761902941570216464336735335800583763169629237511545491471387804226576864572683451083871159449382250973826839156027502928915570272313820154841897356000945424233919910832875942001765752970660185523698744025135437748709346097309148767967303429913265330949417976630887057439338639356940964059058054504662557904610654979725880885351806798556205225240230674582586186255203264271272245220443464692534103866456763772827700930968830513550334128853153770579628222070134882368811335422598974851442194568108472565176438656481296492875124876185959288853638216472040721962964822786976182879028998102388527190084398891440120145009831135188627667472270957096565282550114600700657971300870613000577880480272357991915539823944627836559825096605829548987432813410207712106558598586161604934785806295634800807873886795707475900193545942144675890427034435126135843662574486874586433545622080054364685850027444095496939573339381401538315068272757318973878583546035435246054374507940974800703771524332229725439939468942282661436160004772653830475845377250410594679464872914482520855374816933165331013108912605694726889873321478292050412293526659243753412974458147907713872365694566953277091885298688440311427984103830232771655107097336744091781630407804513981849101782577897255839633684226286185718381821088306565852282646313470230574272958173095754704551596129058798030842667588217531261868086843922143629964463592655364741522328613758335703612758777142530531331009392175181021536997571917923028434500640481411828659155326367410676639361300430464553144593463108354935050061371919405138787343449033567947228668115496493428732007081818607954712672465615295560193585568501749590944763875543037928425445622926912818834019510599105181654829164576512313361434674515885741532411933491722518807934925498149457238905526440662936744584462886965227534663773221551806400090952303708819984444710879161514480103389863572264561482954999508359908601457771667143270517529425086987115697353755585647698526474330740196022453112509530364466433591480437136404826548448777985365969997574854120367462434982203315999468831288414967909478015824301355650779680191908595492718254367458645779592026793555159957194301644596575780378800009050762398954010904881305522293913354127174180398334193059976869049506042909365167992033546264195412533165915993644247049415362349521228319305652323197882819293038890587068277344799694162817424703840178181922487692095873857913789820798772918435594239354668500849055598547310619937649588590118745701199810801126237467263650265565832975674090083508348394481685264999918056048120863389366327888120595346009999558752575866654779881551480523334874264623572038414727366467424723139106651014210210925563887416910761849319773092612976811216016267244425875318873997397569207472643023642071996630235096492745000325054383529574859153764415879282938269272970841943173967809528182282145654408849949749642093170109291564074248213827657864917261534020912261703657586861965450164557693616385459790778625876793818742170829017924564686724877402994933885816948218157520964973436194643519889819457485027442723973931066620942471241155109192489139197008998576808530363002534157871689368858311155076024014685101232224086886516402148072708878806192265097075305066477975857627882039514154824792378965131323937718920864044652365395413504547807498573215369520542096987888126428899627302712781507360991368370692405214346071715603129457082595623385337832157591264294319512639094637186767566311367187646749310950959121645406208947265782186642095742774126284815446772174886518072350001312646743751304498764727739616874926015787776933943488602561930547732829764828369365370893729529128329619555752820605313332986702184403467071428469962666499857112189896232365090666634488432114962842385225022445410667021806179556960485828591896152510342512310304439272687747206998751049615092370875011560476138206643568810845553478730074736589605035871284315433849234233918749739383578365309941097925297444950930264685968644921454697240743210881978024230489827267629011982537711037870213054043185712823929982274865997067822314996953426158462797575532012497552053482178035914699172094480530770609356981880069288845787859142224555705391241580073377690460332474154515917903758628839285019381920037016408672745601988460119418532093475573310731065034461874275918330026867195415701851661426744997266255436618020822666407224749132955547085326549260016664895177547088038220673115584681626087754341285205515371606664121295929542333894305053943089818747355598513470658822181265417662365330172760149005139509271824607184362813619783165910543273963363049512401398369617344977314805859176239887806326225347664417352173143227812311222151205453522341689327976669794237958067551735811628051303721939045877265796819926265373852758271678227026663052119690640527180620144875153128480340071506721791226406312581692829122576596690588593627322751529443958902074507291308874962627352796540907954311363435768437695665406811620460624431743307950193268674470596616989240284038032748581774066040428323234344846392887203239472325919942254201021433707298085647267742531782883305712230149484613022020686168950361260491952521172073558966103219812787778002951989917385197761052725621034149162692203449775807349647575016106473311454326111608855269729306262421866029677311099373959801257387189739981167221852990681008405031788156356121135085958968942899655543773411625767130675809468177412480118573923118539803866107251759748197767992690158582632253175923129959582344232344131954348437335430913399829959917751033078508329710514656922780048733753259407686091743548665611002850472455256503980894385607460157480197576975193819757685041945762567429674240035853928735483349204790248579936591868911368637934510965704006993198363865342520696254114552074884649959319836234521608413074208078531849536284880992257940042687589592220961058712977455288187616692100769908704088806248345220220620876917685274320966141932149066781283939993958150651703676958131999728450715283415270719754286996544603981168307154636050695086621001483746559805563484597930039204262902923278364565207706473490598421949323820767274743478776054383175851801421687384464331392921399947185711016034099038567255173383268101320583118756858557690256807092289697333343220910618807710013480960229508579076249999344105316660311878195928223422361045861411649727878299648726323581082189180840089617324023336209139724386267277710950109405966557647209971674453342877058908146130027873908835794125723627433759920491552644014950064405209643574504092463031261663676571366044469987279330478059853191464333130691538064084727062081435417129107885957950266097063323772108275248374135449065570722322027183729634758811276912243234164309786814875292031583711466484810036437312880234496176715425211539572385047458457634570355704522603040742705140602576044335970926782255725170821792642893234308372805119054115327063593361385963725298316987185585294901839952854049183096213512239960417858741191468004024729774436504319372831171953502696686722812052751395592041185911333893991262557674417096135381829475783812243436513980433550912289294818121514336011283656692917550275553934042754303403183873679358215929828579642317780876968106288433130228111376186862058802364500916264489312216579931744243477647276444175426752969696086640160338801261736130714750188418940177837080096465802916972795826889975793307631142055050489244753309375380266375677206930792965875607678456942466756964700721195617015216969348431558093196311619335667147710668364235764504698375233592301114490109515720964467781070889333214350635386596199289715832921881473140460027580046043929884035666579884391417370428105222336634416277628312250938330841179824315709915311552042047073064046931417569988902261220781474748686271978420941534129500096031659060098416618733133875293618027554634139321010301614644806210710891285025157499814323337975119498082830056240889749611252289661217438744796708888256835824725601774589599100546879179497747579142818232959510785617866833229784622408656821110060155305578566232588442923076277661139399231569550409763871991291873404579465235945021153712916520386132308196479331793648458103383876568178956221276946629558845992969119627462877926580436244657946651326271550139455502765650074773503750995120372561199740544899436165335909273008936586953269673149829704521118242484915869979024382530045812755363315303418397176239991088022743399003356489119874350929756789225016066970348503087520779417111663929767547800460341212375926322298205577157824800328887869279624951208097985865913343012283232474198669913489854478707487539880009089680568100874922618069063811307811148777845871597238050246236999491414840245404573152635308609074903237144394979424859934222204352714796868747836931590308613782200900898927374945361824690555067604276653949521832364566453288357709344653475128860638121071813343423888110713026197364467541821256876453126324099218037277965764549457064241590749917260978179163521328163787328923919690449337840081386078142688506219232690788403678796626459795563408305023649534342185938615159943149049429374366003669862551657552168956790062692250067426881393997362073557953657195172736390473153418283369281154810205347042061499686682783581716993459548225227591401225173581021305650056397441300817983526815569783533155595942409419812307583893407505479574143126996725291344123943836825604016420388869114131282866102714763211676876038751908590254319416697188540763415733410843379233460018369795304945838975689041665386698410474098576329533588242432458211139853052737998010532306772724977243279621990633844419410473923787088384444340749501804419161709700654496465944804740193021606806867869179453807071514126113484751075413231098663999350107939806825063746338291575029380120731297537863964963908617337994979455175270600670996274880970134706234516443420189227336075904362657256014519936079228746264567507626104201072388307046928000041340954577957643757124977188147893296058033511763119110416742263264155802776096802409163973843875584326288659516756952832828950175164723913866322625923105305388530874496303665569835997329864312694808625995887386192861259826728890421348022035324142727051321901808878014280324950146202863284926183605094586907541603470314336189440541548921517467153914688524041490664152720736241250885885250092349774902237491088275867578143940883820951382796481972197452362172234298857579195694052584465719353217983315696594989475306697254722897558033499956472111905948826548596314702932068020576487988121934474669353841977546570483280631223524749957773169227741796525890640908635345364618796949699520683382942722488293004999887871083690688688889539631614968896083059719400788249626356565585340182732507313042477165343176124578648920875338604328203278224627978960265728612629184512285845731379223047767467943467650989859921549352613877093521138613796566460367439917925183774115323461674965306593586160273631511406376535977199893511555596445724681653160725170659317748730915476898039750939772021201167693224203671114671709324845936217262282363021904517395864732177333309691047031067069715962841388355163446854967364250307226768039334261971612966934210494465429621420903107131936466891303288915493529145423186395338621032450872714813677724239556857259037962671041672128168509141390113997779477882143771690938049367420487496006459035654289294040741525510978171333355502014887515078851582176584123451879809626637381227578491741870111247782733626106467648702474331394888378221937624170943283137901445550204996505172900364208612037648446192337203536097055529162047226827571332487552934769720655880772146856529977614270708034671046842195149617972155250527820285343963550097535629324798358249744339062050575000320576742739352060639823168571816991013637393168694943617099398011613688491147117059132908026318440271808654270580169549396761003386300524093175665852093224029386976960492748138195434248033914035179758985848658862516786926791080235276407768053646422763540081856035984254144927149080210347452687784169276290623053422933662219359365361960350770046216827406376098836775736706080446397620367394361857823741830219813944153893505529008706373245088021043399686043203281584369181586512015476043218256439458874985465752346182424800189040886773269890968579625035270221917150880821294947197091187678758513594172030304549207254947064371205919770171026291086528614648518505744437560165764217302311834075002435728784439980551191179250330794689975159952329773602770642834062736978609711575081973988147120538443017835833061603529698063307757138768348776565618589225406415809874232712246176911485310546660040133453834469908948487479471986344671816399097535529210428741090723315073344731016337715151125554470326962753205841202768380366517854971866437632026228521810011997920132316031907744557507096347097447467578727960478944815577076904000134230729094144011040653745940228527677338727516851861136349467496538989951108686410845975294739254507022799953540158010244795003858315277865557498325067713825518271340896625136409534070793337811060845422269448678364871274340735299357935487941549540510598744218428513853534588487775862007869722695860452507192944941701260155310119323869763821764543345032958822531012045076657719909698675910594841117233032344510728907128718885339729893611885226060241516433497080151395560981893013326999737512657925982268552783985977152671985037359161296357491348368276459204080477072240108621105247603997493899163396925225271418430853450940031054597841116778436519119018455930342589534791118140386091753820803395804457073774443056846511706612966218550336882009854938158796765191767177724694543173884577742280815973375141118950282122819737483715006952851365212254287117644900501067366852636793018438574423561293432416248208883734861540797021676666771788462010064076475288809323582001073049557515567300897473473920569217515782934724024432121050974763543356958050447963087108666276068244452700039763255098946872949398808844798454604224414835692259751809060568889064284072052306415165494087446672211897945506139964758697543131461359319945887169807972099879458294583037980435081017044235267374220490116132432760291304613630580557448578961945348842880134020569809579447225864881606440682355324249180386668016031780802518847481717057310600211150088349442560191790081876550003704406274502450735223623257069697887504667054910380946966356384894793915793695870465937351431838497631002551620957138009908092780089153743440272369598605721835645310501658929918087434977594231222317422635427226816262641218507078052241161053756619134864916043528525747087065303232480262075246964458521260053450649368083590329859326272247875595194838824873449371379965439470623796480793643591899802595203868870898431171174614502039428540613858100475454614629072000986923667448403479050031396318247212135261858923462816416520416657783922593155977804333560139694926692886173036832018357033643385894507336537366243885507121340475822768314078564036231245031034885958227554187142551502289934419817080269897300292805094630279551818068293241091883806894333109858734507816554047349212472920350719584861080867558149991414395798954202928600556690742801167083840675458586350322593185920456513505079965083337243417145702541294145725392906289293234530361644392038841365319966463878478139246996480844960353492060762495630049228308666244193680508913321306893447528508479106691815193983609246584059918777453490362902543090774954587899719249370513010724786152080086871484527528823149275255780787153215637526433204739734672971707870860721311015592178077164521113394090081281215281720052654409682153297003730443794829205296307017637289493300043096100222533675306490840817645404892259198484710924317000901654627049216087686690907238479981384953349497330215480929973062535801603614946602090194243261293447466232988513917276127140101222872581582781396966064328460841834313594480169367642494694019080200337135286592127998953950067501319265183334566882894367849615701970631494813483435623345304976663199558763999506404428737118068167583949162375799874223185935326718526296227986769695208197767171864820911720711131437828425252933400281568093229046456603659465057575778733017770085922148319825016523801168251373275498206534104875427399548138372837500195199530036123597730443210176574013280529849018059714765923288657273709228838245447492704127604271191400989923938939470679554545606782755389127728058361995890031990531429719800743448946040062960566525391768713411715595203595880165006943065329456150567881088157517905815147263836647845869691205064110186139315843549339019838551786422867816234015892459652365756713801593241725774013617300909245211407256466190291768015251085638508014418277114650071875845383475270908254278212177427842724699989490855770679645319901084292850009013110569455674629857402973844035650522987646853565058975217034732371843381019837318653963195077925902054991873452120012154571275575541100456907627866119191281253907237792384962974495506140427618734941019954043105385632557300107068996850944349592777211780932387425001049211420760766552615948050025819141301153187371199753103189611671081356099900305409645879066841451813094832632073306401758236349060718478324350832184019163764276872467580174920876665489704976645198577466557816693728985817304194721626675359950218945741681509481120330805961424457374608954824239669934674098589863543153622078091807681791270844499912556557171932975231320629545870251591954753029412854283121715301968926346496663774167437178578163110146486571414127331298135602785646558366331765416516432269386672811539190208350283485543541169575411984080573187217105218737400277699664907703313117522395554860527838469243139098811951872318514782306176199716775709446404053790274623341638052994830840746026082932231176802338785498789140284711744926103166602038622242112980181253259319597169586896449891284335100294110639804973303820330497580643541146896086462790203888290434359869243786693713918808758028285026309875480005653663652439128355605686118606711845054141608250759332163004171276078594795577021714665286439074407393137135959116762722990744242211355722491258445130783640429297122580027333787683086146031265938398859825447973405809552591748148410268198124885358220672258091391971243444447389725928785038645544219705847656413350097632074498693012045110974447940832292390473360596122727688092719671911639831938605519165694567387464461491163880446699797357651363834997948097215259730236421769075256397285990617900247908814299231456647050493567616609000349051776005012225719722330235875992456274661820458643872711006617396899772405074088758029520218493930631077719380761465917751148052517634832552525140528681194712926215747536284485942709543314879088883602962194695517914178205015749387596000940136972021666388052268360343916845408498812601691688325349630064836929643896360216652931143845084553800453052310497193738288664625679917731411392263385702101584826029521395408295977313613599720044939778677321854266343223631969342254839694168963140123608682734026049453717584551350247773290670145379134975377369255910806428376585563092367489956212607311717195697649145891818158588613522368060891925290059620633987309025827983728653335645139063043393541756862842793290334346022599966545964812907592689032716679873787300357391408877104995680688948091111188656590602063750259129298760492327012277442168852892497441696153603868856917311637084456090961733819371551894674775310085120911335595508140014992486549078915301527023672296378196510158048635832346265301009562531735844803688935831881465667254083627160531108196076437299501698295066558392477563579354386391719348853627338883736704854110874910748863617458886724524241291529947633511853796421240445598440780232382564468820987218800667248790112552680067007739315297958585581273710399071185519595058710165821273407279950010210379656535403952358275533700552865943740351732682205858038416905173994280231400249666551477798644333460395783536020338691284535270418481088000233877264975013641456157991081485044850792486809054489755036083241273784265736696304346533261970223942165746074072772152285554459438881784339227920007183969600310843263852598043717868414195948585405823875294853984270168990452922184184008999098600260398155697833532559516472258032016471717720742206467495129485213402453841357814279524011898947042934463267197769466914492751982225330454592033551511778411579325888932888321995677342413245663581575068639485450282904392964035236624182721685661125412704100368672272521640703629688105266688683447699023920837153709767623466587152472765786766243033565399326067454828444380514256155989225665765703680700491025718014208355929397664378334836596268492380804426611539690824647208220477556780331051934450659312855166401201941358818201347672255218207442830145710675240623290551391677106636359030347611007342046996661669914085421597462674323941349106679437384142580576041949669006643181856061271004887894228753211976059396827578716342962275592884931912210352896261875347415265616926688819849642461590606768522905424834565716622399112012492154534231160133635587097117048298514313287701436380176382446276453627262547068315942523642531712467267564703631830234675563063862738299092296814781560251976880150043806163671737949032201313050929375248639041838889450628296503349954661751474551135228279619234359899665689199037757813342818659066453406597040311578583449217479725780857604889581875918248093013443222737110708673125714694056432118761005269123938054306446121800019825849370871778280800569160954362316495363740643293323561118575853453358042615782801407494276469999708858493536876948571426006239327055744463678282437525769984470117980700284847668258987418307021678912714185308572294985894021089084026506560604071282432139596461001497964388264287597863875427301828003650743319425177387002968569019809106985439518863634252018060493517074631350441439319044639227371701325727419470734567429939241925081456400803588507667213537369840176458143919617076780396176051628613957382255935143741502936118093155467396412282492679546373691015999752118119111399026236556682364965094422633102274150415112045330377606661125601150256408046106027099745320037940378413017438655460665450150480318614155494472595173155256649830497467786993922103305461472957828535225684940516577925326372407752484443275757861569296552289894167012610224192643108345669697739817853041709966506275994263515481111807918229054800321574876274503094778911637646525835433584875449365412008327511519219169954632345787573333487282027009077695997799490699917941370684543290589297943834756735220173011061692446177248529709722569686065585952342042152560216347375923481713913970922724164173018891411816378890017065989678299039391202911725751054412354050739366392789605616581660378548439020172865478113393016473499859289620159160821157912172701517667032138050442545926555248431184538119674826504121719439443678440658369583134896077214689218486932419884267783195776573964117775503365278164688217013719729042143726178838348163937240024178347932017716976019423418586118883710630839727753841963826975880971221637406603887748760412199340129115611249712018779508940799779749538620147872900905977990794755870856694753321692016635604366256956014136772037294779469719028074661932073488393992899727382622397043220094737472012159860696990178963820634756070481090833491311331628987848346576085881330372489693991737704080164217568663393886477747573026406790421413220810040166368085383841313030543937400558182291537607425908039714223398745099223448176532444218542833285419429138786134061680192500658636690628633991689455782616929616667814809653675553809997892687296757878140070464969398785996179504288124370425935266691858309172376512097569957339576391162141807484114898756650247936189777265546916223246603106218166219623457885049293987392317581576480123739903691973224982609373974278588202181680711826800734656237865231899164343042331563141030538583764097526165670482722399165902825387843779472186078997883212935388159888143326578216649113284380725620675136036876094774876744097932520048523170029515497847052922690875434723726437865068387671727847254276162135472316409972660763055209397180709393358670024753331795405112937811846058371562865130677847003083750540482594257771675943004983739869375279577596575653294546304060488282846143382861709159695291117239207707906330691261656499228380828734580442161950875089387300018334803614234226610828833446842604958896270713482104408099412233233042903860823650713723900938922295836344894027405729697948490368340087392152264047995867579948760252705809774506945553960008961729568047275383403574412830655878277352765714404307854739450999989381958115452952578025484671294869161415254570023060719914137845160493464881588274260297682515194175465987882187345575079407922112157431958868226538364442946450102755342835781227619296287023150719773109447904904930162685555978106462424644323828859286303118450902143453643422180823024923883057342628297921653679039644977166536330976874314708220749766729415632645888354532893153287407075593463890734936096881398615588892984417652960480587844465657770291717658244157326394252952251397918143412601376390425387281052082724809413380141646841104600877324285580669687658996619902668433811402578159173235285823026434092938859396539990605388005501967051429891568324436405762899125125923519549628375962048679093441254055913193592937702028701218084921583929270043309497417322639666778484905799990930926477749602492780734935689464569007723437795421419827850746445691769886487180101849417253135298113227043483402603496364105798978462625668884218491233548385439242622484897726439757986739677009572891367776582385315791714657417802199778266303294703388547908306872389112128937585068760546188076807572340854101903047290733666413113273501164685383096224498192973597236926943869079765230432114717853506716213279747232916711568328104416031593549001489352493165619282829115660363259565412597536383733373625791384435558998916661205011593562892062460201887444751665282268656891017112570809752246910504135490989450400742462781327171527084285773208433487013936918762931047293933380590559838556951274902447745011051282080395683532198103507101008007381882407975913634174911706463706314909173260656709137992809819424193107377433396197098058352246451178233537635935378526231302705073571239935324208983150325545953846698953730490159635865326168620457781512771251383797631311850772443946268671215996896388503212399313821475214219795775895102265087188218884724303306275626083160773440003701693461259458929968402452291843517051775494582225359946240066683668608484991721305796039984910991385871061101976652817421176349373347176137513480439091881796988859129464766926330774269459110973906379159869218406470415664995782201835174207518261770670876304714588739039399298850612747640922679728078474895235378505877507703579374977338568649379009947669820433129323709004486744214259104797488218629750881880613256619857951487206827012575680977503069798217230908356357768725999602777096898119620817671380116499905074147804213365163889758185890231356352007733214314230607185059805585998664223652208448482640670973012755158667309335102251244456040509213937875813011580197871512572003651489984814827163862606404846854755605863193866115427975212468753844246066458524394002178474341887258212157901533020173054752828005237420926007890019762165443758878297576517726095450232844376772516963397684523023216224872608852591280758607061124162369138335676441939831176730362572320322300824346487843808552799018379601967385730250940072194988184438910270697971877220426908528857876214661296846528531151711360587129543076875355016152540702520264957076693295663405900120644820112017760649692451611811820304752758035507821524413720174253179525714534438062581110161900100132990741682725075200951935580169622253671614976925387743685683354055940943610923094849468574097864641205871387683304572516880634012953830398679821586422752638967055462943803964398156956585986463018646356748046174339537289939776868155859976778317571033448619171145602936684665491175781772955879812827564073073421043125298571413246810055871504433037928667655201000276068674233396489973010995998441822948961440013178266544404078102800785533726756072595053674492540954073983091829406307980862079031951816853250007857670018013363142570940487113715955435659091766003656302166279591516501940541825059392141792244350531009796003911946806155768011458270700940681712039951792063807886328761520178109362801924617115690455620323942683911386290494416992315777646608778204485140055889571422804399429026365185976699050864524145559229922365447760086888072843281114089284196778970544374941085501433097160635994491572328862504607808441208853280249349554451350010671701317035704997069275341473894827805018983532208776144878863453508744340292343627754920375942576216531223738698408615251588990589486482573948730444633076148260944903500030044837562485916426070037486814828908073904343402679352957452609321123404494551593544255126322578897061461832216035388876671959234765059014500378277527281976097692879007060756793837423288649770761366739996683659158652043993786519508037258451885696322928507310186432006086619496611336506667053993594916827375626831441284343186639253817106112584040128228519253122549800225569097829248770469319246738766787472882117531541925254170109816632796370232850930225967747609268401501347622768099338410637354806832275740986694713141878902578879086486139329827294417741443312352028284227466349721087099277101809188973337858330961821127950616061080130493131897114234071964465675811594417848103388361299184392582993687998830449289897359641955034306348768572281212489079551974607737938643418306132578643379533420779322598380239073069417234193618738468172561226731449250468042406898734525907759539139465927397687562925588378313044109348913353616207634847510547309261758235904801946652216441652738135291378737218566999593949220520421090556654494030022603552838185255406297913560900186830951324216259579157512621629663580585563424826527178906088316247880241329818050663984322783242456115001493675991290268031887886586031238108169177825690458534211859361239421645957281116752354770086583500663647775875972105086978926335090335288821728020740742663349256614339530166463748646938417697660053324875630496077881943656239331103010385174975692909807368523950212239324986919624043133090251482683380214805910548385242241004984123501175060078168453898179594207212808914897028844654895587447893789207235230205563990387053878323000417550270218458617708783453126526687751723633791238594644682467259766054536441337557469844366746656053051685928063570225286513434762938487369350314223933098464251593036152071909528017888322077240024977187090524302574580171290733564093539248543706220598424050435142549352125871771983377140009421630697880788311042648820306415064342552166498894807297720963034399306444298713075970309584402974542663898307405726445876358806174392207071627460531950364293736275750776496541122083718713182505438967064752054998902545638694310628794513950384711118288418785582070847779517530824101827161498139694057365382455871662054050053647296029727611347966510706240565497595792790099600484763002449076231591212438211893102088757131360284153799279890826694473687380333403322199929456973442670407503594289654529198739202314535306004750054145673706080973247124514801267294159096847033002652813558027847696181335830779433767517085209495298302657333212332215511636526780648855173763033948441093845014339992559838541383017589074130520892216921111159296834272462085740788837375476141674374563170023398763004909327937252231841411378964956086191805942815686163972442042508696687099872862608732029110306466223720725499998457490136984746517764764270382315070186141279772777749373390069513710193241006731146551750716553624291781897015726545072544939870962809065307720823648744028513826907712892133782277973803053880925738834081376029718089550814389267275012879916825848873117180869920395357015580379373536427526162820033253283812298133076193866970658473678453712333134484137596707910248174626634014577328321392114087186422176100887340353617076545230704615050345337232311221519606157862307075016192653249531928879074581563510910510685439696181112413996918025682303142705057399134869374597645906151568918250761324357632703941203930203399599131091115836729871856529524158827527599936307363997615426802555277855736098916578567037446654471380561170950555809647472661582246231872156070238372839985836942197692677447643363392403711818740979436667545559531304685174474721865058182197842503500797278401383780379693278318037404892189332209075592850913476930648992949857431630913072540404153055730763427228398156893201548217961103175030664560130168158483202661943218845526389067262805096372385083828429640871955514401329210758350612830432199459916314932301210401971525370003532008433620968841628757647629945878805018181822702356789591404245631608444892562128877106256917260485896886313191854340320511984200678018316843266531023228886695736336358712950006797133025216562652460981062119692497323173081946985985678491920914520387151853511005384005308600782737387030350534966306348847384531282743352682445397905630183131246391173519627776900522863666696537036893781357096311414242119082353264118195493222121291143177766945985907906793006735418789283265981483314871639343255104136240978054288779841257176663853239120184021655396156612482118294764847777476065863046980938169953752858094761644789962416013583710057865996179089934030131586460769400896857485998076597079949409373042839691425332030449111925190486346364062239598208207123411421106392310547163236052134385761402983838478770911484501522250793685091378078501312957050945873556516942301614802606251936539471438401611343911621718748022714287180635550203579807303308821274521071781532106438121619211193115245595955405860581286331507409178904093995087694224144009498100541870716929613217445703722613289083087765942374944097564889460610791969114849976462522423376252623288452866487233712220358513102580413861645485180496658143756208320610605191333444076280330652386015552399731863592863244704422006467737510759948246810287060962071372823954192085786347463553364007465339297691977614872304190115336421152894427315455975535575938553377110347412832298569420067590301225753005802919927576905995735376496134206191135997322986758603190314323622068820163482846532503171824643540185464850555229429497588572738750214851390638998188953863978198110157600188683738081242035977417921794920535703102997651036687000147325823323224844815095945272545104482616309693795878765728951057065103153533993564624567804495907443935477533606829862819017246059049060914169116328284332929181554726394459915944590765267777897215490867726046154247046831088536591867934651667268031546932724126553938668091770566715581141627032619526570208939993778379341423166059511899992546003444146294802215133515950293149574273157642993857694915475104428304434138178683224970024310715907878125163373683560817710340880807992496762480152459189516493146583443470061385683971422357848485484799714968903505957235100221240536502432152689432096306520108666601690767407539976694930406265709921209281667358474278845914712814317093071669248240459564047909576900705631949302114876137162200001075223867912476117955859418152731006877529743637855347565360062286323008739141510499509638649877167943234368037699097130887903062668998283140411286158787742981209637367653671894324312198388774930356709895965228230822016738942973212465378617546513948916176324308921198089003426860728238444346060156314517061483009028250528066329134078649047825973392550975638284022293828031339952716771387632332194260030910745120079464307237230633619369702671104054919469190786490169388347982106840310976255946235289046315397936502128779551430679724188775048302837804345856441979152600858652602516167702066236717849411622974279638269600110517670453391301489694237154775436630936929510008115868773767335656981950302692358692671654348129382776266339389752768595884434412261715708753915394177632672949795013151952221887432782172248978897841109136236232817716176531944982870708123027138071304627690551160458415086979689978573274842552866787730599136789438516767446392300302404497548992455716254310914321979067135967529141413923224677576662431875563135166682534279310888924830224942841376471309625024489039803240094750829465160981012868028309196935512476620532072554552919284656179030898501292184624397233341689685494440084449337366622541945671666202254037569177723428658609254765462453947296957079177122177263250373706731717346850714301757469629378172236800373613373328144719777566703714120002385910337173812790478125201068216943072382218019810094797701524683339681489595059302664680552856558213440724881075445702145133267298056620389524095843940638328910451218305219127682989464174994771290600358288190336714882292964954401174882666036265029628736212275068624643358879840205919180187724889912398574869142616901291656945467506613625364583111359155057955941478854553291639745371356771346517752785772671265123126229596055124315259139657055197351371774545571355389030331010437069264975370115900267404120319550450770667439755498187117804451284562982173155282190196127518454562855898802112542978222012698927777304791970420401586152230041666759301368266132749895641394687162414118593891293059659021310038263391967125312711198634650975262263118203262958487328322995840052384596913388439379525412253900669742353611248515419823411476260688858113740276478216937776858144573932423170564878476441827654910961037524699767939357895307896187224931900469575762297636316442575136865502192248239192403019053166570801535500436832578395874974820730737962254799138519313809440444432864747229478111205015229008163859818667075451397459380766764392269927439454978894347235951195765189339708137970818399853802224465750113569009053739110440288094525336916347688143619062066424510140258020533488833310583038219902626008528395417428180106187085249463193092297673039879842114915123421630337302069635004527920955750043626789168939171433606880109146361550596366289379176802617161147555545917943541405818476152564881580989694814906110957901919670846800494310743586886272305816104600445006520748112647549514832088506140394635734736148803545367161992821568882846661074809436109990901595356090204087974299360596419541674898318726296631470726331781514212718155045680305587238632128966758959786633250818854598794879088841721977801690484224077889887611758392081053231782988087085270584239168082318866514683021780686391192700941299722723645767957375732212866057428664247148915985304879231249271595485199086445428281139587306267107263527261872116800130276918377964834324332725703147656932656899902799734502460003849066368014775331657246363057438717091080090819514838304917420285542242363770544808999788086757633289175144774979640850969194151816380027036586869619766661863320077964899495565845724947819139199877789077569465763654824557775907554742490056397317168343357053843974702888560579346197719250484191670413510934686656451932906677334162963455746901668768201045778237769658127484060715438892865497096345001141844638137970785570400142222686585084147737419312043945019594126476737154626582298822971080642329514939273676280358787790964559151839684066862293558639904443539978182052090157658991796419473275369466458536055194771601697830480812319733129464045251458568036440824264536097582289882877119165786346309741005339695184086450790187706415751436570102043680937785562208765569592623424431954967786203364529560784237323682618047271457473858739016886298970259910491209014857987886080449191862462494156064588629691869555790330225545174447199154806762905089095257922245832734858732402707018219308564359712741788558691868360757072242225152616260787996652560247982942043634320864052698100644454262892545582009683748648782542600497501291125271834913476363438028172608313591289131772653342517955477225207995626649592464926646512211052309620121336810026154542787793637466872801670940987808690708350016165160239301172566915517800709302269012357433363662723249603056248146724669345212344240230161283303600671382076564950125886757187586555407587319566897666747910880447330145212150993184304999137570687703727606712377504179271390171377679516672662370045883165958862525074806346386021451758059604827361851650272132497989680806856685156859161624518724844536079123645937304764440984637618810931457906358336173993417212686423996821039460627792824882984329889036137852042825972558620670182989460229810032503619439042488988801881945325326444859803493392931285862357693822752491928176396629458348302741836250436248922710595613063148646360374854430460326060708891705375428312820461362688310010679286265053179984681946222672987891770680332182038593693300392178230906749234410032065918313140471209254287750172172187703922787414342482920824398110204255354809381583867308780492465801294755786691180814563737155707560335637621102056293449054993067900038960219956403190448318453744498830436960313920650923066784810860007575835513883820032541004516860659719198725235047833063310743902343905574548049253485049664318830180227306104836639565890056333662980537903350191353388847518477557921952760288431691235337533274263400881088558286026125262290809547749966270794110610784319650075049141595833369828671803877272278584340904677806093298603099779563040608673203160272524445624339174615284620037815476284210611742958119384413358357439914596682295808174398663729721670389222358050389164159265233796406795364048925084950210235186951859330122369796209390661627295345585304153930461501574814820072326708932038017557045782395088532280345869383872884066844231922291075862290161314565330529910003655284294539483251172245724469167335140539529612488877796785326359026677604042946586921608804409772995054514165869697783954496753546317999896273597691829933857510809237967399040662730907451646619603484156829897671677008819106592566578918646229981906797549882450427498919574263640738222060008849025617915222856319061404027306235536615450929840921534983924972119695974713495155209968047792035367613816851380562645098372319857805310430563345491817906259074095755114513449323251951256704129470242562447329051354828215994981560331167708906226909110896259510036712250000882011283215355083125766159644445264192488350896557684412155832273560858082418275735558259539824456902481299156862307522182036535009526972558161866820412627044846287160202268471880060835905641877473039772469490612758996048979637563253927493937430395360084333144500736281228771048709722769420080771858196566319223933526212276750840280572097198368980019583006733394773355666118951321832722686516949142464943522370894814397824040998636162176661303829093976011748652855176846041431583521644929805864912074572360494370615672889287233157411643169424998117018965006337325171935910396556015415219077831701639136380914366575165143289021609783571039273032605062785023104282091526840083349940161719608245035634771388179974768980182157671772846902598502921130113007814257719014611933787292458679788023228093391231469549149981019115173140069765725059539309103421548374427493823226871239120244683308232930377905042305009521460204762098150609856288700536368372553916664948265801119705843720499719586960347527447910264359591700516424040027974844581011013155606470981619086289264263451136623065340412213969066348647736683616351417421533588369096234139667939934354069128559487636909590194883064763362349822723268938698421266042356933728276659516181861235485351947984698203678298230427915612154639999829399381851452728814858883065361586624580080260486875542979590320325596683897399044808381725818112625654684255342540063742387750633360864787382649070526971837134791705969303444220036706040637915307906060020517594295183018436009128162123130244411145450738779744767210454455262280367352774045113642682141968853741990431664914439617855434523226284326291371051119054801055077166614123435032849705763638736828403293629226176544432024684279555612868786158256699598117336316952349957213042225908496504446228040517668383984638285635039081520770935191349827278629052661732866522650699874902195081580667702323023837637801004069573143131246658084744277016114357841391944110037998572871214999943005366522625176347871677699210947745281868030479708138407241943628274524188588076302141923265318807068024115272386520875861468388283113908693350065588928436188497909322781661932303708650503652484816327975874037620133301760199039265123193412583547712007824773974677474071447082623610074853918582604705258090415199325774349367515896760570731914054399295491152878568260442786410577717420951679853966529601116184917727288889994613505880569680514353578912634246318504606473317641281311781350326434370867716222273765361975871412094372317178744022290912844045901088322586158611631246696654217787621174950559669388176930547429958119915331729630508531876201147143686230941939024007419760665360727984068557058558156016098964856839306821184065405566391033953933764175829663579107760652854612004301770450919468716415982626547175715626859916241796034136588645377066480038380602145863801073497334951885817350989517972225859492148265777422953550478623020047657423704740247238294561909069457118681873297666734518220231740394381101459845394360222604733822938361797464598166292816100251368167399922638955588766784729947095816477322448653646664064609720921680411447433513885582212597561918314079342657931230378546400201649789899480400348448378401572519864067541265090258119375293613431851121870760493249688632850542513585509579562279322937350694353024152334737776614933455677225337169499525978024144809988998394046100028512870424546650732974091060387396839524663511734123992785104540989668752203515926856643006547773597752525869628621319809339699915055815053747812868891346260924002583173291963650699129718658980080818771470989455304165462473126454567228551509338710258389010441594400065649301154840430089092178418367944121831981423361873903790175501407294274896809630838526621244044404913512358362208609937423437627769769799699541979301720515951636383198262515419690623956118699996953386099617553954963416334142956020744673050904002644449807303818046986629484248149170759080061008777520452401406635377851415515142429605491616874385258732287424564750995211986367822703285097564863841854736894155110329109339366504634228285545456843053492614471508599099999846433285886118144905212124821437580628180660883626976943771395026323648804330106822646009394412015589818288996552594396451327340066001996981063790231917577875385380188869082810353002663090239105275172016467738138308414939718130583418459399277147027645437927661477294553557524950064405664486316511975720785718064393386026204031557036262580236137577363045940882750811111649254270679654849676460258729195930809738575745142317095412588691900806468745440496419337537273629737973652383991115212752251562825774288956395284561169348346684527673434045321931388783548520403030702273710886879328449562245451612570103540440772859988190454922749415007267127958027954567967685279521681004720256503737527805759412609942952548298767649007127957659827570421347140221192732765304861980275257855573186693019126224785656103355993662755767721133229196604899267014231283949331737433453843760020320599313062175064737261492165469725023658302781368982057063833976276105517723918794851622746051181687248153646322635928606754684206264318638533384495722556062923134596151818873133228935216487999591520887084145748543632216095792425984194627747989198806489287519881383469291528721862299957109190303159716858367014237510522248425387889791275140853077118193683401275221102057847694933397561560616318758104555338358624274406905504767896488147238896433258119708116690976652645213344036990487857339582660949131223328397798399911347907100682139839929579832447419588441461287523112446167081807172142606056734378144156575462142475058149783250844592419998275707572877015479604158165900576191244964705944860705448591576483702229326858239841441285624549778604805247804195467198671590567687330831256986206074339828289396236138274355110594503116732556311476774437375369389923288715743928651893097696179368328294984890804369986450165084172566975767590416689149508968823689503376702637495932560048507341935749962795925685475516319816347523277587611435774790978991045981861693000687179129597638398650998688665066656663558145902106669151545519112019824333868848733988078394002488996263719976856655247251335944284444688014878149456727198190340921215913933336188395861537090401226075798980552533276155287001222812137043008664807720303906212191268644046762381275142307739669271946994155134940787107638215008050783966092056739352335499601357637683006641755298693485228442410981508305592417249596853873363354508739110916281690313279335019331604605033205823111663808083527640618427185574414792509513459865413347092607638306729197586448007772504112734388565804530661925838580402347250059992591829577125291804474365876227404102734134334316019392452375717315250733547882418745099722235135077940676235995301689065189817351513916968068351798919932806679320041955187970628466382089252715492223023904142345012366662580799609920166692942382299974837525385648818074470301005234914219150722527772579948813963830310872653798785309081538274299527679263172047347918903225918697986151538552604193721067881965082212250437755793893859465504293033074947986889156840893638844095590019573374645266738628029344869986993592479591137157304815222378509825254521937451304175238393636174818500754587881714728634203357502572697146159705796584576578032091413411877121118844354482455269036442804544036067753743215451118878977638283001403425877878891287597329384220121286802587696926132265740877802224814184511501719534374178280874675362829905457527408298504597756305318465978977889072080932511126913024828461213169142195691990345379137045653529229360838124614439345053135458848742346958542061005775727070405292337575876420730144361610662630271541375346990357346237051374960270387454319296787478974687177684329238760807257689002889191050521973173092511020461911693354453236081822449379180661376968596795999454288538846807688195848394961057642244062734917071197480609341603202136003551772450830353163862088039117507937446380688857283616151693237260394646298345042961208759871322040270646013810737761842073391742415283446270829923068733412920521409625358120686632775143069434846799231617841707576510673782314381514848239565546436304443170069899077624411714507267191268950430431403512710153028002984278176470757523931429212740275515076222483833304658711076526846522823496167532301224877997096688346861342808822159922311641146694190408997052356420682044457885758332690760839394434742252950873389492233685884465103297339229279629388651089047364501198797960104372775606625090166091671539823826392764498206368782123643676317132048110961882851294520987858368358954991334586891428435202634898679462327145283613052204763898487123061891211486546476227081704520980840957986956960415895064663176260550069934669302790143652761969588576000201584194672406259066993971037513861273745139548889686171265010165551232715146457812962004481217381841219365101885560620503925820671610523164175775319203158332767711182249110678739739603517362532478963378469342747731807908460694512293858536766991730622645580188754458688432217147927797329211172566888606330750237760038349214646021101962589078884454798353244187928814814035316450096127794458714515233089609718030278972081133353245060964074959696843058916890060212818054194668435209557880751200073702873331773481907147532165185029386145848075164280410886913785322695176859942549212414622828193616226329788272456132043095832623597897432293678273339637252501454502330988254726843958632705240280699441743746825532714157772810294702145129526583174558126868168625429031517636037420536830650160801442975863037589067681289130529352624294342854581852689199886555944875915179207089030872122874960956022090385850280198320257691737048648680522442434984673651996805703849454485176388888091015801318462745819024231866314951803324282952971028752929572840765730798081398177233015318288304425810297245697345851168951003162364825093576577995824403911767913563937876128801615866034934489799014336812900691790316819523617775208698875835069423220041528761964037303829494771921273654795802180227287370650613805943950402043005746245462589734706377533003240038838164487808914055586878718292883455271866728318097826463814519635120123878663681674956022161447348244563986647891962484728458325828297915927303715754113794441824014850308411771843197383449741198269416795438487472535011412684179700323802779277944321744497217124760192585888276279569320857779336054581411360086795017664032308821042778189003553039141032333243975340435515798010550001307949586795397164801873058106026789622851827232362969146975092972231134165562962572813904181034057845056824550576389271327017251090165260796094494408504363330439029477982098062582379614702663579862556112919375071334848754271254061177240514596303942211455594275982077241287861538933461709390189304898636815337632488980307204407456327394830794061099207181633895946668563972568467856216821951642338100126408796865210986684946725816405927915010323654561632036637177916099440332042637578690585714658910104140229928856691964612885831041915825063212797531737791020930646001418544493880383611387426749963158597469651712884223767868781330866810679300828945403848941015334186380177690981029468474031998064696465033556243475816497720159371284711107019116082981774807192299770668919843279808203002995228116184566442359726889964694239221971219114343638415762827274087623212942870029557789412492299888022907745011979175207253579735737296768408720619454081488094880837376633667712899576933398514867184610383678183501875655017146192175903387973099659952921845179966705835969722410555427944107452105449839802045357798406371342916298896817028776324990793085426052635099978071106691974053842513948259570465458413486687515724742685397725995938593710264496112221517363336309964548524479717685471736602592863516877361770521973384314962287432856928728794125963373199017580432219598591925548758035109647713946941273797910272993373178543596108404695095119124981264777371677854233351483579077791319188178041986222131249661269845013629560682661774819814973682789558221959051503899412412023878739033736049158942100416025480338735136209573737052575018174405168874269041509528000780002548039908167080462061569400968333185062973925572433409375106130115616197179240665801887032238567291905861060851249070486523561041988680553902512495482194041116080195651036368769452857530573223169775779512975504809828553352046159983227168270337524036108828196054288616751956986647525786717211215837374629760770066750807492428601045793367327214493161591068911006438342477224552705313433613456190985413407462351160238204547651280002729608590675560897787346829801818106170019921027725124491484238189416899729748107969181009793880727754826376348502095601863817177326697017849701314875075619750637400939106430825371042996873441452382957941342716125538909121208739945079470420155064252424677382718134404980622024799810064231216363809200769429823719042148252399272420922508904738195493854926069789482712726336324701437291562094245380291992181041123099319446456555363186263839000859901545551402498782209788198028814367380968464181639667410844215259690820347399425618257387608910194640968955909124940531902858854344462922175825809165966242193868273285278400503860407917774799015504769292428196551997928225661206627830779028471593509206924915508056963249626765774346393736597593382560107965664455786818889158893222741685641778661144493552421726698016826773570021103106865348185587263193875855970361109155299594126142031641945330015135787390972330495883618042922495786883250359592349135907337613173099391535039998714166448334205214006256964127317287952986615708392048296931263039599830842900056208121257550878702001558731422906177383025882246453001564596670079099452931299905394352123991217572937471832649428105403195819877704487712205668296027521621315559082274322726617240732567836696304192967321729644111978954213176499721670262708729404849637911652335782187178417783164870117783181288935656577767087618755459705417050196456724265436800208334955810813621595579444849459852391830605109316105829085847799657448146430889961835243244831435771337167323477645685718847848772171680815997427382901569493237762827200134900997688707142313590781299470697036348145540064030636542032165072929692517390341792976138209967541211903228872923431098174544863820273677272666821010661716362255415901491886022037440355656600073184353214878820467903279141072162110881442645482489718846669395942081643348650309798281114202679251565281715554942922069728257051863045164271334482018085736007844732220525879621687019356724403821437227630797999835898458577048760817968322566580406841735830477087406567102555956373536610922438016716532134051510037942093679565568352709836789119250504117638261272062962645540624209417637152831069153223090369401681052866773110228049186499854455950770670164319890690999158285652365471039854034560757217426241505795255871449384203720491372885296006089996313056301950491701291764502701609933498967101395286792148384155254748773632172379272550716392334201210973686128022630722605592822466891456559989392045192965716249296035444206400672109251907947543088528482672622507282893015952992757480816302701162219420820548253182847883197872776427977599836644107602177610823854312160849032962277214394148780306367091621975257332431719943571488097823368571639599562491659861990600800284297495823364486521439874766810556988635022634731146654034251717323500967375011731770829726170646872703914459367844797268621374434573932969653287355170788479934785171324315096121208351305791597969667498632524913590682628123596684715803097500085807275053924018547406834099524549455616844614931644462977952435563845600834707357529149852212317934418907267600065269210537216920127716381072177219671176657165207975250958132874593399577352570033514941444377213676300610463464369436649584287455066318649166014287013071011235689899669758532342353069485036936845142991724709508442213883794882269024087157592958732919122869911813117516754628575816767168133916448171577765550810391331359858773474672338616580407179066542498796666535707440620703495328692808990384334984942435143458873821304784923850471940961923155668050711444991754221535368028685932324822240807682161419120245829094036247393824499606145308172677666688404954698586755389890021402783592031787740965091074938613558942930461359290448027312049169769287229632938936687539310816213668074477576246461958990963076241739546298157370465751670101408817936528358848276778692795860391749645542616045941872467544708587548792459181616904078278990483363568119336015676607104711386130328080877014730182702864250459504311645897605120880160260666686385608902185644792965941400367602985094901235842983763355541200963757886582395763956382724699489551125811603398036802564793102101013594277607294428939656323982688775460855219491484233261674945310115483928259232111523874089855689727796406526116655794969420940042995394919242705045130073767867360398624863824810815183103219136921493534158368970040426530491175747918221746376016591865704133158579126584338158728170095165508517875357458532679077645153511452749264970925671297636274478803015337150670629773138123618227631473754788834813016687007177427309401042505478148912449433806004745808327124258240018906362510733971144228211124818310622087958429535730645509168572172523677195863354995302995509557299193119543040750510531259165018473787462175792111370476238999346084611606857147796398518264633772229749021116663217558518045190477854110628230553696738667648183865318312227703473614791592607690805935032339268586627776763904173280067313221116708279439771985151119022130631502677405112538993267839193597286895860914108195674073798715799411116926291527342996053213272134156994403212506262676486013429453931255904416578079805381975271274960678916019742803572257125364876150936112544514037137021598230882636765223459493619678866633808455344830847364808289123910015026751784086926273887116759824310953060440000919663696354919474263576605107310969987917314295590407668252223807641234548601636434520834586385711304052605927119269275048456899967748217378284830691909429030805155356832628034137651417065779841888240436192969970470013938861139674617262512432922272059237214735405357276258887051031505712968801567958974791068504254317961038802470508622379883186962589430732300436672728749498767503265918205473666390581874199013462973502620645722332197568725312075201162224201176163763351629774999107739207666410781211058102465545124157490933574411025654939234283292990673486826540215005440025706485482020124088048797094443612033330691013833361240695320810441840728876948632309289251589844274726255546231958354239048130166774096442642098233502179669045233516247742272318440837575783447199613482052123897487790927620745675685812867583048255741161168168264271017546591425452381467728354903114648756381759138008507343321179141614668574150594001165478683215689420398129951924603044009973472669041081448586144264855760899798656647197274386283759207777804454315589517194153573716939070903844323912171767268451205586427601906519133014414298324395625177660089188275205388811895051457476984075879981207173205896977205253692488653501492805452648326006811020943241034783760589936206667341387305491413200582354502624887697259249093780298831689218836335381988144748724729469143826503787625922533246634472913946686833885622260370547464693621105174708746761134070058630056859316457149981092832857862609805134776389666887837252377683144671416235071357473250649586604741041237269762617940895789774291491809115573933000202289217230303883003321350148880841982383489950028316480541835223590278083942753923899051404085649423928405759408048151606447164316651167773581433756134843653790339376408170228074389084152015766355310037661261844322485651068768239223833882739953900190066674554464720970597279500470594046076522660188638348756225482725409903066883593125473382998203555814302825466579124823230652802547290551976634239154277048764742817877044667425586103908893993267167314596047232821039428639614298360541673502801980820527273577222348437234220833020206869450534089781377282477046425779224625737410825707081567754818481496746606763435542433460672791289823034367676048244297917319355036569022007277622098020002367863107669649867666319626705853368176727167541926861262701471719555949156278850061789002271770837930534140705962482436947577066654929620531248629623360138728486612799913134467773542480469970273905296085610743511528801736414189832678375696656458396441349519165754635621504953277362823939516037224099025633058399370830425019251727728473655924650560732672401195789260960624043028608194806996140109030992546013181221359983477604857909207483624210655400255689367322733970145812628444462145407370709579050656902549348827724212469478165268470191932648052348496330710444506362681611394681811717219975029471914347188992321288063271936149393043746422773415777768518981994834010887159329803355208891800762304500136282071507160665578711201202495484371467246773981951459328561700929300584456359797344923966350733306466677713732438532542180972401986647360567475458927375638880660999394868771395977864444743900652807837983557311313424657392106489974634296548440348240145439770935651900515064408575536136421812730903589988072836089400932764530526896964630115116452873542554308265877378150362452580155252205593854194234480230205884038537768406660237773570313151470268087898332011808512785613490649891839747037311019762498141461517090179596650383410437712700894635725567663627287785819480355382437878325174554509382928575284611459499023776003888273148642249724578033879753333759289041707379069390160219734146972187901602739372376645134245792333608203788069314197328540732643598817743045812179062365877136616278342022396591646619984115269155418101292631402329998625417047715763707025274662432462765141898357285256119235847356894882689390777552901559632695080046499485666900683228258164720838916230804808668847588254454138545654520919979118981975663577737545135873838883892005196889974421684528136087394575221332519484698772805379257591819724159655327358338719098725405943228296502190266720265298197948491926032447167729056686061461737771851748535075415245913294372338717575435669101331742415993646331337443280957310976493912747552384880345255779581962045790471974825151432415837891572871179151106087122344704452985408637228094087466016761938235443970731955980290729398269164458391812841640603488801463237525069767906612166244850256346926970144516021526594004324700296524159308255422929682125297568399325903171108481102906680316412180062530795567420215264796573282090086063172307875564642903635852946642760192562812290576621406296757252873210390173874072962962092229067935747238262517936767303474331678710931086647437957969778521473711350107410754806025940151356570122819722809503099635432897078963953810212582413593463287037005924915330799572477862738972536467870329715967978306648190784415628807906299363704832865719081341569156409145180730057709839977715371236074497717210628360403304328096377371255271181700997226705235752866940369022765302842470121508623915659967241466891753375828661292282179608186241745635526077390130448553816216118379632722230227610351696550122687527980115969515577750277301281983580055465018701148451021635430390236933606033347827637355990038553227369557363771295885829743993253857386640011696142560808772077427977210876248631451735044990821610734638165811536781722490377396867321479661070982899279505543890779643736701912524379099928619470450102431239324934126565307381717926095644479530030531613726658458650099837866939088492492118152720480185893905990471998918905432817765484015471715260619209515231013745150061441554055772101647881152943912745426295129004923513701851788284996297454626567326576188888748396218123713483192670840419233237669773815393800238801233388600830739624566535993426732640526802162335969584757452881950837255278720286422019524127903762483248594800222577510538348077897515185212177038126467158156374968068834021839802097375652677619467260473368609671914029427241985134240107204369045220740903582095460497258920781714853062940039350620381358074561270938150406309914080470224977971257376902892092159176193028658397809019848946235609276793504035702205822667393339839797438889293084229352169571596720849119441283425475365108383098025791950742933387328946935989663961947178745594385426935589226806974546558711325287144352478483236460918644688723835894404346639682875355994530993937984087891363933987989657185103125301712682293541929110636420449862572344725352359372420391948413211930642673137980900802486303142707638885885867268214018231396752946051295795938534677886966188782101105781610124537296606902303452262079685738733567945809247990157829116293548712566703467994641002111098746435553113396405062878463353902618937231120338904303177830692342980642948155452616070089242949313795902634600460187490978613710337987019189635274858223531133927755517531392401006839147705645609605485408350471200949560703801050771338106572473751689421049674727340422654620649381443106896976641735737390891429436918172391864671486640137005866747546475469772475646772287619531196603540997709801427291828236450716658632411817563835485337694386691450088542543672375997766994158838372649351651003579429686010053436801267767138721437753788235288139091838130278820330949234874371716609558894169643847031676540021180094546147239177099502391873767576837482203473294298647463220896245132464458447857294047714911380446179208679861016659405162377540771291398396833791424678167539965564854627906233814638938283065373931272467372678282264858809047987970127850963025702282797735005900958055222564514803181032952632445850514469287674218162115776551278062361516383080114626555698026909598749633002507355045325213003503591680175250869966022784734756555420828458751063457416793542683578698481604403141594335228226764395821809919756151399257492607852989689952380855827492005425096289490755377150152084979735976538393234752839724547752505396351204533172731385626004910335825843893770310146745580336112056342910871059256497145709232394242634843590719617149576765848136548296275972066165993896521535109372686232400234302420751355101571031297825135661066954608297890912847150893867891792897567114871753656517469572602514964842294780085980284163926391903021703571690813876666236984986192031478440148656801688179325913541950749613402731979108023765930372312551581899966441221796688961134754491333761779266605625432225404477580430573669526466388483717071865593966656425428009273487090474084532217022847655329786137508971801302314660127139541280381853244360311175943516843768196599392736199314795183557876196374261787280283191994969550937994123722745363194885263093787425947855405233416852203385831973974150841571372810247496889716405827704493796747056021663808644508052970617609483197957062183130574603522875822053261332018784488534574731797548990403804045288678746492640108047287101440644649830736266393265334856337459826566892426712283597376767305940576665651449233980488462234736101582109124088262068560044249403857654544837058283950884972254093712015521337924576401921838369668094864409501434413252367256249823708613378427049754652106079899676522469895451032059177322076671643590749258552567843603049724107906825581485624469183111957152308907687477091463390027857459694617312001723963023148193994060101098916708945681419022929079839395352862512531138905932687113477969865771250286927601476904851620197108487849161360322321955302113784547218465567341753346107206873439299570642267549804470557679688258007734044500515997104970095764608413389307256260858715611553598497883796665621881093011115562621039903793037677474538926261368031441114647830151102278017828004261068344610026344512187769537019871283318326508704658666516025643246872829035546347242226466188319860974566383838832818588838471761861532325715121973924399338824288849615585634299653485029330027086160069977613189127447402774029333978665577158962559499338815495200979705976866318108411475797659153219813137397334723986285581867111703292492186126208477943331980764885052777752253644019498469820161875429119045343498470735612130411580415643996861893397432726712847534799002509509323119879752291572363203730022722406105319629414961508070474988728580279445317999017174726389176177613453381908802131986069793690477654012705820768967661101008825612991884869002514515272520050037266205951410876130650978495388838880326467509840540779113129433052329088893725565053732116023147371699353087989587593194302214858110342312951274653266423308516387314134315922509274078971539834939555718989334124016525592021825028270187602819551548026692633013311652295370359092642196095947241819720908760261934688344052514706447233123569397957471430376481729464544047004238384284614214920497099478673008208401479309021691204427566104277743653367157831237294826795768635991655246223800172254565179126841227197005595442039459000548953862621771650909693950759519255616855573473647410889626216023003421063544714025695420967983892151833694536318372634340398731953301649082889892137870008182458311047409931431530767581209763193995313704177247355241221487258536973917068208800552922369580750455130510161821480172069222481582551867718094052593289692805663056419701560967854661416139764786807502520294422692725275820213263565163986949907720474267387925721884282183110625961829068843558917986061323230972412455943635164757528096453780295702789664584741100152022039170298033709919761204610227522949037242195744523206969857799711948691828904251075627931605405496548166656451791078622659877884669722825181255842197855271295802701529368831159754105427044639138895062691139448286039009490368476166613049238384967572503390707982370820827123644644693540828069005505740771670816403170259491058568275747227594893368341576467236498717788006136067304080706538338062161753328943101519768339937703127468752060140543767044386676967982247138156821796137073999024137071141803082280351589079831054566736427506252244500853595538261043911987883531357375237362689267585752769396216698362644600970975558584405649788893162002398464771879837529188333183575666866658170062405735314446613477364418982607577194907748999842560231342093888772133273041743755641523397241705743304310253312684079833476060825664549424261013970456457915848739735932308522246703387213717608521380284441343603579285547063046702284305463166059797366178852047310857049475830611170699150596936573896424722941739714730907499128050999930779691609894642555700606891097523791403966779897393936283845708193831935386423862213923415094675810987380809641935644470639809848071815328826145932064056807664507056213967120273315729803337164836246788175243728881355287363129103276117154802945817563831722194338480962076408326465386356295101443492643734580713210316271508630168782752849433026006897730924172928069466276713402951525174105578406961993193812293720825049275982181821661140356911216444517841406049763259144576044043690096673664009539761243395741760071505156018698678034318516420735122524899132323206186011319400172843805605055033213971165798258328516588047897421337388022117228922626466290690031083585692904129799360354648746539279645780705314692429752703000966199128007601398016521222671776075101010124568946857555238424350489473957294199557010497765483231292316432671850732492061302022122859464271165309002137753121984474063260906007252967374314095842902168961564613088129321066277802462638130867104437544014721464350434530253779531067522478379399867929803072164523551576624998008505893363355014535036321876849367367603084651964495486498821061116361731025383328627292689500349473943727704355731570919235967006818948290744825100970991059039719480520118055916286246826343791996818097490499664466621150618337393966108660791364131811337193669625456974116975084747159465537063602195321864177295456285567666058719903081285696516264731672824321468046994884858894029068529267314606696834955943992888805595504096885776589163632796383413388758737873903028505098332803637648562005892429478714409017674272132192435942226614493866060239049227451566887034989741788142327794292201971846778441230227979286575091762999786476960094453854134902698782300600461163812455323012898022290338370054714932874429353859016849700823787647534045169191117570823786886599986199810872713162985160276566342869935646286264500898326532783998823910682563425868837852205719917780935363544296460028919324168180135893194649679944739627481503425088438429778279826816099756173233140028198337859440679347633374155649033790260898076161274578300656647105755960150733422422258721625448464060934487978070503834428450689543175089797821673767954138315107056386459079191761099830341428725337455857204298150862862660974114438248396196524434479644317391479282279261900812651120825616532222149139073294688516847506472207542628921045512435780261698557800034712834843112689657687097906504013927980045408879965120763708817863149287541288155274632363618636257148131354605543761770584853463482061075310449079892547179960317563011225366684716937799670275177832513706345504695944862650651113219441759955294168595737321107591453594415503884886524932589090424353848092057325476120440884365135085707839269444515666771176434106153850565978807928264849607906235688040029648506877142410679007907208113845397709174344956814227496813513946344377443465520619060634163267528527419700087293789358559195570865146964112141581816335736909014434976833798395282290461285938368044912052544490771346615189260397970674204363356674295042698455307549757104256866290136096387599613631430881513661603017705726136002939658790321460610343569350048212482069792569354865288476575937093367622446888166297905142106763234890565875507137192194298587899400093354475862744570745081796014653998371084674274652972822572334563002397715023397502834190355972901186900820717988172176413789759723304809861046977224365337744288002369451629381988948732543859476092852834190182264976440682829819118414294832317153899100917256532553963169443578789728653716682726549922585808323357934857148486203471731820430102854549544645342790745840226803051828992988032992401321838860816277784710622456318026000894510821758182527751468079758634230817131503413195984100077380760474007056832326969487427968633084784751870639877556573823004431843704825484104967908294275681544221930519186554603735561445705970374686193472599313778300346894424260102859674779290919396153856510428208239201831795138370469465848546700288241789587814868928154057499452873677300273651301879881632983201204414294158006269541946920682035133413272784765039971434659091687769000985117726237206126692952443216348877767638030496225095627733488633661175530106136720613407489203275355547010953719481574077329871264297484514615320202095112542845052836997295840522193632290371249606047018280343908528931119983509535664128920387351119353214084148756681169471564306876700934044425672225374838948722752099032426529507311798498092828162820550913461845578844518532758888212673377561813889385752064763568501671652764163416242294601364286375612356241617768826381071054770094578269758281653673771003184793015999446495830945370840916672460551093964888109802942274470165208337941405714817658434666396857646374588495386323644211358006941319160165924617647194732236672951993805174705053395487143524377671443201391899757890623684016413067654443069148219272908037385584501020103251262166443072225196076284032149595558006646715927438839645313760685824121755927640286452617288631011454081113305992512538676460903129725747648371291073215445773151617837512163434730718728552762715532579578605859496697207604394988623612069854741441910375517689387118061163786068678920322209984217309858671774423991589552696118289520075467314029817360092895906190313840010104020525316895811286187366646063835286598249460567069487698387715222788545100056353816982962927730314737464704660940333404380384797394962561910661365207619205394374475587422053191802073135645796486564977307464356351167434812254496417950391093592499205457487023347252704412943176964518580835497407739989040297079052521759827420151571147344875206870042991766651496327327811521051253823982344337942126344120086700122568098696229009003537823916531799681410753256518475066413054820978069738789472467615808887515939314016023818674073484559040096630347413851013311681579296224886868148524413689299218711650615031227768368897610894431421701410147018765033345941841402916787296047556581861534498358817360211705771271151903421528318157177730003495642514215310596606826256975333721290146729106067697245540494078863853136852836319351378345013686433613697721778665583221738758024049166298076081564006657381843371216935764247210267735869825920514981242928229619323883657768848988682984297627697029795817034230857926317257798609373714629762574191615483681665706631656477951721960208801510476014256998755360492900306492141194284458552545336950238269046025548319391813773364940338987528064110913113321035321296155079860980639995127948312371080161225686032971944433506620054335729826841769042849719610081861682322090768966735457457875030984642007400958786305986781266814271328308590263725034969211567849447699884847977445809672592466442108223268670981541024217068094201900947121745519287455803416189650467411281427823394031570353414809741544000791220987225415480597086939097164399288457904452596647823455992688512458665158505054584820800220205585993755889009508588339996098771105900201184191189979641599149987988695193049382006775734047271051037679561690112559490671764247220229736355570400344885402799286232231781428061932603342076715378485727424006452645399735634660454994300476143475592706700089881858988917413346069941327518521551803664062248918818159668810442486068101497434139112178321493566293803149405903071115126385808716174624959134714035971541776146667029696790788753371294384871817083781023566889636495762630683362390893231674478745334291838332406092433561910584165602798269477120056918436543794434077298826212471517230117449097034218592247722866377091605915266134664217121210061048428851974517104336420480071427789603726167608116039593565408934383479589819151744934760956426952238314912255175942279944430188043176277784392000632324020115437480497379766709709752958802715128677074974873781211661583680557964245940794933606449574184155544063138814078579445818693387834507090263628142675198691525887107237823102514492983010708086862200573502082966164038022026115948427370811854022273929699916429621583813515071760841222458068981532145315256923574307144871851685524319194745381951851886514288322716548609602629938000747632135568425841300813276529438068749472169056104429019559762064467027334961398954636763784093867857345694965641731050448841021433599230123655798619864520419894911526538875843446742996994680289913705000281622947013540785750727040233505280036493850803632224123822028300911034304067865342965573626729752835510842415666229893161814619385635535700322855027784641233824493733331317783924866260160715152248115160215675689081258293515136258735854055434071565097056527622094686305832679704977137509644875238085990037734182831196963550785812525066298474618561439821027394209400154642199655875172704737149490847509393025787604364352276692323679745834423016807815604496789118345492705418659285624102110420439318836295645760431952936266166590069518251530710060879387321943727231107886371859415363020610108426897965093880518319657215088532977307257623631563978019049449150877667356201510150566186165576551551234916985932189715672983942750918746908465182859283247565604759797007595172311380042710616242850604207445785762505161619605510515487060442291896321711400612986966005710946835602056609632902138562958914315158269819534675089914186865177118228059822495749263702678108640741027292090972105447879809082466484293754705062893654552414547636555030195743594615891233316999396420908325444593339786775485359957897112180475542444733054256761083976185068614429818344403572277377497240218461858466159045467816602536959903818803108110054678235042715823587242260395148737446788853522238388026336176311834729297835692243341075981595493119153472547861375104885571344269127376987092818650650493848730760559184178066023080956367539390940864830605253929405389459237113714443126067909407408555005759784511017810963849803790552545307225700309916639163500014864690333039117198773142018998129108437668915895209033518124672087094391854808739642753985574820873016274706555162679249729375170225849149641772589945506028645648650014147010243458839210388036784862602686509184010735395756038613310824846180020420249343025356472150216043408746835163130739810089673509960936986551240611730069410483467943571001627091268087324334505790294122870809156549729581487006572145468320886639747633446770206778708928955486324483874508792592005753229775568592071148643885204635350752258645788975872852535659328184048737732618171097774814422863394832099402584298932442900149453142755515519314136582742007093219281677869218502062165841941392694705209330488107072252766723175851190849623195915672381237359745091558815978118775499389099649865487561662630280225494482000378623720091625119293938891353923692951134875615178212407785573631739885502330773432927376220165575074617312199856585007005523363665827702981238895121069777145921576259329421448445292102143289408634286094368819329887780125196150152413750693813548233221242329360767388249324054783102574185189167901870434848749018848638815954884531388669783493271372698083152043355767489997257638021513318507827338440674166895711398487896687350325358850667682165861093112008085652029218650008800279369399078275689576728836619490033123864262823922277660054879587559647097352275738604015431265175280650870344499564744683117934018979921105684160551846543420511023929100246296223876973402061454514479927659563328194578126889957874137964794369825901794769050297436626303631686189539384235591811158036588231635700509224602191646090564177262926121991021126019185182337679985823820698314121490872961911431605939442765767185831842592533869573010343086594085110569972005947943711479212445600900589588156526715167297248712274472265588557997885457388135340321203140878695273501424845729284328628159379387552229873547299990083079993296033924048037328510899244734122041289968579306647927003918202236315251685512512524404375654443903872830154919612656304427688301569889253472241491047527139717359195962110056914194678361056464820076097577005700376034651352303457230323505189082825099191426052189674757599438282223139591002276476288871531252164821964340904595248880741271248132189774534521717220201228669103588350798080921526818788616888903209025679267870562618210810472839765364029248628240059439991286785568653051602592820574866909258308328627566958287371874339730600234889771026700795120335446383758511094901897474980909528099689010929824966639668204036732776420301371485749167127036051725806109244826833835977799282841457934238410645178476888834867869403378472644556106472210036243647942373831179608190379971340622534085498827012509133490894901219000860270696170916103582198491344662410557633003097148656472896385865222023473983172896078942578750178336217002496707473894139404054767707425674789813162482413267426214103514206358190524604084418717690956007744628029449479930026898303705781082961939324245643789975663254872819531443945147469733780248012184700056567339869043924518530795327408684576835188864563510738075786932034509155879105033809969744186230120004813696920517142903338839694917448486056446531241141444880500290630188361819877107165413665881824116937590121609095280613016507989212709339078664987032200283940435367475095779123542898251870939481318382688433534005855539121300617309452182589626013377148941686752895561893017340516517117745358170414465868990343587157915813569664529762261436362245247353010504390338549520037650929453195358549523492590722219167195548243503979468823487715867069899978924234309859792065807278190913823991961274480524734668835903489950584694095410330047295650996065316513737986965151200150803455747458690697300920970796681478437231718816178641075771058911436120207613161747989239145909849957558273083511548451392795284371940268322446868126641712549850037517105211970667918655502422683850859922322345727701841241088416993999871719101923879023203923501869121300160619394394832266153745290953821847807714288731929722916943056340060725102926371134735439829739432272097237598257529564394293761219438932634403225632498543582163315504768120034430232382241372133267580496020249822002929460485214761240737026649742677320789266559384163505761585130986325559753633327157741415297738901462104251090295676863357645509983229557522797256831974976617689695916646314550593843544856843316208834849241236310079215037651918826448363082466102641793210739833101694726337280815639553302018866588336552772083157726054934377253685938576047570477919250598001741148239331903258984355201418679251666312045577522043840024851803508495553476781043798881460870262781438212202741385632171070644801863559296184395837450858351572628622122295862795273367423253985618601777891826512688809150865342202823616869468716992462512527509820941608593522385389961730255751850237233958010182327043104723981477249012387243771473265218485210054811480618745232986031823317994944370100149278992376389170291672651778442878331841325452875970623681562497631115051803525044664956529545119050217932400520686088298537021158939875225744625365187385143763025572463804233465849225241131135071533036753038886523189591557745402740066109442128719806839867273841866921429260445301760695731086466230389554266424934830647857632604820440928727078058079894307369440900526231931237599300631218149413379453530237853036436257104057880771800094464424660169922809619977698099060092213477928221840872405720473928121509475710752093915481201379290775350514067958238216118364644518055411973116934374093613762950290471592341607954743055553931830974079573887632978689038029853631857349303340175999118242331026951570435524542491056784516852719097128949653819482928078455020612620841708195506796986357701842930436919372677938504120216916002655354177026098357537581852361205575261241612967095688138543640554093740022391337080798510173997243434545709777629654550564803666794985857360115005900674312540875251666045463214352993236476151077904803713925357930732267346640140204161440937278276445295446665733427412349441213880576907471549286274200849883908145083614490074160402272912572329553343548192534784391195766913732601942525012697322902812628079237185809347910404599418672609897240718749340237602748983115649550205706975376217926370266268266719883336268749343597455039453167511244233326028870858975623915943334118508465432710985922908546573336307223569877086360311497670767911217341190120611603159130664125636611146820736803387392308590141182322944445801765965262683422417640659192085514074337266076650217460967614755292227125625080552070677874356446555658198670242735684479565858637576564405651329301328651056864108564660929436379532175118772170318542210993903105992225291742492489027481300960973768459625530529639093591665322344427665417529659305137748659425065821235548938452712426440048972498226991467240056572270222371012683938716777237638246976836015977747548240940633098539573144468163237642834646331934833849397045366939132224607946935162740186446947012474178318305659041301619156022759507707833556283854289043358935225017109069157783879817865455896110771343939114825737151190300864435217355094594607176943927165679076314871850491490002637039077967308794709882103893214337650378819196174515514458320817189487869479443765431736681808515289801188581951007404291081611532360389044413544114223280625812145569880045297816503453158667238450610653457651812303822500238682853931187756727189556311725138592730513190457884366718639827843613120332821419007110696835918972532680674823758432943312469105714091387087633123513827365270127679885907292290515712819563965336809648023609484617389582746056125119616576962247778498742216098826854394376615107051374964628822737733897769080049654449351486507164504449221774569928677552797738727971703871214655401003050235168181941591252304380263735625351190841856061590685792180604426363315627293441635570251967704943804919081537433339383152823575519313017966160713337716139193060038922350037230408244329956232018747892560670870046235359263788238272122227748960740941042500458509416089250132052870589903768121315275725623816389342939137573868018879822041711289135229953682536379200470754079001019173994248130705266359253259119972238709418316485388179039858306534499139685875965252035548454049772417178000871570166295549513813354349521303552402600455444630241359876069497754322465929177591082071151813318709295017378773316117332472312758638336216328104937714878892779578218663661338556283123791286296317229084717668426491290945858813830302311349859729637444507085160411539357159044530216438146381391386322545860877486084863575443660135784659996688128249857010028435141236222773987474348191680832363013147458887596199571913750473165409533564222357732915265871780113782536418172930456095104098814506721976662950553848546894219955253920666330136236498798655193506256258109060399558706001371099966027086122262862333465680360548295993056776334745734920007409649324290805418865538040531092399300105268322596281946811482883795439704398451273869275157806718400987940496112643738391747253655648801508378905335299015611414019904541772658687317412691559342185586669243747961319339484436039651852884136029752742529344460040643027102712964666905568682880475794915669949944955158380925596299671803817144756055470792827040744376397407700259721984673854904136709224833616809346594722622663304335179490172675508811228069856847110786567475111063562861249647929082996754172756174972603642920184602924922686284493897151788620736175300719162411884970068062029761504748984664763758563716238145304240062626112554482736599631396468920576970329368859030384224312060575129817385778512131428774750922795087805793586861016175604240872129291920004087142806837990593915294924250763016520440577071196204119657166081578890820460493442527488335227873965871629315822260574451796599720387234938049280731744137012019912062608278423478795591132804935359752107536482723014378825039157247915397555961424943141892857351932559131909199624522757170962044116905282636583783418903857968657047698562064819499842825297260583715456613079209009928615687582729777615096939875121230162451584672760232842241287831129329025226407366233219452911054601417181335411586293847522211391520528406214399456994523961567055085271583158544351773802539077105706502906174344605325167185988060196653627926640811270303567076815399326171758791431293858651896043061920537993957395672025215384824506722768346692531449365717088297652956330981298799142218735748192493985402911228978715084607457481138489801538606140615490261958169472268387460948040573878319856042371049937185451986476329332897192481285654722184923808088637618642643890330177582282546331906903913045001793903635224043371226421489165729173181411603896908518163491442531164693027855759925672386061966294398676839215237264363991826654124109702731726332650272556404410806388712705832689830151038314551903677140415831992313986044694162301891728302347884956907674489166470596936255116945945369862505868884023114587076472491697039047546983845826787713408288913800268435730935423249113831971687598585341510526722654013132474322259070500333730437947512515460622413969660697481856398387331518633401044376632569655599770693280340572750818467560873454046990350032596047290166232063957843385462438203450371138940527251098021164260276520020144137052921580951560440951168734520847239956050794147703856154695049568197801173727590494803458874428694170049481871682906371787882602027138495907057804012160160464743051500050042079608695147806335304118268099769029648407981485987955749962806922896870674152333285897274960643765686120311383771241974815987394721948756485040511902326159495678326605824283580521855793714008185308011392772669602327140423617739362540479398456865062932611330303326569856903502391158525847773819837693758594126528353739134314288483636039444564610855579653824075111847992010663111145137293706983320428924406677212959924817845256424575515028170593690610746360152897310515166268856715247701605292573735637090687652609436729704995919329443851772830058101852445731563991720695700502048368962949795032322597080608467315827121113265764424617691297516440426935543113943275800996592348003101535558820591334390726569870288542797875934420846876220336392432143344730899564303285571027340063002032044017803239199365007575152793528583514554198084970615991212948508596334416153462820685799762517911517685412288113907875227941066848815823771982842871841999073669683065265586547379291553261050363271277952746239079075821131258023676211223229693063627204576841084399329676787118524952174070575312805958858769481659755996184238920713550000876484774433825016272783419746951591353359768280796222376065056824480363780795628761724132727744801738944775644650927467480030023366050164259602858995087529274961793069339900055174068933008835980113982789738146513635693125346126565105345012242699682969212808042240804606682999482208413680034271340441634633862856699343261571572017894115645014893739375158964729468222387805879677227213325691150128929474786064592467605410155779487790454023908761521117087458428725041022178251600254421456246903010482275617442380491886054459794411587606338048307502108503330985898112202532166288029183835876765104870935237483611353408649087854394825878635304915755559207650346039732966770358012845470489461399481507464967051804722166033960008140284110146624838030219591243370687592892897986826688908033654212535009586405175806531867323160007084951595619266373122428688174081235296784364191615234807700964102855478758458030840614257142488168626506655278250736072733535467662243736333642998979834261279504964567107261982558582336081956123555722976920037168331280941590882182947045937476212097459543592305113934334362492066589076165239262277825858864392877202967439695925144235680525392143857633333711453623533133385189343711278651246959630553747564235973970967388594531568564244244113364742058671533913353344153294978755489983191929733561246612895344677196646020876366528490960678192552752685502354681708359874712557066320596864659724645314746918197409093881531400017905336600357762436180923952323706296540453496741485683621754370470678229463203750290520293763783448882348574614010871554773389943344926947860602077178700783153869349590673809173710537623622562099315081836550329283031230062627796619326044604915263663990340312599314292624710209968886569100749054639885822796521239411561967909828301871445952943129775994914970448318345378785854272445391242666041738104282552350357703282435079515299749160405376545363329769029727824317185340044712880632996534774255837542787593918935160469679873704418239408701029511197579863851747529903835837486424354835530882569242958072955656665707752574513372881277690523847373165709423402944331127039067236409098469960352213589295654283071825599267725956423172733666675775613830103030753377829296660309418486173368657052435657794058871210274131598620981405244398280905239402773030474690103060041693206783633475559494510683500416055103451621566307191722851984818227167308319157174695202855152342513461924166027054610136635941543441672973736243254652620201502212312105490135150819408418245955862005233107210790586757182196088780677709231325631482780876908395601165811739428274801789333424804940833191837047916118277909247454905578052997692572598967001912340624547147725800521231389227122906316102529729905006179185129033703685784998833261100899949949469114404147290277539009783022386541908691416778104805176381719794299805777140950672311286019722063646955909656518688099705852115251528345831962963904794652038345137996378051564257398300222386566120738051196431223307667924476408319637839748093091899936480424163064916841911086536553317261279145460948964766506972105652094541180809694264445742496274271374159337070210943204842339623939378409547014045868869747198594783711498109050206199903551190373183888632768201924934813459726891984651438606118593074005340604831750308156393863167824815791772803022813364474229075462140062865844976758830356621587030794235960154379889669865256855914169509605417486079548309688090379178704057150564558738220168707711438079633490691813292831372022853027503491341263876551072465000382225091099471000740144159990754904682141708712812639235726758065459587051267910596422825485725406840918684701473424442668483664908883890051651075661565236095596884222210782125876606746490313460265522310048647311899591079587612631562859809950940654139836482100177605323634086798461173152347643971896522489698671543368067458651695757970110481634932742567694229648985344502090486208527786883220800099962418248747318056409650353695880744725678146367739186532085277014606248150792774461132867455922961164625869922018160370544240172149575763858576992610093734472206254038325890731500743261014436064485184727830705532573030008024351991427095603165182082822477507829955408328044878570797115978549824882470831262625912686302522941927949016727155955458394993525265796199851240372378656887929189582405261244706255639551934761274492249858375832193179917970477714543645012200817247262990729095312825925358683886099429922972942612422551508912614107541690236829567282747529926327193629656973511545251325014868204292285413211397183269038617084299342682761657540736639328835841978117857472783670698672160035824727701756308195631584722376009967152454252210771812550647937481535222526870481501087649704282204296867595894993192827273073295511410886254898861198276708101938692581168783994802546735079829817723933713625297890650631361756641350251003522280134332322208651120342145288967049672829241752487547131907870753799603897643355500451338564127811868218782917719428787388009886409071405146741711839366899545707321842647921598639628734578142106538672271637167448961835378413168609640334720249096737895201243775511399824673342030786438303186954816016009890187172297798987229626218973414642549986576657979231778678334470538783602496140749852442802299634242793641892242258340316027060034821104017566221041763422262446118936640754093607368645402894071546240743620881838613649584843977090475478473657517381359482095528346967087649682500784732493284944256111582974948247733739593718639173178280492537037696385878767792838826030236438267766877211814808818576483652813063348570053109999628446489652769152969022249513046108498316032226989211264448360559684520373869086819777025905680789103579183853229635283876184193912489849431494038800089274217077156173161166191125773293858828331158135367051804786995826582413806003391831740530000576597008209387851555589605065904432984288294441895085183793055752371824223156566289976141510814407307933627051453005534250458399163229350399280329729964238940002784658471015986003890978214665461671176276333176026858888460009494686812485937859698202419759615959290664473293232366216207537835993859787167322779654566537309026902423104572663763115743874557949352971022872662425590229848304959887263634689451173135897322910475773312677072277573784835817865219970158633422306570271021350657710849291904637935180592204974121395223294167240719828290833170234420798036975406716435029805922166908102637880360580358995533903828067927916272267933167947533213767295925137958486699789387608258031632364540762544189326418841047473880265129943687453080955306725649454039662259226445420758539380380642153493838575325243237347565357399057358752106126771439344037880200003321268647651226061820689992050564249200055637798684194849811024671567613831990665235208105575021604146155180297414986440295819246037903819579431394677226685302539914651119269176468543984121363746696407739250848652827514450829551253935715931603675223156296894800495068943450147913525843970191210422731195991189329688966537952378196309617527461681057301874665642856803272584022886991848932305732710132266799273963066116741784221066399674290250496145042421406247513699614114825705719585437033887454937591902851082678293637395231997056531924934883893791331298599186155266826419733857313107530724587065569048851664028398899329298138918841199394105376773389192041533476822228909669320677775785758397210179168982856621882607807782645152853448412728860820521047762802775804337745144623533884060731050178716568119084387288932845409987158504279838602392057535138096308935122401949828679519629673945307690163886243239505379601380412339959138172560147797930293787244418218927880874078230416229316166908000721488604036475382127965913549404152920719268436821986611500367832805957104520999957219533865791941729763227890558688661223583965353346348070885221556866821998591962506667496463467911980710106844477031992846715436502135199765209915719802095317422027595988515790725654338023099098549178891484231022716288802167264612151655880422229438491785908333623411416422415710179513804910401227636389971604901084174825812318809700090613389445579709072370133315042772310548826394419379762967501394731614297667908457714341931201148884960984995477418376647079409416427883841003174557961983329748645720676526166618043123452816956443898805086683017748656454834531145322597386210788206703986985538847109474296280035499617449748845931623929840725072403626267292438384568752445488561133038658529077973439852104513268467403877533313661960391036223162214347105160330415651710235539126483857835130716478212941903673928444710352564445942703635438104227602118356442766239177983487113902853632773420473024599664743384178248131897289211190589396094568150512011199245948874466690957171621791540401189743233864471787823783980687489942227472862712050627513296972114743903187489511094441571633666930262011113240897796255461638814414478869730636174736140365257788640476617096382916532926731914916568636801485883462210700160709135470924053924840357083664732995195658551212222254019617173581064462017448489979993559922568813647575148985521174633405244608541326361313468216124350980305367372929323209624501413106121437740921267443914175277162262473515153685818840128292055438582681264832312895502451517183280998332578667686852400343410225896959500120515171390576311194428285469711459380343902276440069367724381815944581501550811511897250390985249149585082863119357135404030471944586797963061531437250167169301160360499135471690573654653940457990348140666239192838056101239731256195641223131796260312779775558505813662524335107148149603431990467881232057277911183789112796608362076007379476195362406384174236377702830775118501606630113392428875849388245401596379153556783001131037095807593101823809804029738362375741860374478269880652474660977621237725739742458088384277956806708119221914251379054746677426695714556687060249124808741028832275800416334862999018378050321697979319157506485945159156860106144505831495703954634438082992190760490486398850095941570577034591136820331503902093845911456579366046836000230914003381075648429092830594913667098966394474584799581878900284332382498538665404817420087299624857098840658636015151389868114470162877871955262361438570920322234711656090142226361809767962985784008849561367517766925683975887977721378509288778809236158952532942577928885923070306570028410848465804412039114182297572181502606745438235921183676460446679077092272268692584429144302915397062367009474602324409992327007654994021981672133597193207105808567969771068653378060481474354022419295693829655577910622174384952880451425962417652569157085113943826441960215234095222507907812270162961028642751434379673143809427828381108008753248199398686848013026390907011427592338854944519413990576332307855735158306246834836133822515139570263751308235666233691274624711083503997925942102381669717697837902414462705819187296079289530243893430408110851026022820801781630664894709281916259620425961588753933483558979443817478092945472275671468953550387106094417727819983567413083332532900663685632486877655717157678524006039448730530994058947310950880899999333956170744852001560601522328506297985491957480948422041385047621574097536302525399109000421386106561641032034618200665445929889409585423429620095515300902779448996266265505914466783010865905765622364080755479018088810906088360183350049912022330576521145873443399993658212806469807088024020403025114463609588099626153636231239459298570047741671832621106892552038902777393877369560093782325020948951283476352223198632729462340398321228969942813256798943130791688523939317767795889024709684096253651442856746382414651250115268075297319365841802093884165584019873011349127117443674931447399689964891391503414890126708603404801177699415837070669841486015202526320598201429839221332825349913293518151815906510210815491846005533461948825438726921479079406394864380683055914040991646647387188349427322599994023690372556518691775487722615613801511285081910375759478137894060898032526272760233788047370413296292934739637206199655995046302297062965117211389209048039998159354959817833110996977398452274072807499468351772431306515295399688679746071674897966597234503722547482747259937578694244653333112310664134726739744557635419843794974128799006625884467392315403584242709610603763212389379830261953405471323617853496488787451284963763374186325871923969947324152629597259527624613056061663715964108195298106753527985044049895630224548966976457885764892731986255755086097300672947540043114768955366550098452155185283935821582001890587917397094430141556770722862006470770639719360530779493167131949614025586029505450340477400680591534218019973809876601989938020851172828863438814728771066031030214808643955804731868705872464125579188718306631360708325342280791524011102347800212381754612010559228805394878483405496659058688789093327376728207168017019567042599733274109153123890807828921421902890294191277768678949704437412320124589094186209064815272793287922914438005335174947568224703999418716412899664669927186314583468516422208349262525608989391929844552812993719849455131634326166699871077513404096621565730793283938365713852447465762798557375024615762902138478355915954663818601625069648550815565080422548711272912852320262233901389198332895557981582312014640906560023342318404028150523990053188095849575459015035269231353688074452024575205928025849352708631471486941951648768616925301875554467999004938393687270676456824153527586535462040456440389304924362754209749448827562256578599750849372896481371663048011072862387735170880438131130232743344961861342558406668707780767614208414567010380740931591598129724493536570677719155228295847402395548013993083630339542053830182640701553081919299183474890384527054931829318208531139617248182803679118345236138917880520380177098230009407733328204372670249457008986782177892691278597262299774644800447484949394802224533352491428972713143098844301234468859503398612241717478607438195065793088660326534021717709586750773979263886478940932233450922682087986874797615804328282733749804935260790542951747563918222166858702680278738982600516025834575207869622531631140308444325646095083710023751035701471812506598314451267963819977303235817693298747450797072371308361574644132004878493569754300486199489745726911953862821140956545393952365295963481505055347939473659475924152984097574471727397160171392354503098346725501899584583337753596642352996375250860611453184557790037750520268136433306297387493355285738741192714985845772430752255003639823997983386070147952427855293355639902674194265871969534692057861660870962949071202051396330362993847908434784587744214715009554617475541056352208557335882382687180769471525717102206771051282546731135714213367132605693208334578734869795520557841335153950204039697433875558295544475946100077655782636132434506858931875083852901964968874374391736773837914677412481356712888494865806488513427764239686700211317230690322659502744091436895378971070161127349722732924975311231314290380910359254615142354347337954172073900803360713836804490915462555621702472143855993241718215927242484077731814660826465683760002648648389953876302957312799854918656037077174580983304653967858477158199099625491609197552059557719262085281476539288860912740909356663919157118847518577499778954959896858413768894899501008371110451258287093909788880823044116760101903963208699539233873500913404050960627537647008398863488637031225229878940304880804673514488329473361911973492462448940932838705580252444123367775701843371930627076823883224047510815669292935538360490869301392555012036123161315639628257054105583249216340738480842560121172253505133749965816262884996617538400414558016408563637702343483146758235425486843024400471525580187836802756623003020277335352096917962023809891318522025781643186375709849442712821420957343131959593809961127222569987943269631527838541813399560294905413387381560094675009534991317421612614151430470860631975412724934280616135147724741581303181635373661581107730520974803646968136287535556442256062094265618224894627690855782136795125061492110475408437617445811392853811032913451154376028173976470486867353772825964237709121194243226173228840059791983174656600408595424666511411293852703379908404379725848001484026874633639132733216815941284933927622996546711665762481234994406573683552294403722166262508349111286389933315830298491517294677879400222960495072994673272752835572460540279293867636133001877829432003488269741334155924594779999576986946565429587063470232510540315069939939931135840345092893204895119077018813628001653496015027523131731248687375806909295493141310142234083756897400685355022518477105576492713854878681146086921765505474476679692092156702185422379643996443256429520805695053124721800427675797945843654582480035787727710515108735194800188160844882739098699756255300540295182574539848012309001458516166395247714688865827510355150036506620408138447124672946050533336357397957527164226274566085107344503067558114469922245077692772526549351749789147328833918667968674160218743501975146906365325340558251991353802037530234280805749169977088450140556325908646392326960632410710861562805766020375791905582659020242079218069148837444673146279350646121777181425016703378188231292226524491963168351309697840097698569895767890051520155974746293049331973831721549663073066947163021240215525269473385628861561594536037706407100951096884538460054490431966898825690116657867142223923908103245090415740646526622612690060133524248020697075925384393026172727588471069167840565592611007350803593452187188626858692727912327991874838190148591482079804806367986889638880465551661920604075341511636676537599438228601252803989671783891459884379576408371468875251349586608726614223376748985697420971833843495735791763683625838825989560448442562076723359524670498618738526073927316333333918327926227502931698149528866147097246214932404799096885040180633154138615762058840088949202218162713967455010774625046231710729245463497846024702915052123117163744013686120826246074051220654723322890096082051697237444851757202265476824929173839142373158628680225449164623191117692624721464897612547239488848735748933402966110454116556587835715972199078779331383502411899456808067984546184379189934047390705643691093542804991743196579640961566646594705836570744976260113428507226297822809078208361406151304983614215352846581545117427239600705458203474021532416530456427672242616630725561078029117909162290829977410071463902406719042951068299880788907146568028182296430206976709664070204413120423685141664619538217721598467201611192930027225556429513524025836407065697570806130714525573871636117812578054930335235343809361356577901387909973536436262822110997549232527429097425627787130869451162277142198343025749371781593024057502827922056828341806486128474089970774695146503089910781798590683447293583384146129018616063892167628585433931448444979688212854789194896798714476426972664676005887874350638700269923471181981657674937251676722778220756803167219738959754800765662967599580464056602762942095052312369892549984755891826994667221429302708435852395692378892897774588213736604490628493761925886180794030645012780702699588427489776400773476373053071687108866556416675390451057179721039452280423003064049031394060036053728959600858331777657057167690259602829755857926282302031666924016368286293879442657108936914762980824966442294941154725464675183638766474253345055016119757067401464617869094484046095628271285455138227456032176114975456266545449670370812955656197646801780842143798188862414119910271704393595660877909902671324182870035475054703966272354784920078343709183653895200284729076000106702914674673291952563501648624766151126643992257000795576850494591166352162222420514561616139329343976434286975090815634607375507701347546214871182941985999846520551769485001559332513161028635545668674669343050174398078995904316489671116147736312503801609906212777901419330906347554287926736461010667209928163801733650580165096178287795688065535126013410436858931484781499301298474769503937717692693692268207592818891113880916155677562550478186022881468968455914289145110641139650986816352992980975853822398062129094838171197892819289291332111977993916247950783171926625012052589147840306796060521640193410801663468165180379507823945585379217538355058767068586579735721948896887099095512413966519508226633173152556576384651536828363122917154447752650096679050052399313048396712809270040357373725402104592951511823301521715863595832102577588815371713289147328807318924545750385588791778806012780409622849161510090659391487735907721423143002987883821312668312185835867517628249734689692828018198779604109652415941625938844990555742922661242597240378133785304751453820688880438810252426050112135179292864681523513982060830894735828556129557297965786661980906044917744063202453085029659879781064257447039024944859997873141379828623926221242296387538759808210687266923974900217521142861771547078490551268116157039140962249002934171547385428028369911886505564738003865595209736865771078079582447061017604681202529178243240521835274929527771950529940961893501646555789240491077938170155897049355862443716083772257588109101666775314974355928622855654159166745645375269953226865551937053392504315735194948306852107461869890877267798788817348837932582173388650683933682883232655197645075065335115217693005276109694141841710917139804586422571268516698557904401622036333112978593826550610932061818847807271163879229121380591073873264511045366032225726075446482655169567611273890762415311667039271648896022078820771532732753912265669707183197367690793136691621203365535190473455563630731939743577297176494725183902370327408736755122750344417102066986166718426971853425647482377982343642144943782986555540472132541583438789634267285688858673253440457029377333290139157918765059294431998149870985088035563489907613275243781036343293186964381016999436190094667035555905535299268497716922869629452590199596068668845185808994605169023452645826702537600716306527156540097620551123869913997670666203671316546519831437314682760573301543270541192392423476866279906371384732343513991328487724832898034155686537303346026979203027271929961853787856602879501138759368799188805616364334623549411381805435497582838175759176430160015043964773958564339462479047980623619245642041804273366086607928742228037242832987256766855828126609385301540740901410062021278122825691749843512779690262719540717639385469561763690102342212362596789525245013232436564010507210193957526332852656293907157372555925503415612441287175577107956798696673188940898039794304243934241939117333791698403753239008464952953720177036216510603630674849848681581818621761359080676464294406752916046933254107546329188005778018201685223915995040024349119520390659678673894745233327423955075667975016252893202673463081443806390390627331279682510666062071615299185586204515239026049237049885419478594384884865298697282383376833428731236671030565560818549346629953014055406909784742649938752068037147149993308971318579480499961924650700324445286185148990545956623262706081292450243862568501375241523204421450472348229006666302075664211823611631826082404732341547849127429083228580069405451148408764586744591963917888019661230113101641492673570927777993887887887010193182441632677643102530074658414954169808914977841312465900759407833406618479306855167438043897809909811563065703429326074581683323754830187845588210382180093176500781104523605955755271448899573100570580809760975496172481359138332661695159850936481817222129742406632756790797792542297920875322061099406342270880884660200383885242030100490140386429437756997236461523448006960415631435702775204825396326623870009397253831175000170204666095455104301152165404723865418559327111578945865402844338147289925032243012407980267515452599443307431623549944242723840935566922851134646669673896968379544417937737023981266719073924832568192389582408853472297422112249862664670690831727419899782831383839816161002224734698063515609933028612365781966993562250162680532046015955211103231466535738206260320022059209934483115909000109376667160105511949914802015937019886851454827702724523285131410721897316458105394982014332198814056779751025805357796263844697307445968974591565173932480397142617111081909689392336726873533774517215162188245380062469045452211773133042304481625438220793340337340977894559767811693811593568622879373483733102453946439265100220367247395259041577164531659964264094399614655177278837796151748794877709085867834257136223493859324175840120153117468820994999070600893054181254913084922217965228189422822995860219095438244270379511657197808285375928413431849028310249347777444141531222384012697563499090622319907542614391160754473053151119694467702472968417983154656970812204436895709463861490862667428293781438733866403362583306412093314739512671261394268687278174758030108644580220480421707409415848650588678310095055495999830673211122519760749169594623434890531877580899278623973408462735136083908655661822734382477280198697160140867030549684546137271990000257693023684573135175700536059160042032411290734271220515729896109983963758879818398698619364543550004600040515109640592073876987400523661503251149677813257245283515377912701583780935090220176690146914482473310685825911443366233825791697839572677391575044970382257587645637242621515554316922348927068800324059051334490813724198531856895744471452517846219493856799148247157442698584095449395363274708155285508984750303741684939333350368823423414992873954822022919400443694472302359473875836254130963911072054544003162725329407345798747642817636579865409637927623919662129586838116015278745100140406089434742914778310915982120848340786591974047327775087317280816668123087307711598130691732358115985530796720012406987648255568640660820463305883078281577380071848390401032892200696289681118580064627264740727734577096736600848820926472249859947355832556601270246929140020489972204696731089965489709968192571792973031864157141706691236051585016158368582792185048242181944424534357531302368245766876880598067838157593180256688316360382598949051096901544640246785109096351187723288665678450047722830994349040051829378270354034059506721058540619566480904068853724362210103860480458398697881548320768983692140491320098036287388558927895654603120711723676925513389721616458810866357382258347666706683572570477809555191455841864272882122691843395682039167968523067782929086959407306528045571294036307695376320341800275757326879450480126674782910070021678110605557460742607128442959627605533251375082232489876623021594802604418309073326009778115392858799151092696032645892901672622490559799401216390569389603103464672719646676661649064131735770095731711898573450680454743333147860047850084256371209693536413730983008298996436440587642373110252686257440692803807044420517782234609839362793702732206056443112235245500894564866203869153570042282965510730007331778226636188117572955386001387656734105729563164281799691142606833820758472792132083182846100930038620326949256442500584134061161532786210498213831478734700462169598207947361398239777119024141973188866523182245652070984043036977648317552109993448399671648580741184890697310771287236904297620162596828096734568395143425606474556324614357219924040151399217548127670740625100930146903491535191396250408871221835585310400103629641012027480361878565991787652414025900558267379732646775407685191426996608791876816924740414528541056633037307640081139731688510123935320979777321944551669285055404351884897969636441700615070031561215811038962283671338387578489467091344114862870608520995128470636912970253494415927660152674594502350695206411948275510929627290309857822899452602527819434994989270403795304779977245656225820899132460695960575365398713828256614195137095750208461900809378085903673939266276448515155689773729376037808676737353205697405031099956361581073377073863345906104848917619813513969572496567385513316931936746141182678669608217172282607572663803595364097238314832904608585868128837049768410217595588807426901706780429198274443776997419471731405424787416210701928707535100464552181494743395643149822059793862324893655009485462659902955291350006311903719648814479138297675872069568741087595726379323416080201974562606230736129650574480220585155457034823918374127778956763787212203404641952953337906446974486014655954506435647763761305969622371305067181264337059141406669163665415743684130424076859582424641663350936512313086839026161320144981045365398397692308541439018660579186782026870041757339480041312656087565021826859652792977694057774903660763536848241647744769722174882657568737948021267817989415215450298837777262000255580674823220408247905154751802546796888383763549008521198227142660091848007739751069721649229702104093857516391592700932805749973354925079787012478812290600379439834162374976280066514428207735336131556353649137777821369927841003222045157996776030208342182483224971982488397015931848867575884835428894802536186863956668479188397523800399129559534754888038242995669441629078252304346256579396493106401829829688126918689681407135056736739995931609006613064057252325143154024001894625828237801134110518328021740035879426892116920207582782956589770852010746141534010158847258550731214867084661329463618660693251385976930798258964124453753879249810961869685518225784248824135209180842198701864392995953402189056328178617642149186116589973565113385373392751705423854331141506885874898512676895495884126185763922721764014315265143718084366837783314610822288006491903503454803881212212718266591480300077314485708449285611400060022037045708575359131751885342085617615676790463312137180523537467754665444056877330638071237209579791166584687137525961694440345785463039510190676963329635396209545923248959733860985946106644110831721798921216816650089589569514594988545971263414977444196197075904222574534155149633640628041003468129214697049870963130492800994117455019310750496304893247505920431738019305319287020343522001794501052786267367265289459641333634999165999258754650624368434613634502307418629835123029196637495978262801973921635710936222689996205265554053218046103864871501811729276142171010109934230552654935884435303632184029253958265291742365711952980442979315144204492314807842021454715235031438157664197884510801993612900554164313008362278798019389054973680458641679462385001621060439886314271932801215852583007634009046153302920903329570312200059052423673835039830786259959943651112797918752209907061388591744800576676467633676957171479432176094335120424521163275142632371669407577608745844194166593910393248193502636254468938586795147827871477901792484542133252631484770759089150202269121675457669504565504040824732691876587045116354616969849447050778620399343101841115185286925754570943769951722890918163777616588682097303101262115720193508207320279695700965766431320108275584319741922592742953920995058701823631555452863183769076539943824615720563909040864468903756702312676145617256743574326257937408761605873709561921975631342017159058822603121773105490089715533828891146357488098642982261366661800681362501577578411061619466316608399343731760174087560316666018959272092655305683981777091990208805719643008004365152536248764346427418612754124589469924627264635226357174587894634914351109959461411908532009297026366042808190136676719273149997232565787861290067171521600255588977887689012562192164859356627245820399365966106471335223311337628088716355091406356123106767154347725286767133191652784787599510868896309002611936623743417673716488060644325280819156181954675555131559853436147227734169481609182695338415559793200602652914468213973625876904363342370730496833688826333200358478610578851207237326115851786757798019927297940876206288992629276279905008270861261333154214510487319191547341898098370056614232996373821274598170080944611372408434358551562258115481826295655123167460789401735887184532920196722200379446119632749970644224027448180673456899708486959895477281872889591895386888197212982080896132379531727491124063515890563837907340078341135526697208405744328577496997224995662477625364242469963587119396432366572288557440963708065806912709726481690073561850464882814564816757372056187371250270107930752505809400838630969430975887654967610112652816021499266156066040922715933919374472094382337140236755079907697830643530623445356535147503952923498393317019858317996865532405637657252927752202621578582256947969975749494126173793943475681024287002788091429294777272247899748577992607479835288832258709516167559091972080961174925768325245145743503178203834786621446426999549797650364653089353983998638281576966427852719722239112621274270799204731433979172091545138560087612659479340850996650596761677409486398432452102522543189787878661830210245030314546677714843929515999264354053415990021085946269329125708566102007864695166988728605923020025071084268460002030059150765904967201431773611138504008493810952356655740688131050626368471236681191793215718322124683263600465115613269851678245414281653829620072623778920008960887004674700864459274018994768287487432489608305053151298922514795487375245808119194187290414631505374235670766765322487935621435600796238035672185449926056462007431886169628153767126807689824836747144761835253920642530864890563177278503746063697606108606278107229284695914422922580440507879223430683609266862473996899583444675874135019327317549645197432080615991120521925397839687536146014974555589173151988794060751679450498814612089979495669603984300176738267935087294209987105504480107523532106888673358789611675999291698773801699781328111926953901790251828922026690467735643910826395743060110980922587623503080132501898585074450013397543068974187869552927227848759810102301334028399069203281556490002801442137272502033494936307970542407066603362988204133026658918381460130913051229006232941863100774989405824586363120437148864118420107770134553387444800649341326673151383953183467577247549115911188652820076808834200036091100748370003193816637810921826288677006013234409565268723524468973747121801891485855635253819927493560787721362804268945920279396759417203527606270964969012839331426450360703607041575883359470454407108180122330380703304994993441497687013816244536897512353086854145513967581282923789489590261912784650836277765170260118973343198092580938851960549329944090443358653304424384970687643990187670077451474951482165134065774714511200123536060296538971102028562809324487648929927564834789124008135574477626188855352219332651157757729870324346020080661131960214764971697324230577533809824693694759506682165417039598977120443628605305589899647650261557042815961076216142639086169269939096163628261638310185721133033859128855713730543524899858932066906221590581867209649649829220053105760233606917449059265669009992761626490018425858646946528085359264100260938820006135024893197300587273397423095936850545066188573239337930756769539628450265068107544580467740364136845600245754360161655535688131980372877987044132790427933309237424282498432010917865918569955487629954601636717848708223166852207099331686704740562454820201216420419616881823504928298411030261219993760948452573895770012403483330616964779386852722865934441152726653887891652100674702083724154308586587925651407573291424656420488595199683185063067306541700059861339610760507078625552764882059402789684142124774330102767634144338410924282951977377298470837204752369968988984834085594779928829522652527395231222073487203002027135054035485080429352163715047588072777495176102578140044446777705551822335795030597510207122513358411701152840991206395261218996134363530296506270904316052331420484907360923257964124826332177006577117514534538891095493104480974032595490357691049630035107394418363858082630369917413207777036545040109029906174477118567473860686390500717976924409314299250856084751102042469134735540538817757574175490580822565648404412782909380915358889995105802136167453426063441513046213253634684673886047312934476468901777981186908508563547575842399398299409909326924582035127299327570270698387781691719520414201754860147241927039098635210362457691440094535237890484954993157897133282473798951900567845928189914197591218758138838375466398181264522403494434796129766802528043904776673685612004177177747939709505285570918258888146928491248014698800562768150464554034062986018809672996472379657339907739257585853145454328336227452652236583148102293270426114111473445118315518946337501214636188866044186445048710505793970362965435075040751660434113529726642035873048693549371877068644943457591420639659017487940174544044166171436034311642636309462847976316864794643390754806722366951542284723901004836007399053247735270627104616452543294791910351089831964499186002754650155786820556596862060565926951601157001620545892520385449192102354004276094745335670542004989531813210953308423914454812925104901177928260815160416796918408468149465052024704628501927507255432481998500759337833486552813300750779182482755135917417487012894768083432169631756783245667371120327405869227161404546586272696626557525546021068541525897389940917312858167717656132984869514440221717161315728617372953983856832482300028250161726364540469563963543163387763293072975857433562426469366381837956270277548568703903329216930207018185829254560054342535211088539563544746972014636118268241357098603414272066046223489581684970089555244596078203755942252395624701865515621626737188124619747936613923737359272153040506188050344081040125525913133104971255354841544151626203368587125163332724183755591723875231363195329974074850465497780102750100008769105247178263290204545794723045402271866141891475858334314528071002119952847776365704033679000446476458414928398017397378441071694161405367527993716369756756725432729362553866505707219251564722046348787815501153631448177357608721247422952080637480322076820892703644623117544980250574620727118021284498919580210115597789117969097407007638974307288263720579622996384883520067833447607097558138077366224614341497071197399002887662185274070396539995275989015398347090438439494693362534360856356390913604552346743790572736869533284832142187507792288961481442305477191915141015445174586958228235988553967477073760167958793890146598163221459127854658168140628127631920797744315176869474286274178370482624114946253352924962716029386015933572655633627987503555339216588842033686560858544621284512630094602099733374722682435132401103759098597368837288693220537976621981008678091911628661606518670238203115411395286819154508832900622430302860962558795765985770913218083996208446042460265265674525485225913755330364425814042998091010562937782264219553422955107378601132069856153030274931786089975267977643774423847313225639666821446465475046606039007695023976023684385988599234038687304948614799509427521522607061083732721851705541258818349538774611570256759406361926965589066449507708212319311727735621352631562338750751784722714674425660729788660920478255196371110700015534845016303556744725075502523241912213025621765116371281131167161008593393324810705212550010931416308476640837990257911326887482463642643115156585496166502704991869006752972403653451511884681929281500715077565299543536116452680939773712504884667770526683964069420138733353843266697831250366248044940565526070610754259264350927437702587271707001720407321231877321177644847562917851654204893002575790572774026882413664366842370687608225628694365199186565369715257395337150389391402423164795841834729376261745995464504356609843402100561275722481792008438615301642580020339883578372203663557766563579905376926939369205135583799343159764818536461696593425776871909105324783370783527269313065352998363331893228911022208248122181325825041692892184176106934724332630721434586282545094381466856758710169426851465874095747883788498049158765213656063315100650666991708797886270848559953403422003224218156208176477844886134526902944939037821738238266457564548301963362912884659378656406857901981338891504582835773102159410386518322403558114522798601217419752328588494146570966875389848683149680183208932575847789465737214005828699995389117403415878844940668125788428614367920976156908606313586967426451320012041137598168136637721591101767632721281012569569238376747721845733825473110547308192929242103767593449067514525523248488233083399301159294439604510676692827899449072180403899142005231395756181300226457317214165733044090450237696445544092216658504402376441305027731838440562693417215222781538370461942157153281363297373679473763439877200069281271525054342648376407631886237907800567802854901837481632195089875547322682496501543260340770063097177265948248794614938162670528829035179254346081903934073444369800732827075153719852174038401552879926168039806394573332844569425182561888918617211126661284185238275797701426137855352965890744330062423806535185883208679061734293324715891263160778299545608244180606660407833413072662869233773046638002240618073441679864674199724387538942823488701138519245850105916672351725372538714718341439655961878260640027200835209378653402199935597317151606439857702122476782520846515504162982614059437079889028365368667675087471650985356809148523353694903510498912638450152286111142979317453811656432874277662338991044099829339845615801330853439436972715401090733864844793492584195937747805511712496835183040616689838580450537328003111607746258440622363789623721333828315847257695980347515327999724158378875127217245405746313800447271003220571469364817970518377561646905782954123790148451300062971773317790049630235316707796419519424990755646533741129328378868225178000559551496111328359563358269176048242396343966517046155608904160174467432821473686153679791203487702667293470133377504593885801886292719241486315431243921456201950088730523159079889618643479808914435204434398662787252401443675611682568093314287126780791784424305368532319646726115653289191602051220994826344739796005859598044127832192633297677306099529559345259939078104367060691809250570648347481760193379520979163824982512220997575860481855641924543247472918613823891025888957945590726723271979817337903980195138641978944201386122957784481944261385223130180544309060444995881524079162410710609036618956532796768933187379324771739593854538882051019766422170695794049481940907490273227906590082596583862158362142800072084256703802034326003905238951019247398965988218531892005057589831736096370295917687495581069571270062100268220069206623252642217676265435045837829469778305618403718365352060582954554942208456677978854603120461306303032122626013777355238340285320450214142578497194045303301091152509925386835931975225104680239750923750745387219617448018078486197164142619602669105195500347909685823525363943258123768891323767347291229207155518265822293377986968160588609872795832968985052091964865522494542550964999885910354100022358408171935180378692017068376084906299610621493332225072355239732947542325620463663616946100217537692385651195867000974023679675759295524540917214514904968601520620167645549038468624691525484716496160592940638715253432568302684804087150124490986715031366859373792401110705655350076853283289116276214425531374899025289561095693982742625014400883032189599383601062499410536891794243394408834625807908161333575777636257540660524407774941823048697544748627657158111266422625959367252812387741619175312994604960414535093121077113778660554933900414709981802677511504181619665470289285697917938796707931574482174582865113150969547145857319074415781257438011380402585268704747748489533359128455338470746602597794149370133712642267289481339328445492451943267623338844119811016653725379301244980315592178317266904528973254689502853780359439357884322233925392594528207329844691372920639352282983879134595964086730656445735683510036253628856430184818160558269301483743455685652831738077212431043140578621443454683821366641105083979457050461046840042986402816881341209409966652592881805976024148097187305994939135327194023694749767143469344147280883627735585327575414198929934993642075433595099838240762311863815783225748907447843239217517901705980263413026947065977765296116731427712025577295328234968930440178753095549509696006925913457077894382985789027129641616634082932070774149179559498913017058136788503875594775699404121363396951193933113048010324776447418168035171111674938565505390051255329093062357831265801111896106283358813737608414577082381415720163167845101453105813591317469711817779595812401120397979557588873178147176664062533559600641515276240266088898210720997844247169629848179930136122732894459715949823535030576112433674255880652309716633596341718119257540267931850405183147370917677596538395499089311934243752130258123749045446244473860687342259212924396867413071728315032573263519199646295719954979698017050733068523690769645309214652744965888137720958951654801834304487454530408510860688953195620615844757612801272923907266772694952893742761828729708592293882313614277804526811239290483085916980866922090954752977546297594068511422075080294518070405269612757334317583473848980838411005999421529616540690492653977218756036466286261474970121633060798380991170435595299912982659397425780671702812620884332928641610247443623216640895808899501503449708323154737155001164540057448369502486479042579467249629924284124826905425914101534089821989741989660845959747072563696194298549238929054908821293270244348613925052637842525525662317776164647295098946482657961298426362386003826708772809519805092393847311923127639721069905640409989284619035186299648557495574435960235432857458292653334191477878918420179550362998670222093143028958589488559936725856998200132355903855381416603051619845008582680836935664253302009981026492085556095887234221013391369526473909982024972891637438467170274058451456768033212019111925032023105197273796461250681061089810991844371825465961357777505388696071787541406340324749620266242458458615257726007649333552479722913254638717080498891819056403855641165097620106682771900391771106122227243721142762002238866285691069684988722883085722424468384326234997372265615297193107223851620353973256125728262955201106544000084656738500835175941152406680370673441116836120218920415105763820290541496984872715540051364589204875493318617925945585105782301942993744915701186480175366163294090315273296688999960640815605764899867752600945722315667888947530261550483141010563579342606510217985018881408406048068192915349941858695802799307178548784864566820601876220118988251802045699305701211735595323123048991758015942420651157874230303781064708743217017808228487255635110587835827423158565171105920446996750065130817149477600394660154386561076111544338531341585554003731662811328671791451131782487177821400094033664144728552038613960138047168942847102052634032801494574570620335798023794917638827192604014677008780762314704399760002132671589476093649983736129705699165997608249760558100130122936590153108501699220192547778455393972860661264864360314120040028281060889477594552375743880994163400028786340108786205683572254818126451227978092761836385203962219638255105975462129134370893101684996717857369047480245959904353777329088963782678999792784154215863185426743806024348418094544776039328727026961370938418105421693711651076097502587441345336966290395127261609714211333195758082416110261860273380512582507282058325745468520003826116178453751966021367430843461969333426463318090557861578682531730362224099189234189962916702421295406100485053678195284817632613805792274619608415439567813547227533888081870710751392497344394047019324604227165714222690066349036585080625267115619281533306363268136533703963697410384341879163339544348231549184051558894320010513879614332856719756582004304886870432964034795633572705173042990926546624995576907139407169480333098135738961305948745190126750532224393575297494467266598748014378152311830425690921735796672455547625807168563471802709903525723232794510173219747291463760663413173900297098074005221225092758561699600183070373111102940528384300568708051585874537814173614333697041508455806894755745979949769244565111182459976248322593377983457416271358251611957338785865824701049531624875318808424190089292939114636238615112317582179505786657122851812096331034077596522579010174249357332378279409543586608826202568329281503754724965077334822012192355557996507585435009303121480923925235751713032329765441388730689932685716970357052850002241443858690401605011595316881778278739346666297645698374066884886246712113750380362680008918382033418787503266367360577237826019760817635593467066122744168244883940175200109841038288455228023727559853277386084891041567834505121157699094820014797034472561931553428319561554795700545257753791937976691631336340914217160896667891185839588323541959830698286546401994072644477528145376104833674490985216301716430869501360252290830826039760265071376872279318805389627777081789020843286627446129963590669929324130158746048874053721523585599243753690404921478513956479978556688085093932184613515454444910592644975709226244385211342413097555504758206139640175912516623665758552940429103140415370744793043194022652463551314026847062944222693318354625124132540405975937140446343407786026326262965146675045836561566765654675889407358715066340592771436493127399364134434467924923393226027339265566164450729816467146844869054920495402403242763429255761507247862753328028135469014859670965856411747375367867879327343878603698111328946460714528622648047845455112063013032384127217645907109238904534770110697705532324973547204330475483962615845990106316049995000872153836935780729925153969242694975227633510352686384693742166992438320068986325813110466240977566486015303058037439603767121465888896416743812670288336518182203775293025448058735877558572388398777807478925577377747010371453842033401855646222901908011162395890587971109943499510843573307994073309921609517818052301389188684449782851102914134326159776061788523167957847939978640515065435238469833326707543135749142848448644995068737947314131634287881636935121190812140901429535448371028317925288062417068496393955487499917820957561338383955694471594793428707478073415006561708880436274155741458424366331018775492216612535144504253159928131150480078384160898181928811957716985980368622057108996658301519947462676685939824896246805267722659368671228013366352131597213032813324387489216634078339939605219718553191816741407688012704180826412916907144782408976096251302527814499817014181687714395694259371222935800040824028215444944298188402676163235691123369810887669654471468645209366642665715813629918730141472054201127936779544647014182707387063724552142266235367222768379621378088480981625251567224824936865792519082615634069064133630555958690409863463201670331287946205646644986291089118285720803203461428913725389344407065447434903469448221881381167752967061746206893265060298523733011291394890177827353306087115822182177166196068122422734968482343544466239590240892926934619412402863421642361516849938743145780496056595511122170011660926154132798306985240249326020985162925350876470856690437088469657041406531390762039246380522159256876909502129405912476399997966815446163742721268538200378811309607936789758035196951666706938558116086050156813250327656579380624059788395143565710534745412527780123951867363028409166249535526390073074100323291845255993040376559173768414365644816365179014310556325513322124188595892206436984782877409354782764008240610303757760715827600078754938429036314052931740732898828145503633185052721590242996123998457757909747207269017927811641969388874393481932055382349023599633675855002361794809533757499436810208117662727419745256270837345493208367233524945330056992718579733253734831866026778167913891684718087312553073164952830465417598441697955384807254959127054775274654001543265793766384778435105747225934827759281691099311088707718240666188105089899694896141712705626386234357534907666279135073236695270543786638716914629335445620066740919171407447628952355973169435759208877501987333089185525938806752607784486254503297019941446623747903952078846023435849917922574601614246272970767148366867275385823016291127647349579879655762325620896118404599448008523176655759348401761804322108176466746268793992451244059901589533089834219737670224917545033155591584156016197552775906193271559224206063026326629524899803589830504801745157200419565636351879770600994547087700080640040968619291673443387140805320260285584296195073327648679245247159467783384244776163877711179796431430171367498027769385971351366892314775009483068113804170963282501364973993324738195908241705234324007476485830860962260349143350483746063424921757689167595332384361649817375912097168561123437948966360150847056736938623112993915435802329383104033770166347497272975121276629737529411349512181429921706128850309429113869171582320944840292961711983145964341037007194040828946048829555817760515991088106273896370550759115104657590832048127097750634814321416853287191256850270163419894122878850585795801168685101580916987394466464713872272013560175750319755746480657031493411097482387737199998650181562542817068960412805359000444260467744499159658866656228268125034963927179852472308826929460734213998541703381972749973551037889040879739181668274929288034287434147726223241313598318778449428417893668213836257045784891651862509854467813633434361851235763322074654928696213385307330725058932607794439445747431399500335037051157009535248185953009085693193882408230931997099817558184756771158610358690675127846770875945497051792900089297558079005425733392039901945428832434431717568984584769507287740378331808350994928124411821303425036797853166139916825775250009909694365136617883378539296157244082271875957821998322830955791689634527615699750107292744057716631360670177306943481082882861465674617871394079905062349139369731510200481368145298514321906967877671445082212958695876833669689541476813118121095565947593463615672252531091976644802208123228142178368305934889392441333764953983067950572173748770443572274329172913993222686835913397473225702093653380489965148685530179709660574347365844443507043786487766116736521994228882805287613698028242747438904847551139239162477023042899355624778841507864341784003558226765216675614558555500479901204747419818536495825779355966388852908833977859242384036148522381347046210873145777907947371256205072349633278914281009804904655358930249534327829126550802191155309482987493702384024269123988402439177858475669947568599078499324126653744422371278638476008529160380127439194906743876928176251073444080297328430630769504652406428987668468260378328280004153854162627364043454382834087784501161787311339970625011525409525300323921363640844207040356626083480506408503700824599891196412101730493235410157337613130308539247373125486959925403250749472406938028101064984465673406134234635983092194476851891447294919475693067416784742157096748785226574418951338608992752812505906709255244630607585421274068269265841681641279793321688015372601841468837260799349874598803478195081555389756318874327428301624765658568071923739946320558508341356241674908355122644918529542161078388127809889723390403188890991443340633388089455842512650664427607615457166881119471533600548308034467818228428685407096948555106886367143006675749256544020909360509850142295055368347475541762569389746438178950320718081620137656014392781091042778007428345246286492565920795650901685027337483502823146899892018334483624082750808656286615143781292501768387193777807538166053638302648488777775112034828324645577855233571026454813790531778779173375223571126835315240766756434992488116761077349455243777104305610177768992558890774741224825596556702750044665723607478334690327703411019458811972096347950138035761583212161568276954667377070684437445664577775725016239925893609187841621429636365270491812475548083975192141579382816681185532915890814150512435845345573706927545843046297762618133449920235365019789488272541183019812068475778938623134098587472865327022744700732881029091970896406719794062134949340511962722078004515457649206761821889349382846196715136875462458930231625083892352077294634399079427865152401735942507165382973948861316925572163329936769814442299252079095687575368563449743164393933772682685836064605173982121595842852426670818515330111340675853453026178773496968046568226505477496090031391598088601308813142689696271448007405602404201246829848467407009549717840915562279252256883960984620887857052023318033080263602677720074739055470245358678680412112332139857366686797020100428229744999286669401792045888133535257688788425409627959404959476960144059691217969551311384232838145369227029673246188542190546298366465833226775719020734675422962288859290034305204170419175647854138157671997695474629669940426354790821958393943359271201743285091169351250866605519890045849184925110235297559912500721364230881504527543090153753465642244598028230919919112655192674451171697986300763209704858104835787662337141174282963472590421622688332487691193973056192889255853204270919603926927280683681984771509228511153464659045794381710754598036133883221053815015987873227094134470971359084046537588440123098579745754132237894284214578723848397417612362389880701569269383416063008766222119043256638957422153865775244371353552299736819078679230434447485970588180923586299993819411330325852427510977272451436345566827182814761188364719136319489533632972614748905955288743850516735464221238462474852457722839874353325158542503108714758009422726157230139024168122488376748609833908604500921741224712873518012293494974525993556976143201490368693596009619472132662503151784330800835563889147690384583256071560785636894183944661628095204549970235131088470645053399807394902638579550422068016452875734019663363393670177547569326251387223494539924420149662402015009998793569530545054049560083524134945680709851680460112820644602329244243540246679626210909434260463811026830476303241998115205384595328381110063095686542287909339791117509189586173777862983479791962042411639330776362437984128154395229555756336289173314930659958982701782459879725770409580754318352737584440398363675783570254130264719042498115116742297168150093422890738009762081632412334079799622645242311503076654023793928675734257653298272728644250362570201350435471633789946535673594000580595315154994512892212198394654945033798440381996517779976736752203168786973601726966849223235518401273601496891540809517121686407561827269751088087589738489285895753337360829943045296822559716290692828732658199337676179015672824575482116095639033935143620734890756599902532552965589000695681337544796675889159642256233079307418118464121595195163330285132808787018747399648983581329218789353746736955297774502235046117199226522194087285911142662658525509575033379971374143793501800325241219097511264534534502508147849146954631588822239789255761026839838450461589893991215903046844168320305701355762503959471480984755047845083151329330415402122943365504929260904428899682531469516023084640142071923055903722739972673126750671835884151867655117956271118117363679329678471968798754397516113457888829359681190862634427621737472109597169983678078970763127274714527360203811510701768107462302812596180867526558550048254791104139197927756873179327981112042099460883574041544977201260112114266646894744928067440875655647601755059018307704854176133909216970023045884769743256647229317385673466096436995295764243767815373283321441446216803055827164483293747053930273487721352666084307116990786320762247621778010775474725967765175921315509950205222017794824389126818976869250215198056968178790482881753091032216969441079918537426559240697529367123154969186963460613898268185865521884462033763374717508010278557793908996210996088989697044118842404510993716337592969354140419503265206635398239859469628376706641606996988317397483670833957526330707077467314238547283342613452150038701105331303204675074445580693101824919442376042287390406646371979675080567261409898270246714444725780101042526606128567839439081344887685470235039971904424738804522686886041251650554633155937192434654301076164901638028561389143883335467009648153665306533839350294844866150077569504981179603559712132643246491303610753017216588094409196767183798267209877276395081711241678256948335717832095454559224655917167434667369018165781793356351178541928892673905495801280010324083403332968124769569826839497591950424437632172588208259274533863660938735548363330501326903026276795470312945061456353402281706940772921568007417158917314111807120296856779572388636470976129450671945448599351659668255906070404196234924341194420400897553745474273939785752569845954393584004711705749815026267805793914122863426073268531598363380838087848864265491626348853191186512919385402062698252445662281851061963357824072038930757035059143883538150788143630121146746315953636475069207667680040528778464055991137778673578267398906988370733211053079916227439302605131387528974145564083657383065497343800935887726843447270511056095443197886783076217862074280281689352732468324910764405552517933029404606069001242010666609503955980432283910817508548473013040391024675700666455601213812241811189367613837695148285701451273095448455671349380376353194480541797499011390269129146115729363996978904915937969283190093947755168146170818039263515579493535270064702042296874758106188263121378371643820538263705254322311832631597020993714800118222662787123285982574601973703532164720859511447855683726312814377138356498084615681469382164593284349515895296078572986433455784471077262272306560900731894557684893155594550831973216672065350521277778611620754484601231458023986727462771118145487976511423287618886317477992836451420259009841207878927179101688229112635253755531129063277339612279292705719312378347197782955242622197531763452568789179112417421441389574281174448429684227911679778918775391624339168939416026509309271539140981078345770679138642169902804639386274682123411427989874214653053530817229502876913925610720587578981450374095496777768498316226639539223674669514136604587167877917491441204981658046445562723474336636908797087385872037638201584797462731131936690185035224087465641703087985435671934295432713937655225489993969327330270293362081715361590272369129800542813342146928696265327350941831600123828239108459811711571013048954998789462122340966159998728159926955084830820501211965565506437431313616867299773675391454984419375524603351105956719691237708481321520698211922328270746895772513539678792591569955035731640540326786239876051795099185912286311195989582454087202587584488548369632694205960365109337668995972839297574909174785146423310995174131113174075725526661538444462086186871836251256016281968903901451887894487387797777742174793710662914728340302759153864580245526597073228482170516592857737578582916811223100992470303794653622528231081860972163050428755295755266886401053319326331791261414739252088537375882958611875398263066260992254434844493101038100183007971286900614336474137368247240047021093543125665755653369834063375203252421891105626551710893869584457017981643062891003378029909385132999831648246888798055410806530050061616682202680176794958264479126857767519503526345771946299738060332508998217004476436169277478408429739975808084001083256536298301584836289741023039267239605303358240417797501423061765437244670321013143280157765553189380739588333747631596092908819506163686197466063835044101202734935880691948549941927117366838360911065714646718170134737077058231451400323563061133169446589851965171263921742745657504805044761236315886179743210193353709491798759318363571360309697118987305082958741289847409242719562398079556198929280704504492973166898903309678673266026943633163204649805558426689445137141247554180639866387787727286292759315213309408580542414218701442762076030459297301940548036483800648432166018732867298073163452347041356513048459653008581088769254240789897522815690262041562273863775888915242557439050465893389291086973538468365565763498378937954333876978051331329846965292447784677740392447479257535054955413421972165935291650073971718750927096941580153282946205532165848722188680903991676627212057524041054872857895022746388512505987254086756231901383116066425199181176740322746954391221323736151718919386569654194158053103993341448269362257016857525432352158920239281200678985770877311952070425313476919065400600187495226198382267473162882681416423769238158894685832709271329055064780951374769256999432959628257612294543389068402107418342747906644213875087177709818988521872836758963824791560951199355553458611717514764790988723539428067728279435173609153232386859802498505808008059539098901775440633046685894678166538858095771564927618438108040937690770691522364590094801819394885916194271637152775433732887083059178672884093294252472381929232910792171071650826222145625871175043909141654637437492458446870231195783884752328921838639299940645307654193180466326112839767314524792571681543898443768511583411853935612986142453095600205180903418383214975204578291647037154208477406462224851853563243450021863758139579888071990464309607426631517490060874134245983192511512728383617447863453403267255963138794040948510848317673521884785182482931680934623002128679691380303730256356499046183241878539698160405350226014336180268030628734490210201172248240836275365239426828071957141543486370818201518095809233487400253456421430415563602577361356236829790846370908319246053627522749148491686669533417600720810153985318468374502816332144650652445048399530055956342634095326792876944936927607339332113713329570213337391869584352262192293456980727712668036907076074129519816392081110003313474135987870460831547228334452529895804284175572056074103423429079044920878119682492689663487909725539456678813046033247500992358750654562027084619980386892953622170226707850183010792027236431262681531105241986194545956395198124600500551754290681584939424949397537499492661406055263703811402906482449143998541326450901987039865814893602206812721820940314478728729093765009035703007453401223491834249346161447862310514519700550754747549023401019503596338423604517594185246601881224163598780199379879209261476587552975336830430373617696484216737262523658487965753248907877308979438864713688227862443993068296492124428118794223044658531034307454094638299041046773891371890876601186756862089063437491782306861316472746843044782910805028887480843444456161792021101878602768198142238062894066893698636337024401265495757345922262837144236370989071009151639915194433244227886806221574262498158709991262829770951397344100195934291148126701033550108381364948222411676677058412444694599172021502696696439267577438465797111027757230918878542841349043739375301397991956163644524535533589455802577308960706967560339664741593923663540463983213301030163276169917599579059011732106752664607793403838442263711186312015432352109581501141177123591353029416493923586839032668053010690121387228893710914947467607401828165363520243352885251513902563471436159142394948572568782145330578259437121467758710036836907867485490713519946788205956029202073031718517706679559261123051477568563675688161479328432723243566868945710972473291846304467079492524727522102741194750557948855668531282284364297802187531495903244667498053886181216603331781097430146857469093431459588315111875490950565761074201867874367903628982411804950135084594244898545435998660997301840395046041918287325169473330441371011211421927428168272552139687962385609750043049809076080054474021221539163512146281378208352129435135086780563589487881544916601896163895500091935327472158580001309190777428694228728218281599017041362791991146845658846551211947131492185672727939134890149495581627147683091372635798754861016317199325494876635648706311325354050044674581668668762372100125308995318723579390487428789055549797119972118115916621861674390741118876702857268376900164354288087106578529133944144863953560160295801113904196334864772361138687903452203749754915779798453242999076145557915151512574137184276106053776681072262164959426730860488605905875533172112421330979583042032369106151714644696758619798877802705943002476081239746176561962681032553905480604460690443142763895399423288361062523934753174500931792153446462331681098974612146269223544960099951280461297049834249021618007708891789310903089967341870643387402912204707392628433126738865411794964266851107953586901128883139780365327811222738572197063353490691131827504499066226943604288391155604559407973142777203474476422864850639629170995258687796241789006140432520380026600296320928921917861116316058856041289147926813794547632587502820006032458510565599320715972270130210880972864688906392977113267764317732171913586783193855042051930634364051284413345435997058911289793106534246835801376235121693533023006923426729614884821731969124085446782796094546088283984276898625399796065144116158331804152442603337052485902903079759386957956900962792953944735983371118515527043575985788820433644162681864940450951203337111652195806639055987948211701350171637886712160989687786534803317296569205617696086996372002816756154415893259530450713115852247050161882462810659404272222000656287832439536262166330856235462994126261865181569622518183680666792447048092915071996403266857087174348737706734059547859354168679625935872016544796034628041653606862913887892221814716728139023796905075660350012874620234783934563168958276472386591796404492610628209083602902067994708473367174683450007541396458885555813081105666429203522445419931151044152642161416777711728314300798967204396478582594399138243951558447616606058570762212483161334360058038028811522231580419047967784709458701819063055971923477904604973782818956082420467225567135428382334979971713794762176930160986288907473204258615082270172857658048308135712111003230561596561414127260808762095653290165446545294559561425810373443219430470171296363338622724322552368032136898937694208055446425717533866016983182530535536206828398861559230273016985798524960144288038173996258653609445418283541790980567372927856628405304789188630396683462130231683295011830919355412153904682901409981220706392789402694145594897104963899051814155192733630358325906346449695681449567639745848447314757421865442200828226221183206295144805664591070714940451152771068054425550738506092151704927527257182674597947413059590339438104549553974376850830744948253716395469753064969836430934053468373302082940400278161229477161963259726669649698865874133260494971468646499537259634762357404773172935369009830939649198263115291952569616160796800653915210548047392467170960714992887743334878942478927803468931753646581096232321160109423490963848600310254727950965634785616073759595127636115839066777478175015112490429180367831054904599384898203077837463170586886388359457106055326946557596793049623331995739448799149732204952435588538231894684169407376885415121107714775470052299333563672801910600407206868087679175251426143708139028413339676841030596609411768792959398600979491292357267938281698705405216077226017987761992809915143279287869496151403291920500577836668358191821645884545228528479023101984044766811686375712458430092628257932342191254112101659806960484997681065431491261539362573546935263994461340015751542823667306834790901889215929300555426025002785943942868072680883647675675325050680880719507775237628299347750289761900255585506280719090798458130432412481582304081383851256082987645379059260572377963823572350323495229374210207144848609369091287649104594894763122675005891565511356164996767006616887020121877649187707163145496216744107419116470059300444796733344871503348326640480421808410852981979634561058699413810800332011544776033269906220939230525632373539001670011037997513579666720551540832483929641233082494446758037626115513437872730207513814006687942130527017145290970029102195603595034338043157969066502554216240644238879989789146461779805792652752418928447542086199075705569124860479858448942747191594132430929721763924727214700567574315318018731628736861870453799898249515575830108391558562027085130016701705192294385517178422757111719870429292022449397419351640509886437026641528592742817670695855497683498260245953129627178479690694601326080599116608316248141084206900143970597838632738881647167588926039026057170745054097432325528988281437014468230829111910677721190926717247740330279989022982746426217789899119882873975971379995205210674301587807717277314557174942958710921062984076807143435619105092169287017248357738929581787221077937066113118086646346151873552463910131240387759834818365577353356114338105680773223468584706024459317197140530513404457468186805766065009075163088861242910216469526062687778383082435141566982992138488696448851783637030410676997263051689397964698579856896077996970280552539003253904770014653366114645816622557676761068278541869234111350859586642258017252996266921332973842520627959041233734156437606097471547201921944135146207439184097090438070842307965118744853131785985013339254061827873633961888242102120811797433865745850029294188897309188128367449374220292883937251284201179260181496551681897430410609406244740610761572529564908784113384504984661975345806722054579823536414652890034399365588274542976951594983060814665066364815161844838801694759469970229898270779309245753517397046211007780870669385029636733225090588184711387073483222431069335497428517349999812981734496088376852458913991477770233394240704066638828556774518955825973511871481996189874125350338216359438749051222260450478007003077097312044948678779678716417589144910961380846054842510866377969312246675947690907333320689068447730865727909170594239335315592470324356333036239746560939376382561224902928941920556987692116815494685800875536943529855893137070486840688196908409640370426533092418689609242053363095253626050717587354247911453178907533418000253298724496938399902078974461629420062694296113800221223277059787545485671345263127231687183194268130351261046819672004243600791830113205542301536679038424527772008705005300139442082692165193863256507951920858164782541043412923643232832592979945679832459317060620571326296181588898179251027862293726052654996081315954643334459237878477079150609723449912047597665956813209569741339648922305581164550096202317111355678111169724266537991958337415637418136067411226309716561158372545905045271774251917513574053377102369877135844361118373533741936441233801051617298811656185677019471737296047916996427930076059137239587175556032399483872034255637358544744063979788029479033747683911008499464774368991526422865151857915580696126518524763180574471048183275469111766913652950650085623812523540616710268461833989070921463240062396581278332203223255926013917584292365998043604382276297119177469967491871856825555111283300203054706805483371126396868356750807519784974433262106782334504424264299077163666376363588190545698991320372312358469655471971567275817703914494726901442471543989272109454948242108695195929442484877236104721056132884170422902215976209930533211045804601229928264261884603246940735060623709817103342566566677816063701619614981545933119528489557683399036057726627923844618025233514828191941175106441052826392067164259682705224681183565756148916288586888231395731977023736670622875479525325173219604800455579076741206335947666877112353069357810446885915225768102274712689658341705759373059830836212870883140821270866932534705438257105957439440767966974700404440706706399176639358611284792792913935289213623733244251055192881367313756779154708253591749575594020178006646807658859322434971985264685912948918249294424616214924345747218959436690680715117079506565873958404766024809240190728846332064721673603559576933217346464308017758425881699872115034740761707737510711265551708614316156812776389687486905566193292584905583698242460440513664378635857164756221589494481507036039806370938969265017758127225923985225670133009870127634165812630825643125461381783553733673577787470370531670240675730771699319548639691256876385049211219542530632755878883132964183655435346356246736929746700141844466696593679477623180275450713285426134574856187476053967880113574855764367635291517794120618298198468226848845435319192560243524036293256201530492728260860261918103145032295051829690227670259807082643021669460062397860824098147969410166937156931607591683252246905518472678537211513860831317346610734466708452289457599430844393102754976710587246975338382999139796613777763098300827913044545559589193683506708713984573062435140532251772732077130070763590704515088694646151572741854872491129287362734069837984103428591900779041648362486441850388978123966946396158252051306741550145538229913694309903770027244186965650465261646472888544198156273041589999833894960420149206052784549077410124320594710631241873304349483073615202218164291590740918485394329118630723014482164130543816898722295711550965403873468222648208790804249533749180704794233849799137311547761143612700072027641273709608130180659169163275764296495514052337007871908561227357585518197906507164019535580488933373046536618557744916795431275209036742497270614376749776780245462442294087400198523896460934952386705731649823529349522852571189415778361139123993058614033192899329901347411515080624377262408716818043028397301274621636266775762616251794430452387342355868617491139275399337421518917744183607268429295313708515452492547654605841981094277198767231680265694342518367913669242095989827301079523092460059541946425821087595890342057892218347818549110422750734969285225030776184082250609275008233287694694649777247355942855674215716131823123080792985989274688445994273073335150532415380625855889478425378722861061653681958451905585868129461803983211523547759877312253662992929455701836374295363054916771072109935082399606278888975439544209698956053035531762213241470161184368396359239980976728267195636418604931362162345805544645330597781700343759655227548986664688238783299084959751042342922712372051053701566397574267540552307225435825382080710687631751376071364271285537926620448474226117401317663944506034855841922501749441633937235877451958869954282635367132767034836982697038928935634821212662257277923660144855614049053061075542980598489715316747325667704418111010376277668353282000634042019750307278139699280760728936046234071927050375978453057903722947494349323758109993856852898616229388289884502710552932625117869230063090316608956893927669874977975773023726665168168184514338093908022028998326479878020068562299317572792997022376655205643318452590856241754984971759584393026962728206523689241766069702777595953001422921909394401172583259902590488673618455170965675079690959380577242963812770899415732891568975690212189532312621160503385278143117519868723216201508690923299596381007915660255418584545174347509994110735626621924713267887805676055708453443198520815295585422774792865087177573091007640515213565676433865374915289010297351103433125302394263321768923877242879926879595660781140745062882642690949536021012183553685042876233849170069710990084153925190415542875873852649175360710250365170356643422735040326050674717618102219043844467790258353949307577957122438390415844513027943193388536329395621284446745926125713600678125880741965550102700264983927749747352083709177723960326440092601288367819054233937359816864181090171909496980414962753479513614573552270438968120127517271396561207976515974965811705171325925048316473066071122185700584689187621023980768081558818882574887563575401877358741735480485233735895536042947830389035730553784950313709206167393732308828151058792331530047158111820590387676181142516271561327958248650596186882670893060563805311813053054867691326213877599698313112241014787270895500048382172291595544799131267105151938700658349083226568193701445023134084518931488687476056744141602271683504206686492373966821552416682986384413135105176635162107852058034488571294426613687126891381230686223930511698945085974854662063703703965719853901558636003116733935885690782024741629341314031854826379260118187692588377928403738236535199532305705834156677201931875366141393400357334851348559122653582337605535569165923316433368178636439367487793750794015750064488559501905558603639505995858414345544963495144934860777212779035070400944998148959914464544303074591545007191885852773102373996609252842448955200159886026896245731200923646411537556816648661430881564291098141752506635625917327894217136886579357825035562030080895886773660525627013182291635587711826903402800432181465559574073960015524765057762046467146885159673727224608268209357975376726543136648198052385712448508903408072138674190312352903765650632355452272217711696415371414893250476968131533681693409257321824378667387512562759018777489966826818123723447706423683509642691205101626766708277137348097860044047469228053544324553755044392164212026992499181372481809927928997396066909086494918464609130631659607306088120659144579357822293825396406355319428529197150422345927704792964014961625613610794580161155796783528351631007532465767738582755441623740366844104719317794129961499285768779425598190168506603480731108486820526736514389083319092368284128028329392274611485205856709543834420214018978170079264335170157738765058809622339083908204700847590194865011760845660975698340773993621563677628292304774912324109254752520233527854417593893371088377264424374276040874249149036173236279095746273540926809885988981308734171879927008775618511710030657807173769680265864848533509203194809668908996881581438340610266234730996643047481845450895644292990305825267109071735482702105034439734338678843980998646881765678124774947268661627985376712109396446931926806008283342611118883309839618756087081636362290431472012424828802233926262534882441268131001553933654761863795771791197661690434152265764939613520165990971016451557901795738509492009921835758324016595452040065084207993356898166002571277642678151937533014045443926118272158639157617188209817330542347682735527864555262142868027886712574678418610786749896628749904755009859375555067021992758623950468538577437933964085286821872452171159659202831778437887892698087303019094454734062461666872374817927333149857876942576702394828486594029265199806874817728640426970891986498180412764591677465615231412158884360984609695990987417699708723960090638016881215353558139590525504243342327898219039927847816401922329135593984874698832383113886417594649249602110611107278054262114470189053823092124169864544525149258030235437182449149155525129279253292256269717721466027971859253454638395791193527125196970806584371794562820149674990047630906171919762499102331673014835779393299696624789670829893034997948427868180684799208932758469173774409198763121558393798226738113190095769363047827527109142389547365918605966309355844105416650307719976310819938174028130345241475546518896400636360225284789648744192637667266637317870588029664091691723239821602553787522174233823094757393909056872569285001845826277228670942391474564450643609520276574896922241761410328963899021652903890568967477380036971479397304793522865686568769864510901573994716852306263346378980441738560094474125775099070201645659853941097571470408999951640051174229723799471591444835203880707198003185342108086782050921462797903136695583677352322423828745847262688105511229648269061849922118990762771250809352372652430971284370901376703860626715849707671720200552582067336260906914827693156144084159795456524962851225211250543122663981752631436910323139532751994004050757823679367644922924189156895911011755852201005693526093154808270313438787951159513184569529477998362200687116586017050503501774294320277980174826817527898512042937462228055811071638549230047613900398904848595824135940885641483418328965750364883027139186667429088439086884100601567626434727823926909545907783394605982174434147452727560595989749316372190468366208140840409936507961456450742039955958434517841158628972502489839269757079438592114712097675306958377713913895560277575071244396398059281248044033702412723649350667360701231826480676618164567473182531156910004552809979358517633179571035040396692255491673319757190533823486658614709930331888297019618677394976232757740541695094135785181285103853506666899415662577592100608280658581115484110299506269875682811660397863382425151691793522936789275818832260135348299488203690143339273506416451486761115721218158523174924942225877015370963258535577974219630350897754400712082124992760795324254492496630474669892248203957648528718877056586201574101217847826645165551045960967395033827234377028781469952594879954580535069085139854573712175208485590001608005522706307815975534100727307452771453292954532822625469517775733449926173996309722885515985998501633942654091121328682274050744618758178026987102018062956533126002799331137936639092041066049860481070086761964500828889339194937966262309576739505814347497365324455861901704584066908550100624611742122315195952073716479732348613390212455396522855438408383361880990719208554397872472496339666206051590270258374218457850157407839122296026747378753604376767324928834925594344602559057036083142871224239117584757427155455042053922373141767514937716171075625623391485852817197938643574139026456894432224585682394735177495440546509748165415922631331270416063655429480003860251158869464941632325716411379973497277956270039362169206065675853865090139629826535191630025998696628687663123108571717421348510976843966053575620428822340933053191816033717391597838519675631742708579406595543882931409803687213771543387044111217184278819212940076756674798867078498597099932900876480974827452560185866127765697345104374073882111740366592733072562620891091140279021960978396625775520797400085371896369085209337052462543381054548048184565008855568042738535398967247955022750805582491849223090498484601999642534166163878478195471816163744873407738350128890926822424173610255281340143682050404611650076896668361436500175027827678681991445977200121135990451357224807497764538764347914650568791720184134151712698489450669508332299726297757415207345385656497016392243260726220175363747711448655115336432919713241939471893891673382678093850244662177397162939998826283999239726591336315088270211865663619507351356734998552819977020073364977948276742789328946891019298587057540221261314458524423695846740014741528838615589484438938182966119239762774198702590290798256044598197830412406028797441782667214442813080888320238449378657687039921866943153830766226511759125536473561699315316655183345413193634056584534483989244587373371634946321184491359883663869196340605227132636577133318829235881735464232281944113686009835296103208816378205419155370755046822223047694908472736292745816000641318454617510943370720721370840385113799031423702997948580305894752882089726737514822618445138828276628504963406149950968640819285734454824949296941436826103578681037275949495718799078918101898973739294291974305180901586161316005777239304335179658761341104378690872781614744873832685792641334754852239238514561829135635666204079475446893633175053220262194903672253739591156982765204329796799309224496047373087177969796229434905787229210856966936638049958779414785976616971489333157149244540372090055222533269228919445694394695228262729770986047018476219312423667897962273392130460455639514500799593695780819774270885913976454318796993156998436379496673227758196370314266904936059011782811291182999129788576574494041280703688080179235259117874905820934496858450756103865563875053278261380667380936323983257310448477269079711009334797544368323555736285055523351369167434542150085516049637340505657946679621259200563144588402659083415747457503739656500235014128474418023582400557492070271152599135818737014937503512520677119550636057836424224903383847035624781059537818170167921166267245008372320137916700881328402453467107982255852633065076279671436367477397288844026929939605108899426481998608573511179214765051132136985432888295834030215139703156017749077331460153225127387560164016091622654527558789151966973944300574519921340830018900204539125770233033485970560076995947281555713419367655689051124481729155871992955595221483309155026222506463901051374313084162965954828966616790551809183507372132948922752856366859461712198819690966821816956487695661976409154093293350389366001295477489838841422462253926621309055645100921853108896465530564039751864999309517578668341624301045133086575900372437454720090089030421591244462899117461317750349247408529980772303222075818127332517450887274343688032414772975632754203046657356679821279433795700683740088531141019613918610631147780593719368692015857650199819193143998037649688713725360095629302028926788631444497612996751212293176519705612985699457407799039696264685305158503290023864311602362490815470474926721640791417720343824123032135930930167711103932024125970067856246859899434332408701780796548913200674755174247863934060782973981191662857343191058475275392128944406991808292340345835642513149867887089010224172548383557081190629901675588237101261540412456674515657604793263727447607456604147735844694273431708276648419202271504360025049387984437136934319885318893146461525632036944395510760991561074993493293436501269924101612744827547907231242267906878483372525210816143254173035102962990715647701141055507146913668403568992079319294346745736839284912973871259465822668230232096616354554069300136097808028668158899582823290982836094776863370060088002245184729458352729238556420258470288798988679389070904663206488431582849815641702980098187335200546991991125255637549797309675225925035552836911609162418112179767130145814611375018769094591568328060307719296759229129999060533242752152636826754186060259104969267581813014436754528841501942543378323094454815321234942614291211613586606484635996078483452936183773948371411524533796762705334313928743632018983834801877836316955100944349259950181066735386299355684520687265440778173136303859963123367159531521517105780734035016040651681596569840908718125282003281537524172442446095109800560616962625996801155006056674773010005662502468591773558622475534474090187750303586868255662922320613737570014962154721416990498308907096576607993708859486351540017065049762793478843978716491378237522723223790926025195753899205776401313657346141959635904230741661148466539181793064853585158835008686414153991406805179299761870332519669012959250541098499585910586890997616015954576711379430734489140654657962134241553650222691198057674019549337773380851561052844231792781629330272106997096346722687945856890025751491851215529540573228611779790569312461752029904797250939111420265102420132748618142947669933811353372410885911159951513861296405331423779848549235144229068178702652575989985836802978631572404700828836880099262393286071624505724051539978470387123080371861674600961378953915158432474966820827862082351781781776483284102969092521602765815632494612869564595293575858466515291563550666852734493822416082720985602786209736626982772460028961518768012910624106720476405395712871748961197043957371860873351434399939618500067173513888531723631057928531193024561999565631327996701646656007474342748471247400436646126495201984059333806391249826953053132925111057277957154694127633089739586720276617792868080997978045507241852218180124244344933005708400904214304701252443442244865322203357205400381364783687900023887878956786102851336596888953117063575385652359939160069829875403003146910141807619414607810979355460151111970636413406091741066162966823993691798460703165742145615213220846997718884899775683444525500732310841456584218260077959178257501552057301559005408870073249845293520190581433124139396834835789041961252900297218648409238937635841752509723445903461729428158219118377106354379861391863448114041751364682798419531304517593020943422799954650297371932891294640242367956016726799686019428281933873138738748168271292405576444907661234768391013863235942645939331712237677496414171911734268326413360889524847133939922038043699660369943727917295679298039573836819535899610603291227583540726080241275946262576151875930923037383763478278550054748546804820598472749886071700823100656328640324531486203972602315141301718774939859151223081509032226473347911996513065398881860671719915908669406176258462793099893580039595760493885255333126161671138313385952330392818117909667992852240182349858950246040864947890428045425748227331353253154960057320132213511114247918192137978862713560071875417818331261777428484439870755449952057255390425114661504148556907802144076948361620611848729575108512183574783592515878882004549374256920289772833104233645660519399929722529008559779620639618405325635788339617221175065303905310527815049179955049358320662261182718258116613757110745568510907725820654884717258984845586060860038840974039025770662991159933750256876473995226592173548061822694483312196622106853635573899421702272086917021889969056682879303702837362594187619304512854983601047805810919116340101429813838686702284544122806357864010607648219622832615830914210614033062435310658895116760733096430807790265173156554057274166157301670586056956946564583482183580093904724858823841296377851854628222483868408453173213911101152281795960627657101552566622261310263666630469153103175311921438971213970838757597858001483862110956800859345419426281017980125585737040823236631286743411252897352145305621614025649926529622456635564380537958704474510985403189408270341095410861023214009032060398526322725312258236311231802137913558405620501766556768785589347131071216198819169154163202996681906521616839893818699987855593754773353793968276903230993148620166060333224826100962650333117195159055075458022605357613468600080860107547857071178227658390280984315942744065935888696712347266917897718368489557678285877326480825672247309896310475333859556026887294747941401167022996086732388216160058220509154642294338211777771113206935363443634985190010645031380626717164440973445292208022559638370105537669640438180792200635041892496364616073016742378129417849920177377951893308839304620505004463466774981252818841165087861764413478281237825871045058019302879695194001305973291772173454758902172032961078742328346354550896787984197396382091949434087385646288891542951343786312950676131395245044103333483168995615419424944547335726506235606708704378107478298497370818704401356200883212058371904336042524601420150821742842580696175746119636822249847793656697441645707962474333868013480697055894263880739113225435205256692384208764403687797937595089641138397564487018954429551685548997429439262198239732622948245285937194842692946364148052971378754947962563500902893984648013341715411312252243712504524090030794226023113751693365508720388745997991947566988016387609529347285392504899475934005059514828464109734423226464116679093334164052288171025125277482270087651655379508590882709919024830669023399148921553420017275062508807827929897275230889580906572291801015791855607781671220723139316490503461013446858263311946088815848545915574772697485755772698445252313316018320734389349071265752804210565080273544308380742351497836266239680194528405910085207268742086209128151067081671607889202100809078659472309187805894257197775096137751264693834287120773912441781154580876274069528908163392327595489217148425388774512721037471845583842245155577874366893353133276487149015031772911921130782523021407634863498659270039905584825948107467575951178185834214260156620551902178547535917960451112253629844801983163118326152991949819822387967959874612396623341968213512662973668646284218788219590891899230244684561838108273724977023581489454706217379310658227170843565445892538651066771508299438912298998303981364040318841022719814560506686756230770851907465865183154867973679820102567375548718045881699788561844849783426527788042275383777268869077210807430680149122888664964213822385653218481799728826876674498809331198193136976444137635852227091136478507261643245158252806893269196965445825977742480914644680429364737240342833510739133240553994285999894535660451212337913185148002641382779817740590714683423721354301019238662080364457178487283053651232913312019393685020700659588105517884387143227085543883779976209624284975402585886577510160930927539155237013218317115502514736201713315258746676405126609547774463164478316145596549058293213435700068276387184381198944033610932210878140416548464834058663519119890506961411139604899351410205836642914834140657304099135322608540083188483839484700142890285215513458078718647572429040609532665044345651820656101571171622509999107945876121320770237076584554673835143723712253881635745562026209576767203785661002180073759543869797322954345655541324766088318623019975318244183195196507826977047877223374835995166733121938859598362980142930915904575239256404774885637527035324908679973651040201126219312913890197396052907443009649310975307181563388039217638946241595475260608802673288271018699724103852111940407860176715656440350310131085700597362957952605856493326514121132459115452286740671813376905448067371586489420913137007499601033719448943439851590586712795833338340056555396804031307874612626404625963076865444799576526973103873762355440962871945641578285840762736494154834062588054889471940814529916773556875618650192397621218502410659103177806388372329532586454830774045228402494693505232760880545855277779329110550559851389254773241022859501979168327628084814649546752466062543646993962593605543997564172194688693418092216237211600159789627880650198151195550982995086458238731033446494211922139044461302609383396718400195856416482545965551996888893731060817767788558554256293550930980749238205843847411247502282082968062839483967894662983122554102005400664377281467435941801729028802995217692708766985945787639174895250690326932353305646517733318947361836249401524026342448423673153920772727114037121183173130073452568437726193632801712244978794987254326815502521885990897000859002675266713357129438361485678787597796966099711019338889332891923609480726240332080205562923513188491924917723578007587399813377581689655693620490926263979310412863264999143048960177277492095558124306241596361120859604858420147488697844730343356970676843712242718776127014217722269985951283977303570283087561286411044079240033307268647380902541309151685830187763275086832555162923919385771997861639700542417242681636447892444534981169409032000131452548903222593510583322738344887496769773175198147292788299199849331139433048218215863834002540265241200187403351871418054560369263091711406511604237355767337793726692210784456741131062396025792969056990764445696733039194296796806035254469421202776270179341536742973372993559059554982479702230807269817552360481252798847819398207404029525538882090362233475526192439778264854168493258603210181342115780186867031359698482476754204597969309519779918814311147166343630353616243602210627221642764631683519163650261600153423408809402875075633589435414460410549051138676902660088633063371865256724533929460437392973384471018716911680414956135066397360621539027252630252367316018239516380439169279503186540046081753859575742552863311789082771644156720545583986630332082253789610344398158586153008811463259725354209245081626714657405072757707306215748438262487246813552264311007026768555668818763220711169731875902381120433753228881526936117180507985919341838327820063016097775993195055760477200979768920602359339665416592664581785478478452624423769392280321231732626476576441696581429636650502830738742525296178095081271860714627712798344727953889893535703892352577467068466747601828695270821525498697597829742758345023155671804069358039984250696404456629852855511440537195984442607374770949009536239103994555036876233840447007819570535197617109293680488696863133351877857624830843250162187929707474179493983918857802516055138322664930991245975726159276452089218667784520849196833440844358882553009096817284727925709625588288195394509418242056852753652112024114266213147658760016974725807872701452911925535025053784416713068208302486017948118922624510024130236464230694826033597801280512888776165937845864067902640072720092349814897638369418259503317934148854782441739745147053449243648186665681314523935837975751855669392398498191273418488186834858320730808350842183239731892005652415063708007092897492595570595668728858449774304646924186575654643059394884215707804979359977606552509464311752461532625901371017940429003894635459842218369811210102884495727338658720850489935792252227474836063296967153934988672343248343051557773814027297341823819717645639071629510300614080832390057267178074788848312831657063370007051012950236673372915020273252529580208589790664338367494906199893988556262092078858270677933767979016093295112210352381868570711223432972482024262433183335364166776281978364008069693666121561749232971036319752492418938737035915581228478243000705352886948834001084760941285732156873437673049220793946676560609606423649037750633735822059052738860015912232862631981048035865931766663546990710356567949664062233292729565815393678780622824023152927921483458869887358501996071629801683020246005900940675369357162720075929513077561276450151295675380250417530668143424095535826677612021639446318103119048111764290756980306788294141010106559673114007749108664550275140665544867547111447823363621572422458522383886704145211137035151586988487506013162903010605944787135029118223596388066137183750039991415836891004755429860743476157609862145443968442991038025103018202693922705305776656261518984004305373949545064731133583515388844582562634371998957659850563383588887093608352085569207615716083860565335099085310492374201921299752659219101077063710238912532250921775692955540271069769175111308634260161035367707793413650620256465222687830294471707415258007380030826810339000388816732555802874486696771795979493612018757784353416366938773362027844637967807516852250235154592912473749428854383035689009319073848108132229478421987876066138506493170760933114741811490060699892308785117252827945276513538739080277384937101123074725502021245251614828975419349078764907038603413169166924041787455232632803448636675928558818074936115972770305109574503193187250011412629364437148972110342027051335402296443487340230126880446278604311063048977978537522888204944176608638177551336329030584270588234195677926853316070870194412888719878397607660358002164395020298478316104219756566744576736818815539549236652766037565948362038266059309656584644307815794919707821043042405445545757923334711980649748796738823504097120588427638318967196686437952783955619288810535194282376828922619096251915877930884945587197207544871338624267581512589175871109640355994299493387655043434253753246069681438609637700116901122099375879116465550982454231507056299184971224768352596202804413820766761366731851444941089408390027727436721858559203876882251007828250921255032554873060229523698145137821741685868444023852605829082533655188027882003475798808558821830856523074320361112441256379708476294463824257349787090826546933915167662418767010101975396406645294821270800745518387967618305998143569730903089290365753068771892973653682536427452405026138855564843112047174692203169646973838507907495870117384467330668084755843673133962117157384339093333798659606401416905195938996600311595985780896231889182674154022050123047715397639491247214227555722137515747812472544955427277758759204736239964029795672439235107650928119393362107775012986756300897301506540658498705344014523385269634566641809733169309862642626422631609718213216293786845728480696072211340917441012210895666162647649480901780905078353478538634416891524079319413049272599387057768649447707409495020156457199159247338392120985763196236559688965741758571597038264417234669327100105576458988538867676036317092062823851370989612096780170383530694201274035842335492671199733151680701348183343486218409955673940994539872986211960115586835822488340190278140220432767483451417763752128383992511427223740585387152213523843052873515815481006184355150480120105766456865215959272280263458367355805168195892742695463490678689606019291102944629880630414456826247643435615740594962269959220096354108995150049098960366698163720624627544222868071972269241027315089081317564463058215642808671854086334095423118526621511957770070566084923074450567968436618469171333180041689840694886734280559436660703044755456193939175371711000300223612562816313612734840647742245921615714705215453985175612439027092821085844572767371711655157738105478242492783558207374206846202285103294006141626311674070554341754023847032871506666954676681574901640602148819673914677436050170673938768005878425642467551597834054834303431469364572875882366570873344618678817894393265920032487618785005176633836710281838094377029481935099019399613317792613831304599611415031613311567856618556091796435738190678502335995521507990224606688060500703952472241195654843222395134446833113268022531984951205072148244076662525784623442837674239913301456159926780947801328298973759226896630845836981260602972928786552934294476011505446173320229118832903735953276676490088857137777256456110204076812133083897218818519498942957466083094462320025353791084856305235940687653328220757221713673597576339095424043341042038221267585598700151598030908272980662671646513476393769987883123900830274100623511713246280874493810309024542843225831032667698844527620701596305386809783678332976600076169299720702712667902509150537282762924642316412798747127659000414348458299000654030764450197500035433725716568136037184825747239448388830604084371091408835422367028885445197116635454154554271780340123569934561111775090144364628802945498728509768149821234972257889111748247587453199082584585032228656764287450226289617159720368780653081736510689714576333533225672977532626358146491689954700960834261495032543743251501873665080913848050722567889282555486620592623823885320938855876544887861746225134635242884874712003720607928416004278652131579639183949560231045762154210239768150172972703942751363439775924881027852775648346291865454059712938227096199023878407356138972532822458208884165454089024990125536003696839618018182639855516193457103345405901990721555134001569700818478654732461266712990281843155660007765352951939699190821117563600697367074374042658636375369075275522649153402244570647119046442277963501891623817397748834392593598686891594424808047833760040459210011030133704368141902687685953601348670996963663099425494843629752542304141347816083299283344332336237056957609541232897563534909222271388534659372923502908716068936336008850603681440626132883068515763812286748750630897394346208881152203501384810757100466422922864678487776436311538289890101080550910906600967862168690952494399199857517184341555057971732784278586767652030690359384893445904240355940313226604676248937593587767509027730516819132755221406734775700783812971304898459055518705667621117196045415377462261898116942274143957239615000305794374217025344730189972477957022206837126063436094638965127952366791748152412765695537956284662860150068901507014764450159341429694359882726561495310029693103572912513973054804591985478925055498400561135899638662191522456481301176014487152588511112070980100530254381166464709746929083715961363733959133824962974289828005303477696628473551211170825582293306324503636536718046914677114003007893925882679192334397362961482024747790880292485693931237339034951999976006909443942613653856575196123614956096329081339653540548299319628175323400385166944061310250080110235626256464248443516465250898285934722582510757147491710286856435356212599961721958110822453192241154961277027163516777504289999723358946952348501347302673553890316106180028190114172631502045520493567536404723061871890601360065033857587307565913018227435845297324148665482959981560100230578251874093618761420746776017664259645982315530612545538170833356236933252412109440502352420575126683033131821852918679947108887242753686838977551476394514603137743402697915529770247066462240051672247095690259421301280240902446684953190477926938071776043979783377593177735832959209130015415372588332362193241624297697774006132131965399662903673898363292372862908858001900477092187218570795088309936134807483767005380660868274021045115347975752242843780893886711775020796118698437083749893145386109219824813833519401504905090297062995244198622224927544164141637529112961179440542750973148815770519023378460074704509575766336478188812063854255848256623269386000243220499801863302240023192960700783028164277353119615500914108097666057499622299278918806537846769852930120699386327754515522008430622517608672491900784642892880188445729450369012760261342027555854489375038784634930891346071773986292988272676105631226227856640022194161964179312558227835465615847924634983066740353310903436287996376081253575109847043706561511587662861544547262183962033888779883536138664293408926038193469694753702396749662173618763127934020020216341376167247103960302808022683972352060729667995298502327860881588495595209943975659984634606191532523246782342704246157425661767275676586526033025555680787426345109264085076082123525174163974524954344649548366288734220771255638878558151575106416388667911898613320341175286679163550404477041932260097549936194270972444524233448808494143341378905671921172249001018066219043845409093167912816010942855169932779986939786144420734284535370053843757506334497055219593586562100524588907093358648065507205310410899298086164933971342945324472918647842781651275411816444693764051138198025154579214416691036686132715282360831286322951729798360875077197039882076031323263169133771850464845530336474523745229829293985140491397520507796460615335529559621068504105370281622871839813109567884535484317239288309421186112620632343251500677864011289099910373796547985384600967372039641697253136478227933345693436881119686992746097491194874733142688187891604746605696441589304810820405134097085555201766399854053071973147007335036395933942989860132316074921610295969895420482466641154029392454674037760224039859708271811221715505307039560454694371429989135474132674848739693185178905074665039868616860006200352928690665712171281391797864715718751908611453303186670044597288114756052223054451869590650216654718757082205527818783497913682212183561697935884794846916920401694798020068916730082463968653339773306087584740106633481066337389942759431922782766096228168841956221409851629846924301501466206064859445732771480987048222689187326056806273526533765206923336854122256231364504799624706909740599491158350497859945179880023588214319999821199220481779351331175342391039182859161928902243163319953714611572709203810452495299899888437044238602990648795284653936434804237948201089952414142407488419489628655181917842688506661226368041310450063778153890827090362364399416966952681416654016232193819470657966488071550751930671563961630087842074039214407852095388783881008223467295987722876840048426804714930904420294651608952111106966357465854143821041484546902475385893730370892147033576909360964475346398801144395701722237143767503659826933168681421508175885869968321162076411292285924644132321382175268045753683047644123319634087542642229332988423311063829037243624796370573019693276669685771237973666761659895614202321991760548075917923343766422024978207468288939381173958122233076126629811468155629353051925002823702667442483463919919758481462839292119612745118114078997133976634094016406772097467202962692098673234512487869174513242627190365364244541179128946827722865522886502009678908672501335522695171961171788046318816807045208213893845242436712890682825968308200404944067579006085310951673006938775690248931597141785549036966353091070428773947352357792594389701102156622200098076784127223810083529758831540586544325014211461050678591573929286663974606964312012102644775944216094397700514167556174171120732074792584880275368454395205814148947345385097387641751598250496393110381643255612972826520447436247813303114874072169396919237024502391106867549941396264353623507230332894613967612851985130760755628762651543257958605646752973979760887449446986789576753222469273769117473025281947960248240958211893704265178916244120194107274482603848677446260841035781107703175274521951527486661981393423226502595167681376480433643974876899669369303756016109845718647487316221141496106277783126144946287722765451810707879297200117948757531920374360171729127975670898829792593362169679488218999092831601062281202513201208930705703824622863898465128648844578060582311207456924763629877416698916090417481278141857869531013356657092421169721092127855452228887366852947627053434513224071687373919691021389298931885336134187098425131999723715240052564177229644498234805499518345048551851877031385384158254668465644319139781462972321571915100656228692398372404422096996592060684283820287954818562061705636245187132781720719182292466409405866615307762352536161352163017344792606257860753807482133440166908970370447839137075457864349019083407750624932624237077143894949742886500496218820033623282524138334647561337080122452421434240176285292050908085478311555267701449869931429873758721519020083599732434475446362300240600992596134727596512501893560616578629796827432902098246600069274091918709945188941577888230321542822579186383718542348444471386467110187780386740312410828120518838234523474694180595652113855633651180144721105741753161046036018075550504217554075479933786138971808760057380002731542470801040926624792960394571509057445916254800021846969448707342295108720335483993306767830707792956118001808606129614101997940387793740140056457970711616460269431617396052366135815647464429851043329187376043152868806439490693479430120253542269851827504469945181833558234845818578845253694526642935972615586404432551891868485628806025495230504071792824379300164223450647750917828782152268040911377191948566037870343598974851374627715293058534710937252912927734628582928751997868860326925704330222829903742248353757084535771466601807217375235718058099564250597807274099291119326642194918494269445325666437477255266951174340276701846319879311593809030407582613136839672247110203956195677100656471991887318410990646368130157517242647304148841425810721421291275450212249899974161457893659494607311395899001819592708014524855485991862840253308262512783065444959413800066525494230251463247009534602286906950217796898578477927914980874364019080564547984295006293546222989579086956883564323296700334308359058416772022145307255304339987358620098822784357924108948521897860434954675621984738161955815831294476963555022322305307866496711291313953724136051688689898202017896039654842345827340822800994192038066614848379933199525308144183951393683623694887027082776040297567136563825551747135330087082627279532175780345148312502397627657405273699713519527902678652373911338569657556366952494193478462790171890127541790040551387428149853490914555151762092761387267281089343102888424510045150821618796733819624084486865928142521854520464361978026783994072578993046927800936273369270918547017613701944562498551078271372810943005219839000571243345165330134972372738150634196228144672495024981140598094504921866911579975665794932367665022772542620044236190560060583814140297971271392250507346181749553285376906927268348994792011241719568290216111677894236247800062635687725031823556641749379988485820157004845097742906624047840337089586143771973898400319212164866352426005654716415718845440465219271827368622189871780555008939291290850036482283668177424385933044118870231709823552568349851361056701511423325873416404565464242024170901847801750724442161464913500950432973202411890804484768210472077207360768402723621841423167614444430002496411545904116549145632095413333458781024283124360639901928792631414849909983129945816121088980724198624355753458567178082566502441481798865933894797204027314626819846051444616714936898180512236829200859584162727665615448467279347518143655555380106258955304703818428915072707637154012875403910292412348385902061194583859410551669599811072753099445920781785505413468184982435184319348434049181140386712885529491518731307262228294661951828454578178922014078791994284309276216693121489807290014267856658356245472098780691067192586050894195500101351423513251091382373347594990864985536958555125742119375026901999765115890532107592602964267931894348305701855378855129058607908933354725433854265562327027220449837535249626474396936080965645728086017516737332151560282941200677019924337207948456937512591000711161910618264064973174598080267312999829507213212385622036399400049460640646215023383450080621921459539222312952289948422445643945104158210926518633856930011511388212802431285548978643250975588900477921480082544421038178190533482427774854782944131208374452957673475299625565418668646128721850214253424300176390473364143396192061878167651051722712918350454918921656281243934988254244438605969473704796080352475541627859329870295127366126617690163327753231306849295725762153219088984529477283147151777304580989725707543135817304351447175120315031085104262532305246219252444317124560621294950882427292134132845241313830611382731605021215916576070840715149817976316111918580836778204734521334408021531335703665663715092199738998104787064313412779818863380328030695453515789450618960484209131996715369491882069682203847191111773160175623607005843942756066705047483703950224872919671555551134447461756912373468662343000400127811800687291988444518338106454786370555043422276020530503789776556129456208469039014262525840802227016849251680095568694518349376411924701051388354814956383043684481376158970219259564897806333864601075019758513474954678679353300210947119184691362990499843165528951078275007408775621122407570112403237654642357980428494321301969394770221088063282919586663519319986347101366877247385678591912520883553982763935963924489421776543156359129900516661019400657699944761479264703510020755801998561046536691372667105609299491656070199058790932837359046985556587814364036901348514956605386277551008435313618532641261496475116849217275620541951202927077988685888340242758724669318905499142046938851411214294059527901791165098821078356656891432057697493140980319789966867929603307398848215195555411983590402978582871466800932589654134062821866785322062325870968247341891667706741122112637318191090098193441122361350504626053386898518365060728451371666342181892133364071001122308199470824315646167552533853577610769392567798995314581846628734457258151240264368206518783591784021637830987851655360856525489869047585161770345690924418649942149888546327363771460550685096996158320483926358054880176516198147715677658352504094029918393109447648272240229536132884168963945535401589701691258091663295884854656785421201177212970776748802963813680741172501881200290684863268869245538572931719014799987767899196170100669536328969156414795914931316251179956921816171880461868419159135280706397297288317007572988543856337840108805727410801896234147500187686951225067252460555558595249713488128247381941620578942632194559089880722353252747819876016180052934619653536864383322336871177178450261557307577872659600831913267867226950863972128825484354927661230261813215786421518634141191360503046952467004188429907109892235169849071547305176711126238505962817332251313471626029436091352434634439051699219477053082214508235296558779253208128158961650789948662592762778841038104499185090324617686836988532834903737041252847043660980241695427717379314287373932605123105353137721422684920802826341341265035996586060562880869387589561737773061664097640539601251223261035157504021623313502913650443985552644371617634680440846867589913135071769355114996866625684480933582096250623531706895653662887418714751232678067946331440844212714895358097955619230448823288186464308405203510380956050893419112440596471311080974497183909130671709675632517944266490337271270104633019332842612322187235852162526878342675998062291211912280175680654448979617556326155258199705554501818965546976524718917443023304025378748475036131141235244977840242986570967899342048409342112634142375047110205761441103539537780060105511610074466830055159904065249770073412174351740787765214240094053377877562982524306995444097077643384002522268791750640199722134674299347363569947369158492004339302459073765795279183857506987025111122632096086422966467340103801093589148547429428985139177344877421737993976246474794120177341916956012031597925423560056407984958190602471502441557039250593004394432439869073073082320397704933494313345354750080182474554800413522980983290123064477017240058156779273343898955759232979588022953521608818776778364663998661833696455529348047226247875208793139813657871572650829155044731551280827071429243266928536008284719488933204930841402713599567151717059449069594465784988168550583056940962558349567256505684101468884464276601110988183401724054553191419412714712177652657151262833334621110018673072282631562880351453316198855990420443870267184810994426889663865113918870600504685855123803463749110694605351260956843091614491019802605042248149716122873640670567935817074974584361500119787935510333676670936304095457008561771991993482218459313129795906728926524085198945806065131554087689197599587308403307796517831165230675284983737604630455773221660796625659937224687957934043586498496970688433569240644699422541084441415002503746515196967978174873143878751403895577827159164444680632644541232803632931545940092115868392365811308026063038902842440952540724974322230981385076229606773859767353985901596899055872892243810223118746420413913239724327166351663766931561687129437109458970683454425311404214787157884930054131221651929471557351627277552392637234647875161986349797944148028138182972695169603659390938840525240313303858435809568293810265995405643419780560114146022771591524996432356327345493101779384425865119916811621001608553329315363022333428934632355451284311745978116283188544141468679470620750223592631219908748758356743663857941169202697910593915718472708539360437433329869380209717447334774523255539523443526714738020755354262913395593200495614120386212636828517069868921997333432943597851569985677487247663822316085060558001632815513729435450477895146013714585357598718344139234161392472433737402788557687227703835455722890766383886530792218935165436458458077166998233462279756583471625141156468388636729704487365230187287911277970517246612861723270202229050298102765967942325582297918889800568761232789847199113833222412178308663517439602770574481560537321119593522467811035405187835789894963999043529248447940314131948341328952587469998889787664378718784619245809482592985749798282943225797360828930761048527945202981736675921067974669341697070710813925169357101141199509811234643227049131915410389017166890270774518617506492591277455405844071255983054424782969394367297035359564164138848350410519893677733735459708133280449655326460669790913453362850136778618939985875152302371157558471256286210197788785475867843724719669644392328503682453714543753531553855614341480069768892075561298907176155871699860810460768853709965555246591041654314516559413267117982343894212418030810008505573150200500829586375578075284937136374653330715065025301533678107041142741641195060295341740385013054916474624149910589469406785419908631070527256139437390697538960997948356047206241060239427680724389815794809483582939204277903029812423751977570817253690185084429090378014325651439178089479964211371601918442600575589787894022895359954577498890216058675142078019699756071932612620989868094016593960327612713476073136756449385874677703445990840892671329319328903878387190224310380586246567466665336258553652293296354475213476185838260582904764369176430001730917889103824940575640118457438311314599677931719310178114430284944133971711913922214136121229131415234107748032382994432785221177420469257424006167390057198157737320376211760545677192736344244112319962614183391560184983058173226595822589687288116227462608934591151475132278461634469634848322398802481237455380180130949493148049567347418549614424786045814603954524111525261471831567896525329038097626526463288837242073690333476944574784408117473264450176562370582336086528499899714798571703535914734095015973696945628396804858560716321594662425361074607290968403170620207011082848663321217215137526386363396458580352020031432573872462631242117693690668432337460710760948361010516931926236795813732961855032513306102663943861652102751586896402321028962281796395911832066630661456538376459502140475645766718475666952759659344663247189151984607080914037680498752272114542863431978882240713797284427024558693897317729984274404001308058421012528198713704562646519095970078403863793193543519478636772319148540684601992728909476942320301538588972488006679449360653059628717956048369433304317488195441103681119324967176058373535506255820852404989182634025289772312887184417062775040325395006909278972677980580094114881472928246896528147322624002241527847433445014549143051403314055123758899342883520565268884467508042528830259836084322878474284724282549609564544267544567438331449061008409650733012162425761789047036180809875437679570298569278843555999913469656384185565748057212111563666462510573222038200297994279105735959900172398976563880131381271817276232468912467333073998795018814415198896479770066176433648476310367680959336541447694504916051386402193488357353103017290395264340449023117316415704447354074300233152161552013342257196723937380464461938728707995381282636903626980453192375406026730988406220079994014210645544839197086559782982436822690830887029124803220259165892018237345496410233440504662370912731892423235638585815041593113155079832901399116504992482102585461706642044420494488695222166782693759805253927810258919994124018003171227423488880464700264732898541891011313454762285481885240568861476300047073258218517765809532327503087466416794083885091693542806645869911471576096507593296178636848557021772311892734197995343447077874982341832891361085432412067607614893872376250877852390670075697926715895246846912538097918527353547134487836099658715887530544247212905916096919281714105536072609326450653534526353660024179744875482553068305075230400831238801644956405731185176770187148379759217342833902638038226856242605788831278714989487843880037519178685768021816287503860536631350471254718034803295995617863491334347615568679158738452140924132497764600069022928067559002389702394889563436997620832286301070163021916471119645836388702941620586642356901382007067264477730869102763548055509148414414508629464219930148218471443784976454178341804304130511114634940504714911713221425351596731370388879393119330187217398901183266360878420095131152935387087561878525078941201090855824580680622526759314087634967906624621074205135112048646264929471516443475943539902293229633473901427701448201187964338431193504118092899834248272772684814650257143288568810607277964930489458757042825311436015015149345195845343628812955944700586098715064882413867727000695184126366070108738138662015352562440469434511975839217842847773061015939397749095216781355271132744363628152313587701020873537234228884057023274349183571258692264595990673661604017145933446682818781605841116642577099893626911081173393724167510867538485124998625012783650012517792410838733965364900440848207034402565451927748344230235755069777306167865733187673358804075485496568471385025382593895610648690193525745280118188156049675934238592866494385421177621255011992575044110735788423564362191528951885152531582042776660153489580091302518453775645053951100191531258041896912430705331046940675069929174793622951380917837932405651306402205871801707816326282575186023282139663469527242865423965002951358443716293279264011517742384138848585319060669201752106671677623125347764850092963778052702717902190146640102266785920960967859232978186847880072920239388898586548595051710282145539618586913377761188734980884373352151154574367130879141097502945062611982966580645400042395270538930674971421502971985107524420020600869337538302202204797008228853603509891920524899229521399456771181920561079577662189334780582606117687695617705503010751509753285283770118397331448706212975882345114423610624628706153456017490357078904615611277419139763384906705364646357096438719494238023449254859706431613737147640654894304189242583871465755170373611123682769307217547959518576999366934215775364215189931165281764548320867301181128314456602903677194005570496666891809081573810361871196119807016909070739603443583542298423842638644390448708472118318926040087893864082330878547051695923777165646914959447326870367944588245697157876866045186148623534725870685525480659084610703647131012159101214227618959500425962118124871588702305525942320118642989622028965301120637761807481208526760913592573893035925272312051114869681789179191751024351886625013420166012462010868007140874750140359913388123642408979392465904334578427177476143060855971494872660342868027698663890833363413220967368256419436198877152728574626051480023439675928262589642116309950920629896935647264672249927498814370430682019439742814572064589180210494686222348728539946824845171628103260318909212963889088372785750657605403722998626671487076786169064807182793834441246912951285321313330954306204744578827246545043148825262112359242237221482800392506463146076831278151833534470173147483020981943466880255448785226721966645211724458024096880592858852022508157902031104216381686618009240639915180252776459961052109443157571905452607338535453281773740402234523637638107338590804467595285041239732113567255325030625753781694464499009585551618287987752949404594851780605819207181375843684273698785531745332857536228115720500048022178990905871945887031911006884246336067797260698997763426543120305567376848235760931523772834820017835795862787700814005058868279301505467788213400383264749778798771691930075669078335490479589959660951769724512503817181294477198110898807908785191153736603668796070851701964485886217783133449820910648880428725575597177633153542700748746975774059208311079014321548160743543628081683499861656163466445522010914914316928336636052031813771594044420938392218241891936226688106662030494459082334328652148934673223038003083394290625585536686345187067094206877178423783761822774568901939028135373123430899139868335566184464560262895540569287443622989409792958028834524395418941503421906431544015631904317551646432359658693181277164862067451775211018774855294558938095866906009160614519407743497001313766255678462512739406028482130972137209829786146081847888515376597890926009369716171407713206815029876737219764222842788727297243875055590346866876874393038677536322193664109693548828907335822253899524637206568703336490127382483676398513538130114491270730125502667368244335064229769931930265441523097231770413658946371896607804781817492388413204006868019349297702643796765246777055200440253591081114459005246111394713823568347078407900480953866550230177551937446015206886660716098696769415807677327346347133015290516507911819736602559313666402955280366510373463338395862039337095037896045098478700091898513991596625027462794696496190396441608530250876615684951841831610107639613735862650842547628419277616572688849304861665811600919319186765075866599787017539279368127951961916182913060599653959112830129113714058449285720211058035233559472701123565413186249056677183298743776061227274301458103299412223315011815482237025105942943350563661578921333506900701340621021883971675521459931389888931505292939344688038054688614739724897068071235717213941788302342773451959935471594280891375524638009024169656587468289279038797436220786987883589893394557972185649271640779395116394470538989122367284292461796254904146556882290293447061555520139014345792451511244879557506908148924966474918183342420016300339259248682895900110482396025290214787032992710685875364594265653221651248090432457861915752568229188784838490832465698724019848616894076443479192578441892609938509932406977734673397879227142470504984156838643745549308012895221311950742447396404795944794887379522194077870000855513149465238395595703291112224478315395598773408050314362898212026553647071514629637915098692484918332545792641336656931717675915248177454893948352737843548573440479322146518547985755371726132202749792316285943256075765187754183707595471736014173988175106220400101035376321589385486603298738934806762058336616474065606013909556326452722600999082883815873509160651477358171329616619737110111003170391522306543046892284152275542600020266289924822036206746428453552386825195183286170090553358671005488498662762600118182800251006527125893264611351972004546707390936402566151313049492678359068704012637585740207923240908459950804023240542814179217506790322131802805789280589791932829710469923648735711735844017179802186672742073589365090760864823976503679431006556862193141729022475202573855386971891609045949069464824653400658803774673996301870969093485604989097557431869672693696191588806082465907813810457536745260549686786187080738491489837020536912764552813309569463551685782742247479395536550888460954877577583779132636025484869627983232866983772585325178373240756610678798650148251186364197387927426911182895473584420815487602349103301381411165218782366757541490487181473351948015889052536512084104611140383023837481539715416532769267579081521607240717223579506709743608883100622122709882644848672325339068600253000976220451788532697788184021844648262749926561549997269936094077466149847137763560272624658679931370104827901619792626564081533007786566892751056764943555530787759792953442043157090932419792546548291010507537305955948004269747555516963002369298125328389275627726853968838985856489742026530020835012086614436996161622874329215567138647550097928521374249864798418643980179222438750268677227786491779231857091471411028113118304606357704060691079885957016329460778967122141789675530861982546136093058096969751514121526211204910980535784346632520852029029423196707841979627266484060667403680246548137428620135919792056893556672578294532709266527152420662773151468996551529358877033301348896624027655258702714826842704725339305967856376360907058612839313655251287980973206813993995384220483015276051661567895691463015335054177141094962223776092848428938596286407574480871540704666655825702339370959236601677433525799881429190746049275498697920350908612012572705740386757996502481872855415694825456136180349275656214980840906115429673742793837853691210606456660526498028871040877566205014118794116878602913955434435920709532857110883816740671318791187166886449360492431968165974314597820161945049819721818383324734398952353493061726992328366906150872476437618393054765692839500848593532001841768286546819951376918729571402127251293038970590343480168082443796745882567904116552595242893354594804951185422788345302659746453822592872814614791024761836000742494039356639797356111540920952034699181790732958403810217164996518457360464176671082495416283147422963119955401441253361929284791391235693009168743555065714362538579864689873369379825001266456191341430549469094281432417625808575444787869258609620418942506060105493456580527986963169338314210895999555338807026660704786685914880886458879639408943668148780471372881362590825290673585235709820004785363435796822132140870261558223911738203297559490915734654244891035861496700226293931148038069600278949945554745277447824690183761623228226890832719475336878938259741779289142967007914671720787579132995274737216998958613502892577535538509249836236266131919116305863160557971696625607642725468637839199776113279640747992707861921958300604792096005710123807735884006338331765221923216685368304052016744980162630566102442916085607151384207558213491635132374506301937573516067358967396339481973184083193467828263243515078158928587032111142662000674157538815256978409080001334613033590539740716382557232159395577842046609038085152773940653079079825072481785798339166070972035733325341668815981236102581148443643971275505081354864276569218531447978914278689845537170678316348873987953504630097569463258438867193728083960185582550600487408628214898642742040982719343788658190033378144083448429673592347869706325746961333672888764822516826717952095433295042920713937019040997843317511751362230173050618589049487881968528915021165204372343087481301835130652872278473904862366435871433220221208770841014483162212264195146076469962332824911570414635946911974920049268169485038835509321157943544614742792417783504857204416728997396048632604576666703069834182238702637014609630735087183657147216296365864708136711342219989367935548366356710878261357559582465504376879573418621292254970591310525491204954671408902743533989912304914636944364146044998306630470347658076915182215686209600002588746528271251221707823683461954151846932697139319524031037676892065364501104850621762696957505507459153805247717817010531456628580384262500520681025086676281046225646435202729444653748917880285267730182416441918278649985154260431241479285338572923377130863133981865903783342515243482205915182073640708020864362847278037709993460858928663910048632388877065275609434904897312157340608483034163563507446263220778268920277865773009046539994611641059915687442355630717005874378820037194926627983313355718758916507437870881727698779802243738783739627147314639684880268903756921840215391590434438376861512050394241250932229695239979874110018223799857716800978490312313106711733557602381282174182951973376950867175601518028043765997508624629659153534061953117797724686194403121244081858552284720634084839133915319291905091774526567647824239646920169399807239893563075279949885665918417242304140055654349805581256646237206444386914270591956982941589104031941475089735424027644726472797565124055173897988251604101727949106524379896249634598312117747531456764001612698399492273628099148486961657392801185694770225295489211865220532357392387773636274361362751896369383100251054492220098798157502893396342262874704643369552233467878730844052643577033194530602825002912203843011278227704597641419484471543502406390445612952996935744637221170975093745189028258535417233223798482264326151623863400708919620902533398309531369482162440057057880171205767696944070837185935548871728737788394799175170101308635155140158385586880361517715813678944984979348896398942695215788342357125960619664526416350651137565892582145093851761328156238531673369398259146442032190687535030873537601940349131141573857727600006240503694971422768286330194686541842336230141680903408434418218661564786467161489969486522652811335065349278276702139412187937412242106619266200791160781673596466036676390820847164040100036255811108145310541730776877996456270982879023311812647830581635182973695261752869982485438213675072297883944742815276824550785591996763017230229018507243519078395432523605692569640528190171648091473437901577349306655028257479979679669963590703523537126015701424444003865752877796673557400188212767296293350117862007882747968402035630959350278362169096960211309516326757519108258824651140979060138807956484009241042987799028509784828183027501489827543312961494743262062755341560481522844355225385988317153976464467073466606355136683285753318968912921413178134662568446690729890152760592169033898985568096493071076701864019987781229602885059730325452491230280055558657076049280481573214641580436282841192510933143096202660061432447646256969929872518605089497641411650926774333465706562540465052694760726752218286045977002315754037111453589876609336057545975699026968549794165930731494364416576873462579467354370271527566456571601514722223109410735102909262613520643733556009987574212340232696219594249843433938422688872972191821878646005967111247824650969652803522854471007221605126078531502618546184814747524710646818115916642252388408143192168483903412864481870246452896769317440599420101523064039121024096316521409203784935043844454785655176200763264403685019315117273522212859625884835354939004361666582504490435767063005317169678703700053123646461400127074360636414902060773091337127334948208530775735434177080935505093567796916710308368476892269915739926186406997309429688757506269076281066049916818003066048878444355561721374170178186858676173213382068829551253302047044081016758770109797523684133796554876792379204423909354366916742003049505249700522701658214064968697571672429386551538517800209320508671563131521131350988715800785141308507616424398051626716174645701318125190285893930757945512657920815080332526252073621497056081476840195585396716254019551375330002092196660029220383688861312595577864711533798312558495351524099216454650360160999076956274465188441855268363012491309292452974618707598606071381322950933952965036588155888632579799712160042450329488525806509231214456475266926644186148015587683750694162820573488285183928839623096263711971635224325077142731192253274358361664844593138966195499416589135344800841008941677488808468021870672764318605522574315288995292144391432861418725230900380467460813921684499793441783271386917791586191460247720174916940132905771243217903223944529196277357189873692310403388603102501157204911045822507754296335077469695052049273320973691153788295678587275306675991615181485946097751611268755289589464428843113793079261611605366824088081321989701769087562467239550667410457615326844145018951073462138344989033231785588414710134233270943884849977565601685586677172916879631883045959043011541642894196132101174659417663959940070718481013155879460999906171324889044874119023328323879198390488040343743518701875560362666680609033009204398864974214727360703492532567658859088120659774843641886804388701637286530869925735294002415904930373919594564123985320283193717326278000784608855499117373751756978794426730138412663576822020387992373638014936415532226033928689680690167235349293145534175462146287538785715330862854601185705751390747008026824180031604739746179937408128959806356904701869235497220933970473662118351615442290435553962488964656644449566949979616667672739157345977225780937484795584405047512172884273699886303819645720577733451383227546136654222540548048429633510596310804035132263986448087333792665628921107714386776342773465473345702677347055665109300431002564724047028485703825255543203240022075260585412948719202833737099257095881730637594862132042511915112396117781734707383182126849200303272775326340342620262449683164818219024007323923875358281433120977981818035544478777965043579679731255957153675836390498162613069915953209506130932785564233068678677407049486021485624416487488736885922238199753779897402455719806473993678607385674424580396516771243452638506656024558179592778913648316670039093508250530031806991563992640145772681195845637708206216659127541347606983472884287833194548068730359914791922434346144535911692394782760862529834419788702262714879851818481476377766966142775524296446108010268630199567974743218552912248961742776481495623637452323680641599301006668113008718425304310698373218036140509280833174385008590592032926170785927782562030404655914049693583594686969723316612613116278859010236996675155385285132044138193703011708925268625919906151141088604282986889004638512526805397144499733503533915518238343445277871364080309921821003884991506445317597409306672600664999127353527175741698127290161134180916945626363824193192872583872517944415620872760456507613777776618820467894613657407372279375799671558230854110470213496505903425427270797319524490410124189522744711792979400178122981266497723166561830829466593152762869530127462729538855140989845417643882633844688071618676185240559926604923431814297620256360452591407122382222288157236587932884859263104394261629888050710804387181942630015100732133287694828348706856246874402224538828964590303234162702090605795258889111903455365206269105221422042049852103315112305943017059535594914204572728166527349962632473230956845572485501306538119001802702788317132209381940526176946364001092075208836403362881982080173149942739065609519697804457025828992063029566234783658379299017115782595108432993499605950786891198119863673429479613859707398859577340495022668719298397144386636482505496461059230881762452412677818095695522791142574373092401280219255144882339856727039269487024808981604987203261117190601132689902834726854648100604412654633144148689127555097362634504705735803029340305093644654554453609109891089729700992256376468968164009725086237965568116211233527873652390658272587399638350856762068067544365786458155866779727457297426320288568218621828469217914430613718447559003648948494230157829791129044506218063877139926552180177279505527947150835007913418714430132871814490011253934057105972640453243533477115712289869736134487352183640719794644785477122103073967247550483267768409005744078825761885227769626393101818119384330088528679582212428725216846821495739816318486533926710563374062899846283035489309616386344385286847758850762147431359590353296920303438483428819598499574348821758000745048856534027222714788468281900194221680350257772119607644311957907106233469094370872896799210120339143667194583997273016838805562320050160418949265957662170829868031727560938794023911435211641951823474723622876085556875264047373710577218066262307630978480150209226183727325126628311831498251463105266727211884039813483536817449665818420527372369503206371635432178246445375972813281445899282315645464659687388733386247250284089251828436260666945674942012746563638200783182918617901447091921103650894078074078808485719715717678443615005760537327586636764519404267172477382243854005686492119648489366627868612082153076462820307199355039530533746237945578586458543809056750950679098364860287009638081579169459862824342951744536634054701832966305654972407068300690177746281222688139981826089415903722828797534533616810372206800726968083948518417952735069081192497499958829055333718219989938438114748057685816358484473265803607765503349309022035957623761937173343087180839106805946536112610377478949734260965351550289241757303181556473518105488776529525270065432240197182271383857024962421259953694938259610877796955892205721268628156291813727909074188118364547398246646110463670622825590634010899428942912302792197267501014420228609713134686325905494740676328105296755301114721456797442319361073779914814289363373765927255276201937446434292688368594271982422184003194772603493037134130389038386450904966898041553226551746864093574782641999397561148677840285063385518674720942890583338070165667294083173215936372003683820549874858917094948264953921685944852038217427222733559316866253015453224816857476536339367054360591599710124528561116330399985659439205335421121268392242505184191312500146437822900700086723558240652653138816249927672854354324078719718788718324574280772182633962775654126079085229876613986777242761004423679712623282846273209633199398400011654462347547031104932247142009838273842766204722920943567123523548162177643216291436982475293369204223214048510274251649822169762415017367524880665111386513226268596182794921755080264517981362322656779312568637882807252693983954389668755255884360794561242351437673270492630696594251779290378226819856099643332912325993488703069693431731921531843747737949343906746565558580589440751681822736434510053121649070516340230046437152345948903349556851119266541098838621857394312639618245362056885752136551361384874547749089448378278804372138592655246038465491664262594423597206800362734401331539336681352045369081282385246991259102279844607857464518171782050976138973701933225767158166267327780570927786544785768991126361718126740666673837646373552654582774954126842766904241476961422085070767921529426639871235731335971153739205989253580021169274462762048778362805894274849585069737549946079422722349730244036021429858055630505538198872563986608509143912616283777541723977951662012921133572399100329426143114222355310740252340533202473877358812487575700956125419518106263291247817102533370540406734546182200021512251614815294653864477083600009259398267761349829917386268685745750774601666598073182778621959665544573953507298403350147218544093370338332966739187530401659758696250653277646559708179553560720941141005670646882535054638769964275457856091146173206099969355495381788819942960081277703893216385917658250640426641146868098209800306120343021974693296469281946852146990405801145952419107144835078647524386082262341325919586006171807874221324825463141360803317847017455461882679531984458543713379056222018440955787935448481188277871880957732933978206227844616606174059875381688589737741570786890536053144603322990810021365337160008556856115243141824267100429312247450109871090687324809424114001619948816484644200771742984775550821790822974472080351391704655551127046349153148979016281452224492841296255156230747535625882543150368170158352997719258972376901145317748825030106471808442664054846999055684112983624170492422592141917163708530779335574779535814602905352419304213704870545350618271985316658100938335694023058835822157662257019168322968079414530916937504723137966720767507747863158427830011682206228925434910783832697872536763945130690853563121490995285992044547532710584197990892342327850662884633593961787575578986781645669682236622927651217179723764243141906158791038933182206315612559037656800187881240779329210465234848158739841841260078653265320469564318538889735404433621233578350470357753807535216217800364750459169515931315675944296532846500756993200947535252446484475509713255713992672020968650562843589170712115084409526930206194317708573464270593592558267259397704499549623004815746883086940325809091054284152128928248114943966813673337701951369220992635517565937947724479590395948095311676542539843347151214724867588930910625012449571288960025269477002991274319825348529301603413672272904722004077969961274187467456691377698997288924747801336214136006449317916219686150062953743510756123473848955755092867188777131918433735715174238920223090340281171772306643437119439233866589684463015714624978207963095903374089688385045929294371185992307030886180238181894805844125380592892529343925985257689264052420678294757929439268755977548359840569540848826383773997772637028712198242621508020235350660582877316403937241791147273161796108948995667782582229847790790150336743107524348012756019650081455551495092100982702766663967891860408734103544083504460312494886107439300108962683264391478972378766128347300200129606742177809960433838195361375524623906387251296803130203994516150283855463931751744509641906676464497846866710205997417109661621172743889836856221037612930978970032851818551648969779137987017924426711932149305305437348924398807778229838750191040005306740597031521345868821298851388680608158383444624172438509501639842590739295081958574297101835152023565894799224149932320326305093366384335634428204297406076262069687954595436596752206907154292388242487550854918375323162955579426200204197849396135902726893001289212821078031127449395283538126929234335565842096707513129117892410911849677587775133952678536951353529828707880506223962431161871921707351618277637657288316774784333980184175744233727717970148779875845669432004217433937456851571797144359755919067945301266490192951449439284629128219859490741834554003788480007843050482456248807551150243447762481652692887494672131409837401672700041848737391156399138081917804107149076025326819976684491991961301999782276936137689248477434439199325693480523895647078815592325082534015038699882525590862879572399400166133335750325560514689893100233300066113875796712598226811043373117288866367617698870519410787712655717829828415862688753201786212096716239184768234227292016367758022075901527017589357687466680153421006908704891024307739142625470555922847127574308337495034084337886411885588920659826744198493780631611777910639845737233335342487740556877277128490928835391997150088011046190679511716423318615016084418058713479500888951405770999507215641816048265585526082625161795068053438932279685672099358515990644224113968893308217140908274443720386959851723959187224381443491917349907958965659837336132027635045336781961544312139714477216582025839673900775101525517968453252900385981339213831882827054281563127088893779284947514189733022240994670343464509196114818932505786749444894556493308770919016383563369886023936601400638708062688548113870549520967521235328513493836823582470577095281102859641601501766256603158551738566965913150698528625506748093906524851710868308035706830203892911492458670113774893011559036828202294063865336793064175422451960272976055627177685799880112592608450100258956170194363805865992774653564475904179457638712362475316400538761320772081330082155995742337813894525357132104215415759888113700924394215019031971136562622174311990463304738063064261659563826120864792931051878245195467166706119761267809148546558679413950048951453299636899769389637001037699709670995620442960625275668231746760363632985048468764109864871657499817086497092946770220125594014598343833595575485278516547578886189489817016965427770687566482461343216613312157452960031963921258050512787309440354815972864217452863637204499003019043834045176484839044989670425154560127142111822226678437774633408471231897630485726465916551809667137218313483924314495462840885794038724747993614729285629392412705744310055643523555704171240842755747876548337119160532684032958516925614024268636039315589293096974351677973808007921820889004476309132673433295111690505894747719374706828866056544154649825778300413959355306961917256449963269295480536815877493623105498581691791404554955077815396600110630864466187554144960254871659514641097856302282546557291397009746410874827713486658560159273332524636174168061402692248582466386704274668420197129756950923962985550052570248660732420831818835981868024407567305896885302220330533930399140820218957901504807643969446403946137361542757109870726792658861257292540248107781273144371698853897283671885763113070272641331816128740636096741043034517891418532799705227853036182731716227351193946185725414860032364721774196309661485199620211703321613926785116274028865401981897998697009473430776686922685736584799619216123104277889690509234993845096684768987869603577830396752411512839637337966645944008863341703820950652444791534466759097395130589152786322967090124264420286974474764894038192102057522051035454832509645990296149123656724057598000725650890264515470099658052792541809015389913342342054021813728245592943027292698160971673487144352751340239358542017115117217463115602784928679871521806467220157264889571551002843739582325582430699277157539060450147872847748088605875525467634816176155327464141360435791747961901629449388585428528339293316619869405722678006938836480430894547558266534353032355849414893844722016157927375124184440502657430508997240463533261452123875329839784144375057119805487120365209875040523322736419823594211633231590304405626417536660876970161168480253856469764319016271384546666010719391682296655204780237528637119851945878801103660486155265209386722957552886298961909654300748782258712382273545167674460363888363729667102033846188284491162669769619051866780717658362694313960567763225219789643929807172789655825705076385906201849723487641899739396339408896311942311171448734373631643376659958161812227276461384040975325547831060088154832367521419112572692121855849459257102772671334968642434429795086186942084608787203355408669618752599236504364095219032162967868261199813311553091999113104196822180851193584441645964580161160215318852514650586235564939814344460408691898308110551626928869507035331199101445361142825514587036286941470930344115134715368705835950429044854978467483448604402524361488190212464972123438021693582774130992561240336090465068966238081958040597088170493218057392215980693915648403069786104075653332401740709330924534487278896754268398427229945234999654758399088771928255585887450993417456708745625827997106896064470337250904472660355306704830968080640360738218043870756772221876965594054696903751175829333215999195687585609059577801040617124622379947428968221303803714196385680706993567992454809179723195516385251145507060390776925656889019117443135145388508914328961528874341670130814192270712361953563127326442234404412766855457417006012399472326350510798089144897201812843717900078528702744476157851605066687528128677411586095006709696376716767911929506376503974455420570123351146694496613337291061096221018050921966251889454031927613616328954325416549706013158389692007869518134223482305813514298504036847044929894678515116570740046337393009161956140454795464629802206290317710791426314156510295603740672381645280611688061604527513676937143855465717323785512059112497511707430584246938547583645687617746184109529910103194968363012259372195045051691426581583979205790135989655441605937057319566602526992135098476811702152696079767473736738022069481376439521867893470723811775651524520728981864502213361393285661047508593427671158709237006139313335315967626796389334980881021750523448560899082113624541712614157097448931075736684068595265218429915605774905636815167721762027758080349792011742559540064519900887785624429156761934831250093202436982236746130286996550366305795577072974702846257694121376861306182740286454617962566236720488235507719186967936375561452610177636395117751544671642417841941934888417083122652065456128194460770041631917333087825307434965722266278955511996989119105207993223368859161153745733738884729960871339676958228954841509843960650670047882439077840322655376840387230896297403315634028546373805954618249209113260826512809764516983963350679314002495739849406355461207751674470790199452685172660093611310508315944947766668928559998983206116107220455458276065134756934955679803611031840811919322229470738421916312405894162552390918616215336742340005654897537741292975430547775421148599527937501890709177774275900536902919758514043790240446047939185509532044199984859001323370131294075341584914630590641236846278547785548949598411854287695433584233397917019519367870201444760491489586055858483311590206540619827710397604012420594070230495246035364879608200088118161253715539878335028853078611444250419134245579965611215022206416254552272564352011602648678853416137679564675207737378971202487126793727307557736471488504024204223292084447101027639405843764719853700978327146228045068248645333921727654576980157427660320032963764911113511859297658457960311520744961692891607237116728091583311324151776705202560931771988937190469149381193484599720392605002452794298403422780671902633319183159322095308326410781892478626026505200214900389558854079634698433662947060588915120249124833348770022742791376284089295173118406592470833964338288647291835696368170757494931625261057360498871798900751737436622180555259186967868674078357666097228668435918697581552502576835691401538673108830261781384826399921541498129782726885612290700550977299080451764441579722719730732297074861308040629116387553830771026290640816255987752107440500492900404154428471231377669552644681431838141369663750643045202931118552971780904812686932513267621720805003909258117331866149788670667460301582509178398344037735364533120053566523584072381124123933741815644050067981047355294601103160638921984606683006602717681165377323032957672206520737436820318043328003573354893676570889074176607719351423375733316183530591321185184323489151871220560194823076898164672854929272864708041791592384908341463157926704043824798877268898849113321437431645795913172802859607752981860720850369726989205436461042669790346045360894793999997957752837445227411132653743848034920451614133019570997181138612596009610323607517934023753025751179595812295351430197243661390803987953803724724028046604194066576348773813072281097662596357110554565442884148207122938888679307553459695978241527390046945192195259421075961821075306616762492101305919258560487131439096270148530067609214944298925507940527352677875829849139303431444233793936992231223991021410911427134152490661065020273012447466979195491643143404517169651324919949858029629066598514979886798011368138492726751388826413020630669105131392893171646805163734835879856266054403011307635996627880877649421320103724471732701132363926179189913299251327761442023546340099102120605335246595684312946907128949234808475446139333324321963072504812474693899285064923447859491984508384606951878100398409225447860975324562985596287900320269681365636898175117375562280930197682451523428399968655092862232442976903455345761570896241638792270037184105459553475819064212729710607717898115636867402835516291332565927612245101628204109799948699788293363828714479866465080821219903413085533267880527996551935619156472585786619243487751908089731323412801058337962985853927400531825444220295605355057835788942676568480400127824643318377767926050458978652615657496652111096471823424564032712395468974846797098688649294614759254156346103244354369620612482569530615827173338554797231625918923142929512580008680544284033860006171453437469018024972179335823556922882668955783435068224634016885463599549240764671112123165304232554579468558097889505716356849605804419964308608827161095944016406052483443254421067844245587702523687177770178103113143522278538395941748272265499879382889057699379238458707687589287891706883600369961946325019939463413512496986378309650967051203276063989505616296151147061987455043893570877792947852236405464888053785278141773896029831810295005498390512130447865421264858599497416104329356851715795069804476175225319596924416364315455288511944451519799754009512314890607786363102163719511435169773810019274470549584917503555735049640116855575166370633036470508176186786982840889359044066415969869106679802160557762066836003510432398615458507546653651045217484921566826861627740360396769400189843528545949460795792976196904971675309010925905480824424828648143370024445905491282632008062542632818641733392181411798927285527261238035707762905613919884847254266237223472069040925898005666559064169930568060087496534358765679621882436294415811566558136823963112593934055035037639541728744213186999475465332985704980978691615986538003290658205498822832932277053181048946554482782736407260766735697584641566893506075323899358446228746729795229796476685024209665571528796858533763583645935325609524668476924870850224755536734534868207765659698912297574573623874773970976633120904460826079654592988217956217856815750549851953852765043931230028056436963085143033992986558463289927079953824752323230233949743366887555154041934564550542303937095869045036652408740730276881699990808914827216486163860432796388698184036901718608600248941756831135785858123542021581261414009791509077508337314400790608357528890016568854194926337461007705095539133461773922690579846725867077946818291027058103853510423668329583832225101853871944141745401439249387574324923773080994464514147476233812354531776927507211181707091770044088555977109238733302198220956806985969284078393299381558626938276269011999636347917646397539000176821267268064835722272367182371092534858135806640772146832442286834601158012040908092302058225648829548799892034975404565487478807926581489622608468538663782861391060125323785665609619413879188044811329184430654874684026885210380195193426669030485890897910385510223844942653864803294704760472671220748352342691277840272056892444070594007418180895125783791124826943482361607754172367975602225955255885870538890413736770642274051017476836270202668212575713680482504866895816860349069093459760774783011321840591684047456011710825592125454253518795036908275578009972854623104273257569491682160294430914379035798302777095370996014271494323932700819925365676050496479485434930308380494703477919684758817557091036701008292815819277401915853961280256352622791734846246835158637066741785498731934152653185929729985129129107564342375512241074479112179601357193645783056767508507977359867621832827760491510031100103738649056117694422446637411453311826667702777124259573477701867942269998799475203298915419168564426985421037263879421386216642920033618252882362564057241753879128843997657907376202585554979021649137099151910458094225692323810512766552612901672499190524272397269957283211864990639923575344517476472393654211861706930152525200213914803003794449210120348209969546058425030998172205503944095832581083786512620007699972640825150483354873462196029103922680674093853929477762205119062173018360606049220954424185986528350743765928071551555153140277554285785589014816255773592992573320673891118185313128051090860228406138686781300163933270407471603749700102741176657652383641429555966405645345039199307102429784744558621585135017347904765449146819250846465570740911781257695735282581479317651313066980486813609322168135623600170312940500199952894217019595768185509654361504241035581437672934050824836075832570149896987883982022840379044753917873420325236760376221379878813676076087500608960924918198006068484309712475264578773120538353244819309980035136120302033852783503075801921811552665192106635471033138310585167491068388100607676298076617067263350929077368456009278684539984462280199440049978950429026100475328007576999856490417301056520265345237952967214384929810394725291884913575362743045033590386413918167397968170740786653948923705908443793775397420464909823924979048249671347537917877070773313887032660537116608937630344357110619974430675594236389621028271775219624855584599236344038812167377966578127188192269055636104805492487080072365324150250554678538187060543903457621749996556749397188098920424080927153680921865676038473799323451295803585028525027389481738559976177825143419310370624883018612121482723977304405611043669619695313334656161930310669385459671251967975785542468628300834465482229162495097577602024191071120891468750293776771173478169827169849353018236514445960056523168455135818874358443464933312878084011328313506191616633971207191358688227630487178819685899210927020091381810535263334716429747690075977372014358844400866959179546148588370821919174476169500269624373168655303221662652728167599533079793657354399532084021643573359285403824068498850015301970639278061261896465727820722661034350420588974219917647432717024036338935382804533005638664537463217431712803515696024623811475219264228668901147351817341114085449169690270932221693030084767597246612319872974446912627424814036897502679366105674306785443346702051470541386002365546704511010541177621463461908385780413290603468474283340044923620839021809696868862547036215994595387757634923055539069591052283192971364725720337094060501874149075177729277059556247527294872432517918113877174354936634293664384363200290803131182988283395017128675557320795822848504266750806572939919108941301731858181596489718264344810762060519785932632273354574851005400645108624266270737971570950239574523090071503393166709077617574293042057882247309601120297274788784922657263890736475076680524788572834899074749622981587496910607078983616289720876715446387654184035380900109259358135319855254283869326025419222219829258110265871779510483188108493413012125291120283195242394857061187865757086053829370129848205049870438145280400522551135497666595976857058305896220165390540861582669737204945486013933853361148900693015433764967676195847263622219611502137996867735491125598209726691962040166224617170229202020039638962074962422772053823427239866255320634001434663233379553696647918443784972406638092086068114244768074188354580939814588215078594266832383693841174600330257201797415508381873955844251106724773809486980423508086473263717099860499662144432928163615993603535378530155983186203373270646793784959198617701484126395392133908526885899814113131381205297232453919182682856671466279566458056787952531260159407462777759003779056314199016801728637333394408486567288815429719814619385287167550080519139759922093185129440048131743859917343224498980889676000054555371976061641450148814101144652543076929104143943108126228316216266116366474994139675761243307081135306526829515293122602757538537855829906008620318902315657169786557405897261397317672976548131903132204595781106954944474246307757349741369334884941341482634679856313928707468753316522980272506557435346404460139124479257847664843093380631892347324915447733807361705573311080428491972684287625937749668483648895701945438369541874860493587787142175511014228623270115162559580251415583548234748686863591743316693012032183649229316370785807601040685496188864353206892547406051747391640380399781900512412935611714749988752354266169889479704877920119672723242444263889082039149494480886312861022320037614870107133057960124452362954394417622899501048114825165129427654033401964421711247266866707741053993093277690582057227088866087265117951532092100377313826411215205431590326123538782602834627276566043262635557364190434098314963104146543314555416335074317116875949291400899635563298447436039927765982828136610395606273748046179511232078420793467624145396924865428084656788878067538502201475258268036563452259080677397920685993977096442072048006506205408311228517651519697551497939687839659735800016493417258079720894699529559601195228963053762415198313257615041331153516649563778047782715883383653670515875254995341526183951631176710051967779760941901283028125057621143938953752690676635055535472534053537908753211763872331641872724187074737036507675402551327030536118614466648432988421848613248154882626081681769256238681115974387854887068439762165561053114839750714517559930603814257917459411246693749094328118280899392574409970081324498972778163031037537071972151238300064640908190391661646336083668699273978759165308664674529473159741455042250437400862575790889543209038112951948020360100596120079300167391752785732153092981143858630789008760888053362196887019875616894868308413344143869799088554535950602711120750660739907795691699582532117778297897312939067059508734576939395101305596729484167943302036028943355428982233190005097714188017653478497235779486813644434800282151932322135157532796894111664238940104717820167852731302046772998602978303094465791517096467987842028351150331700858747890588546299223412460620872391283979439503851794000850403029324818117965331022703378570595922210603696342754705048696874052194977305047611556033687552951206451336525287551946383978882812451542876206721895319897884775870283860128221469463881660165282003404372265544396670961942158445558827617734238504532150707544076768756002085352897677248762769398694186911785832615779300874367158997821389829380194977146593060663397409434560489883420931532846861223091565514599480511934532406974014510985137118654557981727301489752055119997126798996978968220823529694101311919710849692206238914757115569740841336933341324298931775773273645480126599658484210366975060007810715480805333408015141001428907637865017188230779312646934415242418094412034435543670603263850991113467529218779981525903234121538670332383421107909980006204009693149119592362478492173081330851489775903911671179854566297316063446863363292766006176036499393297800848793953112515349763479036184254300531189227056717311896401149570370643685155638894216606600478129791526119712257780784435971281139649503578968666443110653101961931802617218996224679212910430455416751132914034921185266588340261439771838730438613262661580244080628624452561070793405790756332180670825896579800315895884838037801457715659464484387698311564627485766735984214601568100399966854143119487711982751573803115742370457052206414702549523626212957801051719080564167673920465421624316457294005401727847095133681874604763085669314357621103346231030112323186356470427904417371904074215988145430738600026164737976725360242862641733514835387954660198106334010753550688609418489912988129389894106425614337342816127356228935427803015698278733337967986774326706118594759190724826809159066181630720510931346677520827464906696131354549524999665196388188739895341829173488604897353214289752846611608130021705447257603962768085493341063832231226456643145337932077966396386144708305325352894621903570580809556606755520236633869859133966474629485516268372191570864283133090568594152823041580520836224636085867593962574857892664851396607162644984126742815673856333053656876912388298099590347153999222134759909322711894586740210964128465568282822475843056117324050580089934036648494462893743328186187407905808419259897046553050236207090527775704157183273529176378852410950090739458399772139502922527833179069990412945993719637365160965292355119159422964660184301036759215361973971207749770191241434904497857665983557393147655672460823471057549328967279766200503234800396542100509236852459108398360836570763787128057107411969018983291293806874531576903820658592165781598915286880006694941793024781056845361652337270819780107852724204162712327457853988578622335643843672402909804215360075175856614339501711848517337291885245535603151450140172731257755158981443459001916615540762501773212990542885463902393728469324072991483511527098049678738025320702433227336155681356047560341334638880550471808169368099380282947383323883682392747103361807918940338972667354960713720335978461813647981478256947095461538303683609566005633494798711254881573085238705577019338261735304943703230129024365431362988562650337894519371944640830770789907785623170893728995526288942487411830521179955190276380809536411233576341405617342558003256182594318594477040230160093793325922610470680588862094152366733338208845507260780786850939344576896330269504677163188058885321586797460186391401747809856275614212779668590748146307575445389967896011487179810420978985541708834231553014676677790793227819220471622459645201561437811696656414776777543378057149559230479062095499124194247380614817244802846047232998493693149301821367988241165405822107282863789673447651595310532292610632767189391195589122525461606906310991419934473325301450792112573152924242172668864302286221446164930878121169891361886937143594860168423593282518355790085729152799236843192428493219604422201994847090135889875491149443270338415321709404247756166115478885097538646246290089989596520735940410010588928705674221461023778642153797089478433016157935375538218597309115128815116990188789376567542040238361244688616974416991990459841627792130034865361610697583018359572272713910372586994530888744926014551390888352494550325131858176476977180632445488322639765249632049339672619611973907119868225493719541775560277331252327850220744702154385812203227010810876986873786692241222365989782404154882168496275637922989413002714156133895216881256117966909792538529842152003752213471705835399126259318781272155981957638690709930013972290396830426577973320061086649905501043305195742804973114259489992648967126390575918386814245179992914750048533340120746719713416587144457940507374662607729002358372730914830992660350146140022804386643866585961742254111827643333929609115290866452370471484166912092848493401537005030622405311067269770297731250825597339246098349342019505451173061078714596043009957160411613759961834039098577926303425101373077006356520096666125142692555276714038548389242301256689573157858297798635076361878271880032119351815487533958712714817776190245638708105594348728908480528122102532238416541491402966840281516291398463514603041317572046595990774874321150699133434903563850698241751334811248394513843965005878551975668362143768061378377151406882998833739793880331663729338337137811081181360676366560004510537322375977914445039192114063989105422442954077876495428295986807093932525077481906516558315817899455496832025785940929881246389983234878126341346940000996344283027027640654143114835197216504292547616059834082587739643170608845146210238084733200749093321754860336970722421906920978188732467051976938793900837762545317012723405865167343596066954030999254465692831869503073034563868238855951721124445437131719460937493094696119466151525430197213323408304005266098314251023119161037222958976810103296004450023973144084547983593441292367788893616828693310629101199004167686435754937634624616684066258531058582076392755540090524337934602177501522047725369331490796265856433356360266560083900756015825860091673563903925601523637937736104279367967188695074803694405369674132997840351806156076584239941983570284277599055565673172994515170549842436000051010280305448120033406710919592607467468386785295851425021669517534708049166925280313147270918397563248267890266974583942671474126239116083218104939408301423351029525751607930572043027573928751945907633099784108212399096881885667450234326978017877803403785646252946292190639340029858108641483901234668639349634561073427381334102607995572355770740363221352832406474980743485879157275001727816507833508889988020311615761331328128462689313567175419055847778314443075517488260111814537510995417699844491067747586565763751321161956771834218919871419776131366253365841226166530440458791100366445596833067503643212402015987810635255658051603976385382937010483143745263815544174587303437105399422820939775366750709219494435107951485118078047074454639015485917813672759463911826140846059475777648548894601767480264255630276795363072194942799862051638246435832688242994580209063077921746834604894482865409385719658701410941237041553413567350869875241644068429218004800452119399392147293650128523892965735286045744257613629649210282528339371744978756798125801472693111979061871986393052616989601455658830909841210177825130883303895620573077604353581523411726323416797304544673632372138344203082430637910933548394108455023393848658421302875970375898661187897906364806705809547978244319571166830280423482879572295051136025977885339999142695565885036265116906642322150708029152107606560649934533543500876640335030656534417452149778109081164106548749259430168536968063314929129251653697990186339358557141895276310347146671680511777662044303844400148307123519786144717417514902696406526454827117729379580153571210103535227329818353732262490255066730318628400274293320951057986421005028103942301718735727052739755135424250704252870430109808118069538778042401689697863976383446642210238500921978813478816202406541422896058498602192458494922807958940869605089991344612711161124075129691589718432714531360890358283525443036062332435884079795778979145615951457000948331965289921775072568131279598185811867568974455334783185919857228833397360737903795714952491200972015816638996036744912070253446707935280704095009748899731697724005650683600544581093082830747584126243004219436536355746697075728444023196834986988365142829248085966516710400686662334274564939421223319863170994805298325973011383463893366518571721171214336461997438721576027473543587509732203096492348888145292024606914973643406917415041041963241705973408005096286504653162944181118766143771901377345515431591187589477803369376358578523285713128364085810043113892646628422796592201549733311239406823781352261633443471361838886275266546477807105893913678840333423528753555867742841574104999866176376429158414327907259394722349231212186016453967586281314454574901609338278837298292960578581537224017061732193965946469090569389474168744978628860434048115660026635354820673882816115590543973125994655265410616122220232219486941481570173293487638325057475188990354136076150529118388931318445426968572177832952906140908604001975557456233197634109246394900114274616521376713555505200011356847936659480814633967914172060619538182563548049111707736957558460328004290227762763335813813904397128564923128310187189164120041417246505156534481528016077851375935345430247742698788787087509559472912867215292486663734334719379516995097388433677034681919641764721385911843309712247583561181346645248158463647175532165619480711997106784483933190340034630155261870800486593712174417646433880589952357171537026057307270412873800077220820189901714905109648757191891156770529118395473356232859699594319396501872515205642801129566562585648193610563798880234886756080778711626550467463518969382701246363806320644144281865039124743496052003991379092077430314917352959536771158761240092764252878414853475031274832399118672069148714779521401641773086669409257217268180910948506654324426264807875547989562856055325288144826382105396591056358870992384825821929602511658859811048858756547019272886310087413456629778499432040969781622959269375855983480045755590596139379804565261235254284734149110009643165015820830731454725192686347602065598533989040965442042663039410893978561093846224364717183067316222728011259236475097300694374599018140790033274726772938517294116844504677073431993228556379901332155244885742907004446394542369632081478006230636220752984021113927106645807060450717262604146613690994133955936045042662852894335285562820892274578548263266602511407800280305232828483836019439548841448818594758384034344973333028925757739711764041664759978050756706491725686857097385749486118424673864536979068622788538073602182317428022743730106259551993194206879438283474144650248481170201426071779668403211230939974722984596229720792271462455380584611207087663615649681760981751193046932941346455886027299393562677096808849549120947246679068527106441784533425764638384392732393132594871653554135635746910520602919474129714988778414464596349460014927656119423279747995709034401139910531369815634507579861477002881649187036293859318030059272015608668351104330804314512502241406863113616450238271736229857519162850837842074438750830720263638641359801356654406753762016562689447588656975929869046352872853055055909009769264116300720361678122526534734672575369711412859791111972761810861373056272581642891556294597758348913496277244177693415908328662104578615144921929237647275553734627531031082543476732625095097307461460564601329919990435623733302110165722260615834072889986397476988641041090333086261406947150024661967274266549455266627024026862635709428452541489230571175030447330671223943478155409097780723856171834165219587981431574110833393872692906717186492436305335737883393209677857242244390207003987580797503495303578118229377590757685738414773765712736057323736555505148815017797751063777002232997482195764666671292193159976671426609403758107998838054654928270442233642253139865704539641281549342598979931938564809762784924591590176121590177540116384494300052137927292006167781043806016300668285823089531017316120282927103526879988002375057147216346904300182953778685671381211929333126606467213559598884285122128370247359349453619196499202337870799222468065276899597631731168321637185461890864464572384653776365841497456858405949052577739793479399372515349053928209082050343085681316636035123782887033978837750199027676537448217093226900971583977023027901923805113630069194573499114911673799634231415448326294636325452360332375892353975941604589112422697494783927621068440415946279710410307336306334051393153149770335698928525774033648737320473830804883816454060563843921950894057223207886562966998439288729303383895528800738964646871067289217942287828141614031799953090759150925342182545895903553431451690771386963295828655429149540139276171617057580488011981642696539611865988681640359722916187736114020315752733515019929420131378345990940759121560123444780943296008278313516659563382734297514551713709698915927432443177592719128053711507382544303954337310091779450983344305262912125259575703581501567616364074575293093370151596592061838405343462398940472379163788391914030964119596595508309773399885084746226160396512763128646241237764134166914446118454482308010984450398427330804885259356921652146433336655565302077251951564875579201545668324898540112851898872474173612996231294696632132566340433701355912782411093397743997446738295824417820962484288721096806700402137503644577977574900407321590802028177633298312914962611064872442462375580949845962429170826695000908850200051223279355801978405640387244290189554946723208213345664081175797475709057427876333471042346591858560294242085276912902979986636459344247038732529156079268327137978452567270774876988368044489922916336806852967118432677557787998266714768451614613274340779474113138580548243313578168056295450759643532252885102313899235919012267569027984602403243821491013169649536776572597968937749963286595525551157282143495914388787533993764679436906593827894934313816295715745772279538735398301010990070181442843853605541687297646729309245106363885804159170719557024049432615078357823987081302175689662648581294558871415563999602278859517032761188004891924255472402602562530730452123055295958621083813575465151802102846510536786705717648542998050726245119260094809754470592554174711803801075856563109964102523994521111072019233191005597760357856771739458062115200408648668580011866073540349853522868009480273608964293588850408704404001500011093616021052505591553398413239750427818451813526422336178594765282257265137489677465022552814267706542952218914380260688776931551929379011739107554629032388124422166963960135218520508570558240327236591743168979341529511963541518874058889690362913413237674916264780351789112546365187381683565489495186845669241176043220760199338282995811650659235171621638592001242442669874352735296995475787366005420503804704664977165669799858851056544262824594362022353531092257743223103775114169115988006700593404194298559986430424756899617967517229245979655347206188810797034027212133882655693179232409884683487476791768533073979351824224376090814200299320370876092225629531785204744469146169288743877214400900801370319022417881699368620789738157617255508623850245276885207811441277558417464889630809044285485836440120677589420282134229507495617919270616295903373156403056358244864058638348727563974304781014042178280546879599436964400406990538282354927888161431000261779342374972292890362395697562144973057293455433583935054897756454442932087343264776374097320357925129105530660817342872249477442377806367427203674257953201547226985194968467752097800466592999072484396434890795619727889621633361488661750937708617784433174853693783615262357508433492656611232519076235319875412881472145510492078928985160466506408157315556467488117023430586068330497696028720706983759188901333518899288591965579606272846345618042315933809761665369892799688169842073461365291450414519021757110914817021952864921347642205038493563181218533299130033753586067737788307453381760586638638691346545152625817824595410637537371574464929752780795812420524098007486352370579070628647852035411275023727204908805798882856441153606558987837571569096016256584337617194230958923536442793555911208024459161413398995185782793739298196578745588006766508685187627177110880739205340161108583492364380966902779685840066159462211971464117738631285203362735819185413412133862914590599067497700553618035364675368346417363841761089583347827975627164557633673881587929665177243091813357483123598562863785118343166459967490104174786607353124570483075174695733205400166508904277378419116928587683272058271169690042481025990919357931087707620411368137332929841940360066139484597632621795181083636287844987818039925564584403448319365812286084818973373799911160573263975811432220456184864426661615843443027383384008036261053492285432821907223282354046982210167040064750662247466853073387715358379343970704994917786971932561570959958983761672034245398106494914700846260479765859000273696171222908295856169120036970234305247615015877558594891883996960710405629826293508369741485662914678388711611464156016866229726982764105217440422604271980892811107324947124757721610740587083585059904963467004439891833665502115723021057786694672792905235149948796717815535017554097784368215905427195102960622077801151072653696685694916671856935719740967980735888892153494879002598211973317202185356218171096504189281968445047751250972394927176890692350028610637726671415569133758091687774793046387730444686860204578904541384473083704923321418479870011807633267744430199322225935993586027051436533235112692235365796608222583650125462799159227162278125498927965482190707511421807954791765890266424666339138430680036507624098693495345140565727994734362925966544982723965424669670615785423721614104043052165283667579472559674392058610123928254313074943292583930613136164236804816179154319424259961396690528906286572611128140988154705736716185688781195610284299925626716338200926075611984494108787839044505932589787445006116536430183534334982404425066066429919682304631752360514804000217647341579192628778070166326575502388072325002748525194837007774407015801987205538441611915717154883297861287665319249953249913230622953093536813062530212194024584091270806266677165613043436102380117070711440409958710784875196552405289373818895399179578974598430055375061545044047510699147117600619599422553636831667512716281719234782459968059471659853599127963888508198059149085034523616352959168372438162271034761411208592252413365855571908135426712465571876337503204954047713673957066685195680963820859253682316891163438336720000446771800856739255727627408752010032784537046071339375074263366400703623474644043910052626011456010421092339443510076446067484238419789574291024362360051820685969968475176710224876454761072143223252749950865261654738234679971948323389221558130760915211046761336638184518509914383184757555923764850693911444032793840927366168182898283742499163696964508655530504041388689437201195343245726009920887545951894438994944765485470620497254201919896997922509436631375841723798536635589766458704639170502412986514378227343669548598440079621632234718647911055559321965712592875696622337917966070075065939398896961880206375910525339538416634710665338369317993554395909987309344086841461435741414713185942738911279835618005031950674615260146261419360629056567770482148460570685690998965510497876327043912135674772158707271186248749804416902894259933110493723209903238675562740324158233880325712671703496769035539337799518188782262724154519073819623181161925728245407385385409348613553723426016052172293352290445945885564924044910325264971485714851874464052090184926351168537472337858342059073944152933152339769154332387438090491078612308680430004982657749526258483393325031224274434717685431218647350249805720347131865403707159052333447557693730589188852423176239075337984546372750388996575759372789585733416038911443764573814601789324764240594913940475138448183914093098065946995519288451236812035834358369526105829654629861856208578272480453218212986655882396874594991590848207233872041545492994923204259308679913887952248448391279199692821325185959719692603667750142876776460746542741991853528687053030106585993196232551120257151531556545904843589789569107951868592718352431411465955540579439276852110118917808468068213856398026880084175717789164506087964185993938171047876102730433383317296253122145980479458263491153850738649801304409503592315344399711801728985754030376430232178483792891119239591671713473221041014748170738931821872624927586437584406588120607078495487044634930113523802260771344082096724731601336772858617872769853560066607739807493598875239356342708097425232176656980386261218760200303634895841855354480496762659542970243536824064316745178179695675489118891466465698470320549273382282717365626416782785620596138275953603811297174144014133839482510296380968129795620080201820183943513350744668209169785447464089711398528008835228298957079569085582513744401291391968883574573321831884412400126618794639727189527907464466247031153774922190330080872987746071656698192008253073773569798991426365854447176579665876626382120758318553540129162071265073273683976581838082570918932064966413519808614957569602266112932733145797139094172727748030302282376043222607283748896188127272239656305018961704407532726184438360756957215323835963916348941074582345879215383332480804218873409851222280978178591222583613130905452075107443138071070015032979829070307494662679653591397412232552619802233002086830582292486318512902611604793226100796105688020556708640521961198553772663460551858250166572305781632378209018575720225104470382231412298473573489820273323453687487272638764153642596064912530676616911559925528087890590321044616914402247464749264023256671828886287521892807533776236798089917498104973264971046017831113650528845916900698658765121195280230649868511786387200545387160421237009392769901546885937459861604408079962223216393566790014144891044527247657235888755194569795114965981099865285680689630405339305495255597181221677846144635573154227059224982730884540877628762719436443360819203431662598748577909147555619638453057569500449309720551008421297758429270708418730546198989419587421704279586161170424214547590724955725596104472627379942676476856158725742289923035669574760973504727422002833384190443294032089978633225213671183506375745973479426777378157996045892550732783770677137860305911730281579098509282445758183891936910876707726285415653719738345642006012327621017571591471280343118970196382464308302352782517978933771172938130692657509370931747835442521969785832941140257373259789639000502728197850474341755776078084870185398136995286907499675291117279406701246235515390317313714988465490264955400497507755206487481410066331530620211515013093213110678141471953739018105557982544052976751593241235997431599469244257481548745462352221045877318124502999569980038854735927084635991297864457441037890269507908921522868772190928586111527284023536217963867884066726627352211944114969349919111337010945482828662234267449144205865196699936630578380313068737422637918108207118091438930824235897330168282630370967420453711650083167672545935656128855387801943021650174646590808100779509019553556033842034403478798797135604626634346394842539677733588933519522875732045860482012326333150056909106910814685712389338721494012335982636251004385366275102327290292097117254988718303346513210850637216615780444797924060430885030941662935256891402430162730709624594904457220779375009499303637042333689807751206089421043069015235442436292839911875814560631084292746895777581495011132828770347900644233856203196342669138253931955769998479713746206172789709632166871082915191133806653757803535207592660988954860317326538883036329541792247810540426863858335433654792475655689251530585296987933486493335643251981008084742995052452197646996172467101262993679279345150487824447475348050635344181643907135818572576415383327588885482128413851899056981360279062239600008772436411818194377175661319832638892301938642961490918850596887786101840499703693687676129731529292359674230561745650607060058728410972803341666745969109389953356560334403330761067941636982053205952945630822130234179673460875738537557407001526950008970957184461900576428531085721072091392956765231831183981412614192977517131058382830233676911888745660688800416386383357725530078890440116808718629816202624983008210826194589867463175892780224879873523702908800255780941430153831302514160925357207702001720976352407771209882674589600361705030885559738492362256476646692774747896319463797504638069685610146762494345863501207690693749933016453251720804889157915827570288731445738601534296797901004060112768397644119751332943550270533909065775498245123361634730080274008388724543835339103168521335499634424261816607478017458810644641044444797107315639427025427376487226465555432456081133051968031024851125179634843339077714237718806223882484529960188224028767776140392247911663894767178220027830932926401314599312000076415348987934088035175765879871183938710958105225317634602161337454795032995492272926718881366742132875006108341511721457287222305615285210723385692949093262288899500249937993006733254971570241271640179137949857072855909763672386954850776800780227805754744156194094173440159962364968594097473039353181129126321398983781399155819548916410640779024942408762070943766886679670191377648645584468907171440207223691309545611769958546971240706072655817236328507609214028249448083858436137464917171958439652361202008356251537119008212489084492584548914914694643267691369800527007994080981974287047422266809876173831415366128660973443831706459219286517104893809144674748110616485796275309267903285409950962496757364640748471967753645598054843501932924367287828220615060505550396246211012837474685588100817137462269990824008473285436978720561441862358573920324681942101837116064118354968949170275885579620978486098979801614019064326151563483860879166329078185281222032235114511539128501195989727952769969209678917962807012041456948459989013440379379795222098414170508436240818075068180620613028525463558615386993061708924857918549630859507692854693630366950208760599810931224571358293971166014236292072528963268063424022746909146507212685013137287697790501023786168178973404502201966670982769204655370589732327647329873693857611499064648693934961597824778219502642268122110952520137300441173949603445647220662620468527851389849387451398123797685677784247726489284999929499400024217727887766189102479587713330892461546868426056876977454427299255845511447548559908271771799351006511611320577443291374267133567476201893436939990549404223435611509477803254564306711661552761025398593165008024595290132957981416936272248378578332381145433076290446222848795307790385851785516699718251323143220014035163410028187235119889833005526238332192602280497968457677608703603801690319753462855731326449818877683527152040534044992501244689429311783391697523169697478368151189416203301349164631419686410609388216572409451020532850192819429998036431897820475838453043955988272155064292295859604336694832259796090316607341416209787879081110924408499511648314906215110625326543054807653510309295918497592063296539534429060685920903519364527353653680227720466924258452392261076550465385847459487586047152299323588004687738804380597875629198130834472073127025871713764767362739469355791331210510224768094223286411434746641960081779049148764468904593144374680106844014901732538207092202048095446701041941489208927521281719359166451019020509838760510117454215255542504465256124061019223178455192788402896895034573884931227764251778536399614795532804525314359070824315211555730114488749550356833953019128125785510278044737047049536785452659097771272940078694451697516829560191275342480280188885901189677427674964606239679348293950206152656676816272827346729660539278665055018549170928143712002425027160941525763838998708100896011517926640365525510812258870494871534827191133113346629520224756486295328742182227653960638881019552215670837795060786726424194990880442969143719153327705579547147158921593273721352491174099298611261555680234634975984210499138222652961749869264993043080229048837317549760722803342112821952173465147503786326223317961153465631662594317935183553753987387624727143711770343906185314066001523309067705384057735871653532071679862342556968004347279286486863644469563400464589227228610431848620020675045812270025749775212688412971376600737625179958114107474874954325632092215210685842032969410654453909979685235983851006861234057796294891107799013800187543582818997385860781512801442856013380459514251134287640103175544404052562479549234822276963980991965382425228928653510231122175687917538861827633443617545723678950220329038655583960489789069111639891345391736474303137439565512464985698089788368929658724632666299120874421654548946845565851698811669533632613019694641771160174735758004269291427580216619382136847109456359752013799025327877978147335829376763492819706107125151803658338757262861289412042114934282567183581723123211851462893242621055372567385709985854565364040204809746286082638765501775183577036125759841238195073091010506694104469437615293080434981993040906669995699847961159281875611898605373729225124800651018141252985511395852638970253554391948782827921712649930436204618931395184146752390500350364909065216231759966470792865801971209281470624626110856395478442630122803281914750582875040501674548294943890570962489998813396813531204407716605141526540153741334617170976979568182671517084699437849567583671265269072352872356035543194634290564437706032825132200654611303924710286516631791418307480066281556983841731529092625440921229801429868067993878129749745171936267428396739844626026298725432267962552795468663374332724898352704951371471068425933460401209187762985359007043279374038735380530053216544193220790296084526361732110433554761269223926722952530452331316089499256645773070958245764948555970827899392506855960975664968201940991911857566612831110208655011173622892190927888158076092106121648859319960983825325992011421256223824787005493540569175707219455562089560793357424828782857203292658763739730978334322596849858739563790428248229897921961903370124543022772662949717826767760604052401909142606222784185135078114548622929909876166319573444196955061253743497409833335324775122708795621138867799672104965710223748464431885354474340277074081322310609993301487140998410055118128374459507256795413021124549888893961899560116125536793277674534381287163317400424562722163885538895782113185384602204212195741558864085662204734088339911926488923405659243880672229882664094976264064522647365010018626975272864729331248543577244346867769595737467805111343063417372794560618565102292600571144462110086716615503507954844500674739551122316520271523050499227513617470923408614156051362574697611752477396589375727094442190493136272028855165341855161149939053512669524584859947926544250862092120552712879578736504922980354466213259735736921988097262201657827565080346717501737568827699959191596998792969062023420812743998757956205854480233353647119094549462190048384612992720606738061524298297582162564801515441911758239662404183562850165836235711454861131242370381241115458769343070885425954409559650728968873143623472654407240739122552440848189403990167109053784218074291986187579476516438943426068271343654592334847757870887977364542833615153372257348971886545270149193602830190605599447619809888873124213626047650481577906594222254562534991611309423698898995345267966985304974757348413366695024282513683956741477426731416707002110161216408371364629248804686003727087126409267845469806575826858828964598452208920838596919598459860559552881344133822273515921039697241154529218418452385362528815130756116781724056726435119729449677959289979913877954966091555133421762720724823305905417562423902723423336859510850860548337371323267950014198524418795697272805814028206842348987490862746612718335342329902403592280316961299959768936277068369792384876348944746053297475750438164119793149416408781646704964016182332996527286739745554359758255464143825366416850849374951265692371891477822222021713370486019164898385574759358224695960069648878214084143832536773586412742223684302905398760500093404828235425353993448438566304912108906164362828212917324786933042809495977335215431339117996993782995047774453220781272480831372950118840648821849323174519444750640634613474956369736753682644227128744742698610019653900385012775718815137160454345896303679098756473163917061223262607880701357867538969734878021781804540888605226735615222590495745240696504945414303019720800958166950817070582285051422330101675472199725047455011437511802515226773146035939991562812778676526052930200373090817492321543814831408262834329822126867576372026615950539644519890089248664697297204484713086295585373382036607632234098551063668537952138811739701448159834000092264861718636689310470552066258916307778519111520072334721112308762004905675936647943585949727838516723013950238343498149910316856555797893318112436360360800954453026327483878520651344398621327705008142200455635050200943164693490050472797563616728913038484864493522807447143341470183597016350122403350276107111546582675005256528029679850572874711325321658636140102552830658917945161567604290764762416093193235306903507731502070268480681352989034586762038756836356566119539265269903740794763739753939658241572435004864869544643299728288735235113045700838504636602305171216725882684895678256808686298166825570767659459407231505982357781300400145303173818724219191659323950855934527704387458508279465294284976663934890924847339213133696669067911843672349556617550574375283126883976484357002869721466000175763185542772398440959548570492133693324937208340631127557816534871941970444729397583073967830249701775682791636556306902619514283087067151506443643953941329121601292448828121644835814402316348567881860910628586350609629798254871288973074378868701198425261676022156893203308049019076167740815386484730953219794927657383947801662713310611338955877221505097071727122749716208597752184912689106039072092034537744643380707020465750237418460107805013221308558178500485415667807545490043722411389003569516308312997107652201867012076718579647160459445194283816272717344889637927146946187894402072095894396379332059391277768723314431631045957442260265192444885797807327899916890045602733019137391002712338532193067877878611014107957895372362685808452753750820478376685043854938191327571996650296203188861343988422362962360693246079488742743184360825849784772788112804852372953224815704602925186528400773107950421248791879783670726629234401898413200186548266248656327248032166094190141035031454767698786213297869568246350638529435426747958718644586521600121710614817655255955526387181699581084278125238706776832580154406051193299620175796979961961096429407630442434803049167677664245150853269404653733521882185601691621690805182727699453025913741215894829056972729069367241184905622594552355947579492407041353995156541491056370450965096216493566071068210148596222615583890294693230016713504120536537323569353539269548274527535388001340044766105200001144651855250129140223420917763608689519569207398124547245336007197576074351975491756867239269660746946094624921429079763114423530434909346559562072860424609481150020556664463418056966494754898600092476417590923715395348430166632396939421272049315771964596880921487621693868536309807721134247842715358266176535798452924205220706749768271863960797459649380668926048669378815703780847790908901579490426081850777353499592589617892697317173320791248461529740820383748598346343141446677890745890075470320064625576273494805104774238114323734245645420144645765200086922259545249668806533940466850216430737523184842068344249170881624942121390421922838746400471106904427714416713524729624296670876111473815195053005218680990828118272408989343857020898963358147516787827477336142118080801519354104478125922958459258947064556494666996599463688609063423499983285160178750679089475981526995470672263394828666728479242705203062080303087529324480981769117347458206448224641031818595648132518759310556763171813657102106153653961725440342127564504084893047060825916651050804030197082353385838160141880240668400373843660268477621794893298051887506952954241887957126307435963599064171791401544706864777050504903046361136152350493679614194701295186315330626278348218970408475971839422354124348985199423918463827847049893439854006890250604352026068876877611744496544627601206337269455786632053077892141752063056259594498249966506598989281343782100835062475312527163575001292250635043118370753494896203842413574679200969452927353911500135164624023576646621271827020309116697807349297790305858607999487303686001506639248152505885462421044427975851676748654227093410640916647722391273945206859044248390252109009867920882580919618683507973516527160455276723719820516338511829196373992496327162979429431315990455839427803997351024047297209894934354785300162222854999694871325064845682248001518154162679557396544056920592879372618692149883661846848491076026144810798711202258334201060118450376390705435205647931997735926553101217061954346495544827272490805704395546781996520646971097774273193679477952770896806330202526203201489528519422968504795045978663323519601878132088510144292847857908543606635955672577738966209903164033723631891776510847255745483991263691600391612140642249217364200076092411044707367483837724715302196315926485480675890415300724786043858091816931432901278196528164650613826781534619037379143942726150891261021951608110279234837931278493399429543965103675010427416329746809705721420258716417760510014263482343933853600141273308920932995833553209294770467923370766797975601727226432207659876370037810300747151874705409818529083313486377002260232874524811646161495455233076441760059154421984852296952779709381076071194479911394969634406208569292716325558805574266288401771210500750046460121519980267304839006333411459521863400379065186238290204507000891397049170159784269814190330579484856418617693049359837047230911885531254662231587389418093983488930412541718453056155163535259012743691334845425196639260697051893106712049621849206089784421628862824251017143909614004646380579411303655326744621198993542435292162160476188926906608074305058975044694977773442057667907869278121813381765305363899036912467951906129560349063045207728972474951740993806677650066640243344079045987037049394014306733016991915422726861427437310441150781032692267290227743615488853705986120669245102845837115545591291479741621056914449480471992561744021283271962801400991687674009281727597720240936446904721936758815300950631297864716626874277872140543744794190599830863284595619365985946558511928968032151797237990695458683495394460379898267533579278280578587214540897652934844578980269118005353116298290160884864620856875940039703779774047164960464051567847452488487730323748911664763424629786911870939971742698590545665495020093010205252964835056180768450186491272485411779278327514021596900309701748819453987671502231948865368599329808221902318636706862281035393751368158546406079947295794128963652514556407588701319295202374652783011411689021004422797265864572752630990632370907711790977164526882064883461350459010925409337598651143410608021394161270414708532730400827088774873701618537910943872903174174176599682731425792692800681727826813798312065245243529781797550964601132813476501296622561086056557258062169729215016498833528692916626411558558934881094483816818516909319162375699778238764051832794061110429168300469564205456396596494910773010617618387084966249249027009109405519780967366114218448077253612731033869689500693762276081793968187780934192426332465486134235077111549021204291764908374756306977283405293555741466875515944664642035171786056625275357046454278147576007326668369887559140696915906736565252191246609270243349434674660495944423754963737550149784098882917174543219898887694066802439322030673501428649721062292173083606649896338548031033607999812906508838340103172327357046751421619725055858721479816569779965867116400587121188969250673176019593093545140833126651215171120525328713052450886032858889956365034716449640764581881322316827575087644069398617283741469315891317763175856822287842304333127812504255409532845339374430824184757729310925671843142522030474978332900261655550244040973227175152973410269289711738542886736391201131100479941932409935321745825687442954218989196995833347371861364496073210755200214240301412131421087543294561448901593496141096905251634346946638037080022772669183048376408340431292536710653968011405632362050566375411976823902045284295162624051534279570075482304117212838836210395525345578477418911120382220575636510365312057925285327074060721375616931014085491712856388808704141008165135937542007730030913034894329662963776003457718668627227412648343246772468918827122213795402677556313083634052934806836741175593352257111887636332706234921594417731932609817585095269747203020785470095277455783629855163256905028133728714465930706049749962977563715628893966947690227252122628061014659749404228190143752765590648743223465862492089239307007470005645189380934181974277794553404221972033074748989897546227310529462005679635358301987743156326025024685926067564567794339758015508583563131581848069425132383412300321491162108662456255515893641898943026354119252024114730903962564934158697427118214561179393178243974173613862600993426463155578484748384049621679675219444484271095096405773283619015592862171069794237577098141076876150945272189502489014344937848048530695007730708687088594893312364449158870868842418059483181203584553939983851757635592685405619969944336682909929272783829350217887994923636493971471505540049991629780838834975460545531349850572568240200147755011738623769737618930250632228522176158180237803568864151010922351706208122997141374829028970103038610880918633657886814330759625950449125128929879843970361135593948335407770816247795307878585402130449862926889546503380547321399425758177688581367341011047967298451490170854091814094763896661002016583881727913847547225171636345557934743838020307341810675841586363386179549221253624935487914382962607501000354330164177369264885606221716981653911791755283917838803133922122462696048634369163931271185156352540865124885066889938058048043588263028580564502172789605652875731950299613751606017298241098974796826088112028039683574648498403628277174612806960109914251296139983966290070789069326904445145070688314719429850701323822831039915556254523343498166926596946566986384429682969980665004165914312003960667695870433186383356306172959840225739190842048780953279069504321443415076651989183191756262794351560752235751064336657418231529657548943359725066577506984434192019840325495177419001750849609097458830693411020332825462927317873349710436013292646812593273911803953553025975703434724811183707958722755891162339096156664982064862930479541818141847868595033432427831318759635258347527421503087959823790182546961856666665624251357160702437261981986287501132810374608313739941575948749994047590039487289401595786331330505656935424849704342669226892048358595852883543715446593172832853323666289342598533174103626467724760095510505760668677664147350400979302012613712728193393378149403584986857486103053481650422732114414257158877320523943556506816937835577828522269016710262741562313629912280047933490337926927629929765904134175367698208602697847607208453869020492611566699134308721440550221648414024173959080194828777494729378349072265720885203878343410999087646866380482021972259466479089927128539866111122534999436495997930748897370660078828989416722437471543577511485458545663064486004526640910547685888605016300695404877809608927200500996995012170409417297423789121440289588935112921674745366108543318596725344281540542025361049258261411062606384111788569451636244789339274204243998375484668072751656519336271913458310855043158502792250814603999627130585898195484315284173866845883924611045317095131807653121556235241496635122092313083978138078047740420320333159347201908946334007274792173148200987275102562784008177475440851589584023132486268898435112349766153665020163301388980894825863088859179025520334690064323540207691721881523342645266365266107474370798924715711213118267924236530033426681771922219167717687508275271538823270916329041800641805738656740059122478696001468719088666114793553308673941542838868138498195165006320229821447602129808689342618137897721130347546048011744386645844677579839646419388724354768790940201960935302645833723143457346055220351996651148624622036569868660796917606610631676456934003640726717928280920572109873029140673571587374396201321830438947972445928156175585467999868069437964529817203734965917515847288857376571650185782335997852282078072867016956589002850279903942357505760560835139065343535185004197531765000047088844278462724830413564118375982620421310641606194047773918423739092778499851215391552447119038669042400980894793638545573549756918044979147883019485784992582828729230762131534282397426455807700244125141474244355511814791834942171221531867581816616503090899069756145500017056168574558002767977478600944916133790722972967019717748168098708451049999173701776044738818086911485408597754183332244507208794944177375102123091810808694816939313492342377177122940707224181072398720102843625911242238170927782219451061856999476839300701579808915244769780493654352908658436428123284362763974999859186109117662656581239813585345835337789897822963752462651085495434024862298453127680640698604882905083780843728685640807013898127154862826330695417097960075425094636089668396971275381715065067193624461824284105405006902521270963273153234148467874788676639600328320711905273239075810234512025925226223917962907765834653728846920402865868355681312592723673607381326942824250437163901212190725488618243073010531576425660273463120287469683915774561237417158640082254491374403591049801060043007539439885139828743050228949566244110709463665658574774332938569876207243617686016396095901033880339803875270089228090805438764404005275704041251004168870422532698262788360846918943895855854161462383866618756131353763965080871571508459550387121711588483962047668100248236635028100494392375871741695915526516555403441715147741345900398563590307059852696942360710206365341060192731161684396567435529845622321144313433184899932639976588323744312201419148419341433705199639162985005788931292149522335755280697114853581734887487080938789641389965789214988173204777873788892642458114299389271093606640767377276211052615276978366662994611098640514488461670016896526919555841088992112623340992727287159656275966079568147315168655362503313442207377673567885011530560223104791942418592712914111415533123164907470741494697442767838698782873007549501347750799366269546975462305057931526000715340651468963630589683364754713718302037592259280772979914679465295808141618432532883531142179142306466121715982949912735528232352472525403472671413964608676344018263654695617714618139235190431310283713338627951017597519461038258187507687356254136330807618283051371016711104098662827816965856926296887702978796121840582440863530432401781473648047538178938221252548635249069243978147453706559355978321665733839319056208659144968725844281304407004665073681927576808639697297357145079549307736488764495513125288712122164570831613237696922337049307404287011409623399866705133547863047753788834462997674925500046073368906934532212333157900879930717586156137463830699553789783412477148415153057485792359484094676144661494385562157943325675459797036651120739094641800923004461150299583057728598693657301587241523334612241249388674655072942730681967395721263330427578332341021604980933946639988838990608531457698544952219871243068121711500030852350010100610988021376710872717819494492346602437211354812377354589630009477249074122844748816758176862515211832359499993469207181095637660242518199989709516397592756759742408076482121279800104144344560732846993693127184557483280134133141153991322164895416789122192926105172942939945835244690148023424341196003194519729748968289001438354549828305204682835169655312033812582612663392510966215582236457645752138620887989680097852268734461633237030389945211018085862443876465318863764604868643868860114115593400125705264086457611144398598549233856815072072382357237657019236262208485238361371796641802375498407710802031237994120528495302144606142961579999004392364791512368361410647960310580239579807138587137684861738895590876947311289809096336135720292784490473526711093356061825368214684077581119443047283359781738163107085593154006439775277169602407998885293594000994235503034039887812505851938375943143686701258079520684140745723154736021640555140354935486028718043488939381094305228491250640425601454284004954937544593325749445811797318287956245986533151240822842272588810608708609989057706070495815828503301482181055118430941784069228354397582469327321514796454128436196746032615707450192156088247959756671570839216379700251143674846066560108151466207182841550862213793729684779148325561183762824748532342054867422239915918911833164846490966219832747857210248931350901167830126684122803225183915717563605144030758409688784527218356183200805159340396228697384208101329757458003363129853263584077709695140735967250493528030908614306990576785457907285966666283227830939480486682294380581091364946781675849131442820043155008606035155294657431647137146952573845872680075163051501047663177588433679437379267176024290572486728546675517987930390112372723381359309867049496049429514404070585012400867472142766308931784292415420677395407591313939716267693377275590390684927020435267105457115332761376619754553453322088931064428962679155248600344907310556218748795922216532720274232665003661384687074360053532103976708389217265026301626460359432865369611009180592988692197769319648305340379827804004988035942399327126098720948605040554209687499452440809172113055622309469417183483220909805947937187752326486094299852963585807402665054748366109972808894203665647183475196339639086690801331875652587348653306530584749577659775092882544508558392604215792792064739273771906699904955356471018882008722395787007192088852976837379508318291768375102763570185883716568325072592373031293099852151237470128586677080896852432911526709590466671092949381205713955146403434333988891659536347465368540756367159090505845719379907688825467489778482702687592603676911874232818489950686551653025326417403467877012714244866644930443232484319841249119662109079485593891204243913348520685454965000181359092218820533610220083347749279272906628612208514656487095691715416992316264080251242176799877870031487759770114874573267719792081784515723468785115302661179665371956626092630285409600327826600703035708924463770457752580943942337374529380566786489501348747206374454336960357703409373088004026579436851410105142386804392987864982379321440493568863206296209404249468599894861419102536653745810081085648527763292440617291532652483578844692947025320462717735370792913698910532444906700761836037143013393481633264678295855308567923866281670493279585427436664642540731791052901808136394266728146321611294008392842212391324082663639019518067590527769059841899107808539639454241052992518867973984547840063367880749310241583769731589818926424799254306052649591787670702195785182972609257968622215852204960235506481092296169460345251206233091104036205162533731348165605962950717525964866527329535921948322597163668658684544634624707662512077256944582371974208695738103732973245968627925331473081277313191726238621890136054357934116187879698402228328890006231190722582779014484948741015557393586246936603396086676865836658642757651379122714323513121323097821545207903607818699374439966545975342059930241418452053291205511201345158302161380227675361629073572633482405830422484026341591056220277709465262322326254619334487181617766024606703065316362787945551928210813592127699283424330582551843619419291317384072752073246460385091532071639131503953032878789649151215827355017424341856513519686555317380752678799505165639096761740325371541654234248355253623352414107722716159291413413314696494787753263934640532864669313919394294329611221142731024150778866309109505016316601855702857210959425228282856458112291244342972823939484719647736198859150312095268858451720856906700968457807669367533597253246456724418717477644962125442131959335837999553103511511334100035559550068559566846565312449962623377941072694861401272951698362326519100555886569680293207786509503996059206763203472109111992848955516641482195373837391416964100382774889618477551007036836461097937910449765730638455235811582626820221196271618196014985575928129204758656399257260604531431156875464801379044079993455667367117173832161918943942375277249345320407654250440210920766534636579842894675379702001506150287286160494776958847991785999287790515060125942600766765064161016451945400329115803872528756631312871561580552157071368733499260342819580676874135867247751131827590032454296888475360566303348831683570299686454822982538498887534578474703196111422364492274672813438734880774703129995358661466761948930851747012174421164597467896005688078830321698170062280292172307976975347553087658743395775699549436468080874933220302216885222093905075269097903694124487383958297379961575471633579691403799722997087672254438021863926227978799499813089008191731914393232608523950271320724165667084446994284856743897810129035876250215344025828325973135012930356913607495577130516629107104990834977631457280426424183004715083246068272924989317819224934810122364877372771868247183516153870297234366533982888938486674524701303544717673658317588311846997790821698629166370355355023928733951061362488972517869194996286177375435721151572515500289183464338322435316586450463891039052773283216840775980210865466689695744524856779824392892661548714772390155893552307803372062335734912132693344356869779183471340654668663528512991897738972409169551852896772361914525582357264702995931963136458337057913370917791962957532687187062213503720856489598538066974912176565837905196262483759204176491647060308209307559020466216985047957588650049208373741146492781105232341832033530137062409158500312143578924189368004889588017835953979429636265422833843214572855199835823339892240169781613786702798278816060999135259865516698232421811785635755564691131419332294752322937374544225411507245785943133132980175341882424950512419290286412269168105872717053062721636191987801223608929871382407181859264274952255323162120303119354743423921613787373441251313886147037908781607465983369120881479032562731022660732347191603526391400078645314652512617422851294922801836520832065622676050747949827563819768913800068602318278151107860784309382185632420417457671741995578251556046334059786048386890473362062329799764704820453989285754955605778688902326994865746581246046691539864816473293347506824439414996105802222814849339924337082117681077507563826909372977095375849924763639623533738434324223800882715433267196617055717941645051643059281619801173627322020655000370358825168610828318117865520399109623169274641856163807862399252278102499463807482806889061942157187215570880631997013099787226833121050762913069329626276187099037580333519495542182190168469766206317470806907363146248471513262796677013381799137330299015624175435901048288155303633649943575847469246301463654257785776676141087154435852349506002458805629644183213428551442554829509011066990138606172595553994667748870912342242377899578132148093065433888492341997009846979147619933499134832590423318479331336258303891594043830757279828132648778915179090310265652519850747729383347997018615104789361876597811254567630803615197753339952068552747260487538312859271236922799448720815222320041100447396896018594972999363013949345009380076976764606418744613019053853560762233371764310649690655177787805892640491255505750399524667971963308036378166434842345248329851940747785228471578145912233491983786520322028324995199047895596049964307322790042037191163649702833197172994862967804829039268749432226626038597365598044848000053907894567433395277721930895735367892102554834860639371200925847403794758621795248579339140519442462554505722015204134546970560336804539091996368090437581534202487733363618509268804171757677009711910468016671104848964851355304571987586643910484240121489071823953428297942361101431982158617707867569514063866582640154014083435926508076330136885258355937497064771925028384994178850601186155401666881940010649014737026446773245721247669421893403853821299646638697735073712595161025540714307993266262282637084840009056008389874208139557743175973844219825148308082510671202632728030300637405064995146934242247495777682835984365642557770886501869780227825695502375781057936135459023997547330587064518687910096589950985050229364426124393424889017242236174103537576899133539387056270938822106536111386189349602711489264074747017703642073116073317970970407027975772025934377241016819882102913207889264407497372569263839123215046132189093828938657432751779794435792603673216069876612285630441317963046149201841437740914397323222473674275755315467709676481171919369954963095251505877263153631269273869094932779467332251304844308171335700676827161403098309718177638815220107606906758822416318459582937113401223255865885805700789114143886161185714790328245885338107334456044288998802446279286179849904836419449587841176545430868111098309321783541704079598059471591831222951315998429687800850517793247091472113274974323959884666070064945771196408709345555799731443134729153774688921435161488792670049262342662424831241008808842897110593585051943307117809424084753961199407220268558552096562351513841393704926390912839274402320760520597835692872265001409613204666220825876894493564047931122599441594074496754442511798280408562424125414411243888081838758610444921684962344837191425908436368148483375856237694127212755112031955686842641497522888965216897449776234203922687148870069067794853155169712949668052614646807071732903277890085505896428753956755743565594351082779337266748530778589356288184518830053089607656261628109430695260791640583378571246982890769672787816221915928423977332750686813839955934776441748285020050708836187729499872942513458735413658699643696455624974653644407999284038886672904644652270044774493296222267709640762406197214089545833650463109832905614809851664109817231380316016326406391089066639548377187199662464276172872442486876617028121320242274619306380842368823146769353767852194254111371875693337485099370502686103066388593033312107337682237317788864620426238500199467523734392264545641706706566245961488197251071271366393903211634037024681655356762781472665636452421234484451730768544275241033685292522985836414136861337273323732939549680409639839287317407133596720028296498043767999407668012358857119585153053082089896630572098287930084949569671622847411853027439944310393626145722752460699416567222496741519571450526166018782232868590689325392371294267903127813405975289640422832575753781645717108555756988160438863945881069631179963728836421159175791066364428151510509061145945036569789262874589321451060190957841489811117122365711105312850808900805883839127510088671515670567446074419683372523241557248232206214474310190052217971749428825278219691749883722700778300258494287040602806204700821328115323403449452963607573255262055949618389208607462636567074532643711242318824971008179154595580987206309317679310950061198664817648063773831254761532355412425149999616659210850595030344153875707947880953873086515336562543968745356633975154689699885106124134987714736968862665185097359102573550646075787817809983537118714209362341602112461564170993723741677128401372058056367414400481363496403817160774458818600170894517814687316673978877875202119293597072880560216314957503266520065619379510926885777926059833141551860856317584302239659837823745983470012284795281317937170850687918742774844659814288393808195005364423955858763125544100975692953362023305663511651995531881301281104686850220196629310422961258585892303547537939074267799180548753484657933422247586855293905971358150547417034473730265094769074377057545428580796853789067915569768667957489408759155388106799524271879658836598164523425590287608633087045955522329656747021767336615038166840079886412118664017317376172640549182987294084053546416135490234686907821768752142825058878337577286954186617314339669487745606035300382226492301728936432735314572755712411699109469072683102046663884063233938485327139269167692928143537338781767116710705899683800174405165694757071705370218977285357789406842019170044704769533254820884494712483551009071121996613508702834353905041976348898940122821715857229470878327700334972666583624876096624174807674425704018834855168463152539815609901094455242049159321743366862455282236299453517393225449529284760452178337308211697997436863607751028771642904505576625472743695047562579472864103598279057262368176938896380308701430973045744034937080435391678883486211641826536921388732474284940426583240823505675745185489830747138115095001554908890406598840680210645159235466495859943514445992805352318288505673468637589837255953091476765749809836430472105574580403933407091985808047625760028756873915689998978669990174989096056313690837211570358407674577765009299588427445341462210888361446743580586455830115667911917411516769826608657569726365553594272293481294305231294507967594157591817867961878141091635651652246251153224715109736078889198146763444642451332695296601549946044413056956442828505566530440790330533860284029691849301611464923873152166385131354197380752096804384713273560607436268434371395325443447651645155212412873706961263190983950716534313678102618768160129428808715669652672573191309567840048701727709235938733329346120722590397244942923758888796831506837551971977112164687586456328968268140387192494485565248298802053263244802882150033950714240928356280106817658236969781813855245530122967092000493650506907341367427334388557529949929671799273811015791692727006911587380044612719908429241374651498140412817058746329393567255543084413541801712004418461896898024003604318435707069543742452288770313123042802245509496085072338788538184323662822817880585703805028680330820594122514379462919962441621999141180742055224252674816878290979602656673556522156102584200003597725886598649710113223064727839501022242440765753301526879080543628354737561560072953127586471699873000692189107122813012266480213073786626131571492782050357189977247064787444195796811147993511421408024555098296428552635639868018837963531789733587200639455480832224352370869473869927673476142170987326239961162316962711184267522597238033672651967098931261563767833184002963960467801817704524595019668373091338415343907456381748812941677200450704209222530411936589356311065512141285226630782832365206486719653290950675029509199028594423802079760362148886321763826953287244083927315662019729528508815675447043072099288170480681987122416285346070344816453383113653103348775955992215306076270543751215379688967797436651735290955132643134228040403957292774963872507465852927175793274693286579274432973782400334450911146716738493419434683698601503473588879938882968363345343788162056720477888641853573677967508022536445558175461576614169962659958909867364666722198064739718146608696776014065511408054169138091943393012982673132441860319578191017235151677201028354569223452676903129173225424620831261345563368796097206861121197851933653782517618100186409118172827060807425952224368095479002377499949952231245684598042017798258386371856120682470452409060346667967465526826893238059205947679759542213946608949950029563841143400558220694223991392280770975940149653215246667723912008629087748594539659731986368111572408032664789697618086393368523912719175750232475190062314302987371256738171691359093020471420096786852615797652369092982987896691256455171501418016912610957323421687424075267366308348204754209655165813298421307546131939233833036362135221214920404654362330896969945614968218856213984285437082064589095190464473661983156430666452754930235694319631486442570744069321231796380415402684399450395580342706402142092334449359599656794481653281800373494879093221605272866213646136917110748302422710381473306669648423937654097319696201256226005080375160042390246935608392031622770420082451826885359951008554769195662738856727947016491604442633195908184425951090212855238714394952256797840515989331428092765836434447727782688418812242598903208131223930645496368812688614991649351851929608484391751113551575853864208043862168702677958683839594553049595081792904367262465405704094723793564191776728415479628308491165438799749428039268953574964496599052905889905303739024956721208249258276918332627848988537669270866961075534434382495652720062595589542212455301683891064384110940473918687159687595674304953069609858353724594484481560540115545735834133763336815563973209333476488503744101063125444578386683357166256200497050460885654281761664546676079460988061875944748316491809345937059351948039740034716212357709522960931058991687226323182808540064261104448342381907766886715885982850604028002600003936562796849211984102114620966145985265121851384577757638614500578520864323851884530286328367351730906327478043749420629049539208298210606641131559444156582747884489762882849794449909859614588437948144636891471924924915751004498861967291724749274225736072285672537177062928177081086089611713905276450710934407614064947527784768941237209079368810501441195968777748355168068396568143133648332575813141790817230262812302705957271716013526777495374601792831007491976015541424652420535376070797251477107429582124807152565559075103559685969793012557829632751204857991663608504600244973387274366734160358622369088331109781542678845506674094006196330014574355395483156017318079225849867578379023518356630166503032056061512152629746026287420680930068274604542608640447417289992727785800112393396681310666576457989063421734101785416094175630995641502974612216226889559522056580118027502924306128815188110920883918086529418371457289678585190311780627498838237477257738520950262987407695375212709588320750478341447308838084990288799742336699079688584637377751678650258630325786834343127696455125801726591808325870849509724999429334439786739575620601867440592643960757776939510437549688564444859357560422105024206294398338131569362727820633043743998295895411684497823346732783860722699534936316845471073748394512783143019697421545693267530650810430430840891125412829917672151406239305378340288646252931452534123904254107146430348902964999424158412406887896315010859324289247608055435341136384356707766442428664547305244950186376813533876821817026594289678988070072527991244913767670011695729900892503335758224651674299705682229563680002892976811316888117611411803731749315547151007230129769145224005943046478061336315173349688851648216053564848252439483426281443558455906011875419039329816001603336395984533631831379433620050099124598346330688796822131709759359570604102075103852142691143254164191971085265954804610645425965403538595511180510873490713693392785639596123234274662931894522272743024302113787526021074519232963376089500230720569878464630568781822812221971069532592605897350355827130854705490139036363404204479136114248156321370736356671883599517616696065341861995108222900460528252324208243953481014892607870083929875688556692481514892496125625825601836003037889459851677665183257452790150350279259560047561724884042709778328730613364585856045744149019792909244167912460007859311248057344059198442807911040127899326712024783662165957263313808208902023775092758648298840636206751234615845482212175470355506310384302581543653303968766970085975987544967476174993641299933272721579032098310557421465845769406229740831271770884534821721748945326607796427880566675224022996158827028768582111625775946302267668928517311912861361436713350688987430242085897902498095262622941090524426499178094531481854263262799365294390366215294234344225553977166165836411115354609214043012086180589965758296364502287774720182057718970198208960390431813966707789431020081807756420320893525146025090981758269748586983299772955604154628555199180023319589393040768843923226182760248062084476298185868066968791776416538039830815775814843659135022957515646839356838875291522379875581356493338374973183221061795865027363215788743107831582076912396290684713012746589250883893872473977522242454365445449704129379023887920045311065533295056845907558041592652380778028283408215491931771196242129813662942778313472931971554776139563637157390511049945708556772719672171246469726976365242143730364099927642609671542119395679135239517143431356250290611747124561286129564906394390927425444454889897987847462745226954522756013390116821114014334267828552161659120397798930476751317659282563852086749146237497780595226378004945244063061717613160386735322006476471687448033022430504307530049311692882660151437726186453241424389180677417710353762229247983064439575089690765442297845662368057435542660102689670524379698084655105823542124710643907382693133026139624808715470111443495809700999114464671214393587394307196511121419136831178635567487815401679570458714686727410712286669985355575975438528138279890380632259737918209439552139322360595597798622187856962382958237948093674522456346419233237189921050159863449876685872219821702522517132414122996859054858795265449876144189189260953864525301377223102162399340770594797514902426840606337228319248441087898828636632374436487812339291889557832865845694404863971757369074288891013838285454550960026732229573576992586046512175056106644229773601249760942451068053384587010785747839409709356946323042432086962039596419534979150313533870272896563157674720862223667908195284034011114257246493596231937746892550294170467482113405277960599235336269103753352050140720144835934828866285455363229018825990573395996822677157985373931543371131376974626488972117607905774244885948438171728755647753352338325087386419922307646593776762273570683372197940040318741178727788517797955580156235647279351562635284134338305082887306009993810026480425621981207864409440374190103243785437324502440247727506487254553920821468330935243081979556856050450417285721333831576125047723164492350903204337406842751695119880825866762648319373515582548156653204576454861389466087766240381343584530633330431145982163708253839918195594320559514578564196529794657601461868980022911128848910441352206611634582898411426501765312371621857642223470317174721262241655619922218408384812085975810858578977901811217369705183790454289233146984406945267413050900863555285707554812513583660999949051451320398691698862974129007516247489340280564219570573938008635303522590953898468986278675542076175112591749264052315057515740976209690824699268229798133641191374014523992154873826834983583799227992752253296804192653099597777751938454752908629460007491114151378128542991309710752186982197762311580771944715739402092612644769039604498477998958870558592538932949444712810553614303944729259016947225317327929651972214851553574190486784495070225211374137685242790706160577906651422999168600809519807487323716808986287946432889443170588601207673601111105513330633292856133927803457170100803647804382976894406083419103780079086154494373780846328535547609211802160685404787630686933255475038724400273653025123270945112764735454145134683187489341640416865763818116343135028003027045242867476358536375599081913649271832948408052733587858834909090532670497608245523399216368730056742579322034237547325188812173497909112788069529114626115036394491259453984920940501311520138141369827700799966510753058807644148561194466733828622804297965941963396791094720883840079735023023612651479696494874098507424391637247037142312490267862540773903332855855770711699193905732960472144059427056766830843670750703882952229352761628713547361217009071086964283793989902419286560646862472448650800617953800731309351814854011748841193129360803719618497568971994479070707655753081391163808806898767147093202566140064304593885722131047282757178943390984494957846772432245069627971711387146327604077948344166448073263026226264393566670620753983292342425030627161118927974049768701999985872164973797995931187433552220998330153684348670648373341985894683146332243208233939891679774576900420114575448274333471545353562482289978414869134493085469971508562607122704909582812655437589707278654136670695913457381279353325520405788214077372572619043076895948546883979390144913151878326170900193942506070052031980297928348479403966809160408402626422097848286467669309196561728110328169134302871964554902556406341696062534247764435781122400643679940768454761478539983231337106386632307454367561482618978227576235650039053477517275425966666701373581710383964005362708863009598634007311323258813556620899850202750207093651752320335876727331458971677870394962649591545915768103105040603443687167066308626915971222302368022139203354541355238964140127153213729578065630648598858239661357577451218381912672542161124914667536071587400572999375698620925136281979548145142293203105655090806199839028755345614279126445546276582894893816023626409312537072542669264665706067946679759898706173209865591713653202626644295292016188843167304649402175460830630935424280691777115507754018776503092796616572644766424382049947631293685536907507383694707293283380181539526642122450793993215591447828413188158145330354713219735727964366263665890950185512261995180316015858907609150593220094267831952626235997344315279701625429840046892288066873274535985029419191067565928520245071775833452947371356947258750652418203044096840597857049270951920628886450744787841902976205696839615024579224947194856958617047316324803921203724948473357522201822888212274142530389513388397468726935709633944233728464603503509073695138050115143398424504040248932726660018831005588085336065174980877119329691740443925978191735651021183343224826000157769380037779773893724543836195523999562816909753440063986343598762291506130035519488406544248535031702450572362920450297736581249543044452589549767540245843705654864106682607355762461126652723487098253447169113390705246378871914628358622596049223398657492234955755247127151087280264630018779978051121114146932876598651279629738862702048503069833082818793988125772925708508108876393617339980209498813286026556710815375554728053237808276022339126842848004863100217619102504240620943405402252417130659193684596397704352399844598866175632846600379097125076464242028582148044826266879670602211507136464970615387095471174447600805586413072319005018696232196981597020000829375850918123538921571799460426402737724697108402459059124604660303567413985771166595004022309631994783188952548864379898924223099425352553866772738736169990825747902634388474000210976020119681133389559556557373055812948437296074575552223618210399013830270570172376699808393393676772573693380368102426102568508422880808426154179663116971303092239108931923113544115203224739192337324102655206996170412824296535899469010045322030008757047307027628628468890967654960818875632179991752325568516301524654165009569946652959138803871126050840279541929436840207570693770430946212024933190775833539501585546684484823704968624272180106098162690020416866886624844821032664485928649718634496437514641999047908866171200743436703539443534326682256784025327013004669064334186075477350022096945236542474671131552182584978868540432221154768582504877514532018015422711116964411627707043442934885386116907153285090586327407134108250348857833604629828230735806910479136765107154696426652339299534165162251618528399559581383950834611807847849288895579089299843929271979735486928658697215218009950054407531571794779200678297210566925380206930001070774648015901203003146190849086882806621369225801821990626615007349569448107941543902392805752486084767413102300228650010642988042944517450209891640187466375279725250541746159024051297814062871375034964233110311513855270137445992908814299348592312010002664518632224063884312616516265001233127600757215526273718652409402989333764035228547824610051871777212600791457364251913541952589705313258845249122477596701876085652457285998098819655632130141336403085305133314846482994745870486370090403330664176748034991209809085985322218721257611039950254850131855674081418804264468898137587449284072089975355642661155621244843033703191924528920379607719258244644755964257409502768003739006316202179482199365787308151690971757112106236443217283219203007986380810964682102377483096780940975299480690492157144002240968699396714537534428504386892207917703358683874717354282631668164837194698962048591837216275839309420654598592323485857687372424981846263928661665059327248216960124900789682263916032312342266967696187168934194569223183624185397344746737703190053411882049630338994054034806564372827903070126671702606610719170102884623507877185605608203860688488913412296192567320960726688973262725334342481131560051217191854246226509378306129318404010747337586107340393213917901337652852742047672602879623655407844478756978199574070446066164719622424263213187201795636255018171696109832638337292091484058573531680632704260149713351481510252152892772179969311513729384708790028567504544540293106170336104498175652258669878101953134152487670917611906651730184033435032769457469518837455951256958118625081798397773990390003689737916596539759312256294388993831478908463381692194424438103219106891549937402240527381949814319050555563867845119887544375060672735605568701153940607111663893746599560966279455004748911528055905039415936468346907201510179515867478403028698056912882978811164832147594850863799442829995925506171541225681656707066566224172377586588672697600100368453377624050042491725550830126899541364850856701479998958585233750699005517716447931855873008954792794191540353321321209125378643986519937666190521422880672632894254564090763737288614699147215743934146775550109896238085049185232038707215218960232897009880159898676935926331134147333601078339574956888061678871833817510960806302219846435707697976550934020112746603237795970254491100400430696636770461655060734938902533938514914645360653152879454622668904170317172337491389068479939589459580323067615346046551595346304136093557932941275874541149158690653671411276404344709151975081364031753341288914136892581560998287373284215937880110926057785814032021305677647744510183571169808403524860837030973195991388404408265327556578839503042847443294231576929122298090742222889309726401639555217973600322038698452044336720770491226071919910655805800932008024691202030052236440576893719491540499446973026140156148124108502812862252157275793770998612464489162412693752986035619688524379692528827592633030763776087170364126108553596768554486374607705600539341841361384176814307386855755438036904190059731649784759315099897623439913295105813799831569066269448357201832069327188439699712577537826870774082136341006570543416416720826458918979139408563167541710433756493645055563687542776048448995063256568313129725646042062995838913323358534545081575467757058130968679848863558307165298093557749783454763787025303089562371095516318245377230278550914832159623852658010701688871928232994682873994678692806923639145109906878114001392851233261316593224518730170705462190759688294344920069516646370530555403265909916918266541828327030996786802780736345327842622034342917968682529048657058645217085520664470840835602648453873646931462603776917960645520809670320966230681379775436283853345116337286368988042546981924629862834623949799679095546093077825997743479557878606656237093459889092134592017428523109676033472538247777298801069815243630153256838438203976316783877539236394393166403059084324015203311445439224272252454028325824280632264875810393449775729179945161109246272851968440802194699772489811522055677335745422262879973200623497032785762623696239467432653630977282135807300082536437389081912682586163139602750498531148418736640230281773906002831413638008637421619500014777353605800943366744067102242521606507692870664773546644222883203153477006626541808836898709756994741253842732019133262341051313236687961925126012275079814149755423926463540942723037688463063693169712842705969402223259749880965366156184301080681091484605877863453839376692625138690440311327102599399418238781155590985353167486658237439639259210092416575667582068335865023115648984286312990696288647475589373973584191485084816780296367788872695086242743012314205431502106623609294752180981841234156691048110061597692242506338057795966829783738728911701856515317153347230648575257502732905503033695315764196347209646960167788257975542864430721699585180656884006610071841584518294887044033465488813001785820349232908413091183784580513417945432220407448840919652981513103169470716598980714948616170014086931609515453748823438986554471602706531688767047916234746600817900979697257225517386286364281787512420406779116003940687297811884716655834143892096757673143774579647192852545313769269680173849760957499755594315614467570279610872485163163092613301360557097553950731887010568960011317686223441802189464108285474279676400232381814698443071110344665933239071003106805688070137707120992001770370153214317775238133379766061071528227982995015091583851462894699585608046359210808240229458177696087351188357999006050602195989261375018419106092397849779846648528906332928459169141121587172791959483034590815278028919903413260939480513291458720393673359735438380212186095091865413504401848296344293116560525788641481439403841310731298858326190265552343986960894080406945840053689313247824836450861206216286023711713710114364159195133125464048236754129729254517429167554289579556734370909035621280384895231785562851491764212986202375909312325175452133959733651400502648502174613235601587486739837258530060653573170489832513983953637717696988259119391560192021890726731952922877372337846358639695950060296945547846062749227179067738726377956279834727980823391848745413524273792029225789786971826637347340160359370139318755166615359258083062617763408508812235181238644325789614196441228328067485827215882609039071388592684257833477845494508982673194628910959709076860370522930465990925060410216457762478113649254730367481701227416089237491874652811326766763847982512511947026119728074375315477632452960679558877319958750069681186517285637303967372043940048678447819258903332153199781739778836862099866021346415057885444590835238527912770712579800190304822245311154450488039176227267093727280298673460667454931036268680407812394125516901205617240713130284128413534956118582003858667281798571634427010613273359474352245809855442049745320530952423586298603479340418105090756571577018893244134937079070759701997769486589322545872498911065036882535090622174533887701550578075747917824975781154630163033023607807577506557196874051429384742088568685941725773092215471974620276442465791866864496227433518557800577079729189110981653296278008563634701933002976438815653446691470947373667327072346096363526611136849180166411198474749004906046607251233345685527033195331949451311603194358262345572433305502824224724860280476733131501062713490838797346904424096676411761677601733203960399441101950701981725012541779373289326771013593715325991046224760213981543601517771041934886203569040219578961899430224477843410255627907531092877922156433053733520821198519380336508908608882777773031247358296021638554685295921497989429610313642443140547620430693805370690990665518291840774486742522274224133273402898236358374410409078426732180363793438348727233129929782083110523586517655876449867502646560312558838857844559937548568456891420153776398807941753062825786009050773479967843503575064039998429305277609156578040862662235740892332675875179380499885369424749101026772491766715743483320886439153095139722695865371106871264683216228709400805802688529689673057185688202637780555920394896576508569136221650517510409340948090890289739370395159647271021494800756602359714504796709343261258082692354141447819628692545980079164313934926190788861408574819948260681023753514910564553474768964302563461104627380096786163246778581824265602431903171967123853843507141235101649721335309895261090017757518069681217121774746512319072116546639127059002164907644070554380688367478918077796880075195452753690205534089493657270150927308592967881282883245801495992500513537855092736800282285191128731328984863220378575614192759960836164827658968784606506563319455883148996639481336621000661350788728286428121928082299803542814713806440652144230309162048147976700090593568500411953809877814659748042702218541942281954469080663953637328695373498542770418570679832192877176228990035503705918712914329273168028040321400310077895444960966586392088253041384721865458558264884975678478442760677031822406629112447147565762799311996233238377263577863958323219860418354949439416578146634990643268910871392217965027330795558103579227459884929666283873757292549582800126072235487681879331136997981018537161982267359013951712883314386448100551988598955903429434962097293064073603559413392255952717061193335464056015351703409801986487174686124013467432447429431721728468027857986819716241899792767560936894927748065456034458697611774827822961879669287949304637963924555632891409361766005851233386236327881676920099394283349624287234634981724393924819796296211785965968196914080768987406641476919652435733488576492524582832002786909961368919095326312507687547773412050918490958793060617551571290947588566716605163100736578649183771697111045631353201947393945137682030568128836019318302364856904265213874372876100826312068684300100928151088300874615178556651743279648958831426697205598753743745016418015699232766079046720248780234970081448075914816876958584673904594139221543150518668155333137913045068033833610355639584219583288504629413872057718008283953781569105811971910758709798503654543321035258042143160237852305931425260652861491847712413107166209509395736684632717783433807277832217757518999666729558049600936622762998476713800839514755372966913923032120609158775275425960147949574609535342133807866938274777955150144513456333347661025448946543829110985072600721444043496812962736657812955408790041367409504612390822635006712042924160569385003943094268225086087522526651157171574943429825581914687773892157770427511587319156751540416532808636578141466147415592451440520487922987159364484039346519441063172149042498622758185534605611638657161954172018634924075755203076421978825334915722970557160485375445854149487172521018896465003072845075124585993580320799348935227363800529561607187682049858586414876066066234227798930968862019553146117433359492852533318676286341518328388668321344561285743899567444545240679355750717165294338407245312093421326706578304419495695043415458851358067760895686773462237248335927738453479501099654517193289919720658126471996938208997069052681169274635362355960114765450400128010068817387847908352042770164024552096992382897905084158367052476121097284766913875930293872383965231005147166526101203064491058523166216678149533583392910604153466686063871716506819723593684734687204579939699488351549757792992245567995725273489154032457763073103974055014801208585515514274045257791431394823639821533795616556566891616250246301424262934375033544113973316508015611990031344565609911173489436556447601838557202026068112310651504885467688193598494918582130416569958677314879219620722826277688249379022124149918825381302180070332401390786750863139887538155174693987305309138786663872919393091027534941279505972289851010962248868472099100351800321139426657274588887836270579669589401789779341921337434495568745432871207895316452242500924322014494569627563507550060647170933002433688988689301807278918944476542039621773557999050006231688669467325195005372383404918185363037401877235410586974727215170490752416176823275873774097960905356643840915003714451287773416816615302236027700182491095354012044405102698278505527218352812584438013299817197166454200363539316749359662338368315877081211812948146140657016062454704776250095592827638408808835166803298706585775059699408576630262525299688083777829005806333269933500731607701649582341415102104027402145218902236899379170443568405390426613922325619888232299839998354058687153519944957257059855494383419853411207990629304911422799058315818380278299428946907077964534299975455406754515162831594458932093234475000042446161685430995624912323148103806350497181805256931059472498447223373858189505478468792750870413423040849537809264574250496219997951449304266492613205354106041692741779854459060946591377369475630656034816793970977729870667044450666892079060018427116773241593593355637665723130149161552541720712121206779182816926950416763366387878679059717523825359945633307729232236964013955998157093544844593418770791549764819512254135768820610492887806317581046380657182473895091017889138497268670505479758322978005969640204619219750215357600185765634964471410107257162100670871913139021166877999025219711054526004155785586997445649142719144660445204133848490650041981325383395666178817762013584000040245507172271195149991746931990611229057911620216188600237856522145210518223542971851475518163538020490624620441626770057193350658643402841925269254901845051550325116785315464766075045943842675077131766865468459332560516987543640479575635920142191312736955344642328166157558466559605510776822147800076370964311853206575180353022918838663623752416771321322481834409078682818406270380164349279149858614791948907659006168574074443974082334030473836989899272925242478955673839366786514893292668629414555429674238640214989878821054708535207564600937948911335866822449765640907392732580923236679784963421625068309657015885656067108775867473409066608307331996899694825366799807072186666170259957394772730057638233233546198341116802529318611163572900007786211096481524760372016504297937865618403466435813076032072540958019541387551281510853407328845200218650564173455817630454594358641373603427826333003463155255878225002792231834471441272412897152648137339801646151575063044442604239532745919541755494711638379146780316624024475187874808652609278110727213014541469185476197056314633077405633858448436203485752321057594708049709848542436826483360166465032915165996403752038422339336010778347138707755750959081921129604040772387267331353988775027766996088393626085762803708192723357037804877588759302137578548867994384810042401316678071083207433066991604928625798908281523203426038514170309476355335832606900753488933958997453606622569620711187622820079383125877298603330004225302272687951486618492586039374983266004273859476898199287631029348239107943494350087901841937641179446573857213907952229240420347402760656160173875696529260193999643868266625119569311853530593209632498214159254445361248387706626190102741161818874602612133293864105693825759912892677488000736437882964796193174495564522933108657265523324327704487681380879480600710442556918780391557864222360693702760325807577569848827584668817413319809056390244233287698254663335540673312306866882777860215567801472279604691045882952119115493908637745798927772086940905621810700679117037178841366658640515779949557546363076912136232613198809909264949451266606403020292639746105037112175709222227227201145460219164766556294095538355090394397723224240313060017927040412240248561949100162335155217953728039700476671855718005262678238066701591732152983739333228638470230481998249871342671304983288602080107498907502382778908963157596771624333946962169721815666036709373677668082515599703926596314930386132192555053404542309937866405499388187909332018993153937486807484634564670650281799984403134989077487709176048300948990910130448006319454540898553266988797675815210362405088455403556050549633905812853980309170805838357732768061316866748377988390907770296758697921463632972298134122573101160003226947786189219338332047896834651099233343615568085696460585916450478155679708879882801335684895188401486881579069980316204534773784276593268430092405899757486057939208378624749787248135963051431817416234139540972423412496650655209349077161296626850325216248752031297857241028492591000321530864387501742714852171883468025431146655814322750940321013327596697614624828424644812930723951441051775972068144280427339808640608871658116072906207771541327156280632607898748778411099287836730464452031828892549756278416872290360533649337246315243332641584172949004973932165088874883340311669745512731455468231284163223362261680400715648990142591534918533416326879686936625500286181616260188546930700696634338286137966972823474227705825811155920536137671611870133794341133321981954518133521367695600091058863153298940233579789073022038007096154745340431654087765667549255393373092637021085887965948131321982611224168485549684915789098508242759458910156668626198895767768436483700123776835905416496854112780066049819953888289772011583472045189013249647389657232766564611110346146189552897359582386768048979204982117405222691701734607537134074122790877889530727248600355903250942126726039915015434159461692653903067889177838908566015013876097102640571946103906808602553164606526416949638498968002684694393950293137016137694943085760575860292982381510466887425548898138976959712472648012643964859281286750554947547868263037674741227224446636157615294803800215625293303226728446683701823147621561017714042430160364979211581969047156757960693372634162675561727037604919653208690809866172911666256915063039956194811861375554927524088148737382543244200602167445070889857535291019055900035337102097688839119753820636287761478039973527038751883998754267051801493445921408352334795855515209901213481920627982411627769689308901891722842418549535432270675631345047341856487095588854135069584938169055764105550893333388810151013587138497895454930930618364675847700024647135103261865815566437153487189062866358748341347157311653406484399083913529661164379324188218797651959632927486154565588940993596463082059010092326991577012616266649509174726768107577601321811393623098079248368160608924543339376962373863120389636719984686954922204558829867920900404444128090442333401847862903019548076577574768441236626935728680413626975505598132241620013568552847957082668289255692674456583125301330938077618846356296557521886673089385127678976566842850442608952450455192501599589120587605483034443582654003001754242731461827720196199018737234080606151030022675709086840212639841258121959171907645116531751124530947820985644036257346070896541852582526188951527334273317965742609001229184305673102626859500504135560271401284658105564720501044207150588638829757680882621224259958766930001014179333310476215273517063876534255738779482613333698453004543363799121129136411932879459976545664489942317421444989427490163744255139054352874176061269357497754421457398135082581327606089344646245695789777845423253894224102761299729192312480808260517856657407889024534842867608100137955248476332301435630246388524402817500047344167565818328112101937081772108875125576103420779109990270712853777798433918177655163634375250475308564078879848756568949400556709092831073381822260573550900836215494899221870535242706225612888961690873647498365785672224290363576549823889892594236441879963689454002349302757281337221416518243360753413550815734979005923692589930220595720556474165293203857134616135728824704817396772178708477639462171378772051592605753430674036614193932341244952024309088194630143429408537643551999731095601551141098463122627230303942474731816023235393514948132857660047332236915911288816854061973321413239861092009112930318866392477257839240416015638331005821149768989765979947119381147430940378901402488343340430121639809349088321886053281305486867421278237922560513434637744610053203341066111745947250117566087404374587139417802296349430834401463819048743696875933834948459258644506417058955091404271383922387081148420909569992052904994419651012998332331959570055173508823858814457313030856188393068519094577503060211852255138671182233743294129988412063560565094118627415850942314700529314984303897569590151421748828641095195104728807510590447396725690630270109548029383144203390758231661194351110617628291991516541417568928389778467773366901921078996207199746611762420983407668592302913375283906605607619271415758532037311865138052168711358124795026649438727691493764019118899963948134498735578135198545774614784186070241334500176568782338654246277742669668318267267613492295185742046249631620863864588995663973164145613738726168323636155070442237954880309003120483075420538206935501116292583204712327555094718642000601351040683069961202711413139345876959368219280337551231583387175304907747656946747412773189725578383377993971921239159601610918173094094541442810352786758069647641433116756696441876035705265871171426240800009140102508576833790817694293877949987392121732163962645359015062181933334649984750430079452810948941285812267580633542875197466825214711040280838674981765338280350042703446208120832223223262277639782121617619256641367147608695993120839453483328839303786627220370949017409824368923032335144093967673841609936884237060869643880267554557404072349083387577678812436195897328716605256193435930141725101528927425392279240664200014679523817884594851638928258671828700787839057356666304200719859909617830015469878357417742831235683083967395546083870630762712384428667644247076140325574149926244915988864267288923788030605467581583460403642103077929514638684882090405162820714769513006520830798082841327276806782848271517527826624662191530709598414006590956720229442383348986995485124071873930656806365850025656447075012903732268277747526204441193953933508085769896546847212504889899439658042501935429652542321761025016803957318252789751456591514862987162056492587932249861039147778298343893042657996209046346188748468962195803451774644508845783440126677589410374687111437230449126189939016167441836477183150084594318804760895505562130489046316641131310262243305078383181778908576854977668911124880067774892939720814854079432048993999279836327455560248202371554275927988958759943149015776446089211475977188932684577675279240479345785049009306612819052988599832359582752357636407809388494057622065519383110120816984503628077086700472560175023402612556602729503545647332184484441032762741388716608625341567325476965253087003501628446221090702268668973977434305432581367851009550305678535044151743375725352796420397901620877598722429069401329243080519422871802977457953277170817497290909151289330051057317079312123493155472230635684178550785455268168682142940844613653677578959642987141675315532737807452698865743211254967507446542485173263327548684952643741384982127860965960368722101259363531393636650893425327606904031887954916471057952633997344737498933544012543287943026160294199320766988676866867692740485334529228503494056581252238566370034037127364579634758874658536073663272532934758688020128954376225788567347051645534584316284177190247541788536260586059193021346302974351658190690444717593066452676520814447445374853677263015909268394979127332811053369950640544480384748734346047829825712816131807268148417231485415232640648338346385154862232059285112879607340412414095629850296064282566547380562161214150208677535628323800505286227033730507691805516815289257970843215052913349002347859330872283453827052444131499108929877633830848781038117484229134042284796791135974856765159982067531983031979556679776855454539188890015291275783810108633114178536720659138017259806099149782312342464580882475307753193268841494609044703417315486248619455969105185331231948829568372127762834725005815666912275951828215600760275197676816774085749465344008703469212014940218131968388476350347288340097328726038379342872731143529322152452409515527380358936877778072630045400164725452145458491264401111562117417979768569311496037639182793980539671141762525834403270100183491929327324463112617080864458841646370298511986544752177421788939316370891781188105191212832779251356811443960504941597272728852671412698350257487799454736199076386801239270969713875528529309101425398644262671833657096692808396717139573425200777456576756224164278027368165629377987353033372661531383671717281882009607557959037298580199301563481104336148981989074874994145903051654611474558366534250152870445832823222815888521023835759747342561360352517554709096087083057679727946106123992716171976747385120675103839943050414387469538270646005617991856055735886081546642005098406233911494647599806340809966583014887141494714096229165201870716346374222711541637662858862987099396256000651101111730127861661330029171813947582766451318884172777733520903326019065138000505892241983387113624949319784237338927377431268513939233044644247846862812588318542999936620270705269028018968463688799353045734026624878915985596612545724373815346302468885826787594770276105272226719485307355140642140713951102576548508242391165442961443681053768882645981411330267708032072596786749458818069712981227960592016917555796488102938462736627560670790989435153162014539990567645723634033048369121229577156953328275148800041002085908840537370505963240501669330409371597126735157702538613274380353703008756786581929157596764586891077129822983950086355461871236604207213153553803541352889719755043459980495513067102699629735256466301942860446252803903521786741440097646876459234718629861666018911586591374008434990465639570117877913789079834452928225334022481263784756240475792912152414387859575641127794216844928699009199295283798813255595716762266041463238008705971474269165314200451953575268713889702448210313297420180564794625749253146768594638703432207545261962418303956145886065036147276623971880452490075115009711349184425655322928526748264088211293041531344119694041561054476676420036744813802707764102591569576444213915871831293375489885413211386777220635293065879788839848605687651834859326403205995091844540091098297293499512716774603591829524872669849986687895905845243125635312576207327172652989367651215510902295987071031199736719825926227702548837563218899345963118282552208893363735041128853101049988770234155424999366679802573702687863073926942195036152047639514996732090033271491453710427066162917301496909349464704996996582029245654411000715289809743202498954077135516817955701323695671304426927493529654810490787448378049004607826496465014544770772839133340244864094510122394074781699481715422907685826682262651130221463010570219590530526548278810932721710297151984751367516885226020732935594003848965132900704306907980080429201512813887583271261674702249698845171235761860590285749447284362713968900217370249549633308230916697756817237140576210254084063385254581154742076661674918688822863457017489889995992279139578531488617290631781714065798997354674981068671588751783517119977443580901741198515081053003145344095127163200412011715971406432289531316878260905854256429775524899605254269911793908908637963454788684154954386997165620417720778680197682956989846516055531569090588349252306815444662714694934435643257111914031250296431842216925620851257789890794493460223851250416416683238330783447688491972159670216024592373642054715580490869154196537641580403046681313245946806636744018598231767838311360944757479338661702069904584938735439693262050647964421605574599573782333476882529858240338146952481979948458303674829697278710449876973054177751442513139237685503725900172830869350561482520249251013883244184943866254367219677201363407797434026352263878993144915706908116927327883795228385238777405749442821741931545268593992883933531904564867132171775910799401313467895104342731821265122409921885404646675018263727940540787942082364128365612019488284073183469610771874172515442090781461507698681674616688015749325773202756504677389355373135107222002525779301416331159191171675406731954790226351428202184782483132534462019624666415611881907135066390469695398565514313633939007529160211995590072076712355122286587595307568422988521641537062699162154989127265548204190708009312652498748508603196380097982415958609224308390007152994716540555049510538389780363169077314270785125536358381606516827137851498637636725047240447594505007195394343584760655226242124442118541314566612603774243989889054452895391975704998662567862958744733405396142236227482665321127080602261145073744954559360000390301853125387043195319047414489207907966203106035809165751873253910535888077819160203910386986786604863145756315937823055491435580797196625367079815248440559593960897085729380184319855002693481608697870580950781975470224393302491798908667669456176538320878158932825945357810357813963532017613176267795653472418283646227939904324808115205239072756633802850393679374784063129215959776781817049587743138612112320054596907345097373400159441901008904587897177299970788229301302435295542344575921980408320875846437686116711816836367272789783202961291281907214316112284281209230360745800651111029974687076275523089869378617845476902787389233292295853867138593014044808729242366970984095250979131225928290520564923107371057200104440252708828443324809993628501678013978798208413810764131412891481085648383262147900961863589956709054839095106268308825246798968564851194497123637997831780146545055916100888121555106133458151613557092355053766826056230210955721216759705517233123655490779718908314879026339929454287794820315406729771211984155349492707573945724169117916230118183165604777729476092776505771947617914545606442536966555421420749876320941737092343538165756885257769780789713396003755760207004455983267335954805485028186072118813814661209271325884553313495614367311628293734003785871385834885638787468299081861136387468190070927293554078825751905098813351048504003799070643496732292749886941383265317011724110119697688514300578543337105549060315053312231693682735300240920674990892501329934870692579396188126822237387057833846125092032333589900047483430798477128599250066748707128555513425404770274271284042286163980399492795930291205440466145790272171935707321966612048582263931452915343316220240685408810285784073700854145990999936342702509910479704648959181710386440015651542976739149688990404504722809651472897973665813234666395008120554607609189450762148862717764601496999840971816142437649575819756901610447253274167778581297186862140777320647377139877601295145206371587583397291206818794911079194274839917435889165275823176779108743124810335936972872427412896287476645445028017357056029824367043399215722920209342303018911221282184740818961392797319859020219947627685758667848079483374364341168307394746509348459007380876998636342139766722555112932556638769205030852625491778564472402435247636245118110569413427048300296126683877825598514934522800570503811305328030192450817032093428126955545327972147237292499398529601178344025361696107965555119402813747865673254656920416430065148187927939644745511377423292332316460527176703750712938491385260415667337535077598592570165153677237690930704409585284911546851527208794768261979426744064813963205168095932216099346540749029502332440960198632109146827356499409834607012199419679601953374089505104030647075277845210683083548852220017733935820412813964225130060404350682268714412174089249908379672882245909553327507064897662173996832100151845752970869415572344108996334313108670465926168866732555807042941942988363269525022436283739316553755539961643035595010436339218022586357818608737772818215565561086368172509375966882934065337017998240507890207247428572577045720702492512962017574651717921150436369309942076038611077065397129666875058902795846016691964004165580984590651632150736136725537692142386733863748597789614802924988906733443557592770190655443858077235792675786270446832356633154661910300059729316690844303833191915628762478639997583232893557783966853527067337664315705990190204671884645991294893476206395311202286637218479312614881226926965488373306306574155384683653557183150712041645880135876205668464397011492930034685760591783689734160710364538977373042715051367158235476766533701683280320727038951260663804519620266233361161067340959407752486401774198468782547172697058081332365116191934542615637985699803638406742787911210052454447557830776993486620248776202510783835428751317555524427213013721639752041524506373800932407490292913805874329548088270945547179516654552954230759767054168653350151564801942478679245482418254797875559006781937635505998744444672573340177025005562730203986196584736578899976604578632775179456241366037109735413095149150199017988536536036192991147452825025502047414982545464139993045680958195911206800881034662934079856670593680702028435944515139008640502705762278281418453614321559518486630736083083055713894981742591701762727381049595486607633889691465390374482092945374192562708527212994659321472705033935277918772880573599294766747649800373277788261975927207384319318827871958418059850883551661413059518743952367511930713474200936556856131220994997638758119085679139167501796325113940867869418132858064925727960866597881232014098444096500491067592057489544708117817223500552338468345600280737920746817161008622871015756952279426314535294814569259098422665471993639350689872135862032472145150618114652004860024122564830796706723343403454685714299281424374675766343380477695942281781235181765358354002997014453155292231238026953136712168972837535157183899419786585962519630879302552706210053978381662000777410495578909152299868450327930696720982930240549143244041847024737410380726975898602967645308534423131695274190304697590452357240553117258905083576095086736868097135873633998732448711280776777970861794635392080566493104412957595657169885055488599901419645804016387615157861240296546502179641816952267325599139267812006380906214346245798575329171267276431532060906098910103417815665652233257890759837281691773249666789855811642620897495570365164719854015656954370939023378354266818725880752592128025279778310843612579062549334910361314250270129240989977665432960389904380337588551732850847659847271708896762973824314492744235728314235256382385869157618999230064112481039928443813164794608169806477002491024652551610635740506366992904601803606265486716791660637557104549618294135515980536394462118279753467446853913919118303931150167799766389424311229878623734206970386066442961634984866443235905500843657895869062464050503171912235774343184861803446690023319477449817962878891350461317749286495403883244559690322388122165984204931060524389143696504620123650443831281694448523527964093828956301429139621941570542244455523065172668033978607980002389841559467955273769556217685091340436074700491890538398240329694973714852282442158241248101372827979054334525432937058865892359573762959235644700035311357501734780711799083125972644980459933706385639969110694668114259701312518632382523005484658853866884702453520666262792891751415185495326777438620865807367664156848355315740086235655457405602779997421770988242033608850298233306762343255429072357360648253777766983388555542935597541510729980889330548060750781287232915531810225164646841045341342371100740426536410006851246247389154355268742610644921675012800028574323829437365252685405277400616387727705525145369074023118794758734385693134590566347233321066332024734895201768286957074322560374181438761381329528106984083140660030737992454721626961697337644528873896509202739509679918454689114156965788197669112307987075444134407327127388365044750214000248249294729717368301008865835962762207115758187298758330081126461871936463452771085050736540013304789743736918268360085744056670435961436257149874222772067483745698018417607393880611976771485077751149303344833997453913355294446664799593401419186320780116096343262455296914194023710150545650261674436855817141297795433499280274985186536520221324934512921007586893012394010821035316101967009149235012344619762722266793508027905642821502286689315681911434530145181236859105391375273621861142248058863566010788848880441269814713001437589258915320695837811671279524283760328919730824183513094738301234443562956363341840158552657099012142533009617525184146170927599736691454982884199859128796596778496358015906311393486301716140423225913925174062971042062886291494397083451113379353800149016890284703102397584050917155070303112521948132664924149024485495270839956540778567882617457540853318671375921579310176915811087877997629333824063936653898484263352537050191253549037817712583380548285839968454894107727739742196701637488131826364312650254635544983024058673308473302062673404117914596792538679850364119657260124056856933088095627151727925492008043532956760278489263711537963054389442196119092667570251317866511525940969120533717767081029151796328034141136657516572182994927512180559511554680761845128841721437394108915785070410870706059989059795198062374237410374344839348100251675671933595021574539397397537322108561768652848668448733201741613552582105762418647877951487639394709792631532520712656066135185624230847120825506891769672642419272831375094860527378407255629029701901164603924064978772706377018160253077250966133422125535780611514371565457795758546417944909684475427473443551718338773056995782916233599478526480960007702644404857931451546287785507338173884312302622193596156199356282826404702828911367134714435294188581600181069959083452163349853180757532127981133624372706279822997195600747513059021228933317453998053058545891891904147172353700636237522988225371252851822405559146871997654273239326010108278502771525867971868251433491193749946712764066811720799754058820551137010048704205059431008659281301156338883753506823975114360438075940197396341563864006156170963706142661238154185015000135052779891899446163699241722706297539726821424845363863142111487992455077507394616892232104333775593672407501285449502126473898919372071834265498191941857738732508281109697108021274820044422155978641257800046978423305650264091062669148195232207321903259165729538821866466064745679385920934451041565538543916948909406251888020787488882108170272912141070313987131601528894396229539183028207685785587087073293329742161033467360415694023701947545576674702643803828230848551814221553508035769671469310475716129912746973081708419560495274383479948358574303230377531995814809787332590165432604637647654715471794757019990747324155389047129388142754191957790903844865175095920538603490742611279081223097901860240699770049332640972301983924091801988567831008869807766737981090716539932269872836292030912592297382671012098396181736084427420809340433307230803795186643741610055673626297667033675988290855357410036654061452295732888238877822699767763667425693750668697137306956069796502877980917835287257058542246913114675361943699703379842393298808245758465564414550660374435647521576183035250364410693242702371504969989664649567031949938816582248402161131557070189085235445878632897325168009733622546173902266151887744289003060785691459944776480634807386489402889028980041674352704902601227615353125208871349405513215212023910970726387696463838166309496502449026734207940878791705774125541918189735140416997108632291264389627694285669226856787776543349920468192239679856405103806185930897104454342904642273806140130446044394028613020032148084391194586578782787584147382442026856733784262478030193279218878721049235038403466708463848101366688587543140434062147284760677078820937666428557489932461304084672717320698545116015876084203984773856884506887901212371704132465483729104171426600097004422565386163854348129768906385072798308691228745735349883413906953925239355683693412442778628480787960730056749231996376003683977288339041998235283367391228047074980583444226259476216315836579917221622352579985859810588655324008719407504834140424027118938373657761368720968514338084630136626810335512842799317397608475550818872622557368714812913253794226336777191744405466997597257358449487736728139407386949850022696813406539196247826992491805647155765769240297292092395844772254066204570804607942768963632774597582190118145044823131515800566489403204612627768678317858401219162094025740978915550247509035750044456854412194882783041779361161003617441728355420466093353759140023607319502866894951890891123980769012998396093670075799256051836184410051474349563732111370099560252153658477022567020394336739187735637883815810002074253284370971865801174918588620307392026366100297902044488874118181367011294261593622188682907576455857249294436398896158022814925992839953192773931648875447125693037520199943344774278522846484180840155672753051123654641852192547961929880566494877978892884016051832304571095507338359048279611574477450367869593534438138462174646163072436056018051656660038628940611819351877015547856921331552883188753773945090875901679335238602970527003900427577217174120021083367954308686265142574826479032212677169261673458919859156511425858573339704306541301442652314683686049086408675364543975128061426934661686332116782525322789258341112516387785916779055618528225523322019276427225974450210063973105198408964582438559568015578102441502806182949492383515648230741227240004817312217112494370549189590013168246545266025169507576660209063478457600686835957486869409185455718954615686126360262849760411784443105282219521189234569756298233022049524644259421274841821597559394187999834470349330258125691471601786239998003810309096603408495641825130008456814957147164763397832960558740388562119214382016521393566771731791674935785047230965952122556254224224250267196928589545178093366731143572062811231871810963008135268377743946165816670709377575376851968988299068476968880492817673108832465313890996057894325958107179012260840269670201255680075134537256080766921453140478168996128052382327109066220159864387653751793870392184560315641401757833018726219382212973070172306115428757218154982980342276471339906938071971451305957221497102391060076540707632795014153935961255628868366641998958073236947643248768833044369894885169493501539404945680693776671308103933026118928818732439092191554369249039149697785193147578876353642138798808069162859027428581612696564548326352651817995562435339394818600390835717664856773447872267015625196119761968216598131668197766054785626181322884905859137654084280832863796083848465317061151777914312425721319222930452713734446160648588325610240312519520351034645562091977939417369372352109602254336751817681657906179194020156946321551595288966970798491632101957806968353470872017823841632656794939550133206691524948076828415295835219809177168777083783792144798670173281341006842677439612641635924663876425256192272067283799655357713954205084017285469191402519754384538449462694445136105653226064974978192744287521914360019463878640857804125424634482539065526381503962073164021951993926935566127006330901986436371681323528973953237355528673863552683347125940564153520647746908294973179447208404864755080041866570946491284966887309010396166799802627076829133946643711606676632005575631522047781006274353092498654521766577761466421371212523568686754359139856058779935075368181648222909253191459129704105299952084229754329931009626740031961632477844264949219141642880556817428662606749425159981588903765860506018549233781943414546712314238272001506100810621136242112649681360098208325144042781949450347269575976738291658364578058852098091849017551346997442422827620668191109332016905981905550576782259167673953544240031587569728765440374226316668701892619488461677988328698983920657208137068986987631508031931844956393322551346522477312306878139956653402858270129232634309326056970420030179207842972240432646436424436295477559890213328477409283308220324404045972699124749763854328057635071463975177589702714353465379787447804725073653380359675890664898374869256720412397679385452029720367712159313439476953699935424913947656133246746160767294090750050699096590924879040256562094193109120138288870564842164566464068331033871310169558181428452231388844644367077194378200808706382330057786172752149758873373847421368103640288083914176549705541532028624928917597413625166008374402840582236814215159379534777066174728505707895101818359827037542065440566696390832872014732996338901805985047733517816028680961792038008941581564075572872127941040669250076166305776366957563825110603052867753866123255557190024459135292494557010525903466592518523068847143329033956125877321426828329962950044292118698297959912017669988326953475210398588951649915271946414302743601473736616273085199550674669533475236703643981223924054523258020998640022513719772289456737641317248412857806949384073547986261699063549450577706400392742552622333715174710642005248744742373791980949418562524571483529366712572426565450778512431835652177555080548923023806690099392592939815106100934367408473310489248258397255135065631483166309945061973730857544104336251326095131877015977482050315562089646883781194539319617481223800479612182953487691084754876835665640775073091230852284089778993863973557832606256870202798582713954702422928602556540357944102513484221232013298419072381909521284304648406114574229973881561004086019826711315012068242177517264125877273588385523676790752794031433074767407657974257065987883130556455736227747737341295218863001862173463713316751801894463308733781640174272757159676040090889939619094939537380578031385089187041804611469269142892636627551289720578143072881336824125309257361801411310397628968457408841360129902511924603593255416041990016042771118589274362316872738253295550067739687337875383596617917919139351274641285445796047715648161284306108663228962528458542090206993741975186524439977095119201402008006286307839331326816448595314163604320527281971142056444393428937050431477845623857410714090653803916073096001673946947106906557747411321629049107411261407798495078585427142268338200143275988376975663949275625909025183913097693908348233524978042645330974125365663886576088061160143111293154745214422520492435552618708108297511765956250203376079819429232249074692533504571183704447015923393901301996795915404400842845008613032827743869135624385911616652458007257185945079699862252042755506759822093966993664335300449666693044997333550495792050240885246043577396018877679549909296991319858229065093191792971228215058142006559132049453609482449514679808242754772047329867918562074550648688663222411738754165140780226825562188831208934759704885711045518144607262453915092629569634284692439513865746713687625450499953799749027308820705693508459146633906656215567758588508512262467099541678625080399558729122237869758156799134011919551884659660302467646880476842421016972282287093396866309728117170063387405699423932393617914614492887689035370741590054555652773639895321438967564480146021708266129530949422266575152083080467722816572779644072941960508696247350596034377377728723551210682583402318837746205602803521610074585115879609861116367611143056830831730418742855045827700467824067564235408918573910420668458223299727865154761739509189437879346434816594181596414424405511032219520176598124330571501726799040173614412548892379227155147657159487037234709480700927775462543460687409240468843131362728037942038561993991808082280941452251879532456555118617737251740877724857701261214030113707396397394882787894208388840403494086326435763381610828109953852426931497236604627695101193720720421380620881964054142914355274023728780796179764751481941816386605170896494335961459779908971948513960844640272445305887136202283868929424154806474087045649229082627652237782816305964315046788603444140992743084081085273450882984243803680327495683670686194800975895938086935205884367906134098848959192579505507204292705462134591654114382154536718180661475989988487827166406780130661504993606009864337961876030909496606217989289063523596188128253026065195676326857727582289469714795535006355638334889050749400997944348809235623300353797962256430916734529244760690919146634755079173198705543594250618401286819397968443815088193843469162094225438352498251501309105654642333760905546229442996155264634392087662431190866386954261791418947571027128884642760005778575619201014672255295851242700706614949593565424810842488317277586941455385301225171815702528623505927081523725521939306659976250104006991867036505725616080957286361998898309213996160314231738291057620148620717721465108025170182888976336102293847369789067451608759403525258942536909626673731009750333203375784352152539705490549227859375688201449097592781367659299745754169936432755629967007045440975104151368431733919610577805984185052200021045091273728463326359489633316026976401947891790772399613429398275236847179628498645230969639343498850778207351281702409425062896324058471453401025496580408236102561068543731966776587097189805889209017077698485752896945105048173213105539528254628522309825730350314532673217902857666634500982599323979981639425541652452490081390602798503320885255129471810959902482392916562027742173596541719766556300593824863376774610698289073998667268057442318101335393052221957808934016678991749100398115030960912685775183276650162671212005826779496889819726715764213763093357032556375578636944787038117603346381631759821340817990000308199190562584353510824656414427612798905142289953138383527052101526051411011623083908884204181145059249634017119111646034231905139072768429094448630775664249558085951295031416751045405438764595840534943378980493724293541333527876273951928823210789725807159586753777813945043351890473390214392371397916516752660835147296511621274857361902738001474092853521948253357834317869244682853458828525641254257563178086768934008242145663641447038228235490090404466712636845280641459271446686988659197427305254593317591287418590489693863979736383206550426714062766851265692664803631311734264913031811607112324742730159734863289694619778702377235406109732286905120044530506457677419494572108492771863704221571968498414255293708653629664675024021109192606459857329597438459862478544683651891015882699333512749744965005360726379656803194701473807207701901725504749988426941344804950849293824028751599443066615781135957253817350510142194804073253651318758821124504376325603195892016331861368910422839950497908697494482992262471581589135128781955824939319066438992921232301748552709165555149471635765027312157740203330598446106975591222680261813447808511448652660323164897654116708819081555776961818297317717470768099338891165026742458119505014812421789634381894495862651944766072147534557524458455850546536773816824624343767387984985721603087011193264247067736710396588397410954393445969093283043708812340347734330755146610094289463026266809223887826929044256326741936817772390479218266287324547189366624790814909275299735818906090679872964198851448848617441587805948025678273025195524084532978945213990229919598396463634433359166551652848808282724468208330388529178327849911956616200498030105727015497922032056105417820507469542659443641544880065796633747410719808763892417047288404045264942921479093826400247139509399271191698668861604425642717536040084485476541324446583132825829652487961175824984088912301564172440445362202743016820756092629095311789164197324504824745154997349792445644266219454572980475411415949614408520916680574058834116222832064353561515900769829304456473640553907210759035455980785969788730215134578783762502946363637538175745550366047795373650962786181178234754337507260434465048213331469662734572481522779345457805856627487240737497778827977523245518823887331450759548080627541695089994092532389803572771820897902092609650177703946423060590295949146519321287683400629446427361646462382330686129295013004908773550158589110313178305749173288146639727756431678965875197193379335514304922134962851084440534205736423443471175158444539931126021466523824762756977905675836974622155532172810180020837374303367077638453924250479224662769311538914397745433640259479555102194394785426562348386559718335477467232633233688355007271548905528074832348507919818162904580815346949157425623444917326461521528104326744721171243914358173604546993075132451599789356267204649064626973774316142713103646477925347211877592524963241373574795146290456618454663665363529694703677635704573704882994077081311084271863689498224427987087904364898223051159612027704001600805283726096338480229541455027016139180864376259376281819646070886811696332777125800939731122951439022533027616339521546957353377783132634343404598632832147341403973616415139820847957068891362869392305881469314673027232141264532489566490271800017007307071767910883666786001727566548309413861740651304415387954756110111202828413068042233893474042021633470354410616072262840867341762369603946730318509935191144548059830144805486951452751924110924828027399220491274496359667380907484420849745252844748712591639025791478376455968834345918152320956207986536724707976810427277094821424567776185235485860504775302938366747425359821567751495593843484592885318622854474818169114324476207847757497626590930088812445725576128049860074485826340346047325561732307727969786591589033479832687159415322370360509691784468384992269287434496934916686548656002159869564730937781119750723724002303884408751553367338919804624132548534419263277760322307148141276187580774858595121268671563334045181395239313133581981300726501232170119345338662510974738945068773359929014939636435970620933471760148442767428832864035469332880145637131070775887378673820506259129074913941270413320441250592828050549744863579377916181769959042553198907262930182387298944154365792920256116557682432553315552870606749992766622087690574691308991015487111648041879565829222982867168410856025132282803847421423575000015758276293710372175769696449616622546749611230815171106785392760724051751824970731176261347443098775130469724694405483013248424136236321683896110240599201552983185901271145214837430398044277667946918370899130721300603246830745675734808520339585984905098833695237662301688845416149784488720961589244278832658878706696621308030284288179159407609626906236923116117735393562184373090589804967027807570087477469397543550175495777287516249270511831904984447417739330209841000646528999965461499458098688768960630127621697053771939545293946725829568185769675504051445492142957950601852718545664214847842111012309155866554571484848536651801043410910995053402556126271241867496872388874448328996753686614509383129592017464265013399226933697833256081938869524973517217723973580447520861953662587447404628969327898868737521492976049107868749185154768414326681715292452869435341095612153531051430712652935987437740933604195771805235098063031623331332863967811765929460724554448880347898739876613268068645440371511591770481847402163320732797502705258044980893909694579751087385341755990677655377201927197153596780358425874614891104659457634404012109057274355736886511226568810366362511976537185643865278504255989337649019481381815012150792636147283816978412850268251199418060964752594247523999656136936862423514463662227622974871757084264735550876197614102978948845840488782639208349438612063795321072952377977684747968062761260089616697429860745667658026217473004496990002570523526985067623853143021254645440993534488817888493345373669763403876189461476461099303515081037553676445751160080226493128198179017311174189563531378058333119747925895338136826126675852304997674586832902896382779697659299739359712799229010742437900742893347545530880810667667373220447559646068789251605911291057682211309405524790254136317551152136305750381470238106174927563379913857165777778121068380557225525646355895916916456067586104107392774375439036007379403758462482319283676428231320713558218805569191444108997555998595942525251686246080230435877286770223422105826970096134929081660810276306598623237014401474674944356260835980596431872833111613614199293152762916562455865377217757222139850187174786740123369995198976931378228651903599107618103455243828428577991516996426300365967722083825516494779683493305838598248375123551316046369138030509388493047815768607243181041572487326733461988612560554495968925972646164602384963542806082758542850348938548028025428771658028271948789211315387311254774090833599861015105132934006295372653136727042329871525825262038473992844155555035500128843439530250200046316701936101026919995730350411153643816308490290204350683789438865980024798010982818958018658772603699060912136390678332532883992393089401813767211756865612374539182687051786099467597782674233626758356147530881214587627373666169764613049106810693004075736031967172571504307746046531853987734607250848804741568613773556359326077870017422133297937130667678452153405413005663461588027922209062003970959672304256829413955056272985065107818508914079809379266836392717787526532721544958958032651182412688687994279909891238750752457246944594270133041876914706737856407155768636341747621124189736772239408989749309872644379235727233338574188768755350487345003877549731790294878890618994838784468663439437739084546761006523287879572279179898009964533702011198779797665636914461304706805357305046949019290722414570430996357663850491288947554698332557372761518429286754785447543627026150676122341419565230976922964296295963484513160874345805556382817571425684513928470233839290270221411852722732867864004476817077839732848051631275403027618077887663321569895609406422843063414974253271830751786855703816307377962505984546335489023499317033492415287380867702750857174112457950884133229813430134298014049876079086584527460323233519717668089904400991136845341928479973995109926539016226490164183903948045059987983149589713748416278734035056131088265550647108812848197969490450581410097036937915065722423465269264755954587789795077156785900653931343981054620482233445310657956057663801720256362234125786764785334516583510004179059224147538548244446117706198212875747566875396069914100510123192477816823935440570750222753708953620119507645460679310230465534769078304310296301820268330011062966244994315346934781765834910849637451332053600890543867624614654644086548191852648569628022384012164162480244617988878459881419158955037671681229655201140197358447491482436442556442714079478509298415558246528292196977488463063606588842028720128419112572536369782671729618887514612121844832432622179805520703342765737866232681917487252801400794992468478145872198015851590509730189235205127275904341072215093131165019542744281570942524067995520032832463733667070862311356053578492854433507402150928730541647536638583230773754159635406633113061098720657386235458667840557615332705436821720049319020847510347615415549931516225531463319241159225871611351358235970111010015294813693822102955835488853614884223866960949480686350441765461265666804048212835566200698952560815420574593377375794771431742858076404876636492671198736046271602075982172301339944386559032524838494254534444226170365041995315519395163389102640387464784327026889295990805117042929141683847259896969859712407421268290178198219726149200519094644654102702639202938461060619844903238888757219594233477018272045897512671099000286162506048831561420133801735714854381704951957809806864346440228412885010483149980444367941248432996260706489716622111295319986950107400331511481247853594601875459110842350486004730414750377009014485917633962313530836090318739061921264397850150553338120357423835523629234061415191849022271273241856179892098197291969217335178673307506710260218260340031577276419261016351502767274169232021378534077048379498849010781358180150315155457111008501347514521586629116274161593918665457762133555780522236278085798274843967854985001737347734202937668612813210077239911619055747378912224452334959021348573735550594812146649792772801027917326080568213002076493847978098698518703728226701305336050893447269148131175762057893225942239710480485668481065556551666780518600476445655641697485240575730096096339915469038860681305666632199238181101074548477540968641587072983642063226742556795711729914632306177668202121735406894826913326387705120878506709417551697283595901761918010115585428632628812490894074296742920124776114317138129434009830690360655176265367492587091017664763163009010580519922590771701070201979580098034643743028946960922870215305655251113313744267352827149938990844583198291548665849337250777682286122298309765958774201308861927922002251013129503499698986334632354246266089347936042694797989954434351725140427048815167217792305740990190136700519024010108838258051746655739530058206922132748598348680232914910295635116428491641634324351225654081706752361989889404711698195142631048190126182029929486409765791207425172080503410828756962292160485353592382068318017314073592033425177588943143711152497742057703110909206489581515667214585063773690025381920201793000096416538872488029832607864598415993755866243956049573448689471839661545330183282820470427136424550554104529168798615942897899157973427519175166872563591735339661191867806627583097516538516314818504782871722000431058391482314108225840915718269314866743933065565700570933259324416415795312441152431430541706763119648686726274459219321721567626238331936677759618353757401778906458117842204487641890496113723456316591522001501497156244576408741632028263413434052734912924914173942263521418601493332577029736921104067846772891981943541210961218860913923092452920657010331955263109199152909232679375875853062221077455737122967738161680521558757792899803058558900788922030721781004086037051452802280830960840883555024844612317741074843175158592379765053858931392340658210266143909031827542447009158756509961061305120064134751184224430677519491030791556463213106217646892207726951328634959091025097484482201051419320668005828839844394946085883014837669767718385769113446351373722806632569902139775012613294085953458329354190192277024002551548771833384755668080697184018595687359073639999211890108008375751004923763024156330152845467833970507556908886020001852016109364268369855682741184056632942254962952019281588648100447897048760159271858777222935888081121078627186696368740064816575583380260334980629380057350046642069676708067127783267009561142560175463702327431490539973756890253207178461182621735057926049503729720378030859618832870051610149132261220943015070157565714820654755118677380764415600123766839950373441309888590139356174552235935710714968068797013902523011679728933804451677007558703769658757384483785800218898288332775790049248393768348321568491623160644871137450450717179527422363420311759371455346657409800011435649822738575325697759600011562181980335178228060873022989411401777223981699024396893909324409688688479201309111752282541033924102701266927932672626311273906868274435790635483051469023547631862420515165843043745229752774853504139885910887340884052989115918285857627348009042062295286568034821336357983183384495047644626313939606007010872475819237266830500215933937364463080800125554752672024085682720347761174395742615830387657028275638977076827080761832253614286030786636643033309310332678387794810556432752923472194388832518578962682095607426497530079061571697739001187021303040866392160638803836950053514323833587070224363655566214455639288179005289546911051317368487728733827726449746767531266663317068785049611469872520625236796375223254807061985053112556953980396308140758036040991632806370519646617182046971176298207945458293802680191050826312351696784772327905130431146428916445796848709679501533975160777557622047108937201881623387505562088926636475264580088202020380855188958054131459871770285613365713173362203824819037225167304148422680940402625418964315960096283030064090307644582869928579084177719391612102074727688754668343064889431361813061480241235040214558274928172673576516409853839944867144183602193094321909197003622817979381037524132566175195103503452462552106096785867159085854604781365623638238386294542275695767682014249860962139191067171332067335569741572289649689563894705201772792348426965134903044937463763442876554713197622974078731354416861319140281130879052282539944984184907316484571727813589063360892730770388299251103709431905031554943385690058023642180153914942509802222753884114234968692802307319308050777648409539667059110356293433180116396466828111757360060001310061956581787486183453572425488677481813503153659230403674991673157716173327942538203138420498536135300956586862995528875296853886980656850330337633571726784264957245761798106048941860344577710545784164328435925415397533147126235060597671415621621077295002146587833450749043349862774084208535652047242334322995685111596510052057868091370641591844302059226154376085480970477768492260822197152741510423104921727224329129455049458148821723446376624094992636233511526398732825588870833213627655830045280628327985326808493466970172345014637751953967260787410215458229258151633167968324605259877477674612322434425279383514407434568245924973819955730475655317729134557940261051273020128881219609618407744041330992749691367759720457785786085369043673179611715452070210186640092497406524440786389211524473510176582909425379827420338919717465876106463647750448311615607445811609157054417551891036205867325486018509823593140602986384136210648203746963352015241670768483179974739265851350068078755349002605372589401232959871425536469157022425350657526447854998726395857635254117884406971316975560973215695417275863260546858258637340341501829404691371007187265858713017927181319713754741540723853526663762522186330295301484165633432228515136630098397032172909346618624219533493847857786919938253115073400659229850109785538394242128453523045608786461128610409637591583919435883352195224140418547722790128563493579534000860380759745719978032935073823563817959748504011750092746802971060196799307605814735076584476294406186193064859922413308997468350623251997618807187782037724652040616267289146727946323820968649650851567892819963600196111700871189222979200003281197885055273053158300766156178049824443876068599337032302480208049310204282466101967641375600709822078325935762951626061134705530709494270463660501346170995076246735341728555853387219928624265917415905642361227568969289457288288703535029022862921542827394011050532372487025997693313760794345842825552217231132494947847314771096913633368446474318023808332418639228474740738170774446814646939903095179104446475717082089430411728101258932795138640552419880398431279183484999932502666252506685795605454150892546645185700358462548271320782529339699462556565378226586070496859054822061433908578239925951117298516395403252728999852539536471809132728693953289802296952470857121925981894373632049748972157995287131732449830604402272193119941551716939836802029008638740371785683780930094880318039501765561427067490528155107099843560362542552398679625144174356465780739746265922602276987527319742154071599215283671352504081498056484884875359675096226510411609031352030261838398693617622457423649786652368672098795803796777743150726241972432699816016710138445387342120688289152686392874454579584329968159733324988116582657556988584111263710125436446128007596476174820181277574402208365191205382888925265955040286247697626614587045196497649747064999315322539817143539860105552354080464722381555932196130847655209060085907287808060343801789108713014729971249870141737403247649564509891400291760178037913831302387510857862824037538500209895881741995633143655907034338716404763657041971144517272791797137468317226121499410609868625217441386344901768056820616772865920760069028857894206496095642111552643902347161950710804993315187345209928131913219035674144492865326403219804011161809577831499077634410438133977028914185894988524544770560747179147286030739190518954891924038169346577608390941276766229881570812391960618152824892474452103365907626988481238022116601671431681928084823304536881129404952741771913095802934748856578298062828132745906453134043639787014983374147852619318831739452442753866489238195732661698143552583160489835578166819241407394203489576451412786101886154335370247549260939861051404961018572872052111839236647472891342413678524286432399182936480889977819566429825450241412859709906722773130686338863118032216408994219794656961025963606263131210024778832631131532099821975189742223143193130923591772278653311334709705757529090879617923270987095406650819011121755031782806960739390444301944237722009563698105351019363233860519242356595003875165617340718796443798165120859612957460595656129008657999274675875829512327233867764712848073419624920423248769292933287487760860499277770932715993192813633111166981038053074520209207044265259683651770646109889273816531397354850156064103606070692439116897155983570237233820287250120327187749090680784544084573424767541110972793461629451978604830938683219333127440583443422523859555363888626364176767634157270461551147407709812901909982162545476149356465600646761440895622690934958948483555342707063529079546304728878387660087037987821845232852394082514828829593563167786271893308648266661706177930583531700684930811133777971313594747114891881937682697149143993766241045859812759762090400992248570458172827227621067474527549624876251817140247819699794225821789173841451785565122674767805569976397604477168878102201858613727743430895907870970746189493215679439022926338633215319522177261349326694473033932461392732206745472043190599729912594372213531072224500095698445230756684206246141570460214520356598695760827696209851079624107193476310421007211656618753165508635926787665160986874754983581052543742913058620201121073832565503693175780267919941457404154644328207468027063407997788404611061093340585864363173484389007630064835473952498945698354408596406417899717678321343776683864280734225405120530640309935313136609012191294592776459742145906206371251304639583878022751779574490150853243338689781957262952677629492697352189472472830509789276454145055343843441888601335477551294980832529794520341394255974059717541682062317568225216904878039142161552857292799154164411332489754402245377152708871036824696805094244989511376797367942916146660717042405030559725187752754434990855100067625036136243685849696158526542591965234549058532340446318683545580981266880506532113560896822061591613733910180076578888337001280124712039592706767277036104896725531250653543100433434426851258045105964992406838965012195741643989058649681106899281332612652818419385594552535126168746932529782380925754665082549030959758912990856569712509314209499797134444419021021056723054841454295523332447570854869133185835890374889015197127130264166801159490169341280739592954912317404757320219317858530290783812560750429016381892030397339713857871174525848758946108751809202019901543299955805347857617820364255852972640204895964501634850290697888523019204696133500931547090773953239045578787992515791321909728949580166207582162278385756682744787045311502629045218166310962669252869683406499133782338063178506966173295754336516921916247585936179757758978459092224258918123192359056871607620438493388226934112337609240432631876531962361779621250549123312435969848093555919860392524310294498649158516904287911996066782428100231266711411608026176547320372396155922564482599335496216967427034447111358578896921062274527522376404889875463604841326813263515111113480655362343388074382560975084066743264694175573391170292171636369248204893161881674684098040318215724916230734751024823880531630142760848355641384403055497433894874999200920125834317797655494295553095360212599989155267136847877335642074040450824882858661232088388204465393168805746348274223187296567959625226080626092162908147973498443363779595762713030442353560076799440580188564513602290536930032933429024682152077630675398758908802429634584970196393443503143407349601539156702488180673128376409715742485247563346925003015881310020048895980160349144036593075149305013568708075542934726324738120412544024019321865546710543270946501491630126963123856433255438021621547316876839565454714262188414132711547648435474160222876229956311528411291298706762692420365862831098806230912267226617485872865577091455222474982156290931678932696133260508979286108920818807121743940843343791733772309547069397660005917401241977060716861216456149843429036542414099833427253829095130839711114805311275366604500566056857058203761880857988182481941274539228197794620284113611978320466227367795968295905879851498150431186592917621934591885623123860457875224943756917717057725798055706718813656895309464446599440768771835835563238566145091464636684283774044545402569397801589763982131427379174330699934704327919499902274424000303039617518530595664502072383486132871216131261983454524175505834069637481176537436082929397960509480379136049310380873737802220839426154703554950380207364814113269999450947239029840931630245241535723961834129988376759245013684708631397897035027455806978180383110702838958732107389225237310436672765499286088792282103874973396320467121522610381961973031780830861196397509142098882026430861557460261361908017503664767735263368234543906764449866555849372656498716271314265780822103315883103360810606700718200445493607318558696604729814252928308067165207763952541217496811569469012435080062437040326489175287248450894304900479242131456187463707010443684857355990137147584857303777683368881498605205718349439615829052170956758594542303191761964706597396995707158925783152758147248926779214909651138111526863158998794238234803940983567206764011233339457613344436674753318228711673090072703194726026469109612838990434948325152101425734956307633243382828459601308352203492610852041309914080407406664414001875963135851653564491624463853644265889525092751574888385260422818044156550349595435815372410210685760401475068129012226603739776848392801656405879470744588922525129410983449418405575104109501671461739296668650370088127130417326487011695194665280147829644499492846437632734030381799161871427452221157399722086811638058060049264351397427616940846597901839759169594918289900437180051273606037958061246000886831637954913878243146038705523554038249548296596917415100006579237601152715862453200907947549439089252623384089385031074726164424985602613208792399680796000927261504226594409791390541434835590866411215938275072659862147334877786231713600037848169559400025437022626211317014354220265450252970035406303887176283646140775026976787661070941307189480598964997803239479146578124719699779199063510062751716794133586576635324238405403641718688089641778885130732258831510458972240957764455679346572069791459882729202776354224269083215034266427315508679160165956592589592765643941306380516262474663646220254990730510600822148475177940742326382348230486345394481685395215510273186907316548045742133385312909109083634739486723107529907688189799295984679582343596944527466693434897241091959689589727097898091393730106387064556117383743845701761596621269225088806467981669879288410308461113133125257852052994448685026379627258569262792790749253189577254888925504395056088014004883965608771975504097443596136864787131577283210336402345471530076030084802056792430793804163879892146421418368982001731587223882042003095957177597515433534103373053570787581096684955462630923059281689732060900908641167637002033711019497044596410509119873562661433571506111344785502685824165805478914824962602567420074746119864225367396178353814432284904012594332920853131716004818107219633515123281490926820323974594032253189112363810782078650141259875122513475890230756086670097142066190895578334547215019098549223198798284035255186749355960427457700569751811428208334215230152402656246871295868605872618742540046461992282735090585107733548355114746948988020257993667555541926126278574232718400582539297969169997060913333855801281202030780722666132023643349540901716579041669236335318219529825773680888070979711399958011947561935098563947375953440002376375712971734706049082592487756150117488171692854512697308304653343948452841689036780120161572274166540100237635302198674407893415158571338102199904045482375531540613814056205160215897950025838647431405929053198393757148106698565849920824313989674691414068693663277731827387771181403178661083664191729002638087284393919658259686720790110255291503205677327534944644224177436899167541076643301409705629689444821253079861600677991833119080272072202223217283696000734929731175342994180006308796707728913571264160915622274622173348981965591939962517296718063690265004575808195143151734840740514040835974219826064668612289212795275816940698342686551226457917541960745562930253690480973555672675593087803125187144117036341588163740326835146037800144998055875272836152362840888613980475536372715900243907295143749605949817563822964865572358320669272416584128415742363867093446092493808357654262213943001460661026594215927535055707624140755958727573526147292286684374860270133132392829386042716359303112839126298742545250151405745170790090650361097529919221448756593263143760810588375690201244324818172650880379406529615543279185527222468902706102059149301169420316304181374734191762217224622668086563123540235445701002903296860601374547442872201871463395079141384801625405429153877622758837778311855517485559257194055607405118578553310240414963036318205417118524801501748610273620235591227616345532992004965005153958369708694009955968888423046121617390685114794760322832538627126161302959938459940890270147422789707054848584210967365886752147034451534255958875534244181149982063687013160074986294886474413965600557846412803305024462592597674567452583142673231538016421498984307088227442997669233524757845635956831610804735106929397744472267712981499635339640969721223791954487880406479092280511152360563441927410889305497679658647695963683205274042284693418372782936133717067829651490896343545002694084169675569901433531005535499704469136930548382030687681643057322627970073902658779024339733456331725535274702805191314404370537960333153460089457470037642159867330575320992596311140334915997985925656292927933620753709735373061069292703648323017987768911045895675686778808548151377045728002738597560602517159011487001293720460224073075341206123504566633928787830910355083044371721071097405061553562494070981854087868866930911098632557081258127198740697596652384398477425973236887516027684066636395739444232773085400454528955903407490786698353993360480708575711989859634944172411925238181394217839609627162325222309057042590099070699286819620213472258660104162535816832163635794487380189010954741546712448712245121538620070090151242954897926655984609658359712223054723783932326783008476742821972805560894140023677214166051014133616300846756722903612112951924671256943522573465885980318475440750458950884062446116560819967109720273694709769723988333601645962672705495853216801268830923410880135792627340364589841270648519348618098512492033892308313320887911537056985913706045993883727217410035942614129181288303277034502029185811621737316956937878740571364914171602406465665704251883046286539417477763074391269770461914163758725514741476826372478252298200338402797303922323446423628114371770721846823798082818171939670188299557526745570913943818821194908023975406735454242721456977555691740155956590147524614384968173233829361373069988649349329337105211339779829584206990375290599677754053180142725769997920912745155203483073755979975772955926575103419516810754241480036608390740026703782948317237026500731839625436654525987126961142130511896899545393666005545531052277274672891799641970556486076572823227372530122264674406996613157308557650125484380959243363122747614949376903737746874049186907067343598953535728182542112693442280929039832908802698787857658275350057976612993522251626011162758894885275786642019283374046618234014412734389639651355692699937824144369776014391089956904602216817902357763116400815642378334255357325171777718101577726951237785688698902896783918396926596171566145301514385358298868709590526476555744788515500692728159514014079378594761615325258414701194781631168367436589075021461150428504297341574911504080189893218923585482114355586412459566771063831132090199382534464049574515063412645977428468863403900063258668816297032806496329010697355994175705280002972313402314194174096761611409430988634585176964311867770816771561071440531189798854649898481263791407981258005872908225906509759688348371366574731757409971319706454580073210792556801392585063486051939896093904095886260938847909340751650055612377806265346727945038779969091433833852512350681300165754645823162766474082541122842243880303536796245271633986960912945194417903294762085634866682393448722466691570307959558591102867600884091277245479606265599463963217927544896986882387923278285297219897679625409060917041060136518535088580347745382040421481746665471886693836480242245853526744378188509188802513032854897089558539187280057466284076234048785299606633698311483750948540372659153876524108005105078036934353189280963468934095131773296421944983718228799318126718749742250992116878737342147182327970926291714848871414974517058103871304280948251204457194886789933490651577644151281557923122114420486415483275276036514972936517991436454955849953159114643566912559370515230551061112902717164802325672663658869599754680122315248938179938799973187035478695154189157744457174528827728955761151124818392182337621599507330394378829371508813925708166944990377157344191412399090354694058569227021634292493867571168986183473274866603650306879100942582988157260024207341461855183203643085224272801637691201637605207863345328417524506025982905733266860988386080203245684072217654472396350605390566003921224545986788858854194303395301109646663520793064129811601489270642033383181485536949813511219148448368083989986986610265777892233313456730619388686124895706739287276508649262097436726718402574414986051730684409692948531374469553423383530478025738479611770097771078762984382063965435227406499765802821071150783633604169507977419031761066105594250345464326440016806839683530995426884996410909216836416240714721028788957017790703973364499712181597708720931564934400129884844647048790902109816061970973939858361719710573757269916642609172796349825413426222663553158682314720063658172947942080735048368397157485893286155552424503562276530400019210573514063205482625852276991663995720426140987532488154467903626572104183260030077525126328123109676944163954376168636897414453265325005932047678903129774732629072058860977948469373813672765986733802750683001052197879268339570871198607836459134172745817760001071360998032690674653370895528176791127700188185340144533536383095896677333008836812816346754090437685707429065038750506832084937178426802704050637555260727991144641048070012036622652466306433185459461586755969768477875978787420405738347991715022263135500049809516710574194019897006067908530009540643769780480454473059993677065413721652512271321213738782013814242557911971340860556020634864051520518815459256597180414068427528340916890225135388472808995320442987575932090015319934997116593414542075671351510181508079249705952400730605354759713130787460907117697219374773363718334502899983619031240541570600711875063535268395182695079274617150991788091078208476934750359555069734303908670923696760185932299026390323452418670532330494269271538914190584864808174770761908236194675440658756031960484107805810703088967401491945252647424637155003399487184032003516194657530782281849924211366493300519716406325114506183449790113268519669345375905826740325232968496125354883574740654799082002346539841280881329575070730774096233033937019983848669230833914870940145905741725214824315172092705663314433820512025571847939910301104538228708804184810668947592822921720716193928076941551263929125847066316362541216475311459563991522585786604197856311191748362655071696599178519317587468158595994365577860926207438271907333437582988736731376494267030509103011839173642994397128273929279140878901428368180315176282421536265074903334328273916362942246885909504716427703799650937968197932859879335386218795110690892230593072832141120280755207845925598798959248391920049727432641676736802977228462468678806928433826705463924951570660404541989669999493701862034946435815270971628558776073074815645572156872886461160960356381062383445547865754608131390292995122343606818815990897162266843636552378520590882449410191503159184391074117220760463374340952498311982455533217583683426458958597503204556288829221041677782160625169016492506478292719084227193608364857469945326333803322593237685471865108046551898441220801876922496471811771705875767787601970494573558500447436790638981964733379548066727084317735893870758772673487181733943081342397866437063171275696015397261540006690729628587495791801889376885888446621186061188500731038321061109154813666556925738994683695990180445016106670555652016820744513792533774887199330186771023271415925174164371926840638694476961272441788854027818676052656648603811671402283796328924341269919525982467516455103093881078584947472248093393054147919192098130067583004855348719300279342774105422641944911611940639236105188106910056491392066043665846528980934308652321175068819417012131025284785021522776900062133110588302419878499171463321470410629450699114426719093428921969835928186355628411734657486317201439628850734564620134231669530769965181551027394139376529579295125810431314765778709565512710863901676117743374777570106067177822837395487584994185779268077630540970642934042558389048388589254060032294566952612887659379811322863349714178515316559776419882393309079449323110750097235108328979714476029663116329780286959205649877394854310442139401872092042009683782737534085936455815689750241670769166807377296585213301635584525353106236540996620929861741832865792784347688465127552528176662576075946305999030229712153934488890830254283787269114198586271855442562831955381660546513468407766591269181332002549455295989039092155484191058579895792454353771519317852936709729170878283565365633750437854497794644318881589267485084305338887916538661713950688514016192561218523059261430330189879029775798796342028850568386717980621200323647770490338646064330731366517494143399517644322475716436516466726420394725715376184034334522701294746522616494552319377096146670753993485325863064733046261228843795018771167531632589635696221888169147577221191027820886993896080602871313423025976037360915533797036078123075613676958503714099249232766577580942687761175429106145365102257172899000362603792919291187070554370778260513139925781007663856498897234157673802539216970268658363772673271117838322828542049753506097799658718777686059934358430244627202963308147602617978172551182204824320507960688702096721506339087699710073388986707037481582913082385551067997380095021884899525243077998881583431249411509121455231070328912454575837697502038505776556320495708003726751753328943175685137133030395741681039812430211686688771444248465818192291778368270201080230203930221811175410577863914141141043335427775189489281900901871376676480441589380939171814972132983312851080790948418816337550877919956935265791435890163476702605411268312219923261908860992884439391995164281703381408482630753536413250085743587236957534091038201696328753805492965118694486586005393196979223227072103179441178693013735409900226008622792109509139687099621842049175260306323534615636184327883921342014522483765489711600603435700432974393345380156341238556927674508907805994800406828025191156262673420148575143997146757931612645028971296313960601812723927080002185901336891093831834665413033057706116930006007758973030746862349265252268914807202361059765474702804642450711410298176170225472273769488168926322544982316294901940645948470604517864967531706411587318984798830763679586175192157292078081955010176899582112596449665238871151260694790287920648953442409868637397377636301782175799345775323025130325766476098391570408314003872439365767621870920460254714178744594320458427991496358156622153447473852242646107234618561226736100140721325815323286995027364632161963560739495169593742468871972237586395109306402625507223653137409052457246393167964483252536833429010417038096114620013880352542545818642983464927780820116566182769497827782759301278812281071619384316665838384980654719062409003968058312052989739110712556151070628688747960121202796264087914623704734921014524951209685890520311057276304923275823342119669744921283144450789410142389672041286972379706046086773878297860856740087501924505792653493920316479667074111828909067906064491323944757285917631322180726003624711112833781674903433149989930045516030241079109094900973653187450453583367843944297906286221898517264159878899596450150553902312103277745951761924138555477979463299505162610306016720243429019011202724277387094313667560399008601964007299683219310131409255975715369469622539608329083034758425760971125209293130901011774023826372987475532442434938873116115908619154266103432982477181448264732738111497040655097472606652318460820403374204280620819175315933220175403463021449247605890268079128308472772848400521706633479910149263239820146885440472380232653945098584555064797431573701425058899412897061346452856894905229343366036545756714756509670045630248088280265250552504164589405024635833562776117368989874594858214171216079663583497788304483383024760468251610016088084997842236837006715711470324893020578145021362881628769051949226810809623258384278807233254425897314094788162464894134098175826291884210588925197482425276569219882573267859182288809908579204348671792634449014674380331440348604923776366560594653077608690693156285575576933981807727665438582353823585918477335783457670762279206090924641826964052365916716055664451455583824133037719121473370065610043333675232370629385598457049054118933871063476240430217480620361168716004598507831539477767107029004041955042787088005791669200488777783221067226240400432282820695040819342758100148440574101727889685325080648481557798590472312063149933846171202282212927003489553838666344148190960813103822201665790662704233263415645341108421868788672631599534843771214929312955688180579801622164685751101238356805033985252021979993909083189812284531100784902091603386736280787410388121464793362257935324819119315872253341191712816919424001488818498768373790958974918577684332316237444175736217387204612816821361429451433804448706964272420811794954378948096602889386271158250271559760996494877185934533080179978070171504787717364370803565392013350046453047617398906763181571139419881197767292846457974684129166263577915205489886882289053203119099813126900018338796019588514931509682072569309540262083827324516141854580063532077821815544825788431904059942557557159947775499439500180542675109466467668604182066555070023441689042996057160043003271151242135685871286238319608840959204333084805581523178548222734114613720318447621650056081094955854192001099499331678685780097689668880545525867729692800206246267658937120736002437674777772912878974684895449142260138936841630544156227098158466665321210025128420959307900060708669159522070822195776359663649657065945400822286537205663545768659171024441054993306458760958550878363157261088101373642586761063926790051836557205235945370967586782393617056603618647525070947529515949106637949052661753044898377439491034845066996342554458720977271833553527418986826334242964452726458796705978251756192755779129164435098277909040419443689799524471479067279201812332744561061361445230541015355110744765721482127450823031844280231975715749005175510822684795736926370127465278633599629630372908107325594763867585699033106664644380783138332516182966603673415998743562369320493192626439843541900351082029990945524242273972082981591290161569430067559187374448639453062964052088450574860791227126982309344895314197483896961221828069027564594124307110634397602552938910176142294649652420377896365957538033311960160825346322761070397934797695233590117000297603838497501803677613958651372605957271713215228616543236298045651976120139356082382063955900419522328019773869799240263604834443298030179445346104732954634342823706680795296037641560769073653426843525535610161642802419473820695796596534899655588747466941786284537792418663081214067832259560503653374561851451601981780363268321995053670283512282899174547982159319222906072114371081600803929445284240782725930251827486717994829050190495883407364315190155649064279785911151498846480001012850471089883301839945583693332251180177344884053829503864338979137886085852045165590084367694077686663251463974398208365353910172962798650286011294041486767674018053972336508610397424294168761554010690604271457571091802770195406333370795721264081548207889038586040524133790350898365942846783272005167700912286931347734196198510188540716478886221220018546199668067814343119388112866743571180527575026646159469986269631313774963506296906440263187225093055081097349650842319287681087716026891037850602970313725083901064010153185501819137199576594371326298091706617628823332976004236297278882157188018408532111766171237137816288033081574327262448860443518340144690806524905090804082256213333082364392349955594118622078530615555927064481972655336507946161422890111998221875978782757903730397012447628017722730461613296189032998238537803228253695546970136060811600792092238703551185864340459422325608344918568230486686058791798905835142431739767811368683204119670016654113789515025138211250407424824149733043556481328605243824708233223338178694890354582143633539424190809051356538082081123048355079535109096635548760453374331632613948913829574277716921908096564223075739918062405024757176395906744286573948653105257666501618928271704008690918262227793263202622282259352356087001067915948148026886850772757574824486814401619921516784228550851183716011667791290659896537304161885424551385777014649200799397713966690383751436205790435999115258703158080577475192882832780899200645558336008963364109673878504779803360929773419260321611660891765771931151485412503476585258370033455367494560604569811295986307019290851279402576181389705066743680150912067130492114682938505393580619553992561887415256638272536086052654804738551136027430781439737180222785023761350285268240431466991451858056974175821298585118505275671910085017902792026037788929350729637649954785451020114360907788509834436332428604228611658268311016291800137738304427048747967565993725338343082186734273703503032039952771652539533299536219114008880947239973086978247319913555937695396193250774661041048823090491563491810312233084103385547676527417622704264384535222682482933878416858052443533277112971767234969604773194126795662868706887712079723251459048506616533329667431639342513101022907801283642448203784738745337407407680848169528679923842859131886520106051209920272879000456264687972089306156675692097387237709134739337371231562863111292089972700125995743984684630977234406331499006640589347467889537316986949608651663120769203062688476847891597477562046691216269633411911786995669478835892831217878527272530068811962331382682720632353088176995118329413140520680531565387203879019762284058786401176055661374605709479579189123827595728895873357991323215993992657087533333669491909522501292823949401904694746785295750051277491303247142559418685910525926878690456363993454402112159793846995578228335411638113592612865700763621020467805905322983424058346037626388728947568905264299217912610948951602164413136021345393168219825429632716395581830918258283253496372504299722339609307279355007451091118276389869417649295657678177877781019524149397302273186887522169544019137716554217990361467101461055894935074775992621292842901658708083247165727979361642167977226745908501949645703858945498785862102208238049659695489097057407763171802931124114826004298216085992635456699653929786799415837170159746973764467998749792423631677547067568749220191388260136703108058855563347202182137217565147372265889355584654642894197295990413671618753319825361175123502891089979368472455342296598136753115484819706394820695735767000301081076354425928235172576370574849336518380276027985278940179867605159045906790016388468295415509389943350621458236252327811661761439265856398287152495096439480031841000005778137468875804195392924450090228703274151931967018130269751643939917276831672170530460513169880889595697601043392957682566464791004299176956928230394728809147546159713773089280512777071655461546007200185901461084383467289350587260079593160061044876190317797427603469022537370915858460162371281449920918484764995501640472700653509346515680436454654784881150705001266724423513401450923386362726942122919290694020146444675337251706965867129620786176841530306599660575384856303882436964728145207450947727564560325283985306207730229189603967636012098292355746894509231449801573235761213055430204187965842031931625144332901259779610280165803905553437638511784043566724788032310778943552465248838074960007695024254634453346865897848725672135526240860979425084775853829874611699597092234055645029992691909565904359313985059029082479957843669638320131117334677888812556813548608713457012935676966772368841730182361416700947460676543740103469344780048265572817891737378275579949696461386181192740121843929287379287605349687565903732939434727846576555266517765013605179839775054282096195576325921832350240748456728969325579219715093953285275258117730987914196504468979488586460177209296049478170292486870536666846353317579666939340529050198985241018101476376542948269708549358111400421887775088749255709822346079777852120735808719730876409388396553867878192237043292644595585140523836550859060184325681290428527453249009642255073004457366435699757766167058723140369089466732388212611654435218987369836726277469780512841301503597398704211290520320198443333845618121139965548627361064370673486301288812959873853981614080055999333082647177254814518110715514809103749657875200538659346673468542654566359652873275330168341800457965423287172931520450530685573442966038519232529651271397909495576005986440619743360749388408648052917822124475726125821889619255548753072908344540703027778098554901178698480798777054649661487324790492194016379862969068712141607631083706427570860800145131604678558383273369426417879226600459525969218761634643879524171871936843267328258129449168627465824507632634738839245551373402298798312534012854578042156164753438423793721662439155835472108199694498004772147516433118892151526449482921791989945785953782207523713805188436447436701989589740708555254090179922012060031739509102718884655638148123648101944024338311572099316903668207763598170741405908403127766999573625234585760866622223896799132386942048759603698586310906163760821204014771512919900195205719241102662716748840470753505288386476163453740039092349526662322016048791885211073415068681896677295383495537553572138835972446947708514008992772331754212384914179233962237834846740413994876985601968763881057424332653267626908445249365507133409326487888484077206737141619975787925601844493653104045027360478413392237187410579250321950818100343716768572889746007593819805191620502382223438959180829890031800725075966803707927167502800663324383152270650747702040104669214804747509645289863531297905080449649441436865209223299191590203217323090471107504500016739818384419363249577570407314913055052553937802815520828609835044872183117541509638541611026235204122305399487557799373107332242671313492938615760959253936676676311386049531186895778074884433269524375728295268134693905686069148138488498610462149394286832189915202303633536857287721048630835871525610140024280924886631696776204674027686104384228817340841459507458064567090039561234191035461496210835802366013699846935099969185393706284336925178922448725936041556422649519137741340308809612862009141731362803754300848711417611985525219060271701861712752148579434924850808753303463233438755881368509933340794663820879047637751489075943543971719910226362014522673043452413713129793201311606070806889731812747844537004809063725789078004061274419447735099805561048202353473697485497431482585980597077026796669835370758493660484678464255465696704172800349717831920855911725517372941926187488759284228057256143229537261525663413940289254919380138355792381774441117421376989129496870930237764354252163636893982922928203915772433595328149320240461175378345073348968563029093014715037229772701680576430596355620944385055929107756992145807054567738138952948784242634290843877226822407733678272890045330173343563257266535843389712432903240507992844074888191423552817802124967765559386290883432611160884856482864447647311016321738146652108232760933363061515233134128806777435190508128233003121383906859270154546536110818085625168641116386305273765087443821045261710958405005564774705190102291123793862969568296598504424806959474541754757091133839823362826765341471156217127478216989013865649146922042892692784856665563327720634948632701389892476341653034479505341973017075868089155965842287682668132852331126353765229052985294862128486642538527521859276259288049706708386084383557010706740791050151507101508421172399266495501908431003450181719424918585793333111134987328584526448009175675297719899476896550387581243012712889658198833290596015364418666670667374299473341276529089142898327506155209670642489805345310919421423100394324193939886646867804653969743782052075138958418629042495695498831010915365093802019272155669621052342678443969893937159377488410523921991826511897345670858423788547045844774374593470891185851420890109875985669692173820637294555103079927303937468648665419126181620227776369684673227226098817080962541327606744504068090450090697721587812238779620019974782043536289653269391187207645174828554985487482680771687817638344526593340796006927762588457533867839363756735558675293599196194831743318406382831509635793822518286945455267107296387497391046725451142298901911249934527404462004675769830759128056336594786572637981691452275635189808190910899076429309727351130020905216755663897443100975778483180098169894108187389767367073845670923670534334413761698638051682640714501272674159140131712486120021890513151561749498512252612940189844873605560324386264772422993472315453439817258898575471397245793182807888017299637045863594716528128016116408232547830496178052107283063035261591106448795227969942462385228061703651020860598618732410452893335918197243925888894601563514432969629570556058886366185660406266126326979764220044948477826191243364603846054600634406832185657046602492029283353526686267808545972449470552892563494153251643307144257438277607804703820005990535775482029885030780603170808853216738615470610066127117172095114867500665188442968826375508244242262819614754428425849785997975483697356027055894457678813206143150866541993310270836260665341771949151442229414578789533228436244991907502570213681024476321061256340227360917753231258579809676329984304078379802772924233267052493138562681771136674898398672614917238763424918661978473959667396424480947194760192562656044686928681938606729559139712784579063750905093416867775389506848560218094246418849879460241427933210047541195775137718374441141954764492746482054915308505310818669512942478623658246764098821080896576937021301234418359022775918301487540459233731947177663038227624971621534132855806134213961126876096031959601159536163991331291623955169997727541080953778552170830353409555591261832405509626555250893837478878829594318828657077075457857544576265518820404662277486233294329521816550469637698969789665234840903604160041894629820229749836520568894964989934112840002608960660389319323354842022772472036971198637097550972676791280255668760446063632641079555153936297868750451332501610254214414425128610732986257012363219029382365976240156506325843124983768047123477880727537540055535212539108267386906514101488787444412560012353134613199112814745791499120322401352611436048179420625971762014928276906093400829215376474178165238631145691690852223930941362658294664757102538119948835595926022749077212704005109364920178252335485394871031151904246739758876351842647212399519269458688257419255851013740277531646026244857199642018940808234569321165516791061629614610533623256329870019049021817665537318710015161647852913988207958724345207707292909893632020851852832459500214360958257416867338175365534245211989606683577654084658455103902533954432282980262067133715855905909587600039387523050408178526287028230984031520538824124545105575579305408750087076022164112422295923331285964852212053303105364800417805328951018199169704881598192165935353362406833187831364175493842672237254271839881065456626993763863487239248344054467161554408625530772132063817098213497127349625050913523792329562086439498694158813551946886467796029535903502860901403859881407778273986167788944097492810155328714063153636672180994455404527317286417349796676829537977431944479597041245362023269845092137266300665560260763855663037805884037229280459371631082589951284583953959103331143151823071790647715794908243036429407054573575303433134206935479334546203417901843236154492928981928104492523006329249113044371713124344882953527273992229692794496228137583795706066975110787548085689855581258987478719634896507794966044222479408436782554318072717324797231114658979741781076631909032635135260647586494993722588803346745381367227761361362278914768947190335581912045994170475816734384552721182788625310564962117019763163991429060126132206930014361248824192034888544182759796041370153995913838719488999657327192790770255346267569708922784222154220832943476102498899283224106917925090830700253638941562942110897957700251049809049024707721661479130855812600894363947423754773422466844417615752360984175562483169575491000203562206111529788876159055467618208543218637992708905398781198577409220204169758908146384252303433798605943081128404503345199417731237627980947358203841787043065887180911619644592987261672236376665402750525701583967966969312989349390075181651240639054975655819909308643055418375694085631920935751567882537549100953969367614966396591544009129669917100688889923224960391429232360777420187761628693323778708928670457711916635383875414884834223912630928640593574735572916648538762491288084735066274806675697102269989178465974113909004973177860477354654865058979252960508638153974746344364785223121293208741443210372981756475011833309957382704144862505293067951444004991155324512461126962628327354791772684222430206400535997382421510405085714045805857636259160272974255653136553685690060221050909226480519504936176638415376678024018195454211569338520050321894489864104970055132994113601936214904360175020820250073234450358357615495486066551761787984437123530307819796842793979541989384526384615527548947854596443506663470625448438955988311048727774446163205078344599707981161949770149722268608428255819781484201956856980797865964881037565286736681183285362051947019843743810941335304828328125141300077778965210324927593778959643054204840870821087537861640482291860692298102346444011497541691091348787137983209226586273567443998061144988612341092897029788446546564139156876735787031359263568542270038785585405752795405822895786450771539459107811557217799224833213250209361528022200130626031410213505612400292728216381430069358834314507473526357903738700588949149730152301951938590490034207347774113000386267603827065132867801532559987157027131500322399671260967476991058942102274112552495532124195519752968410607917818031019272846393881141741902261237601058889273986944271884360758978230692040117829578971790996427221415896631817828656927071746005157186303417975670794995654161952976464233812996397163757561796615228938913987680249490975911402680925068185882350653670581553908993190137898346792391544886284201511695699267837798059704886881993906465162738057721974465436785420187672830200286551227786093565902721980519448726216728937676011874941952693036433761186028260000277957496155041770268563157754530504011292134591448517955553665314724646686683247400310158027031232379117432352903681545446564614383389158160139397244174890320094138785111817089872209420073501553660610681323992998714175968826828912574249059323330860624304255548825588517153607215183168887241678101451232906688820504926578250738898037074100773905999177535381982040646422098639451615492485452741819889419741336693182190692641445406140959510764712049956096070362540700798932691778840113799400973575036218653731349107676709059868731182364725651827830864977715181369863627568037825645033904176019251335586122181983620862183601878260699532773320230755392058373931090516804951321383125854916892861098065624119324166632010022163380125235132373242563407552581578225744487702978201025787525929522121870205179094031374887058893423722804819859431691735610042234510925909882214214032755582052230702426814907201626117555321489748101924397750422951632553250995058158638185067197750011559989414146052271908933216005325414666053986865690874602860878688480884416367820791949127544502285429144518651923556474205837559664243134813437092642185150604997331014939983070401912149245218440599391056615903989360889547414975220771389356698736563207251397909730732950235672579744208903751236438061836610685255649088377977460430668881365195711194711827311187814899986438928584532154918968518453799273963690966145675359348525607660230384798570166577957421911846799708438670077009593942005956040378615806025496205820138197583703223416420794158538922741478567882653852898933277023850177360732816688612635195882844120267012212953850600813908927268252227061382560131946852793842027380385313973666646959275283148294720572666656705517389949557545699147766452643625151775915037335647520346183370483922180463963873975283706058016210451406828796254535865188111617253112807677006042744128184167323644832869523676788047091914925804956508305281099949116642698134053301352533395357325140099124704923087773369655513865827391719189556503138565262168000680854000710140459402074517777995785814710691323149815567707436653235797310192112715262130495833577207098046553534202036834163833469968627562428096812304194717799016642352273019996622823893936013613087580100527259487238187305631568826312715311682558116857699329314892998775367408679309261820609497417719116477508799098631794462066030712533948308521729931847304036817249855756733131864773685603803839089397847007007312017794835934089310026303834491840787626430123171322958159792532523887665623216431679267695955511128561135172939564655067638421620524102303685837439652621036863979553531869287570545582824116642849785958340922777852631744031201841214032420904335025579584781882485314665577695947891270806090481691602191748333657858605559635309730810332010022816783854574594873052385632986274892879532436804168923280472601847335845585984287409058671668764146228157598777179745590913332941077136671578034715023667054302262067516065710927335368126294408374396222097629593371937424853669237294854626555339825944840479843322105713267220786299365851674815883446726078597560584027857616877675484661888251620672418127725714531283938780934929716841953601464636097923694527276778367680395102232796018658453684415902408760442241164073338277045039240200026424279848470105472036562021430438475202785866350251206117532732954013669248295801720315806414562481485891004565538859166062554783530961911722247865580048190761214330263696415625456673766296072497299608108081778478348768884601299931108242215832396136892067187851106184251490074576262021759909134691809477521722556324157312683483025404571510889322006047689047919098971088986260129447623573242162543030439256987660815705633610949423738375506526378950254031364928477815172699687989573269973786767456933366481939461376902210189748567716643075611643788606001780889289338288111333248146743372155692728729424595013603426218769321981285259091818655495799577496446090854946479191640802927893091166320145101253283497290562877051509920458912487653379718711345505415282648286842698540377440057232138211665353959480689241575152240071282254598823448440852454978513198396356532813293501061595173353208181324994983141978195223835098506758020038497214956961177390864694701445335248188356613569351565517265351596606631273818328280326648101244382087690947257285663119871105762898464685624791226825666038232431575859121633968009946531278714018057369098252348685508708905595545503452237773032997322201242667562440778051820106794110359870964793943914734627425390825497455427668358588233672458245741453758079265743367004197016203718326701045305917788967324179698178192328418518307594946683106548904485016059791016221879859322383460028847718625623943661914920391469013630018304558328836437634291215990600881564712861306249388552678937044848575029998334856641974318875678954417849986160853094886282486440235114559482339725541466702281237989997525691507837302502602906369298958320493875385747140740664049649346566509175263379512262667783819071860821504301145709250294769145165169116612825506961699162401851391584922881475363174195413944309948977667907273606681110035815899488508227029256735655934359907360622423890285191103571813925629061136568103657293718283957052207846802202832614452497937103967342342058543438171289417713931446817251368734552885506860754022246238168786822697758579064661257804836484858563215184510691489017483801686123458076439353605124087301431217555874719613816059718196124711166984387743958136837263188269745447136522477455003048095744756436440811700951041625319584099820304367240127340628968562320005926121024158141762725104430346447786630015583596993321679324151226820135198900528190809271982607902993793230578528693564201554348492252184742392976755009158353603837132084182793141237258813587802855767720363465595922563576936906895336867948930903586915769664595214369730438693303116741806143128820239930171813636832332420051284684795742404534598020489330206832039988462574715016194505738111360832607300022379101039839798681757661868599687461838557226212720803075209215383918129052780661384471691359199366756014119794738240681450052309489960203989949258706148752398591895665480059332185213282306470889060496528608441953261403000382771445125803780623873118987750129363868230895214967963461677583152462765689603884727872852330405800734218923959043150967584263087787444466862268740790975443457271977068409187572275838884899669786208267250312192081443694807944764038622814079073614570593190525015891960780343685576299225534202431565575646603178207186153213317390046005771652528199536123669322976789405350836865107300085477026829841493766145026123126926793605600371223324792988610956513556775876177449209307513410341841613968342448278188675691886762534185211728548293975360198954779375179530844227830180200003754163605481914565575846504813337332093865266867701319482355713732363970613384468999682067307100687624512065406061519721404371868377275866609535322939203674444867402383293858324180756947317641049519896498478822900236835065123086768930929682531471849810928488297741582104221422086662460029807867498094291677923244603757810668435709484850655301643394830360061255999158046111961019389078363762325207970537912771186305211601200981617137425004333674782633593175034577122520848768460037128225621148962192616377818666408541381023804225722611768415475263114235059134595170947744945236725589322224095751816681726505015777557227274461291703846399202785620736784403597981303252592657423510043970683686054816488624658702177774744362665700867927384074383800913361255349386810333828941729244096149877528142682836586295044235250652738771955630401543270446247140568028286106971575431629710800552382805697805941801758687604565010546786842272801712106086916233963973048109420379521354576283872179450335939976600947034724208457471661081257609196213312546603383814116381003308084310884570410503744755371376282809846290066535368320641284863222305931892302667752925225404977503074502103551903424901866540786559024905641932260465831120167851593316345500687854773069730970698852023045671295619835563319065746183286143404794074343134626026288466567100806226055353494893253165902517426312394871081004236681533666406624489756896579039096918210913004369188900178105764494475986595079406056062167603982886729753147498456179784353557854134257313351228463718541583398584818770393864862787323048444380188536130658764752976427095249004553926596924237533618957928073775839187765675491735396430731044866900168233177614522213495575794275483056128129302189603044835585109319343915200717912782983421694474675979490729780584487202140041865263421462195213391004726012840464456712568409510853703811241822761872480435901611731151175394477599469550203827644057278175451014634958121893622056739359208172263403044676478736606563715322775823447546229875713128742473840588397260720620247418796047935498560301582753572041531658342998836849484016329080779919959458403727585251210637382133445398169210607940824496508155449039129022417600046109791914115576729258472753210165056081317247023240186920370762319821581422015272217551900693520129392131946799454654513509432930663125134088063599816745524528610215068030639565606247708599123427216138396606705274095261669161589988954752246527685527403755960601551140204774921943069191590341252671917997410449636146631659995374519294293915650849466921138782977000220262830882643554875223832897576899111510231414228683497456876644621104814487451170862268181465421615793979716595609664057715361569232639898910289047793294822003190556948622026738709909186557531061786540285206374455467183551845300924728213005719126834902288065284349814371278328538809872101099325051990241189705892954164466176920479364058528685538299700626210368726773096717444789267237045582250576177417096548519474961868345296734502044402724835409451314613594575941426107340823750944620112361910608005228034354267788374610522082399834018494391707980181618327412044165667511210520956070959872557228322843095832858996314976014145293601466329234516651242495008408633370420746199479299732979920083896659278375343374010614642239880698343003312042143163285271106134724896321524438515463578484131856988494737421290878619090396809021517065086296798711876759654440743597447857805393283815397626915940735757152837608908364859278192511856303871735573305209934015877106972533220073519700575150371408029271641692316971633946133223961754140572528811470112023086555474526523463395793316585904518651666401424934041386226392045152289509619136586905650160530283368308177504298735284366933478932787167394494996714532414866382712028299789320342058661452462737980536540140168846694197071190825520583371925493667266047374193417441578196443718264675413907038999592953137935182499792384021678023798152106296875438870706105287679711782067025212925261216703467850636045072870648787385211536554394887578157747501013049461615994749632311568448628434189578140065570168255503657578856503456673429765400437564542888445042078399194659790119100680341671788450098104912492444062644418370133547351597554237400836880820609444313311620961642263020930163638205856956508508010345284454390317784943099010199945236386023128361184992242984493924228670432670393486915279938574869675921421902949546294099396185061029206169728120840666558135826373261059178521401818978598139704686347204920138922750529339410209917535675643141744533338219305296899894743317221847229489561244030951332526992144619372259737681287419021190777997540967092647871248093894421619023018214687331565569670364722625503049718331353026864440389309929261882210100793394904366807172618243791766591876800849613243251600014951951455205837783932429499538789213761452171846052758562832940888928729319022745288711638596786775907121565316907850891350009604753635919139026028348397230707629687338643291685413683745739947431137770041272989605617628291517179692853737532425129322624109119242643008143838608201085265503095779052663398683324693805096431673549893223743616970934276560250631201370116353650151918329299907176522211664776356936631056021073081462101491421309295418524510852302737591476862948865368834118511661793560125250295269837882112345201271728827123081081376778799149122087947699228681523703051244940455008832520748630982146139316451999343015121161729508171886072052070015312863741260763501744903625992405076269323056761638895672929343943951077115513439194180469413469104639032042650962655653863164290089082553632306926741149957954487999811293224889578037133125252686783629183421293504656093270037375370489949715487527036208483024458030365787268747008666004842319326377328134002471218790524798593594802957499823122302964375236296324201119423199108727872715861713119092662861760021013614442001393405261678825574702804134318912831034118175729686548978375613710880089424764441570906126850232302367881007810715093238186567582474915697631213901176526126936151632263821639962256216992130950412622616992956134701045721005163155832065881937200137786877398297963104775196335085804647326543012977931491185233020780445787319106049335015002936988719627894649358640970876541487520698414886610400942395964349686952603309853914411835860826326378714609122820210013248459652199972739465901770239402823503236869942097362992238237283733696742373602872419454206956026027792754549743041394654073152005369183699141682818540679729379384073330235864237785770959550892706275900208761230178724510167099208134197744013555018140940258033479033115422970240287369155045221929954598681916284735646154231198908485261063117002858631582770328860967965329776582942174339948358047736845139246390171954217543503616756238586685768869594240319237523052646371264903922986613054417013400562559748804781392024786813496053591897825709615673747215876098805089622121165727752525006743402790867778970916008281054498859249713461168278585220963422918749451551353428328370453565235617402188698096960217013800752368241953596454232100451194348765357910968083386392323932298688541070520549468127820847930863894856740511068742779432820855934155945914878180577273405109657238448038436035957952863584289135569980074993133500449277398948848259937047846297528851118719715079012786681653670126915404953556619473892031738944830128337901287635559674638819040015921855935899868556705967304061904680652853535570837413461616742341734640874269433329547465223595665954739984717409680993651311927341683236584791261922650906504820821930061858889690278657742293501559900909984851429471820884387398133614191370704139410802363493590275850479397875426768478569962620905239569885749515574066966445941304028725697220652073083418603911077736354329843350201290097601286072365270349224993594146970435979199148334673642570506604234344353984745148668325491333163862855061701734775145610837567607727633601819715301945138269271706508287972364564947500994841461431207620726271708478825660210127827237718898741344590537917877205010346355626570114271469040578297186663621817897770643844238753361230139080074954046379416764190505364659319982823191934747657317485564552152588877532472626850857905546036664202130499370095046320293897415983776451433532442190442452557369245424021773861155396670604525935486011841442565158441049297514760960274529012187984485007346909254406126611935218489633635021183776514281196119965677285955372115812023189839496290087520067478254549837934458542170041120438822769315695397015299862600660869406151490671324897259953548076819253823062253739000557633587357923665501051095734285187187650715825510224944432704624170827337713930925122636389433621215089086600054400284752230838392056854142766958717493232139655445753923245112646020372222334500756724233736708833522507985435321572416339014254483306406402838181931040373153104656493110854554074349555457631553316843273838926995080365461291650667889865055969405557302534108598952336441421465012156192602514567953923373148181936546990544397421822267725909269309087980700993273847870967669559398705724173987279417115430765789148070332396064042752660256040669031183345561259222005816056632576519076014792238867363674399932115018460668645495013269651717448861612112858936518308782105851940433843460738929029232726310913069594957032981033994188138901572958330082859270871475716244938441912045916953851906247345402738928876592908280678230691003070680409713118428390367955090177578573368063612006572194310935275441110447574580370436124418256779582204723953179615582740966701434241453377890549258033166595964724724584574903858609445442737577282392091527545330556049573686023270779854508749226737134603355390439546944721466390490360969677425869765773787861933941069203235752441999433927857902296246660594480854162781452565914844710701479343683968490509513174021587591132592926074598265764442429214995264381542008490538977577705939782051384942544782498089870612173999955696859394201573006530214794588463498472757520525189071706930013454216980386219243019676848433989334324910629687385648360242349143071182440657621825820962429111265358513251730620615051402813859316380424076466947668458207342139182521597189321985219445754263775488453373835014449641009698430954249175142445802659628697600523556479312140356650821382969447677127196616081015800371695242823687498806999421838793219179406154258763344455817311428603683116846087577610512328272028927031647528544885073897415682964221956366620937633629746381106242490356980347919782355204888053626203234817588467708572328629347046105370513344199506554438882152789896201765684478895438709351789447319147033088966146730144869571034000374656856498205661452386009886711729730288389869169306666286997662432692948499240703865630430529655163937154429395226514083336280381702802090889848636660624775819706665422149603413835916684151991794500169319232282842316785025074411275417158340650945598328112913630697426563765570920026433082076119208436693950532396010646350984048951144156780531159032209314337534141990648104078517908206531099347257875391257026665066925017216670824625315679474065414503322250061856717540825441390751034391975325511304228965551582929196194915022325768272640079540336999192071522927805088643476120787223732952205345009747653421764802811773071579808272278715112721202556146189907758445030635574625379111538584953533444144062613192750979105350396982975912740440296260146921660141602217810099961591529615491654350395433073845592352386118904173622187051441478073786311912200014705800592188093207148818864731501011822822523487452454294697375252917514795992873230294025755335900720282382756630839618509544300466278030352094462419942074510968430505321865610850921999052021742823984908964915064315006744895610937682116374080448514062648243764692646421342273609101174360170172570624558334978010467568569442783624967830281932399311765598009550311986996651790434490936900649353492539024753045917135259198132739726165714379672283070343153606311212931178927331780450025068132500073730388219400579334612890516737916223885041260659534684585674666932739659340835320272695920694170512045289586727573874099984317974900062875988007256548244855395014804989663230825980236909406039664755674183581687544045866758778817062504698762336110558415870765180874103882096942874185173184639730597802207803104819383388079773139358825314509610687777407242922476106565915450571997984212682367525950005285278937723654314695253192995502706582521665795715164300666639846156008644883239673538922160100040531068062065290182569825669215082040205160689156434938802489762357176893888891444084379094284573669821011000717453845195375660392403511976732459740690166335987409713220299561928251169561187263790954484693684280374390684890761336664171906484815260871022657931392366316735509396976719126024402067939964293706521913012864659190377922467294850105117055281715908311509575724576026515603925719080065944800991064237384807010746846733854356735325201498332976554234699823454109040062251002486362848816008039315493754083731203432471544175170331178233711622633321807028429326283205970878522961327164799559369719365201034098040923206793163883670857827890658635646132151741264899333958795039827511938184497484031931692114241734005592418105892441070793238013884113945349634630644835580931319180451773722850870654215968037453880823508982771017126637097077437945451280776217807225509177949459778162803644421312689470797699470086320262659596258907802001338071876898973057375239844495728880199277636996231100570857334711477117010401266399469504540563971849880729054828450946836243236377892324001546580049161326262007948883734910563475968231998508166494197047054207135221951747190982872749785770150495711611802996963415743552676866482228196533286906143492834723395948488360876874682281803395850615458599346645674483126388332616017922305300992650207021824129380607958968375168508416416315332959509182595034920897040196139801707050978101987898356504911869755614700474217515441295737004583616939635969835122217807105677360340004618348717588357190837551064232624897746709764468358533841472986247584975177727650207659072400662681136311484256133235501376598540777398057800218847699033244519918981638389900210810883995098121346010660861947004540591423622351925675437492289638710850478045824221519645129259799431778216806210656375625423883482756193694982439969969603473937627921617535236988231819579125699874893361738804930644308435865890165019642004707835153394607500719394463890570628654461997143649000115273871941774939649293527179325451397677511648030958576981595495328854916423759821618295766505051504195694780942018983087346825525598824893005100283101389412972827744906420852231698549165828145893736575301042447785480766795155225477534910369737356114566673216629045185227316958930924343131361943365981237807667230390943997029090379128822335983383943886086795273932963799768990019252032805798319788161695161528582690054192633267155446096272551605464755288359211984796727905977731479098970333022533645369010853624165259543145365510453476296623528307077298667622693863089079596446822825521712169526269109682455521439450290385951306624999133608761590844409871841779199959579882408152669779831041376017127240707639799598781244466020898748400279136024516795214843968171355848693380407228546593564219892904799123415868510086735914583625500877826821793104066907097962011987787600660343213257778819654124444471785233782387032260951513422840423971529222267721526577462778859089432129949294967039373346890789485178440198499877324090088838498045695006489850127098994198928287797009826983100852819487435947942165772314337718580699518722454677576238172338261985298949033290457315141050658801473321806768287258368070407865595623098908247805183799035795176580399917941408950377254074727110387122478603545245503888762402319632708261407624897643553210524489822269101356120569976368676443599443607474137788855362367575472217450621227495053664633657904363402954750375531105018816168131749181159897830076347397547812509787812763935506565675553246884821020773286983417764594467945361303375949050555582133582948816252718582977199799193745448470375216797500570045882922041761097080970770844878330540378502126352452472941411111878613345850569080909653131037066167465094403460934258004428316910429758452623242216164759470730999654220908551823627659212191937267686778961645332647004816624289007509636673589596229892517391526604701376923001051193170164264717871619823637653523566253507598911177123867452869303536240292763923514837255682212518563827742093519324009048986518719842936104569518261198760592734240138427857595997036055674292328891519783284770636844227934559101274798243173444180438321155277857680837814172373684827577268449622223325970676022320016497199641839375912153397764749358206323796877850666736160815532101935013547040304961367095423651009184347822626521270039270976339769704610079022351375911263038706459880415907662060026337058002996594529804411023723239025882642193308270628499081495650277672045699236201894190500559999304992317909838514879523050004126561141210789925196107659208884650161026903582515372301852770501199999591254389847664980918938121875026537235202138752249602655471411850403941463800790574145325511546712195255861875908613483762533394563379710370356802688692420667063249783285105401353558685383777775018927879183202475590219438369465362337679018844941232720846669179948033026704523388534376198125359677361628616649109584042136931492237402187282060685466074679898848756102192116984872294283160664803918670905719793770374774022091777737590584303081485077996145636974732438399413364157070815767615084206186041526703645079077406933047077691571126724373142199569789148390028933170628289998140500434544577038948685739357887810819025729096249241281173609842700180078200452636493651555829094551843241091306618827294809595219605428746258411943217297888296325485191937599243882102045867886067122645338380768433345923652898057304958778862350483653924751730130241733953276899115969886256227784053720378459518054992284699300181731992956829173839731670451881309590587996618493432529643869741581082633378637747474433130292069958902391318368579924950978417239539582522572144929993011044740526117656257994396411264619700079432290364006419893407042426128842397584481128815941841704255812109659969782934254821794383828373546701999113671020773641445837316191456497064052853032318108366478387950987417306140805137876531745677632961939014475225073006680851482775303784724277598787806896940696264622826762493694541789544557833618796656937081339257821070811477680576565679486682970858361236677839440670199351097443172518425578969563301991028736763166564698328130722578235551734305863039335624265272830667128069407510022289044464929061980812734409967081567957775100237865096306674400301928380360674015736477872862944723009870769014862715656076061108711566334830970308380618307456409915548958072625606074931004855380848159508202894729329026267678302192983669557106018093976821715020435639247506064591359524911100487778694591664395660128539702864805899158665295350604072993835890107723271527579139436231439022291732319212056924560482477332635877189090424618795926575067408794215038642770614324853530952600015271243917191584447851580609742313105460027980649490304083281673419869422385048931297967769749410671192796121133843234873843866423355489297948000940652462425929817862980801446434686667836059262567566559031289219616913947374880086356829032607251085046080185988626150219633126499871799305590521985908879004505729165914519346379324904152272559227543285566485604871648846492124086582302172210878081526414496055991473258494468339387385546418573777323022041114069841962039461114417269921440532055367872500635391222011929608373997023883304158549685551143817065097963053501120081064722286762939749938279828222022845829145361327983100550743453061105548408392749485660222935439753286867262394035721013302799604401808996009233359024469829267172939527491562953691248689604744784316810798806518409124635854418038093630647263041740668262293522837082403808726756381749467858342415505905588648497735263050276751007875492877233562898296073191224551423787892825134412680474117908273880766077027380492327087612612424588381030753427811937005006704515616252225480534251578044666787700484351288475917883072113406014056790610585543861030026689028143104743116113970054442112146308004856720410547170796555094384847177593626622871624416151838662802697658360976275210367117031007158636812134253198239255386303189962129187064422509261767566585579629016482236371784063841703403624727446734236810420895606713283708564356199827951696161974642350043582507214646288417089735512335961570638114242741333389479020938242868499714656371674374664800830334515204819652128515498844592630624783526477810428541276507841596615510828866006984195779502433667043177011845065547073433798132503018426399135378226263383572522285672782331567633352327482909023369699313819487350851379742900421605408665218390625515513536309474157603200034236398134355362338014708623000246378453735336852289246164159607287411773180037864988771259867452502142778386488492675423629664738567207821197172802003422391875800126183669981430817302715808413329287835071615456482886398433900642778906830628183576961871638064842738219773448988270980060643754596426360784039852671292650444615240974898275590469618652218236809108060653235707357055216991920583563447179150074931021270200888790664162283966366428988623982816601433202658397329286115135227793906855304059703841934241011143755499895134075950015152546554123089829535043685660334157066256947431466790627835604544990972122471313533839285346500064279541987646731526134892800295066546371755952895854592233354620257380095031398594501182428804693466476512881313261729610641223338149995783164940966370681769442299895607310906794467807853128056766947515328736537241047240487591049248089634095669668167731919844460963828977276132480783666452948013347799580050420343658252111984409697845590147625657119499307659537726185736462582398416065784296643924420772899993144233587115955637311021487693258909035042317915251296255700534370010175771869137298056287547111830101342838759800622481062039497412974368377434938422390699597306759879976665162943001024575416347918479932436196552129292765345271631898765208710219109695485885345672006312405502350148167339193147143973985871838775129923443295226296475902689737047209404529494521856811466766224081447601105278697961974329456233690887478010165387318892379881745673094348331096017080622794989983253388756885326835517702758894318970580031422984880364011189570747840806968611512167958977778456917583878336718196777769675172429441989119419432637574251140861338485225821219000829827872466223537165280198433558051818296193670243638724017055442114313445708553122411092178017065631957706008316542449856446775010755350364912568826076735606898395622692917036020898351066081436089228183841366436797192783063642467584030224474425404806204323841145351267724999071427432248251138304894246766757145945110898443282973651418245130123461952609554862525668561308861700573645045941527971045496720904426560041304238115475776161103590377778069519538060086473290652779751895373822180327308448549401645419887965727172575171201619761591408049347995940344439788549427766888950329159677111188940518817217574468413112176794641809223486990831725313606870153984512807360770555997434127752166718983365002142163613609736711551967192233676218303199321414037398372438061089777049230576688749556173462223274696955799254158915016118712910567437056326984792886021487191404908670297797201951142620748334149100518241338486805990333304460182970133325780935212321827388749370454872795008503648752093281155504517563257236776792672519368348616978769800512727794970513505520566749849366030683405575365778163229078990745355651451251501471290684016481834997973369268924515155708884800122685139608632930888837763979107990951342602210167021854014391404628871355245230304939563753668943240123751119190817432767681510935141694108499718754373221981746513232430921505725357239082833470774585611189121052550025525501407359636330372364980060175648946840230368616994814303773789730616089733868601648028225779673681110724449058687877415871794428131254350164101117810151176915674492618673772067897942742161650737084133927295490310861904644193967646895903648650590763845210494490744398257079342204462130599151656291887539568259081861502059572446374164316654800138751742200830687616368743042740914834033296815045001389403309477165514220821401432536231883286750606607496756134128163543884254236792426600851216475269684319001934296514394561259126249592383670049709107836716058497354597538443630866565330908010717148193594991205744144570936264601392569981528703984805636570181332534900120879790544899962909823201627722056867146213345342134968526377942391829128167533277295200696460425386236204097838680344768994737509688226481319118309824194458601889563368526800355716744733348715559905890649103791969211908500222836920307773145245753162142818617474223755462265417407659733835599874035153801165718304973823516114659036744161227549936621166438951069373783059141267896562026781148551476832090134574691626470609273069511397010545894246553661962783445242444995094972178353953186064727645239995127997352336384240772762050820476612346054174835570772691414890601344988311005489756702980564243855212458244767820561220012565984679671696224913980215428361013984664608171106195934888452311522646955874151374818813557224703418015361522699290630145078705179602134083488707219382025231840845575115189197730805321612847044853338400767018908744785929926683501419746245631930286682053062578812654470586641259809167698527861767164774375017004582852918928391678392775314433787265123902876236125264821979840404623783652684090621604795326379760036454895173669231715670348590777030201443239653711294067953508531383355391561604661034729189056658227006494411646804269632337851066213070245992753377160931844703274920944613845080052707285385581972961991996196378559227757545824446109099565263062533871483846466704093951815527638164626535325807299598187507491504124742956521076913530670753341414941461409574096687637131943334842877386000068916843073423180282432680271471807512099592513742095534087892197174505642359839581920683147282059560671213012120558168569232668174605804133526465459896094885057601280658101684015906379785395470413115073277870338011219496468688364913501551238263165446026752496508674396354188743850782240582542148106137574654262035978461372090990326724501435289430800163159405631577056646837102140942037495233772118020027693990395799688201195736224950291609724084369263991567627362338529825497582281473387159640777584782506754131245710587915271808386065647456005274242565286475774974036523823566443094086221366770077234885551271534240654223125400719284919724746081807203664523085807557250116054111053071262332137273009569618963497533155765990820700851899886206863602878215613718863751357716210847282633913770788254122053018371718264243252936845865216852425238657933403497333399909157412129321117628580207508444463176015261340377320671797475874631101652009209434502634947220281754071547331141459053559450452703021229877991797985442378838759913447763357880980936605817128802188338070446934308013583522876240094415903281374823360722767019697291611694046519401427979648949380544027827648641580067246947819399654518496992932575915622038439631868451471271535991706212962624786521813679327501645137434386072141519585179041792512377023070115707475734962564959361207062470418359482326634586310027184743361490065446476584525934198548397103084525773019896866678265348153060158743444509924054933041335097648713956012597484602788308612851693673525421972002854982548595248395011412115576402458843103954197264845957899801214750164454975891722037826796520563331552022127526001714709730436651100853260076665331157091846398540323445021079777875988240866172897752348928264148149256370246655240186953632594200757431822419366913356526750479970470351548853255200885722755021209503518695274911759451966811143734304843246952295681306112216733343234912262471977309347041620829311846449009298142339718591531037264895963594686036542340656090387783681933910264628774439538583440625589080781671103042060253319535987067901638615951051539195906073357789732345127363857775679885401775596296513223542652097119029060165251191461698130099262815799203552314482530078574695333424071097329288946196224629776087296343170920986832176586180297260617696991214803477057446538525327333276877254362712112019574396877525363104318182058573337407003726117694396520653063904986470936402229726355471724265863545021161020438060448332878854339182030524076547929124819711793051651610645669209630023576285750067972861412676511267347498190598034181312263251545226878377601018162221764760181152516909347605878229524936311290397711121560989399140886357921486595427015024169121819588380458012609794203332718076434564168373500521151946069338044345294353779430590499674162657231722312224463678851349164764225938391932327829526841657918076995647286806650736763212901457554829625712450551594070708381771869048888745802474919337192167694413652075601272966207883987933955872038799716953254407228894184830690761365382728189309851624029183906867443827032361688831760781464019176217832245314170398555890685243746596818754923914467805381625683602024749366675308341538210287659326824473755174713087232681562616962723290181981554467863590598274299253620357691998265737039509557659919617338535055667723993415314834832877787459500854558004054605524861484760887447703366760945456057302352843654053494883959928102526819801661741011302048150638208212439625496126533332479130302288230093276165254268438536992693888881851103938163045734990803198674611146688291554183564611967843979043667080728143143787701662801481973956644781838890330939380239061078617889661757606599525608036191230274296389945931643891970107117886562038627219121505873368132748775759839839684866582199818811128376033006906384640730707291464818998205786482979985118954763819814322333914166231260369175841036114546662544478108390881883867024733235670195211156052068911574566897685167807883492488063368945180480539176377540254578403344037502113826867315941153482446438207990354759993162088398513490975175755637066159367592653215241643233512164858387166113446952378885838860040570396012944235308902197848265416036777282871097823420435743587541190814006389502756202382318847607029079005482603829014526216486280746231317390396077340494394126829055779970957168080679737470166735392488011341869133119663444536652503294151500038937690456872059543533302102604572005050044889527644101336857595370147542665476328438598558331929802897564394127250439192657936778485633268986464187129800788223330543480498750487169812972701274517187566372766699055095647680214229717878502167056978791334335333690307085738095473560773223086870626307971374941265054186356590801970079676136009702456432573361681820598915754354239765817214306035338007838832585243157578728919008495163733111372895311719953291085777832604250587710061238394726620110186795406337595246922983577011005737176167833302604725934325317655110169346274647931262394976542470770120334602471309313771456711356062681947005094031176369307846963590519627658535838865246439106754073138169430557023631203651846853491010509549126914017879459186947870592512566146357957640836124964649317663738207362031227516935698121183492418869181562652506720380075181734547157890456776551070736748526579240291882614654717564956593542052966132788386530415706375861459025533441782828729211635205810131368897989020191025742445084317830522775654803248695270587755682874585402088533118383286714871253800649580044634660182248879349671118471224860863916772419282679966583908778795860379026006408818503563215188517782719848652846674988827309991337573187228213757188856230930789941270949764054805461907606755685553787830357534371488261381856721525774467013499854983669997633819993484447952492983771147119288005614671034197066033693900389649382338087462229446886600045142721110465394375455144911026309577355948320624060879699979480540835987500769760960483885936418802194376811266666287966162768840777752462188268258405849144994762841250293527873204141727905129660649023587997981670643712197168717931396805640958529778328400817428894183014210006011027217286958104378342761743744003436234235307736403518088082506851189851102278952717537083743749935585167935514316566546637180883077253289897984267634301238594094449008035955823908237263296430926490390124649260520466765819306335111278143470630655178458569702394107644372277966956796501321170265895811507286991177182935253979523696940691833677697830020692855316190242403382355599463876825422406543563730308861038029943216257374069565375690533101172399208840404735886436553619428960912077450030629408337619340897352289257904935082409668538698449564670420696145450614772434751169623006110633955383304891333344986776290937811608110023831491971455697593256137909398906225974132148391700669307799176687628370945548146806554813765771474635507288742984091234688955720778959345912232381058013080753005621372596799665676817773026226162245502189529915285427472823968433051500197857144839312573739056652017914614268729217316163237294165325349741896330016039769452606622181159546798689302662199357446593809565136561104802260249780479588405189779784669645051915478672172232875215341801850929650122532628558878485942822366904203656456525599180987145376416266599658448186373173974480009564001849581803414092559711360117290819055993523284083176838513307673838565133644405358398339578118829952710597923018042900815671266964785283288544264129318665578908270220138294623144859417865275731614224578397061049244472172751085211777934392682567717615000659493491771924341079254537788569296592530549900992385802496068572145496405928129113023064318616550942888490700320924942444020803228965851256667214895169271981623458900981163280502693717431321498774485673412029960851332215789783917910083494271336339444044470552842235887241480916702805796666269108535245092266256545903633322362189305751019961817801674298538488199574437977333647600296934409622309439788468191716496841621750701490982604443219639317569550181967405096653541214988274341307505468716525768384993412896448732805053251503389019617175190526594812635578555550018351092260801046710226540258384953132470169330491047804558616058220395657266436069377803516640803800658418491192217216162594330656246892759079932343907034526688468730729746155075039007881001181520890928048900792059822591167652204539775032832095116489743751394774687000711545887591587909063516185031921949408774650385878240177785927774485809747047970231168850151651626210881816153123932500689068002588088422512461898836127598380319178980577751351884591816569363314748464650483647967438712999884572418679926940685484202277694844792253495106127604957363841997571654560278054346692053839417190213752277300608455958604277777927987663231760823749415023171615314356929895017357503454641469113449319701692180532081515700065645097949379830239864027193763085312476023274579149043134678464827619222132005310320083390059666102246525340765633193842060261965202948476182533791193378835052541846825713530466752563134355859295188951560025170063756088637549848335215409387187890532748997272601738252852819773433259708413202061259000828493379548912896013742205431787976682129411267700528755161878662323609659394688644894571043446881154689721529679552472928037738402904990573313729594874790988177035476644401895149670764514107568634919719032113697168595641821036896128105071768699340603921590516693310164925116151692946536869155430837890597525711554836505456372380779037470166223238129426701394617251619952080763961144808765160824364561071629307130132435893324362879615333828203890288665613269655035260198215187520372367522697418763812582731700533124097170861452320604503115117150676060497214427493439735478787601596148302139294197785773766517234926125159195801622785290795559281808920174316465360002185792578836445238591586831672291526887782157922643848798668603961014398201545139191273555475650724153048702797380889816998754242004026895134712044772175545885662180748394908117789874768011421530393173758809910915738788328679086191868784743417087118952168863960612157528874190014613430919806733076599824687473676203924837645325849695331467687731257335271738837445605367600814407222239641311492046385352828490309351017906015677392823887712195189603004871352903913058741811825716555378848745329812797354186986184291017258610213040962103567037096603450181133855066708555715492655669489569429906015126768841427475016049595900628492828455066039279622172092692724486825700990658343624766021762728485602076684681623255335360106157364225998389725814662560620759715664362716993164787935994214688178638804517842896973755270453019859769820281502525547399152552307677630774966104677831821109884981942402758337056587217009367877793725102280614959645252654885158424305821564200380759588834263025291367557961759284052942102974689302118952057948648826250786967434084016750856484560699380045705348739123452580580203628016937477909542167052181359444071979236109673450463778092761470308594496108990954681707402470138546880925989836249195439355873030168650425703467448421300805095800939718976857167032620906737923046478903662666894927524540746670414641698774739622806349418471379949886919143043336504336043353896792594685547704130600558425158235875635689383101854132819259253277062173659579745587932961787858193459942915608024218363576315225716374465241199653557323021209370557370746078522747332506448848538861894456824425018527141267209046241229310827150741589772636471163447647308330730885429407576670842852536157656065529012699821638411978912734960742159097942264490175073346027289994302282651956216484723323361665025943668812975524302625059182164357134586890868968244861858611307854776170029672979968448020819000150330903796005905763526289061849328048585421806229642889561750594268028595207882394395348241379366761289688865623684186242242661493803266293092570223337663220791873447621238515875623872630965608694009228111665627591266492083705174916663740260266500583841951066789697525614048043422767005055817013993241665453169855438510414045235181125694430739105721334100029703493786030646793129348354429147740372420484366191846818139577591405851419529902716507650265535080508592563906932693611791374968475445256610562647457411856836882408304289209579995024140001895536702383468316756874135997978012864004483260001530858601575355640335572298667602249349808423504945791398399533367910724315234631820230237215256837352608968854042285588613420020552613179768917779116059972123988230306778002146232612612368690703308705461570477088677135305968885784439500068023379840874182731643987310425324587457845405272643141872421690942868418055437280191672777708238875188120216796880972539893455876387356208657256017214430578104451598855810694434685163394595013752014365896791669250218508203304120058541110081897230588113191279328984794341929247159919408825152529227197614369978665500862825512080045931796437461262556701959125923979409427387927449626902209956386450449955080862091908790252784848053826992551288410033127333236742841150696681088208982376213526268633483921553480784504745757134217592599114255010413717147331887925686050716474826760156509572978749194203008598859256315030501127524535693780419826918622128934158465269537772070557273217324310807328445212537733217780801564884768807428251717080198138622273350248184717570032179470639859255698623940738487315116666476659681533658351016543770238541521417218520974662010240118056305836840915377490329544678411940405866934979146427142942966091650310735846906639423347626612607674683637047558811381362889889287435743975177597241633943003080238948773856902652387484260619996951195153238725698940615346125134539810205786105653629310567131731597565029295923697645867879404108216335141441243744382377632990464800190101461133737875628023769130322730049163807841540427055717789655551361161484532449970058727513974010957092140493857189605491350444534131328558074461229442266708894071637601981750552054071318161603197128125655379908774526620669803468941515421180524596869303980388485111648907957026167481043296949234325854710219278223718868271629849277859511086759519595186110311652350234433684851352946528109081363545373749989109538105703094115322407588925960270957149373283204819775246666845062752937551952725392016930367362214055999893719467322940147411730305991126894961748356182488920014573756692086437052215465540619992741659786132691126591983130435501322937643680317242218426523344672850991432680851411944768705036156056740432825265056751541932838966953619482134810575357776685049799857178058979753793207783532970743544749524231964397307208986785132564980830042503789297422094387458319187992271517727207330297226627762545579521595848259371817319014714638697886297556517587209691584596473957902379345613033964872181517907221620313015719754516705399876624473981298049140454937821423028644674935196259604223287553189046032813451265268375629974294847819582709542046324444294599291923466134442068799226189111211323405956636277012731776843212532989633058480798132360846651382988473468947748725305091456291197782014326208003526283575003005266708693941927767320012973349190526939050272519537908167562517937840935120452689449674454293381994906992354348516797623088375145174993310344014392906032147619757230137474530571680086648014206385624675799607677353915575375756497459405950146385493140943351754026553594760787984163874567816088754253259091054674668591129931095083760265223261229455193794118518455505460982806252563360633336227841726952554181832550135836874614769586396735475976219815343332831433807049196537349317390773087721277530772600919916904158156871256713109400224294570670724883340741113575013118497769065180593289348004477445291975201128478037703901120803274361163264519365657268167122551456108905949653291541653109679999601641011306828686326073320187162564191951415240563859110418005154346972892219967518408205067172584930171095892620187288834731266003152194544143686296575449415975925782499700640655766585694468134030362374775823760305553242030763335536095974572071129045423907294169865497218452915431618695382785872810823821514724200623506608342523648979291101129401283771768763474519517455509849306416354278012531559914392660238934002628750727224964934755661638569230506357408490969431190642220936067158690481475871033951831541678484538905594140275716745830231545054650998234404572035359000719130098278897950540687316562222364733983875321393133075613171909842359146713205073803959994431197510515656682780433616950631540319061951707821677254088427643133460421723274213350389553577188034655610421151016434727581533489152880497236844993698927632383070171733896826764822627535805759712524390603364940917512849016098494932208450350460467110561463679204482934016722482147225120233912324614582332235338267753438670161780366683630706299830899002987238955656576562583712312227804060905586870527300869205041956668798572954260302300645359020794757111266037140317321508527563713110832243804322736869733277501141615219992670516784894579694509648787321305517928936668067701034822350266550299482650426200688358298775932639429533631405806826233970849245395378663943475666458902316569049117194136466582445255232482813819705067171042556191031166134769819626154247475772457741223905729618748174567971669294787314479883544005259062309257176645146330322658809698272801770805708913189485071752003345843436086740407238203012402291167165391051860982696843768561589966761918753938028729801206164539989669756409104742031417266585577359987119816100952991446864123353957454078189962636713329702304378697550667143783345293435212037466145862999537582682240174254437402060636258870541040973728524812486140702407105002982705647160543844444392898099024451944683964536821125454670584062768055895245650462055883288649088609898954773554772660332558462520659343544193855751034698855911305956747233595681631423153825971475101579622833590182327340102845794881455045644695746510558386936929444904251215120391055794646692026829681573688395722311245906492618248797800456554954075059640921128063240949016697542609530508495380336726269268323460233081689885935915469387689496295983667382831193547228020276064424235649871651477117700610098733220081022149198856797051105982294173241243933122571099419340940848376024088186613973460088666232380695036465736258586309737856891128776198484428850474258714610550901485882694777005088670361613835198962025940365229895094049313979845929255638051783811731040331870904645144758203139867609766081342018624701372133562607550527063818470968808205111708553104848787953571411744476918484739460796299615576949835237999659304912460317420575430082806734564896693659877806906699063495171409206093928123356380978247651561940681071087239843444121725088516593073047990436196283808883712270426208243302648316612042710307238516583112597633772425827956938902145513683203135243004405508723918893165871307563391400742785268550538048207342475641320889388685496960774157477260617082181812037763156381127973761021135569383560742162434154020638458603644386427582815073189427841237021396066871997817126952324427354488251619376668998460953792235387093441185785843175978470925388378502393866007077130265649523323286486295207954150818500290473698550228139796453779971444436347915430493030130892221856411315740854412744795449169335879713630166188898121375070505134918014754149370576349087861890942969005348523059276250954044187305739187222230806293037681730933711697953300920294409954462563432255576637214062728348013376581606202235739033487095401672034315900220798783753431611440599926996851352100853864141423340442261953715552237243595768330625175303082636664923035556561791576471280390549876916991569659063282197434790667212498500235315853581579953427454454524154010933456826246223608856154669200347886243224662746458493578062330359463460975762906774194778894203425470771269523518163127470959688663070817822037579307046375666378111576266938060316100086770328300723785248766947362912089050593148400201151842034249583729658246129048143693557795795487940119262056305225788195743035270399560720151872690332564593409673855857568649441081628229202347159607208781816987268327506672082937012691480557595195636530903874661717273267980326991132570993888523320268343479653313722486005441475262457672319367299790636470990074198344647292864206712807041008358237314879814774422508768692186750960471771555082042865106040307583252683671479503585516395142599197918620938975085234166296544174682835461829455475322854206113590374439181415949844051607159795415849476994285476112123741036949820517871804305794677996143866539835155858288565984164436634207221204611527449295890369868766093999293335942369123003525085408972479123963046794414468449584707972959045490918471998409359757226557017619197855211649756027110793716758141430516792376272430613928811586546490699910197717213097306122619570067225937785780481775451750001332191289126365297701927666023126386903034834877665284285059641055103041586895385674226240073556053312383531213154900838598278282229903539099321953774709354624800190512837819043377448991760393296952372144011858381882423250693193987522849649329655690464891222496349254985313626057741970380515176147425242677092143647298646165794808502568433127912539831987545158239227097114174982392803760425592181317862330792131978368227812190376409633378928175878797548580283500064076683727536980422386941786541821070489732722938902209963644363714901783400118827906877587212817183451493578403817962507896686748944035614656786926323166907311769951381677688577555146383938404768802264669556757437322373868081049162682692362735467329154043763656470284648490259824407886490516624333510227383280200029626998084449787430610708226729511473766584079991283908729941061230765571084945143627520826564596161024870426180467228196924467867343965047373252549126116605462766466649239684633874429344000726864177966933409779698454346463697872924724251636893518153050663798324699910185187875037229007876513766804355340704116318474951271292613175727794449696858824434431825904191563236067101589767339423558942185576687213716205893875534136649564798002779378564764510917089615595617580190310401189172768076763361529158928827859824660578271774247494146367679379492771692733638290696582046552155415992726857862500855948784289252885834331846536957571014360977283110874521710737074103329227825160035543196013280978373072830546853135295252433188712424028904141760018100165721875146255185116309733936930296319017482554234170833532372532503675718990034430512702787438643134451525544320114004134622618135551712691152577135523849301019929097568082165271155091630360594112698788847902933374419065537931416009167059141598070353154587438465138810042604388895927588701295093917386868921803069767874089836715321478974133030407606521117067449241623126416091645250473083070718941049858297112220634298368383681564589569272012374341237522781717745869765202458744983451987491815126737970422650915396650555448471851020552994691661965706124973207418137385853576896089150485216652315580171852370981064289436811873567367791384739029457476698532748501441834337980121075860946373421424975773788425766173613010797566645120730221429116287755848031471065276987925258190795108943742437210427109774188981213229507661442544706722612173729937986665165957284381791158219317033230062746806617143138564906708541161761043810824327065445940230248844694562465684312607772358840697689044942634725264302036002341455605722418947030118542776164075749391888544998100826601653435836801299859460577810434411469340331479878996717476265841988226837929285182220469927434630818825266339113373410971770483991586396622322013432930839566416118995995440400785608355466710033338870047266543246406466442173187464430071249728560011725498305316727444135819857389751931459163247660475784822065240679096878769824147968658532296511470307449375602750052476915786522493284563705235825966114857671138670115984936505805058001251676612857213535197804923826999100129112832151627828503912979052486851774719622317503075503778187211271876013409026534426974065131581313078970521233700121544860189093485181979479913484187924674380768930822366579471305914705139072278799548491286185126669887313417406115091512777881824929915749084267756325437449441767205649084358378287215721757316931721204358177355963933672417765226064302509080342689897820134451995348109802258647495929772152514548060775624415493328798439606079694759754388665775513724123110361699118408714812407471170712422185369277699174590336517737984857540589154911099567435731956199604380434849123557710445530440593547797280454286890298716548175815988770390680391679121106297162042548674407782892934934858558138817845910046882538088762301791874252035838205664970297731901887750956957699237835158580072109832784456046915005033764944069389746564731822850702649884109715483775682278511289318317794302828066506243133292438224756572480807715327633547374902067599174591931077390160781032319619668589278584462915179415552331138119219340637735683461026522835731758453605796823086816258228265026693152800014637920054086520422906326807670163774205966312639220746191205269760850745553735836003344469768699791982573568045712229130847264825840481512834203333029596067524092675414753355334612886071020089717423367336029181817477771701780907973887630657372719406397121967954576165899346921592215155170129382366783093337388355451660868289459617746039616442591389585862276042598052230138137268443516776473120898896883302711320518481607171655907194918997973216887112081634545935701791471174320301764780241615278407854638946704275143155486353509367898325727201737197312367851989631857673709046103310561377033213862846654322012304166159939046652845331570759531459530768313012879332247128857361699548863430415811944793266120877710842782279047720503290418898742339192910476801910568229559966126507443133399252753890704249399377853156700909546599961883524071214712463090918239646205313895036737493783659276112644167219842456039488702467549469817976122761376897756126388374991599326598924203786479646099682873864236962317546354956849767579066352513341635586471613292341271315210976114481735202504054566536351756923259511745543349487705640490863795759566242286341863381977884406208185383329000438618837124834349940973019003860110286955295827531625685992002684172943546486580826169342266734248623171045752379203688664217040272256329011284884773728486037662277302047483216776832450612565480461054694434009183939460052299144423999541300856457760556373754570326230530760759783292110677964595793223957709073777762267833220759314323167283072256552157660316474350148379098535636297672344304722988897988930525104131451651974086451681003153326880634891082232262474744298547468420209574937187152451819173628015657888770293193215793749890591460292534513600856126299116603678954475748128246884642899595497173478194471757967458419766479368833790565846464894952451281630740673871057977367546014628055711392927172116722242908109887275654156307548812337333021651735839880672685607657128694740743091895454399816236843964860447059370078333077176868381353596545712162398177872191379571673798571557704649705840793008155621312164465064434149656594350023923769671896471286769452332842888346452049822535509792081483902775106395551085681393002692848505905844668273471011910902135380284072808778276453046957500291938371184106077351832742305162634073822601057731436686238023601012034824716850369894064795852767320629853352328483164649706892232652188594126532503850909786869752651789268667228697003028091636004073826363809296881036743352450965248055044184311672325929153018271285340686663948654549579765098881475818326191005875952360426109509067435953541615414167806638612072855882130091546856072884136470918942318157800271067649850327942122505471816342179354233375782259867387185522678599030187185056844933269578541057865862707744910041293878163320116479427417236971241745092634707881569410507269252276907363419252534557376775625406779728485600852197667886682540547880730174736152683916447596903781611788766524582496288381575507465814331776815499873524412676251939828244704086705370860108042150924564981143292480008848557446573852873394936489969022807997759842672433914896189242454348170811098068116112384793674061025526610889033430384766513432619287790460355784567070449384506091844227728580892003974181542320292863640776758032712087171296454080995052679235890696003851702427634190173983894279224864421848303808363598462625618850408903938925439610828224929065718459327563094796032567755432102839168414761855083957451210595878773487956159633832406246382995666536741062982202066321926219639850475907716113236588708573933438497828041228700962948624856775894949221637838045574782248824974211521010486771562597824342613139351273824853131617115716748133814095777926169995136536222324373069917307430410030791245786472415854058240796294705829201891843230575103135225666463969616498475659910707273469762282462075388177085507860234863077235554222809629471763133172123473392323011216029546577729325204415413782363637269626855904693419283904626643348586347032103646224388990967458745344118660340536720061512229555227428855464869153484649798668129019371454305040384682079856398694608689813134171044032414780734219453102963312820224471650125747231589185544703749818806723426595458491215662295744098119948516003754269933021773767571597191453223875606178964355483401709194377733348529196282439218937581392731649680434819438362375916096299346739385490463913919039381005879996220428416588722267722461724645353364892318697739273171774310785741503684446368501286897336373229524583461268278847040424569898882141783065509994231158515376901958329329617507608080577425143148534957843348686137426109720839350213961559050534890355726173527281311931726263961928245707021512796744126147137701023502676531096408029161905527151471909220670451384092503534318525731924883257916784990114470070309405406850689257955927080204358073581938272007033900962218589838443792332588938598853550204814513103117257713201192288694672470164305662660535259344165674125104172213222603208564054697689680281551115163702160982354125409058271062154502227918827337067826861095160316593352931576660672536586939318602896456659702559142249558382803407065688335989637830008106500801635204008407041286224797515521650248487396173642127760074608622269030041413753310425451424052851994886282589908386425244577105247381891734366039259982251344603218793914452728803851210856654894105005771226508489168525847640770527807531860018116916863203011244844439632888994764206678248440521644447890889556168222774096894880300700602417924399952358303592392702373742930997729752278017590084947836299420713655991101277769652145970163440755782872615912208763985780496641699309882109071327438199548319302275758574531763700642795001007628980580592250630148068585252107430826732876713368853910934842653575236997054767316566881030602518757431237138581077748895858787679019979793535807060896211924718272752683136746014411947150462561830271851871495744073355043972792862021890774475817188419658391449803616132521527189017817071676210298565349282678687351724415511845609369512726162274680916009953834545045151299323218285515849086190250684485767081884416508252792971083909444809941828660511514582852825690935122554206184218497286840793369180779017649547372200458941095053954350868920140021057669032198683384263213541825989773781703057816997473742009600122774724110811418182708634326717242356182422185472534519153120358520961761695206537004051446288278567850190245479115446254403204215801202025963565287918969980288193467293476913056038034006994102029907145674248528401255950887317883517687143179042005030544953475611201560225283641255816884337606001267316496480699084935213368651629347072629037462620541484281859739806752432080606496970060058240671380844761442844360339127488819876402399356304283080285918518391545090201231028525995103929764940310627735106102717929630332730771749541158674646215790962786067313469311037318880787498408726546017313621779357888517172720955411963452018660749967532063546608033888050824886991852561769166968426466093468822734749046401975126856210645232308885697915031253997519224668667025422472912276426513186073758028832142061436316905395007570390773651820979304406191187395788672504586952924796631358931765512143428981055299762048271812947153701894215516392612740169423926346480047880069019955188224686200567693593737381830802682301554927585765793433140560814704783323088502888090677270227479433511117641594162854356211955597328934874599823807247955560001866432347343140349697479842562932598253112093097642589464466669155375884949910938305666430563764129365482023990311155878021167516294392661626969360840020598055381234788054948019189712353190751545966697948724698861105830338150303044042990777295265505924980469285690593801838791419174630996092130555968678137274733108315759897322615498936123856608805340752707663419608266826695571059025467260445241280667985504923374715114229948141567009609711142641817779975455750396968696041855544284701294680822023286202799872573514447836588127009833328612665626199869336243675258701806696642684368125909639143318510196392730553693857443493101524160714521594740332984965022196816060044482964617678362978940050074368428256411059390386523725475831903930591473726321151001277361268829615194807708137397289014355904422723069567217346858739804203827452180462324633436264585969935815368187756803425346092752700748224894046422563180188305991520202173955395765157107569409604481544914033880303031267434828599878712089571630525816038890371636235646585341981161483807958706661291825646536476935463468800527579941813486659344499914895446320177383930089357452497287901368386801781341229240123602325569327622383868038183104945851982111779073395114152633956322058668059477794885021977041586173370929694421518427141314007608635791934095482600575246949446097249794472430530440891517451298725017261948636347920238224194711774729838016028933023399527552757780907738006068877172632843875234136846646710318684258304972794086155198557366051328388851321165134767605564462030219109499721863052935230294840062608990517265789895308333629635866967259831659011145873111226789324196983417469548731376712200686366435906171954631908879099452849578969566220865439777426582814636878441441394274188887903243355503677401482163060248388278659949723806483991806910453425010522776622122209454273247901460104273543783746592886608254750018118155045483884365342235570686424097054135412606530424480976791867031923224542749496506469365797171783932132210195520724561190863815620838903050970058514597846338903650655343224686287862512787645883269962965055895607328769643621259686682941191115331722829126178298888060648746925387128332042049664857959375185297302634604407800148876867640495822315815392885092881521221175986511794030854888203287877980253904519777772510731671662827638386423544821932171537345340826787091424633043787520257593222163743247246920858551312403688693485644417679176431650602220313605744819833661388783498679373498042158457428752924588888507320899970315090285688177596343441134015930361663031704055206272966230185266018886251023574891215165900640548652459333663569816573049066518338851170566539564820748025493719034725237059837460265845647254948454340826564697968676350596832597826329902428711989303348548237452280871309163615193754135304690986277428089698408482433140420393298055189627148083831874611301165639368818821231835864615302991148473728660645952579635574540877985642130368978284057951084321035003075194287979622407305739125949326451208482523891112680317907703352331853251884088987686962137341148524103939212892880913220093619256203937546683825976976779766130846897303595673969248398234052669586323184255902180366285150101864667842620449703204447648966752160933611319689319224431779552923482886135178385877824816764585344834337490103699904943350005090322463071309023925478068851097552347164082342222903607768564139077283341586086757133166941050153622655057221808891948176075424299058832080302673081329775650218485648608771651773676396893049583702853667673164762546438777436689959313227110123151602729337702633707186066960206136581272112163590758465000188599823129752682063009571094960326614361139999479795834094717487384308882045112288906871094254061372048060008364797835225250654746973080368344432353644538410395991905746108439667653476938296657523582242911213055420893030058810217168426850028221630535440012443992541043199400694984805916401917076841333192852207747328520164005317456050058277548194348098638852631246631755746179643642189766958824929450728987753769324066511107522241400527455758927963976793287125228652933084921160980586045359847194092654837216616233031087607673097220661281482556250472199458666396139748762976278391954916675407259646180751430361623216252066174056154194228140758526174621815902101960739490612309456120756438694842506286683948072228969802871597139532586777753135731432964269343267592490409233870703465125244032975820319453956019145062405051439030176647085648293392802298971336133814754385774238398000265498996815025232836367100853279788576862078522943100643650193919953700551776910791619119677266591637381205369350001386417140149908277588081821930918445565450363143297470158603874122128580055057214254215451691101254579786269828267235531623968709590094354338963548990576000670999549392952681288395337711899361393540661586690697156250261394853976985775683087879145245375232621269152280387182803126125301791405389726553316476525672765381377382841924050557950521337715905995153110103861860754335322753101196063084794937706417976605862888939910344337473546406194719610761082107740818102128776389756153863146441989762982752739667820024284651693292192594004990439447770301336408916432441599385361607708032581834023920381982179427582219630448874330178349768531553874498971402244699275211091372266581131228188544349478320392285159132870989633518298578988601062236349922958979601897261576678577988080169575798268336246145662149185769044140879922455553799877275754918473344134805948259930213454599214398561236558303359353013859877188979438647465073244816486896510995150583664195805116989199034323198246585688494886244350781427412841720883201728992195102890202645120609220714100558088014838379972054258979190156066060598816488624672298757116021867935631352169765165462591419338378297745109918121680816378864046030980311539850468102159539770222227261163806838038162344220927542093702942620917440659370604068926857638632860736796722906541198682854507650156057971134831645851710017034964448436503553976400882723414277131686503162705696750148070915279988709642266306329054717882726597962425204831993864655274172222094104566851382100123934594609929240754813023902146059178363209163896349183563541647015971588344423601449368234393211460369264421212570714640801612498379338882311522265851694169270566909578289071389828409668157685997404347271600199775528628580654715059650054114473199933001293582630295827484166711430330075101229675125213245891608783777831668528754712422980235788080828191027842008051655401587914959340091670590916268121967300143539407462774477666933810254786325087302115522918194862847870745585932091951165400518355706460380328402064899641128960671107746482109050866951892237667107322087427760577265014803125316349951835060171992919844676237250066939284620184638196174075697879219069366329834115897574340504908557460924141360153356290753447845573605157972920638398964776791361964882807172425453311000807010002008667705954991737158920668514088874965292742098009205546820471131591358747247865821802577372926861602255130287006943931402473099635425742876760817502494050884009554102036985523964082789884509706490408325869413494233873402455527519986503162153117659410612319058140344473325341588989175830740520018283872826254755636712004854780387770566101925919053933112564975412611051456872471382309313833104245772033230868290048208953298207522828773035305621339024504138351301776675493136777366082883869444235485053375891211883259934920175168186178959406183212575905969691235813679982008724732858137069930221003967652930296997872046073908924774443307770841658381403191974458141152090345889043575500065591792978046381138436773541786060419811534752983972177073127065687578338318544797795556072365690918873358067094198238941753570372737922165352381764598810223719360325018803263403461521119775063092347283309216303453891894737925256574004188480726022680376913776939977890745266883929184287240588595795627283171424764726504524018436955365568302215871533135343647069012811769488846826015561353824602533546255013534769915536713150146320861568933479679951590247019573016091316208437870314983875715039885274952542646807173598642460286662552099855305950462931053573854216793882514682969596211278295013601782756554011836711067010206374880714680675558797477178537842547692345892065968284724035357122889842074942144252304271823718580647868689182913531756294174409439355156032254540276803434311554286671329870903908841093381164609931314965802292532079682661628174494961376144542698743677097783993790504327952564919013306859848638624120131779968751839057395499223545207731041296637860333250575939073056087597239273422016181691347697329152921970093151561899272285576540439517568202077538227072923099806752856423747434022183765195474111509792134952673959910705929874843839067792716102920711570311417169154228338404254593982071860674362412042925607750143377097805634609288743219615993260949056036984758800228881641983368333215048422716399688250560965049382435093339593979539275793955085111045648138106258091744939167418218700216534613013270094646268806133470256694620024827259284046910330884584597923928173398781002761101315276252304921639593001974197984673939379546065698073994556292022982782769478102544864240630101607187912606347361240729674684412936298016944459488610111376002381115130490825472722756344051937114999517622517669332669283708021326177209597435908122327457425066079773691613386061664705909631675996158653619217743378353859254307538833917401441831471484099074406069596259745932474037420272871566239774744566528271303136146350803633638336407331692034057421426871626044701468826652307973263695625310925215162344049129105869674536216852994485886001082005471889796546976855645688462844932076609298576575970100263544267419019092591646231418744813149641736886765922576078083474878874689620166656855578158890752296512997349848662538437180164625813520820761787373246669477332310201786022744819462031422187786682693094638202184883319295627638739187548033091658982659697986422477380578498131350495781500270131408183295986632535410350731394800832106378071271875586058680472483090645084981005488965818933741772477254109255828941303057918349265221483257792889391211660742104254187566154688718437110545774715442833685716954774807508885176730422526618429391859644959076057903919778831868345110026470127537240474086286308458874207268032016902501036275386830140091258186802989955078886649547399061115234046255542185604319376571921593947633342465108703666854176623981726349659249285100103273078174282454098121882831179120243378897413765074318559355611765804603908584571258958600897265360013897839220353219580255755515069458566593946869889242463567580905459626208861448482581001508564673263396697288623221163147262090046580677350137944718849453372966047547806578183880834825786871028777946409847146494609793746240936828990743354726435293255314386894894516957872170024063617081819684585642033447795362957922670695650746729065068849270567641809384942358752111579149210331953245992980220147797047532209286264695716115837590104967353401945465509422893314676375957638838538627431865961418559849744019218703875045278732062330734440063473769962351825807466612518085565215468453677332479064720355487010381546796754105647231161348334558100984183244231004758408137138761985226227111978854882306633027379594023506037508325535154389448108028072462338225878437842366334123865327321630149245694370096330572561634628460958959867150851102423126176066972376018138201913508319615017060625663983231265558490116373849496251821534638887737197193950475757368609794602810598748260467452313011528181407338252156659471936891704419531021362524735746595975863260374388251675199102857753505120798050246778314805346007301342971885268949953149853903576536426903855532179286002447621725685332199333969528080014044470027251260956035044994223412528118000369594435247973460198944370090210632284971168092910591826817996302516967612294200376737425448326923550568685588987855552817852002385800083863279604756711262574676875523484950151414950717192312975722914134333084332429752554893150202934307969798711903734246988154363126264356812683774906183155740340275914078863456954534396862786755117036747675594110586941896464535360597421734182015745707290294211901407094297410499739076187782943920924447368172219436478897863339061144070268815909987950368670638099010923671418189520675914297626862067200158098351021855324308961583964527795239071573916122506493724253009685848679396580749773493216216257054117657930121688209886111193637549176272679031415057708264330895911956953578508545049720953387060109373617911848183032186727117169447279141589396859078981873505440318986743040712514391213811952170652603321085631155603893010088004978779246694774519954668567339991379864406711241773096382818113686803964047964920755072522640152813203414963058119768381152488365910740326081654265326136143759097445360532710193043101573741977258599886520805259934398318787433862127765833111335080147483892473733338751312896657991959222155643895364789117905112628060320541261663682431469188780302613653073066644743613749534963696606158352245353462230373848373239154207573765062566755630977130134698425694336823794427115416964035274617326701090835138543909444591077142179872421508168601279871689147323005070084071986881032194090334842006961287970749215920520172715440079662967196773732458957417251087016401663180966252398580978273842347105761229867373455394559177397229282588430258476494461720700853024282149892028700843006127533418044285998223818678598875130322784666139341532142032653014826662242413224421005781243943208814032681939000287947139339638561815655519551149677116694794918203111479663258814992096012185663060302297971120393368681974667951170998554604121624310133296273695222774935443536737135539835331026234275850126175137602386856315644439734037956236850559436516437891741808751956873241021735491884913366492548458494713677044467117228712582462078942664675338385871894047358147461176469543863845810724138615284149324431661560607488859688310657956568352133621767238021717972281597521211790684922686336936620092211582022663791539466000487907325560557993493332466075488082153792345012469314381002740567977826853979393187821060519299345933048310079625566877444867051242224041381257944114893740192070315970545554283405594882056968080268051666708579438091045725722333157389608911130004411757960099039569899783677000454096843102704364832025547511244772765013860875571615073360855682764105334134867696796065302579830151774536815804932764889893362536080765230716962791234973590886329280673647490466205813166216623191095839833387273957232518583835747750431832670190647169862189884930693131369463323093147185410527356776014313946033759083771809343919230327467114785127986820909183520445520670925151676528916735366104303973605090319303712353024290474000744061840721339899192884550735728726252502253273139368857400157929792461769905674731243348960984851915882042056399264251232626695320514548505137388800023460294747075486360215511553589025380717220139940435431603763533796921480559707767846302177278564534863867943224932454760138252675483591768565844203564490331304593079600215631730517501529878777194962691914424444348626186440077980851000689166623553958880640323882828602582680686990167148286497229477461114106495451399397043933049896376289291735937623280251575360482227326899684984413164217841322920306373228383102293792071978597413593818549967574812310203592947993448312182270843522641789059345987237668157538722580850653138319536539155544191448307960408991527738850379544512065122896383830208510831873194802376489996344632492419006448501760342230306572916960641488467744999829309044312839186430906787478085406084294760259059128658289054039465551121508140209752172947324759603960355489350537909360353555642600927679107231156258331776395252896666263650164402391676615923785181514826356840637635900147008508064782510050912293242316741568116663777668030790602150285613947459208623627314895141350806164418521977146216842570398162032082244042374016328541132972671138885795156370844686741537627442578105522314826592598597620712717685530009860118540254745678577866135675741046594863075797551112970540806451222077655787944136675675816235817117842144804757676533253511272017722427316351108871551462996365901705689413485677776077886919383312507911252860618706429333274302828604196772271782256099035455594157394854356256621266412343131043832795004029345724691530871311342704523040212937615501768340678050514503277823774005125285242490468248897833425999569192108799452802134945097382558654637942518981811414618560769749003347098621054615509330957656340963103157960653081166143525092580276781438153945732168251529606727185343746862346401986911895186409642532459746908834578516839689329005553543276151162461465309804989969761507826790830458888855310226266840201316457729458949960426113567220498012456030789036747497980488150670411026806256281707686619757850688954705916661974798317013537393051362366325889570270290552117558264487048023466756140902242793913428443627976177353010389958267062664382911004769590954762680073832833317205674113518536269916361497876402108565834900790906081185131022814684496043350516405846742389918950152588462814006971211189461765344642376824892627859601931181704916074720719865887357111765219458549177819257257133296925023226065024065092926201559997972987008379192390501907701255369596114416189035503625221509293185292405787807239333377186347173863011090566479594477225637625597281584939236562426754847714332725679901710813281562573200500897319597765527864057700923668716684869080571653735412214901226299900987776193055724987609629507911434846690310338379693286563690925215642289756436343951925089644594534677541298646585151195177996187588372281923755829267030286591011788396545470727344316800907126943052725553447235471170301440966576397033998235106899134229719487435747783450002038966499476163948356579683075118437571014045664623116203659261091256351733049341495621494052601479099529440282231168954400504505038427203939716348701647962327735244020151093259452832825307219563390841773140303236858148090278983917998703932607230638877627849865127019498824072722038423518414709973664648662408829524238116085708312887406699036836310653097060120642625952263929958811988650831513701536584097561108447624109272888123044181428384807932549931940591494071387156695477105981261661184247346078200729121101466740577733424594558111140811810617544497421770756276849303175461142445825028838665525163018542904242727028289172609244628142422680123862274565334940762893238156930662929573229277208402743205108103905706628962621982726594891886519911036276138085863385620781121579987614610839478505263101129085972208567904976059169357213649998051398457109955104729207431029700869875053429215650170921606883480934420182413613566624953729121031589562163496489607114414525109440866973233158552931895386855452218058807925062177824242356727760438149849885909918670754664071928641720233215146011502725572618530938053837490070952429644581236698135351615624869543928273454449922909867547861565939301487291850158864741667688937253808374198827241878336747689231338891918559670848478320208263107437817094560727556840555747407198376979531026835357233785696117055186930055840194399311366907776023790128293524675201491746303881451079145811885768859208881363877723208913955919612962783854563706734646054669051886299164647689613112004977389209299472865704839521620723948852634198097225137044131740264270416563311612349769000921009627077146968346975776116896464405439435406163832447708072088398318792018965712100638006164325654684629121414242047191712193145030977914964220515242065058256414802311056415790777704625125773607069148364635251741255375289679865096970621926658646051431417598758800211028236079974216849346970397687055535220006458631338759657456120450825909193929763923148180137089498523089577572672230549788758745695327190958117437748129323715624592237100437362344569935515307435077916429036716759096226109484031313215067939112090705884925857484325342434012371174164750904614581127585439037553921594978607446106241392583917738562628896874963287099087981901833731873252769639325184069644943498825292581658546584140165564288856092066624801507180322530561253352051130772443168052101119727856838452354969583719536361803658593541163987395303986108097347336479224298552901447623750804356332696929841201228885769997850963038457319566250144254137526847975414316701557853886978173947313650049088618510091354225207777035218817250981991346935442331830288505825210461543370767805537600501759881618183434914066512342647766183006464826496251683721293751353844588123236289335822786381350534971176672489521009151101761572295848437008519299940675245473021923294970044217742857572142346841587890154228377552491800774380984856622916922600824735311120559476306063876825147876343354801755501397853426624269365979728696245835252061994859404306299104395165009514921461373285459459401380334917614710405277479057656320542338647301531384732660573402879038921527258799696840935020065349217605252308620737628225698429690548557489003430883229379666746258697575731117332421359074539733444930707300478466932046444972563402369698156185867987686282917833932854855103477457714761426420935619851241582572537980963817730550498046316119473114193540671460358038343645629358307307289473397667022399669606045829630310483568854355276006792099043357618064939288743990415133482615373091746011255707553325960195928995737766360356521340732800821122136759061792823357318030197737263500050206629818982029859568083101357504264746042708045508118295863787222561790548928120450890958638451099508110354036838426064292645280489107133443459479822260036711306683585217786411698531918389979654395985753196523082934174959128529073561846366869501753227625239587229379962208763150060379747286827332843305809566269016557002224930599063672761305712585465587113132416940521271155224762277112241760482867895599094314889381736751993608750819277834928634159177446388029771217737254552583897686684338772609091717279505810522069824186671271473836365473381631643759995855241583783811181657840441910967498034454612204254082804036343337442027874902798935005614464440829117408387482178623851758499972882913169844337885091589000246366185176356428703930644318573158510925917238524586386717031648755727563608932844052067688897524540583390763919156754882672250724907375999784443740749705071400666384653179335696997045521852576936118340496537385363658422232942923695038141214317019201764348789414992256504888020729439863578480335362157745243504802432883956242411988284288166750162060678640486249501748696959556779438994414784731053358581046268907386346805525118663975272646161122478327495061141204390437750001898990252148984139366912025211559745679110278462257113494835956716608626213807707620198988812742943560598658055291730007480434195005265931410552906412646696581253252724189982100088807630697384556324389512476720178110107656695251697846483462423211882304479166342794555195991396667858421386910549995293273456761847953926159426424541670143410842394590980789714589467370752713854760664400604317058942698973383915142438513072478289356070696258510369687630869943591863776352089489220775719997297822023293691824972913589734131058222584219222387351577816957514212955875312350872649735729325558292857758497498450950424684710405086978129303295308870237652371623096305262894209885032322322475066798771963760953512519414273426470103442141633121540460682855717079517137755102704178916540783407944976510678926886083329944552416591872045258360748687011387360504422298292096831522417302397010901593617062941375129827913692615410206546575459310516841081875356516526952398625428061331712532922336799809794372996755420236877532796564016758485032431280324892801551229039886824901226972933321382458361855841911696579906090185479967412606751899089342671493564339523119143676362028309548826392797622133735074489835931330402854880490851152202030147017777002960839781911417859231962904282357650221695833896197018283144547906935139986606494117975465731708305118594909167310249412866730339717830645180140743516924980196257822400538873704935545282562572364501457760801498754013736227875728640724240686552805689617641338871255480275586978519758562253817172330210929100813690658503028120659050006479911608813859194613988912472102750827607202481843410039781892157275195900032997188792448588568759854291694488852809280102047437507859070721911931118581587746756239965738499160170010974454612539389677677064340161085071869460521618113846823911652679499467986147235162058611464185558235514069401182944109437996489835912805449637349937805910506751497172800222914476272351709371371975667793538032472696806548402953388636689049016391803770462145302867995662644662736013221421109924022331693373896145334713464652933684312079843562977150820407480289847884410702562735295326030139652882156165325086904193834607116475192684330247303414384845395404018159374397056726230729564970342481061728168936605361632961831627126978530528013936905028913597915942887267677670712227393393796662961994029472565478512461076241846664559916855750604853222837971723256958406016520015592262843322973466962941722423999645849153661680648257163952218756584904960564595009627953858742853285675629743348440110508024192189099505831550045300923756134812422995795136372640278027473803056569930100366499577730129532224755451306252840526040423223126843105277729628876165152762780221176997229501368124528274171634116564381734575441746833881333293743630402441458343489188609147177569116673629235178546060276514327248250585780303446207002833428035256560966983425685473093659455149390665395752486853340275932321856969167030039579685021476253937480307917806232718819230243579804941104872181334464916843399787342684287016846382790607323951682480385468585492451433170975545235574089173588634664630982751804843621642972340421852683844285033427413914885408327019567627076166741236967982482711390921660471983267915312908943815060676268141743697722519965458107545268939524495224125819110986595752759119756550832573278215703028233598388659291209472282947206271481981176000087397039242552450204555179380295745717346318190136286139781268216569633552122933913021035393758847537006406749816479657620942142768571682570336978409860014714062490834904732043559500016171941129933326063630819062381526324053623619570387835280540072870005612375742396614876862495005538567171095140246726014010815924884172051064531392632054722436054157663639239315123109861742946793192287791906133637777741645968137934972706462840158538231790039100877845191314352806601499974147332346256372262623911416357713852925431073574074261677012207984246405393344625298806313777690159729816785640148703706240197894333887324314763983532447088989700833258677459911572386232293881162821494559743628510428109334255486271479398502439994048085894413065573323164039643381912627798857497871425675076242219881489984989107073143911816191548120183209042760470727827260389332012503084829886228207602736576010994489467210950480729572272483607082846274011718517429107035099250570592898877101901065178969616415338487544964787809622546615344314263878729322971374647554426713153289164539248694082192334868530458705592545224214306052880980658895107507674906494763003269839542603713016980399574628088804198736843820895348954976658347351532907026207409096107659589395336998746288364865810307087618009941038541257780650246452250364405153139434298838623790274996843888060108615578116283136301510984028353809174641231903560431388099040161946273633334007545900836498445964107081209312554016400888869058838035701505690025862124870857742294872250530256353982419321726865516913450803047173775418569379144157472357766190612212608087229603024414890200076818092341259959061083528157282847288617990199428959810356681953655578641504884407105742366344707273652467932624638526129725471113443830386032382928637393516691799935034404826348083510532767263310059496273492867724616010177791111281013041946345202818085418923593076039865476407066985305199696372310595076069010623967270683277017195227669711697406407324179578093306568058072436122493688357644059995247570436008575063808793181548023443179421588654115510489316390792706123520392126166469300327933829965322207386519673639681629313124017307579645758704443966730061687711366558959206414640349443748916690012551436345602355293454171782291059123499835926552495095764321842155592038893988926450009726826824645427091976530937805967527890734166406055837765907971716924290752966447096267987301296314059719922751423335876556156290312525268325011529247873827498845723417590038813309567163003595404100312460112429306973840801781834356149668415212329394274156826629398926417775926804458804359804567750225837436274831051841928854982856334223041905943830935549516260288170443570783159716197645315668450923989674804740014973467625735459720552357003110625364578529638947618736979895438131525758772770423197558925858843923458519310737969710605709500968280033547029937529401208987335497307323811711923972451333502288930964813796438837764762369221361644952333994196550493385485313951360471792587311940201902344422669533879081911239629263438161366846089390722289270358665359898112005855953262489195996563101871775561578313756458641523972047240231282246178299406845430041604684170449175275699452810022651421459862842226777146577417122346235070282464227107920876529213135193785247688861548848427776445739922235042551426757226249341166423504865580022336691759925008157616880505123726659341202714720364664770972151501887170822491496674765291499283249482062577922164635281627913522862012154000716198546675517682617783326306707966187738109948748274672719501444376966596913665756932468535027880568860516518362704988875312742133987428547703626451360616569255943462956157588303366743514536567615774279343676140745389249663124696310682197563285314810952346254596231202789051617892391042078185569880016577896064002194068766675349501659066990840667558908339480476402571502846143166536957776414969804711464082723923562147672473018098143197658414504581604188255309890470215974823729511621218351669468841889860572846267977511881094569278659649568794402976451420980999271611666127270076527198942869600206980529408002196188539835865931913573246844620514047658424663907621444585383469083795498828957109616887857979610884024076406228152474439952723717841440998901138167764122956694012437674347726293652485404366544833313542135876084472489303670157195923952651734890355726786902543644217662692525464432876158884703698027802516443577677714645453004207874253693732353750617986807260303245591746550508391431238955026821243456803516973675328382056335018435855055808609364216258064809906565933938933228367118319230288651035281311700255657512786363247476517831202358819596434213259174761096149123444173412495440312234992559998688383828424547216134396498174673273795712060096038299165289485224862357679102980282298287370278726066526655504261459288650712089245561652572899399091985339000332238982583727043601232249428065033399188842250596770846590610386864820586783096071671833606299060123297004923301920513990667759721755436352391891096444916071513373529240202213737230748362830554266675286493126979099740381036548145838420993873803899276285490732837736714222730657177824176345322705175264724326152305153094886115659465455316508912028844346402489423802443036729878371616756827435820838406566621716320174283167009885081060064676397918914936323530521736853571382792863791322744618642428221037279825933199791044904250613671726558038651777553850457165309307502844412105687780700918016569655003186678097799116893731746688479014318561617616944866343662789586843584099556738253543723509102965724616515490640721956076186708714627699830818235945468403310102272116605933033630335640398149477208042506951379111979853219741626563378672874371304696605635708921311825654746209725606870792734648985985758413216430797677370895701740095558476795989330493677762616975186563040027532182321388830952456635926008864607480730142628849257072908777405737269059018959780428272534298771210397773660687973560756299170873763491104133648553525890008818125811683628332640830714552591784874839344352222391371989035565161684821133731334291381787323481052090125361871030288819569163175060105445488371914274790892181387389388009722278199688291568825317977720073569902873188313376460417446099264442124142780232169835305923373828508479624917069154812090760382315732169952443028348517147024200921087334536276326319510887571897449998403700051233549954625744655249755993235269555728913734922637592262267294281928404296261867754624505840727845479125683102067684745729356208733614397893203942056686182610389308804752480351364474812257358736102779442551753072864500253366360312187823329333630835739031354913864929600658567414581510717450768309617632316524300842282424561152421624174005713329267975438664167898596169135524458368658799957663631959247490941601730270747145374964929465108777362187504299205560375095786751819515880603190282850181520911837919358037260884954454550145038756027083334688958263434788745008209388551835120132772635643420806646392608029484007688618169395279083200565819099275968436762814968657909412330560053184915855355853716517185703519405499970118067600730725064145879092207270838225748422638398239439745303311690120850698808920039507485975198345362612376051355958121183011418428880907560674306638924441718483493480510598403033565747200558607722651812056851808418363278391842651355300443490294343992298796259399935633736768206209659035752452945425043388123654667656609319955537221965956967968905662170014774855661711953966894033185814952594403485158197944564617375054669977678830710649211344103327124231714413182515041829161866813884040769089638752385559113035584636797082903425493785977836618597087372877440115494813420799371591609587981489307622374143093453696612712477134170907323914036868224007020502088077827341214189806415772501742722349755075163970706929821539791740353632103856769322418844806324165679127237582539973283677637463134329414787767860309576304411105431162625624817582140930319010048429164484003913804710463207436628336861563768462740509067257566795215456302009918761287576454053229871384783274374203527312457595556907998702731291323563220141155003230782840352598058088739831508739852992241509239509656469839144972859990643446795850869773622328084491471333149161323721288461290028315178936809821050419682144613273172583740573059563631942273180652079812587071324978766922547304619680413155219583260795375952962876420630253850620684399177829429506990093225799315574574215711048014702725030208552201284264787982298539277259742741428799678634284878709157552100607832928785582063567711674914728615432769359046180276501949264150762674923594783871883218425817057626060884081122098104518553229001384643337135840686564301999467329153049895569792793598991351607498652591153721263863448159442539213895888379918669433661055208520500840229304870934130629328039732536967266993277044667458897123949188808858624358759911478818316961273135791456759621762568390528854129111312623295038792088213549331083073936222972484506057779101709664503369761649752722356001184936841678892642296463760304002356346206655277640291006694333786484668596821558512371316724035050520695137631836160847645277338111165269845191346774410051342950448549342940922478655530209024455287801540731937147549742000751136800374306135164442404071168066490847631446201793436880515148726337178477571202238930425723859492634476783917378760677581991903139684914069823186704367877938124326697586717667310848693774387366950038319035034205341976356201503526691732516995277237275886877635014810657790354388701913269145601301052363362262962605243185620520750493926498633013294940071324579539614507905653704881884272770019848936677700837338333017179423796150595155762553877209507867105276118231343946407899188444125648526497962948233119482045710991566809252812308879020042391515796272582678206718993731807389012754740492623729051742183473694234523385350703636914938653127785330867724328893318183648725186521883594098446715461094904251551297971568660620993850516517947552836074352563630704159434412398994659460538393055842188550197546502696826646440188785943842127272653238528336502273008735907079268157128041040849043859436278679049744544880124527614946899931777210444697803110002950015331724440402308237114218150213689078881165752493208058156188694531476541945953330463909907820036321233101990457771509645726468491626168895281359298876643282898343752037135449664912452430342857343192808767667392869716716468424761693298915016751387132026671431371106262911572105333952022630580471250479358330867768371570464017591260894758150782227169360165954317236022033730872964095098950308237738140401371877797211743572921390434117334407634873775321486465516487197273498757129716714818012388413030997908045995477990445320136878513389749324075236899275462089329461561232665038308105853034440995741719167097685220206802971927456827785239327664150844621213440864635310901569499506796077488119188635542221273091555649101686960105307215410116521842089622478089684753777618968347661612370268827152470271866679940838409251600796086864778402437931274300351721454287859718939706395858224833237779380463644042416075464087984201099216184073195879203009424458448554574791708161539191184293155344844661434919027679956434834643307172192561644332284177951622698465773712091888423365542657801746228565169925606779105712653902288899766477425398862170419870483452315618398432546995560549871419459392952012195137049656250164789058701165922560466096749773768980501068820832313990276607956550532696784456453090434072194317993689029564431900771414705925380581917239187218183388574171671313914249596535838179421038628435157292678733301694508918004457575218098859483944852597254649021329943614313809977696189159500092436245221706199102190964208842720140134937201434167030467262799441910992349143797983047834700721072215309813291685792155401736903917367573801352311089804104815561756972783217876401434217244507116801259625856810543947513553015260161851157522322313649570325892866939959926233770458916411243745227791248938903504542351120528279953593932355734099042271854921232216026612901853633602130264145450981954714015398759991717894899574507753772334473313052734220613904047519660002456806829188559415425459090649946218098169136967495914166114515212316299028702261818906095549099759847135860584330126574257709183025363543014170059119990319603767026159803750999467742001695240690036943344592410467072415991007896082802297607205834340675474210704386414783118022484939412488972702509529538626308003683205562704000515439390706639047629897704488726148831783779221999242432560842009917998767507311017259212537409519502438125899448876159979488820917029861062582441649227727590808479059011219332835684672162973291655292500354474884128935758289554277163787607570400354082274914165117656225175768277685347415762542394976745854106013775540917337646491978287623550235188974231453103800707294200145558020561844589398365499759733490737023138261987912115545888957019108518547689524836530086043690848746706678640488314188186636627028720324252431366978954499457392319255291267984993574522348968584213290191830477774893160662464381266273155794126381223131838944453315352961623486139176917388898464590270130239603170601446959445593782657010419689265439968649986602552866207632762575486066211057305430735441811217712090320051275997952623562444939555464136909664705351970160956166955193146599376247376343161624470706058798725796416447773203884514356775265228187386352631989965564753587045990208489804814027481216570490596471695200519163568106920328419339357943903682086619560481757156546308652670773002492687520421287794474390626832690526372324723351649983533588961539132346173622880406748628920647530248931988960996419668611095041287098755791784285266910655448128695845292387459624825013308386014615859223588374509384147476134156661842149288309420595681039772385551424455367635358330666693729888871497923643080565539802878664373243390646780046933691936649693216240725750013370841286769855461205377306718455488376089141610122670935539489173340697280161559945510220531107343145318068327181010101625843393979004685546110129343881127734379705724250766673337680562684210804227740371927873072841970730727821519013395504232076542145522882515572674566770459345007145632418567067698728448181231997830865044632456769130823002169131691831930718881453938294455592305860629296700650588071575235586090533487989347935540620341516909169396976017492656690575274047805353945523548372196814816567350482719561728401198520057538754567410519277877290693436675501063299916191165946385256098868000864788333198681611189638622062222166581493196821607439612512319491315787759139915881850014439424928666686628082859150112144386770403775677081332566372168953488855110119549990038809031003984053211093685675357540707367867682102465964398157240110264345616508601421179282526354594903154681128086522377454220067237303062888431213592625344518945289649392881011255501133814670213468579454289131515157704974698969715229239179182931169499405417190399397501431567062573966559594345964766986513618080177699868510960077316327214313823966769782344233170383465396329168060582316616466150293201278660157372824565126167851424858555486903149827904383089994133490431935724476994814628834687770202306373285344119537415652568084197024370461405663102783101601905143954632433156271888343365666792745676401509955906207224603286841827127568147215869680003733579011569431868631540264639759492514257638864842318002608369333670345704263105493186651122777651244876956634199750538468585011603502235528075436112248368297083065961918589337097749378709692298264738045940742451952648244875201927520013430933776707975152358800415186711688528087779826048023453549173590858053478761583319488923179760483101500424510893110992502629118348779983404149475067829229620191027536003297400845681886745455147120829033802562792989281397981510080203424721270915922171808664516093250314468479241720036299051299403553828097465389428784977312798303952645305000409758341571525381202463499091939817617256024374759467467856606676258256834104591062704077974877783786509252663534328504279026549383760427905144891425562218845666119903007425364416858917064813139853264752802357922869358311564462388187591771390472037162169329503924754655384415526945155148246863165007707373248203273154098222935441411268671493783142887382352312100383639713585197404137141110361753201790899109476299378664376082456699708415809231769121117963421979928204931421151706291997888300034872343307853772448300722493943516782984833958036422705830236660224499455557311140040150136150769905364706126701032278579252689182179501382492680069542562866603383160122649703796474432047969162347048118809526004990945246880802593308033131816588018097638808580886220286081501814149849999768813051140035900330859039855424203874503417096211395234280133586386121007942690435103203859742577391135334078432254818499398050194128858423005935148313289205468242780267727844009571310062468330712438433046725782034842022794656950141856349719259570581103713902459903578056697975978103500138928135255494270770716127010961165672431512725888309199660075865067031777376238434912070253461112962154092098446225734283706001195058549386363831813567915620849130587794472800323221047780491212689639916068864784412431272107039850853377429877760291677403959746687648607249391567681099329814593773527467098992900381855873615453267417951469693851352039273590027077608757799999145315118101846510132498880381638211044297659151335341848389186942761814165851740506547886469259760782159991057568644744567280120581881860088611211591756487606150217963296176579745894036979685154179483851009258760527847556078133239874907882751068363881760985133292289093765395220860743584490913248827039821239967341715173855337679443215537378120338222879709480452380882613218783371110067012753946228084201672855446652459695771354027317986511399912247641780591808260056564863402931874371241029799230461483213881097142216396522928576350551472054371328142467879079567699256465492380782113871282002350936957234398191138857599466300414828997986208262939832311356159250020192102411030781291828998127366830502069208939723524522716743267278459417021393214349055493702557990893112766572779754189538491980024849166903794473385115455551480574618530380726537522978231015177192328831294860541298369557953931321125212300280911661287940838457290941763717712754301358993083467249684530012496258402432441755100392981688060026102306483558175088563424453551914324997551642305404686506565361826092616373935334960384153044857459115732468051372636886526829009742214349089058379682512951638106837117329100278138964788106195590130695156019806219637297965216029840338617849876803333371242860243198306235890796617441149198838030314705408426669341962093932672297470169961900923418356195831967866292027286118132367966913918929918969952955240299959100357088730443861651654168173650306124663005646010206125639146141852672785852316631747567456884018926024458215657190799111672875549804370634706274368395795062197225352472233661556613906126410335425517450714238237932444094078164405204750393723698372345343914626896800345457365971079256696012159835059624269143222291539956886556056067700206442950722011544190775108557744104691928969438835303621697908875366907404417669421616594800581361329249674435526563172428820971410444331458165873469346878936248589253065682881481714861798208427736334778970650662813130869570660683464448497433544301768492612476696519030124674466464326178712890410091083378200602011890980707888798817042770310738319957687202677314997729926293135789751545612950701140368884661025939162097835835893101016772738405066996828276133296807534348193757985917838034483809596055196133375702923370944455173339879463842393028410219136700837810957351061256783405492623808579217487235926696892181703308879459713291435569334553623031477346208536831178495417258060423667762624511129210281145998691131177302265087131293850120489814798404702367781835864967755102578169926170109607165550135977427221371001401361398015389578399483563531544498036225651761704572508529576581246676798735352907655503717144645869502166828637959982560870691593838316489852171376501104328859306989391769406633531032268637959277544530241255878846691806012817539988453016026169981718624514624667760983737135122361836124330271900228867726612894726090057389108714808697151818537369689766224168783725030944880567317966940648149794393676491507152364111387873522740546474759099177693195141104917085537956239499893082256966003882990572290251513369397657227339501731752954457470794817282242757842732638114483287003956620197039488210668152592862500226595982614506760076445262209543382019936506052274608819846277465197699713258464497706773794482171613995793577121863428433367939256714909839744819130132067484920277361375240561233516376020617318231223208125583655330289421648864090950389713175101141493092458631951616291159355689014206182574918790605433739417937192220385527219787311093334118238926306151604890968967493954110100149741951115452073131264207856360879060395077747049608248836715823945209372622784416998879120420851222876515335775866235893124663521661372788634162697157902275860081057978932505437692994444369960616350936852381490994116659954551457290292296584335643675840320813056561294014482217612090901082924374869152713509547971654990495029925832636634297967452965544380104242943319213932817949741336185152356835021556180044490813997626196408198001536984456464570560872094849438150331316827259016226491131625425202305192767752107254318183585681108384490302320366143373369497821320161069359272975169682094858043013658388094129770372502922844013263614697733263322366777657343530932573776841357318101766211049572187280000015875884089716183014486347740880734995634724701149286191736813572250423013883866913336596986802861890594997995027444316490782452874364258037828813950367324411317732470882208333120210048241743890439732315389570058603889016123991077193233886281562081265533418339905783121955323972805103326926502661852757137051966528015061606520137215295104854696576307047828465685667895216189912631127310608763210120360154707779890901068180412813167294083688730956321362136867885287582459721830923361664721701549375309756269852427075872341948853039679639839904886139686998213209375565606416674590552957277711661647282681389838609894189153974046348545457699426906557248046210433845288137741035754079224196213459661915867175023383151636734447440399504935416043573484795880897348389668987195063103471568605623685114879048196603096494031616320779846826052724585654329929607793067846317500666642104924454241833045143854834127944816103652055604317906121719568472032198478530072569803576430374106295380980301770474343049921410081214305100434352698002792708748038920581119904163762200800739862948388347309646757183250611031391065009977527812707253949592626836361367117530835248096595969383110730435961609177070164256264653244152234154489154267314775320815578562126520201302352982452475485977407061375158699050013721245410037243169391286662928847870760348461317974293599297859762647083471177120476041306139608762984733113571688844797165697966926339744071773416387562832400099118946599223873570919900516336965949599854357248918207890572562593754340927617272881326560041406488508357088061199716308530380854016932072752146870709350834903906831293397336271661176372891712826426291343388140900736962718203949101283513217357318324231891089913413844953625566224649540484094564828309225101029563162717958492901586477663110345275017102649649340090004663395197582036349903522704213750263932309822753516072154517103227615276163689171706636919535047063012356034039462242531887739508408169682987250871393193667731694850730684654376711134775772141953493357216063142030454599211644387625330296002381602950428377187813632492186013794773684762137652257866305425234882392248459806832336124166214678684508280923026516556946573447740719112951937930261540215521059946669172088769332840305248046518148203592069101446246898700896934349000066082219810065744507856769542887775109060088134936928231396636012372905150586065411320892248277671005549061702224167432364333449258625821995143245155263545575275472417947280104048201358292174561493263636639697363092376113962795667772376326065760322473821208315895945334442964133549980628907027273627840996542578927062156193020402573693842495171019210936882723182852129801426249522790893236982124641198698807222756915385955647145274478901420364936156755011363280150327910034883519068360728070197165464666693204037351412854375189440173838876557206900464138390250166567891060943228994104151775308372657106804584667188086900879317215208138036222935308862459125757616604388404274328785357464655395086743912919845139284798275075787478082796113342542732389196413207509392193418729215386711253460669655725494860338604242965179249891846368200073852666855168954979767727284019560479222010390577410798840195413837767520478042037629087886930308815364260336173685370972685825555659241069130824012963745583740323092103609897934883620206851238321856333316517429990958365171042462015457173468305067318674377694210955541084364532575373119301674084266550716030144387933106942524951994359488369266498277259819000397511495711828334844669255392980686984887002633938470848662179633235672693090518720425411163106839274198701142864969397036539057928336254359731310813922099953301326328214324424990516334542332674619400325687737126661901856843198864779426971107120225515468748416675572776018149270100647857985027412819769170739902309559659937426590217372665270462138383943027558478506263951871262414618618728359308425837128510117503881917929066685399817456378359715068983802596455360991134655741710312145775860049534566202409238437056994678963126962279780470195927411002012714682074613439330020973616652942737581337882326980443519722401446552466067556806417181583841940091284831142323389686476798963845972359692253544074694951627345319750740198654171291106348489637627928240055542403711877371476895586396411146473273817327329603775332476483221192277013968089040922795511408207014435716322324972020747139386970549512143758427817625518084690656342559154581271594936863832351366353174788761391713617210925910525086699198502099167490204589736039900030672512100473274945721270925011945290092333066766618870019909823234502544486763438243737960356202054721301914177216318404538027121801182717141336188313945072574125880168752560469378609873437089655266054495902153479738879836327264701043888751944596534729390147032277650176507650568846543208848412452051908099614616502076405869723977734036301578403573396617044493189755071034278866928200484831500309035983826889509151575242521669952534728433128551136295741064843635207474620720621310265768051038784219268898414240532057626440460305557263368533436163839489195949758582554289873289085617840132943094481276346510858170781924163350689205634794824120222872352673492660004291994020697973210312183343126442250006432268456088998277677901051795559240184020934955490443047689038056048194065467127780860586907471831944556184722095078757313983129818959958550865282292129793215863959319871104227562108626025514760494463930150957465454610489624982314453450048744855873011093481772377350883100588897345086866817670220619183118146985150396404628069856846620489201423545901146737007119907389278845256487890859313220131383687045062486560461393158142700835201232907551787799281122244163455446076886373552840203741380701186904240302918906931406766222950919332049136459083870957721893441523992116554269984486575385815201368265083881486711959204376581687642069174856438849585109454251769949971525256501647485401999103379435182255726665180141154255754586093506627789861523346302218438129814681528588500454499306326270425076364261417377766253301420597305809738811673604469353776574322861018342861886274616587139840070072891300934310481719626144240104945303831950450668194794946302229326727771278985441413893667678783221662345293787874400232973020372090122226305112659642119610767915126518337171339558958911897439881277289109228292003192885235152837371336488024751571740942934763845160308884593846091153566318552126807272635928957356145520199451699856288036949034886350026963233847669153573945150424314003601987753845237578478176693723409817609176244527483313538385104979294616762296621656800751586655549436291119145321257858100806954289244175785239374643883811481817323084205955512703010533659153008069084971770254380831949899902682402204643287566929791450389064967329279932311401402519294938133868610506232382444752982396293869863764524632445128050431731255044800025893324423956594897308929986505466931632750620763729794287162839483510694944274579270024121193607455546053050561353565480457884321229630171521924909596010344642760264112806169676800072008074393310891615382803995878779180415829580344485331864726688310983622873250011527740596694323375089334727688420661620000736814398845343903293271075410984296772897094003150586602631855065640021827478742287336429344398032623723047083714109427779823406258917369817999837596834139882842827186617529220280318863189402848682865642555358344333400603573877609248878134639997034584501469683146073506217416336070769090411804873217040224236949628538672988359022026890587863286688835409108962416356205051503216054867407240910927900277212305761111818226435709739747811488151984662276284356534276654522178145514415362076116973440034020059031966641414089521799751646586983563702984074230237799171528971406518037202043622614821174992629241867220579191866796510287342815892408911753884130491512219987991543841998556542738478121065959638145598995261484580891052213926439981715480844133718857711296723109860055819227705026477002202723136788652234393205081934235353574411171128761881608526242633062033944316802793249157497541856680374069714607724540886965285664177487869862856065978623751394669470904692534431658001332673521360234283217703886165831175035510578092259023876287346839507707097030807495868273225582548122344828503045933294958809089557898732028320053709569697473410494143867582440230638328715799075814055232739162157659737622278023219606879482787916280979663941605521519520110039475712025607300377369640696880016724866226026380686761089037730628930236290166397781970968304175944475634171362734395474839680283738458598467262358639060203020377240447506103038861646951283019440402084626068056540341288516051957551734839920179050351649837432029583118391300089953147719164338985537106294178080898216292866344334734810798228551532296776263003291266760357402650823924240799093573091566463582489934695638240786714366170656803806353907791522770669995235622507441191995306478839183012551834441126903195489001476822845443659087945955588063877414411570400656081216429108202563797590846835602097228148730625760773538855546542706848664801089783789327971720299036596675360001694413933621486391924421678090283273995584614300890408349281913147110515184158274917491773959774256586319905865555665535996619177389552734766055698037744978215373728605296476986420097777731308783704676660244768434515977502198336460317213435706287793839933921942196829695531599790359977410943874986378948183912742578088235082871202601879279687586601923197122671713045852425228326018716204249334936587536954335576487604821121116651966332818690915891165910162127596829558615277679140209149559608196611877770876393421358225154780548964096206169244641556776151418344288845582776818329615033295034088152820366636246792512083048266981457959000461299323728318844964476370710596537195898966187383492739880060486711211260996126774646485513686392586932793590893195178771942975566670772001434387993226006968064081724544942852010377771050271724201721001967264922050843456700778629626994787399946579920354265940180562782358664166749502447273481353686985578897510518141276777522421600218935831724161386465323770762154537242042152137655751040414549705438615816706029382131443691994191082871088640690055105704521648689470923141729126737184688417823268486997542572083128300734862529236556881869326398701865462816012067740485429049652104279658357632742170636927026779313631745970679164874103191334530787944803923424030175570753149484680184376242951457654283741867003951541245702101364693108619341878930951999279025136586290478137216020643549873088128489663169299777887958317442053534795512492301629872290015963015186593952481610312425790497154444782149998960837677667258322061809246868372931951762395028111874399548249414738489533270574844214869848469792720052459550568681437296982641479924932537945991086871377588012121560511949791237722336607233307578730647279516333092294500114174694710828988533918482181618608592576756138499851342977756502344683645114278964915444046758871588222134716177685622211638819918261217057380637086668229784417126156088853466240428709683108130149223450355805587072688051080672013287248654804220382522014625816763070713296448998994349133646617962116070057678796715309065725593126782886910693610786421245158369815502870640328087347090353791024022676902745621583044146788174416762078158412504821925277845569301757888241537786729465548002881141949270673198838272638811053568999492363634429155243149840135298246481454733179376078538239081495728981899364952640844993873633327197385772642271348580006830514490986058079595572022964819048049420238046280848362185759234398430919689754691506050422281408591202345731805530819388273057345528723999881494123604358596961074267841965005491109225680518076485049914200513501258700214835994652558023073150675774558845166841541365909583388016264939818585420022147940898697823103492719440394140831868348611971953322493127312587042046898950147871597666073955824332145908902263833960897256483331395720295834847589659171652941261221465803939622534791744320395754382339984337683170562380126379067298482710774741576259056344067938472104183924309494211275456399240668395109285241646784193694098069842370807891727782302579401121259592966648802778524041975476126765049020318125464941473501502235729045118722376626091817099302068768987902520865065805188359242322190822165555039895399582347888349471911801097062879611689194385454399728583962253901059410998484515135511322206899920030690054472752607334292956192456154699724454620946980558885802405815222775380999968866758304128154808407408216040164578697453892374691725873878841676482615832187631834901411410438825815094762772124165990015200164611155467987998469345037055615435210528756025317244547363537263770274614323779095520460151084284320170065038866988768881854907473638552070161920052435860965675894601223554234576876105962274980759894292482632304464127095722083883700348621208908312660052162294559460935575502227355209160282784428323235141334350412460709878854338851600588867563661616932691325887801990247244876781124642841464809937884780792641835331617969950587207506612187530394384932435795977963745171230910143715455994167424820042930531913194304975687640978037715044802482012267707422177132681977317633199028019422428371938064952349190795872710443266379232026681006641287112901683305822258732344456204319371766922033198351748760798120694143763426909117261897796351653071268192430926434881900550138944854252418950282822346378059393213315091938504771132294257745071625871882909427996355104802494934173346685943743355253890607701564067887173946746280708689354084637875019702498498890821525245320738037413206516523686118641666115962208173399747688610937789678044443401875517024615437902652476805529418717130967757669104077891520457889168807094649384716239579243052772129119602294478996181953372775129632158937061420178495375335979728189652193890911085324523268164585461782722347246812891509588387023759864925740273217348418477339900990157791152815772688151351451591104596264268109493767847332618132094688574372630223110451114582469905876590268588771208379709685015064631593193309042711996858546405199853389867781537274578929639610717116898547153141623021852992064279275030102778206373305165187160639208319748852817778572072469986407475475781314308297249240396715371083274969764272943889738084521175020261120074537311182279301679281307878748836909771127060870755652540121531157164630847771000015944273975864772977548079339384368320895849330086919695851952502717440020884442009159864097664149775774578500009564357507294946122022791087465843893913090511487640522319249344967297319360524029519954666833218582551743399335966549359210133658742563139809468975037649412357348237320412576983536476165737916494598935750406515097315851292536186010353376876957307841458034305118710733978755848788962148155833843372811500347353001850258592521267414682914853391530056988541853068191233128566560226695116767705185301045052052534407215179815722761752257687795768985339787015990946994641827435539730874256706703998308415725642020248197878421784444292201962629881086414276095931335237682006983574083722511028255755215175296015258450834185494149242733097810875898994894301377625091908374832902946653542499805225595244444443317423113866093716910793825398755717927139910299879694286524389956696753967785387782479423936347001931362363539426770938828639987977110181992217996622266455029750609171819209822562321742568659963634954708865963816718517666332377314414138759452217859854318188105259059071204053747356788426683509191103538661205636384359984160598352309811753933510266863985824056615373591928877839739546685146692623270068765364929541498230791791196087260750639126568844204548009842875192459077379177389261717751857024311985090259586582405884224912548210819851480183785771107126597590981236194083340388302441552751941505254836340582684243249414455243527791685080167523395430785347998027709454500666970885838289063540028403463617158607786742492861338829604765842088861683247054622115515115532165044386610384283676793487010920050232377260027412674767725859657877032062977186810244248566900874226298195914896774642514384675475249326533055434671749043512367066731762120746292610081698760145003349823850978683952798336309191132960357744914879131304262467773442161085428703475684643415447196876565798771876973021031726587343738185471950306728596652165112394597723971558105754729490086506339118903934471269810819805325460752460844068049415901641461446812850786734484091525619589517081417115582389835322127356544783426233816437316099198837504621942268217581458583263854817538638545762729344189620567972395339035120765589849608536397791888421536326522065331842960842468575859951768702420999341081594567309611858297010086469873605546595521703143289482130177874088432373799764483663400278224838045497669587150443389789154423362722007143759819160409815846251492487295128347519787160740032271338735462256118297799524373102761452304276495053236270788730482358517060626544336848913887059382999518828344955603678009824620289347170576601150404616868555974641109454430489551590343423092735452122859645146290824746751210216317353538346590661185957714846015343366037071647031425234971611435768744302653758891279430896032489117595998410117149403895532074886745968936721688673591314560923286294170960254635051046118234360033864356632234073585292904539324578950105880102583412316811640990060315097213171918033126794942436761139946607592587666441683583399844572391550937613548112881928004902320465996545734232915344976497428802565573224635153338590326560834897292743650483581396439363740145876616076670304707015897268627235247431271725270808516986191283432739524725919015500449292205117332865977661154333653857129854663451113178235903748140482780936388961017020358640171054594965801576794373946158431175283254453632609897935575821133117697553437170913056980148043312347512856233406091182817397744326891059246296333058081143889014598088218403723132973737436113689374283625087506224486032266961879323739797521974924762402737354448231885245749457444513232410644193072665797225064001408705820049907070804666298286340148739529642973845436816574287812608516433187136405626755889703197468719777447311398566645575033238496882169288412706053499336352230278742422133647864334514287186337013297964118160629933097834832041962305606276864187113582354400651169693961487314215304749736374144097437014342674844098868525338339189978769213332265833485709330461320875097423304524164758443898788572936228125547736356479420041476319106050667420414325916889804846881413781991348004457376886395180523384916760513165077505306653565213540884551088156307871256773843159269525608907032936569759115246802810334389301259891413205269652426974085887524135057912454453401679603257779950824903430716402604149388020293887651303843102786516792493409041102634073311314311090716979581123310317771528051164315634092611427449322031109962351600169999333272719351346784492206672340947032097542014594322361973805678566814839313667347792715636812776310067366906457131616630805029980806932541628283592574183638640671070165534075436278980188946750243008497755582201755023894846348968200158875498920630043797746451031431028292914530627071978085750670073147645864564071234013053727681533395314353754136499334236420953327039924882940174238035151116554830348363169121250487914085093765436615075896361473048001343390191798599494365218426177552735360529135919816244664114143721809271309231676259138597920849802701802861235262943525894244377892535429021503202479310591967773118510439403247785480613617984975412323944658666663597462599865919894695211550898614437648204009616345241496392226521637472408305311875112771386870883689928140502621682076614751302583309392820719966726804384084828744430621307601082026952798161456416197077185688558585360578384137673704442721648048910407429636500351828052081843258919855912441786022768952462351756921983249472193619506670305269373809586509378564648553211931830006765418660857487566681435939122561566911465179418974585974419614933185183282696912973595379782016085447475038411163568924839270650361980974930171445344596199764317028177395393268046780393595985920232780908837363174959180438868202167587389239209924196638962955081204088150910406458713818450547034638908124413219746093950994654920021800124788776968330585117250109242217318780935941420585295652733187411809035951470695325801239208763433573990234413563528145598584496906277746274410206248080799114058980907656199949277390465455662114075945846692184405805043930264673915015612212366305668744098982208531834575547961949864840568591530647935056933702526565396488880735846906286260613283695370428977113642291038971835201351062444537926210907832981676905050728528859144307625669262895191453002345844210092789122072749059307531657498111868261273472154171383552510233060305176882294454956780331856635445965389760966209181931974476600285109707586122819320649784686132730260391661476126247324648058353895573333445609287282840059049783282335184294975737305935440121480241700422559795933893975724903935204303216526380089123541085042937586108988280476424194346448726949445600665501182329557976745552838155945317618555148326944496373147304553804940014677157271871995358545339559175900249545038957423979802005429833774097207469139739791624781589190203933067822624663738351271504886900987755501175688654159433164024820457681789294552536571492503323124817284900625479930059069560805367000727037777200932531090281038301725488860450620778279093026462004650655031879017883672277404068109395409088084530867402002483510203443906282526958594180013970047222278221005406150072887123814453199618160103337072485225695651968772432022889280768243666753272281247668460941254067507092722127111245577521563885933227545204889665201402433701139682247818269835091762834064299221361328772410429359716066777317818959002266315129616722446560078096043396891474588263905000559561143553414648758066474393800351843084762894486783732449990369451760168745766825653334139038385538946650152227877162324636529150500803332257357936504977267845870616699070587270155638521279447332228263591335932125251418984794371070111908977455122722576045082893861053550596163451806979092420369899796052030164134500735754910987195049532414884919472383958905116506841983238404490369591541903789912373550010028724306790427084448628544390547625236340494618029373550408049234755866682789796609070505863941529121309982754663389092300515289281104338363768033730609925073072306984882980460413334593836149471235352354152676934405462536385171725738584617380215082583416702699667155598197967683108267881708979080765155243715111988300724266705110552619432711116235149281113979009876662041581189051733238745709630194255366417755180770639943458296405673787271109480017686787257912717694989953686085632876495140710091729239063382934358155778396576088847316518083776315874838298081603099282746970323808691733728231068657892630053537721872392603454085414532597255839553307315880140677297707969201933877050126333146888771572735431558867500867014676170581078387596653272387355841780883887464483895769696997289370466557538111304046412896592698806082313297357115884812044663666534954988620703184846706310056727879551312375616110648551331589791232129403874009992595573547623310222852954488826816868430301416601950985579546151557820766352521901284974736527924282254506942960287292235412262658031932223402838286294728694346981845637654388498697482471016546371836929763022662063977501111123205931604364436681932970284066964626272211224332705678431096364537796321620486173275060901120332920734214842242616722896645545229080435008304445464929083976677791033359743259091511591002152099665861048819937358972327752056503696289360471854365129047666608052774966457386445129063939927034769122306166503297257213490475041284816103522862146374600812242516819666459839785525670144877965187843756647057330277619562673864904572720863946839442225198860087145616243215778992018630589114450163120095508514910784326416064706119472516375888218158111383278683314601515972275730896751250008715850925175327618263673346513267507168413115992780835214604438084108394455051145588259292052398786936793872637035340034541942423354851523922848298778778422773100297040034187967558598396689066646106174011807440200841529598370691951424911247834665479843930981594231694917284131313317943372032455350529466144331749429319610249743765544438342551309289014266090733785374427226661014561510693759919049936136223544858028798709938166322658933150797948199062916746891180286344620626038685414614599570196444344019214022878800720780115419353457290848771476576559140357102256724695224931561323611445789837174375246959985011190913491186700292577728039192902021717822333828595910365137233627731294802118211142466697577041025308978667274746439451095810665501502617097004466160822882804194183673799972424288615976711188178657374085470043017191700595403524966778003574252069318096203126594363845274041749437447167062307971274837747645782235836210756836961639862188279837315101076395091373616397840255808482868767623004235611121638454104784480098027892131679172055631333404950711092972306357376733699865905583286271144101099962593856272350747578994490483816522518413199445518535306298854193343036557373813166745717917597690212237219973764240110395334512075992184679598614837302957822138684996364033017951769135203755080971597577527843930758215742131858287372675096327681409286553343541970482625450796968087092204241590206153255939737318365320185559610297222572467747837802633994148263567809715606830227338574290728946721955852386408129843727430155341434425219729624702262471646142964521260284939355564134856822056391414820230833941286969098898851626096574821627771866774921040592405536640199125608396158557369064632866522719180195415144771406338016185274485675832550846974457363522471962999701851103839432281656404581827693622742228015840785730221930600194487654628114398361790237393631745357222783023573067698930572483461657240424768764547920217390545222825667161850615820807388382096907711538432737933534142424326203482809514635405843212685397614576279522844788972209385134697968783644949706885486070179904995506300997461650251112653472068749405026242168963055788546944402581532701623191090724228323822759128203502817006544899140383491168372598308827604276739447267799968358199674432074560770792440176174869062144209699530866955611052206094709604634817583725432725726246210293435599120702790351614518587855310747428455379312198309312472754629962430662908069585872354782007711109599574390282987512845348271226854126033189111836418153460432175904137031889067511012371575569110079458533320284851365451824721021546545099772787702704990181301637643876733922964469438713470345568223711383596363465081053700946473588555698205226882516137732234705273582681864718653147817574418924055693747081617934901350163445295688535853460219840842626726981672723496980133578926455585213650790281229735274889578195386004678114673023397836173177442183536732661154398345752713854271946439016775743369813726907978436357353877174635611515707978224329773152170470296573964396214187717657379427211692250966875550565414320600645732125872581196918181018058441038133566773229768695049272095406887131923421928934368438870799684277624619175694353831325536711006227086396827451497216595150590900886908804858537862887853850199023439293157983452583240826214827422536360590801251985395051135259125341005497827684704215437437109445955063603214095997771264391757649825260410178662159031280459254408865583454865946964630051073446691911915732885482641722055119506216176904960815757427313565355960349414342924905571348421444376077500916644219548008025511731856373098203398456972628925126499816939653535231888652951852462095459862412251168320603073286297914957373622195333115571984152171190565049687666895441296192177997107022275720650871091318542284066545111986948029537529899622731728318097203211544438969700903428039885570723414791709659266000386434071696830374070820958901679802435352952239304000486528082164980585218372349978947776060329631327849512672785579622065855407861166914111922358056824004208827208945631650875221146105980956302368511388193346158113170207445224873701047581187247249855515358603689961222024550152915229390879749020289389709345637806892706292453104143508949492160802824779480571736988049920780439754292908267432096472252966220766794142945662435192680131400831628454726011838265790119824954198344503015219329818375634090005431132870567471439520498079976996773473058409283906218072411891532127212276376014859162653571052322628913137759761450257562317992931038948469484802165740036606368554947654385848269694028296857348843408038496081783159536628303623260600115816628317561528774443944581380514911292693000824539639411861214904282589203086332079516121228118026712435972097524776267094321919761137943329850211578487858298751656181558352778096705425862998061795400308977249699347231370183178405251336046353664148948150282791282763972107094720522780838537382398217409033442122181405709135322285472099709858990336823934422600624907102936761394865833377306145042647951101643069167250840490795310178312015029446305405058690140965407989649621300610417749582572383701973585535935375647876271462443304113700931370418139071948807067783733804415352158843445966099928101652599057300171302098640390076911524907552384867921106323367247757010710216115109678360654358075847156591920573827052517775894370189636687237783239559529677450163016542112796682194698060569733395710430290060399703647707181736132280191385606498405323303760385982980963995643715943354657454582265893275861316600731846087767089794851744941700684391671578295360107888534776798076081371743221810947005088071439977381707915146009386643704230977234236299050293691027290624333750163312636706080974440058391811792407620762203089621829712111342908142845836963508501659596824036503079627703847906494715303730957843678965590828034536021268448091719613378570433005423788823438350816197810315762249188604066975284899306005864558810998068146728664535156268570695606651832091786593192030832639374563559239377003317587752083812024182151524020253858597401700732002847512948849620982698999769551158920782905497221167476108632042184190110375039217255936497687430492894295926510551454996112466063469350523501062356080212837257290373448520447240044215747900198676354671940270459143125887865940373499702073555093203302271793705247869749047636423801903808526329660929953129757542712982840183208142323589591045542603526973393960047280899389819415086921005265104531026580558160989699577919608355324850245274003106475110061794229403265398845935061524121171506706633960334869852837333729770543041207403724930257981171576884196381299486201250105087547181289751548030771025189750449026209246247102522397223419612317158949202044197219090061990869430182214038466285132553170632328510303132103508421160187089595128445327495753423476785678456149729780675685598619592150426061540197476108196823622463468204361048682657462656193603100098468884503621012701620966799638831266957521361310903570426549831581783655562103559476404398979373940624972647302680428620443403436021644852876184413220989904416024986158210657544571698630914103929325265422522454884837736875028033676131159780865240837969954298712712009648662098399467825133029970734974639141131176498226105155049037178854703710549613010106531674058033593159647781692513432477967805952569653467099030520308221872525247234543457703068669046324260573300115561148636634178511398079689865420620536180037949860029359868945535342888726482520180507654758715611846936982796762340019004604057617040887326342403052355477285792858448567757714597636008903153314768030617219945225515668881390065444871698660676946530251574517181253017073760204849889601983414748326105849467486475046515361725819442858463132343095158697661136013305156615691135758139035252942164842636628521683734845777324917492486964710600873426254843302611584690390748541081306902523781342231201320351359643178641616851749492646499013759727847066905800254369405861321622628406950084199254978113423182120496326900235280338290220699192367964524736795360539972785495502746972006780419975571497549419386768870709653300384459646331256793889198672604943651283230060968407948866029995680213269220773950921340869067355011063925552881483014591966546187321134049878874918755314401498094724924101581810126030150025909154241421969749641332346193286750195279057282923539322581946516992914004818193253721318665567927055409663134995498064092533082403212520788448160241517435132385202958522881130332594833427366994452042075599835695300142228522664408984078879386864427470499081957075137319327886760589165927241455958872809193452269405064575215152702791733147659901938385063753790237023998453561324253575569286005838296626990158453936723675783290725222942309361595418896388073763500708716448326991280204976232933814662601630244401683676434817403541542637417924390297961754060429449443473856025789107075304850510847097345027454984501042936983233281016441760437267354865121068910066923056074166220063882932741994159715536969963600743325851553186202967273583297753844991299265285676177522962125117297368443729367932186720024132588125379135059491396840745917256944913759302808141453850156980356485623719459952194009021473457789358565204115242722478021421403272400733441772026471669240444838871680719770146507087847274021723367497916335319105874605129817220270333706385313131738910289880814512405224433732964250376197629603762528531072090021438484485490195149428142575618315574816461777435750417095533942062515129509886709336733754316387428320029835370228818938452737136950445599808017816357860489816030727754267082075445692411886416237897349463888540971737353290664913860005902194646980794448473767626081450185252923988399115170563626114229462972439343541931607984164129837042307806952669563880520771444896672210797288344931875506153812137738840211919259172218352461327929455293687491854925049126398762804872115608212801486065854049268436432388201923905511447313186676102810252646803183545672106026477089463482528672380158887380464653284214978351633367036274834870795331571958750111627108193980160075806610036435255619299613950152868879590733749627719969441557992616664991200384785357878968505469283901224458806667435914916200427393403918244598168227048990229920497305337318946307606311374840751150418931071259597570254153713999943059586549284139597985201965083848540164244108752058681626043725623077261163822451072108236744504514146491040131542259376640370910209379991173675488009010119978070925169423854393299373512200639598501976820802757692971070480214166632714035435268508197557553532688433685680387258391177803862655804745172834348234236240610649374693523617810536921040214293842685999209574202890815319507388156521344229949252434361555550914590767378505763089845127532818882609627535259017615773471178606271852866833690590255815491661963189107407967822522620345477095301724679598311739791412939274073420870504305350975960976428569848278641718935786904639945872986544396144928594010524677115372615062178642186309305210193362179959668154777961586770074380061538338222342085929029052575045287433782159967639044972860719096962775473058553259040143376702388082139242193697669199114568257316907511273107867343147010020181121879485249438797611666409280829683045930388935569025303306793427089932458737955932621204594283164100795672533616777119718204475211309670857697000661348846488517497307474054687006865932470235574651321974481900547516443873563535976953599273606797511420070664222070770554237190613567402385364197447156516597977324420405085576949297918671671055810759243824181214574667218061070169141302808664723765437272767858570559315921045287961117914351523260941239255927063370048444309607302501063280911586797712382896319163409942913579878186357522478215904595285094319049353152860690383030594886585803297682192812935615740581491618245195802650053579687091338873009844595626907389250061624798379761816661081771316023823672505067242680736808072207762202000254593487730216123312688111077259396920617497377856684017572882497202873204175154596727950838370920416910054272578230171396454497946239980947640522011250410790132335942735736851434121827691253637383885135474471144602637898130066238606013471582911550555823503984472761600352808102207954366656383306083812700382832289385160303400770463420040509732385112220597839534622391863992456226659649500737808370899530337498829788912077075085785968173362001099043008124819904521801250964081073767336604123354421734496409781211195680180654710995734907502628680957057781202267471381529091587323383060723845135479939068169043120326590152454913904407641991994312615105897220824554138113466884589786123370356339653474593524174095158576184640908676475031623176905926289524506995149450856922905685338324830510824061636225605634728588702266770601198836960774850175145823896697868938908066853031360674317275398767934648933534459543690959424153800679727364696092443666777871462637582057400336349850772367718934745008910732890559172846048860049297712406610356101930188551934035579269018367783411919659869485231422123444553575697422977540089788575502627213894018263480617570885420426600790462509120485228400737880242117930644675041743205453443792535843322206157640040522849408373981140630812932034474120879096076509732289777650889202320592573505420411928646164009108231821245873026075634648624170266183197259151490757631089007989233082950095355527762382326622257534688214579268378386057183841757975904518417118050231434670825897171968139928549478361115023240527003076378782171429742854079424972600063816661242979790754009270919990727200003842039083010318255251228086173164849227555440442435796134231470703727291339950618650526231801284373488394541708828833108649997477644726786466351548462107898837495659426809477589931314774169086069104564388689526079200291409564722800623205487064560364133601809106808855861459852993441290702916275606069684292904013191029493951588902011296516874302844700181590112402387716884080012182778947871524504041993086074650227910897323607173779992407213308552627481087794925900093719949493786455070213540962837557251486573842723397515834869213296501236664992721963436938904451778993231475911202678295589116515823535178807335093415699416866287581535664222220665787086330337863424439309418678096594061211986924877031492967532881596683924200062501049173908985201699959552789884961278685500878856262776131318313489459558042958587016373146637554227049637659130343008564977186644048827491371867170306300511141019070071219079447181881446698049764210580295111201697083507585301337652692682072340378246730603904908437284381262478566733911806315485542925477985549210190420859594399688629208239648027596484541507114327482199429407527248378198100910775460011883262758890101506161204895006050676958789709083215000075077943284385321592619184588475811183580259197617373937963480930477553437870532193757042680282616528072308295736541393223338054669187000492093031969513061099182892125042921807916064317419832880909795075012580086936126378404012669726607278597172776074462759372295197243504599338516956900762210518422143097807336737103343968953104088218418007072601321674222191794918058618253654491589417994113431805708501529492130543153071972620867621494824036680720249082270214680662737394775833083510689909232555583590344515606081958522010142758658561004756243481315001384510864877177418361180948615658569139208900382294175338211945332305661879844111504333580195771687030808515374464676067593800318128110493116879155103073785614213802096835087718789068884356213357793510237809950154632480897310113067590421447481796715528226895791274692919049366292565196828506414898906342627797549968595533805014912149628266908104898717520927006104450322480193154591070757634649933597353572244106786620032614881860545154952876509712216565029830314009530526795575795914400500870836318063298780188686412673189512529520330564982146443645681869205040282334526999958713264554686547029382195276892587691219739296352650671272342688018492620347573533045693538783081106153518478683610824844337624987149562818409063064636164266926562600051484898902942756840691389537388613688989063248420347135293286489071013126184659022467679635124985220399469326917017443718263421766260927761694347540982393076804886261825824883567061972358625249063265222714879901621114990610413217166817061570089191551632210028947882134256838169511723378270435013767807544737617058881209925447195559349973307464735027904859685605699164412706042206460615907133992773356521575580413234716883395581752381829119842094264320047996425585000792165696125132040863854554160344157153624969297979803248764177837166849467648395224619302084585754435492967616571301889079902900215802196417277141743909009756172416480856021881935266614307363732260374078784825117351410746614087261498395277665777242779301659092161052715574832040977212862068296832102569475803668878479667308860752588279999676613738834793882702334565336300297653820545754709584135523066832296781966247913301618705618672352966766959991509148647762908209392283651958059661735907979486313593801260171012479043334304341221612885567658870687077425527249458479693445524214114907361176908301541551877416298199348393208389126141881468254727142773681601548339461140541954091887030768656491791425653948778490845478672823906189681529446841513263054519930793727690623370943564820364948877986278821122358141028290134618627457142600886275451285057630009089348124256347283357246502405765532969805737982279763437070117252837039735499591075419091274632016483009118506694173144941152671229355398642848199341088369831065286831200756753081501918266845153847193815755062005823798623576096636840530282763336159266365807232340471042815454646781014299917166603676503794161119487716549915149273263977517394827877808780540558374584776734445463289616419770555082258792674123537163870459342963592993198060938347035229195570865514987052481634818246822107990689184564886974869073024891699251677250275156998713525280001134141049380208366174576713634466622977673557438389461143010579557969755974331896266755291025562699277162007244079941961355674186815195452894200899922087322207450143475207204308007368175989733154506970722091867553207026218905329220522135881452171135204088186129278643056158702558257082673168117553069179505025253339963028817517330588922886642555999110348195083556240566971385197272764030210590377034534631129580281668564908873392329099299790352214619510103550261505425248925014353078757253067600361990089213785445966171191361606749639011424508704075578922704845186418399344053197480957083210921318687186209741772363222342928441199604958509376002952132776862206995164736679031861405957029445569139736214062555164316058244765409704836707802216125441187533161384428730633157554203372630826879397349733473753565295394637364803135755984377729849726292164212883563511302613781597923104276028769885034530372936151316712484620693105377140993877385188722701986596479939213212570866469354955100432263631926191024873498462342832509173750662328135587062755854046615356073820878160666045915168382280610000670258156380842225453134623808331102276055542600169198577295666274489887612344142749143293439598386084172351819814705076013940245766881291491558700473696610365745771825719025000124331636530124968215425404637917117109558726540728421826850228332808371710811032468995773754233712710964068737281029060092617920193326240756396762830072377508759503152823316350384047323385910643078951011946069355947746946406241205956568218294160307777527947391294165636360673843544416840247172295351587756567113305647675766370054604267276746873754594600588847531874909447497535473363249098339297202318234977368975999300120223140901370377249287577310503693909966724456480709594207178013083111605606279507259967906830132718000707740544291007835931420577525164386534065665268267851495105930416509053440924813494153533846361975369872037968639356617417546526193022839311006502554762266145194111643881615182358676644369212966725679101643126063469959651239515798099073440210946572894103369349411566479666299494670921899075428375747700413329863511413391823509114717351586896618371688087734212639339292408660784067271167318311430510510650619040297084357196826208417609035185341639887569695626540504032982147382940056311454612040323417647740256513491876072963337044244992466345182404799022151575378163168825984454385753119892721811093025597734553745491827047778444212482052208507144456149452487684488750785745185303196345397449267861919788265109386102286373400814365604722069364465178013792362906071055702633032197058432030675424179720289404071665667004344404285573472067940072527392063275266727442120430106078351447558413770731374880261427383095931679638801596857642839013703865692679081414940343301834626752945491153655933585070119939423107460895825697030318245536129199182305039162695747549110509978695939501044850448693508667325930165480591571334903981293439250505351780293790396189842448972460831144378210703572232432633497581618317735281811519668891734233993824898617139390791239342368296118280532807548521343727057537804737170645538703072419686363356480845773269962353478899645041598806386590138824824730933187467707001763464461612626653698122332852961107583520902349366374467974833169712631913215007926800864546852799036643955299358109733172535093596558958413154533358524621667275316550449900067456747114663456906951751594297556432692531959784590736893501799135854650734102980546431070220810862530187093679020870828461212970592332423669688362646601524999717386049029352697514746624900685064274983907975955239633681841765783407767530892594255564839169518737960397694581609834319089314539426204041410811249904607620526477472472338289361872523234311564501439845630695675104744089233506117217218018093215535325025664488153544371377543880444969314710202802460135830542775921045313408536590527820904933173740216404833827405262077772748101420924210004113747865310660376390436380084392718905628557309615861631291575068178290277990328069879325626937180923124869345065345042236962183698134525980198704063594641714201904694894458036042547519968001296856292317131688769627782907003839798660774594476948688148401573875797304715688917642871100341501750376350251360614527925889988408808750627180790177802544002968397477078400544391814110965123003773216123611195197920633593028812306338128079708462416683510138763012169523078107320905812086842788974429286814036395391722424691067750407774487133073325625270369748610848664286024492516603745570258628670152038459013360397507507267006440478127962936707872256133679288406235912976001201281967010388682144098717965839785484548124071459709845767396442645989369488446140302954607768503131446700611746078066327766104505230577133545350440788696560240568487009436707508183391530811365162965895932470260888182700935315368460142122483767459539376425730111942051290054217954873543941966369132028385449098489828871364370920763961519287308771907824872933765078859060505537968304093056645840429837321596054807434174932477588814868284339086172628641506030629012890253919529534528306366098519331010221075584040748513478778644981283350076487028953696756480732583516543932559597784164481966087886999098254336770596469884212321519244153320555939949985850363029813102382091437501653328144905911628388845298994100884992103251442369822035232909644660651165162918444620059747389919612354685790462766537942923381859437458946398823373277489426638191813284751455116292004566512370887164434712323273157893030245257028858570996168784432200960759091236363901008194673870703142231105508310705864260370134542705592849390487654200726052604081710671264235458449726639077023464080959228393929235060949508264714097969839226941069846095443932827613669447210446224634636223374963776338936972332020350350816866449908193843797378325990854342221822035512296879666840024645559295799004110512874676087332321078001498027880610744050308710724006553104465533798484510008291950921826902280290953470332677159684695188785205025373666492922171238027090342793558240049157095686478492577582572830511686913332915696157356241353896138508780241215685047349901849877313262779589995542862618840159155321348288586690116913570417656074976613051393262165779172949868752552491946773262450724811522904912649784059272771557121248527530425907230526749069334025235751976380954115539822160109097601786798886962290443663207742849809165615254525444648272003666842221933325049341849310125523088827572485859648014126877546883971150042306631468347766375356523527278175706891355846701435144458565990973132663624118416450704820954832701007041959182293672066571662248703530635381411972452136848990867263555970872744257020408973354259487654591632072690779011904578819663805283087487595136488918195263665176354699873470997115012842818609509376305830395172878926943086527794126896108107621607861156490888039840854054290165330397379240693738962865072220501443784758323390785851184202498665980317511229285907606712021955479460269882321370859380635458740284867939206985089153594046980970512364626997031935890104123414878894534759051591838633991818089054856082659827940717551370940471457348486204857848411447191104370762826053040403395340016023902823522733473128907270740789256435367281069496959060599712193502270174852169792025372757614860076279903976027852780376968515087555057486066185126866519317182267958015007018262755418888763212048473328240300395934992746462586256878817450079263529415372559072146730553277209941830847303296552473846944291032074362658471388024622458722010381006412257994425577042355156203739556465509449748899742972254908513174928987865586181242704506962551034284399012696215577180043741657569746595661524181936908808338235357216020794071804467748846069433702001994196776197184096273245383583599650038677483806520307663716280561093178636318184050695355113126277394862576489777892004432340653647686354027510008869039350092777240029070454782566804445772924209643144020418474126650824696241766311085453938701140857144792900491607825415795675740698958708513603014247083544123550322235458101540729342601647797994711930300685253042714000505192883953826442423176612843548306672363593484269016383995936579753955967301229912591240864320460934311357434817972914932874442713739288632834203358680098666171644869789883560424189291629455384866915804001189241895452963981666415795801830278718948647889474546831420882465825415033794324761525707847939590072561517068770804027633647816608295275164786892992821618859139089396514698797760843827006438675820989115354359724762301363016011572003311766247237064598692702238788687382678865348129204506471140479606463299060613100523830794111840569838323226546277822709742367447175408885123931064548543287928721377718943036085470613495113857889487745273864869287777562923156992427306708842049603168858396972912978392983539117065802259718820704341471637334412345015304963130347259785393618244247433745088036092902586346673332803074826933633549865296716931235835037031751595006402772366005058440418231192535352967858225732499753930257780727328187951694741294568676907167634599427312021786118975327593548924307297377859437790930968244294048829732712929701918007626072883169182990647737251503357456241015611648982543183116124040716331979743433683846676353567116463759799152375823589515807501359413182837530746392600804336359130760351828358896823781410641909991263535532174848972539909801383417765878896828868079589787032967008638927938218269301747962500654981435574187672989713444272062796279657172313975437356907652690964002497362410589527035443280644406471419164065702844754392573241265083784677979344884807376274728999226411639622815635783791772563207006541080600722661333746583326424336455586685733519983178819403622239424875479254068406121777346621647492044706035902964059749906669048739871325792128695406157821028954115980202664659073255018816129064518897655480480268607930742305195799851912287200674494241141690001655088273850505005724759991017112491708960935800386373537206740838262062071145441580234342661913547951592716215897744516783890698214417440064451608310602871134341272972194837119493216047238033351720735600225252308037450904124513423548745231384763020786162618305596834379525342026306775518071511604675559535491942144850000338597344413702327114886990286162061098236051446204901419397029504411485188509306612020199576035255509721442001755638135463566275776262065495203116174626078063235801532653561675690016185145984808145611332715701384968804915579744138310970295722676844815251025179229711943308585935080644779548952044010094863506761206584289314057649527688104245591197906296543005325112261786827981685432128526831839814189299295707790374559229422221025191941732570022892045815453236261117102251592292658836509157103711372851258153683796700069212728509644713728312469532048584368092182389094201519995592511711937457236656111668812577752637872560871178145780362773325420724968238385935154341499185357853938929265663013896188285057553097764933310850507685672800415914622746904433735086923253255476982936955788587164171552676784520702956714909716428628890813614960698557251146842893025426570749776885829918520337476070117524583935426138275161000605466809867745833446053902803438159552718808216973099918294738562583062714229104939444357433815431449470278117038010203143456183739408358355083994799628272043687852070181227887346937073021022229133843653784796817372222329836363733742756885415885030359404938626811716931550408483451954776040513734346642051996360183235498237050939784875600634202963205593814507228135913549652979346741256104007712865625649020803857101352582638550246234716114590487999595324989191937524436636961616154138562018525624138388314459623404561912303135767234064788446553435610372886648054908204460890721321154337687865910513712410047345304769030238072396494852652182224220484600114787415117675020322209527193793051808483353897091409027959578031844298798815848812252600125516076333139936652717140300860486616543486556327598930804205021455784456135315709449809347374935476210830624623966900459613300288389776153362206851738873889081892191326034920238795605740191945880313687621520960951455067212001239721909295155884039888529944538417453047027368083477766205810474231056853007047757406496762181973388447402332870959362046935929356103606113058046192498595090311704186495718323024465196623920719008888763037250115722971429087533403906383728599511818873938103798654066397435619768591875343739643220176879750643688445028950065760603440022674507832070362902765002354830894667206268725447220055177786224068928625345153733544866456900663449421568302998394046086606063736598927266456307459282721319384683576079536462134710996353434684891906240969240822611838837638201072855269618797169753124707893237282810578797842481723823642332036071470419902721904700757304498679699942992363182673896926180369610314396923335120902008262332282832538774252093402148455607784502664804319864243621810361690981539414063203915317884019653145492957845473449424117899785769252896794679808881215204189660235632482911212210845070441232475274840848492122846313820725745217876564160159919070015161552857204742285433195895876938146800341324360456040848632250776436732511195594738458384461417949826138763219687985629914111142692204134775053916883106376903733773535552280357253072190797793087100555528198997991757755248180824974308814061168801910869691732493555055955462950196238514787735901395241713436274710612544793381193895869527164754034325017560680633379201641438876526419177752731889581894067322828695689738452112237632104465958944864448663434158412597914244280038705597750438714505095527449803074730342657342873050715063788635587447528763687765388586990895547480389206539113875114203658294342857545826846950781105350256192302847822635051419596925157696968334639295326022630760682913734805715743616907091173819349825666034739123136347513315554014855434814677094765958791841524983073635453138454244406142708953587223101240446265332313145481007097692645926113313882815713665002692536662460532855000994716045622603859221116360719001407986422681696117920815171095984013608359525350155389405319905184383711973173762022527073719335874707311173580605125783642764701594424352192634906861738574610713461027703565660553504444537083594255406083586401572550963666574637937696787456025815507542993213952848964823804694755381813532202313384074381994451900022046544106715742349481911061459468660316664766864882038027923436376684085160548922473452256810794843170585635078864987777986906918860832479597763187332050005165263383927978935294378684230033253411936817520253568487564431232067176007184449205857788455260492595859492161918546404662339957713957616953624326153030421467193600616680355215609534469716286384925012204496723695398347889983501410485864181435942701631311363945527479607981299375256807470098969730829572257900232571237322339990790465784920726485843041520424345261744413181991278988435169078349462635159354452091386466249275188968827587803154945149382949944549479517187085715936085146707930301588599611610535573930401932636850437175200283888979990957263387783556336694698747876977398351999102072221906099668199590447131931697926814839650192182171474474069525072166233299815538265870650684357297135844747651830434733244650185952462272690676456751392879130637435560022064321691231861128126384465429365612921089358335243203462116478784683159432660382776393146048987859772725941615772860380080832741905413812696739350274996551188884074910190614747579856773435918489429785150643423040998621379183138219787895366879556358432619718727161282854771389380960377239526058541653990478728969979173704076709205289361049749446310293733345938070100199000983392499092336720251178057302037006036308054806433032388153502412569206816297957400864267915691031812914216881210300066020623530715822833406531429937888933217907678632649228225438134710382825442147552301741353052992637505045721332619044593919762301500740595677088806940482832900425455459812300001019654555663440705087605313234279394730169525222158264248438714596187194551923323147205396124801433528308557976356456659202469246161593070729780522968014411278341620139295059517389721526210811808169911673786917785238630358070845314823767873152659305612547507186757568269090468265758817689446244972458335352112384643158870236697170347321225509734769671280049401089784682516455231418920959591852552288463897849009810403154073127526344646752980313913156110853160490624952316053210876664863186219223961827859799028279679568469596675975754611019491602248045932550335870725982637860792122725998650536376369757251573968346138425167741799523956100148113234348449667634508377207859074388037997601274990681413612061365590625727111497477392044107342313714360089388288866747135005960207035511402837295742815003854946928625717622256315330313098098294918751824670564466208234625858465650792145130425433387728223576455601144725745070329785440069030122616703453439274712849415389316776259619142529703637057489408683632226131930973184355669021846645120668151154591000850722471670940789414996394468378838058585945731545886168566818883185156321757824129975241581570561314728848183040442066664044719811972234984321243858410287092336166611061729424136930462952327146896411231680815830354819227422954558174444746970848014416715518677406673874568337328999441613289235064842755621230885631908042908360625167129528851189937113759690315315174374028511997950704643586090003638604392635673496547207562724436939883661936313319868855078929286557297796781434088436670754808480093886638079678300435192700831514743534166033544696058862769573459547771778877494772605830045918890574491609856747474542008572009705671914228909895581621627329760156829273780926339234944230876459520361417601670088030182632370033767884506899667732311769102831587280759271181000237997041221748644589074762757959189521950871462536123179547269003812261497825324776860373699084989816291921428249445762144463461765369922782120025098857634456620074184603777720377662417078736040906971751538360529009257493887714809252546028259001870126319286155486533294584402788900595670034474802809341440750448350679057110253233448401447872039414055683753437195919014212292093201752018276839700658277728269876083438828387042206198522615051479792217544520604224566865738476901000764365411434439601154299745021122885443241450358923193888806195675350886932307285022447366110403748754629230974106444767797289482006603926522908704193337150307404574850615445812104216055165446056749834557075131432711177420237182397729282054233737269791963228038971163535620294606789805586808055591318473840340388562417157752738818403126007726068753111645489064752326093310595351462889154163093045046130090611374009819234396180965359388049994634493387549228559119813581311811865469611570796893827602526897146032359831807886226326733297069574179242476385155431420959041528372854009945277638504162810905542637207304347372240537874936374221335727298775871645467936641895382392096004797294430725648548427999069261048243319520153290243286420477009391908879349293007817667295797691902349106562055259436138275951387756547873857101490434084020726171279204859098062786544415541990549490766098698822008969816575333193216219996347711803450558823752681973592339402965672434149831375925601262655399918849690614894367149048913812275608254069426417443191675939575475272329483442056195969726391584047554242161294048282423411469851180235917348735149944183159452153468114139914526870919874267633022012691770332781879785738299842038023851332191185160882471274746213266447633009986431138172757128985841043144377051210083501430929134928411708846581899492441299176936542708349079841070793878964748637990529796575158596892771538660852392634315308487790811392015515859611952509555906677914460067579119274147438524161566975421101877395382182140896786216637784860408151163890896700607810073529331133996284826482367002447876151592127647614047309746075481952756454407464257059723478845748680557336577893486042820491169290067863321178241247071657064758205920007297593810588262244783985665124091875346779358106462794054971434957367736670732198325155440374188080431653979863920851754516113075412875082915162463460263499794530527943805842232439588800010803165739299515360585386345145067931301260898786711009116677408700306052338339683663684008940242604472498599596969836387823808926345165820135816804561752003156393405723418954602945182102260621240765174880411981540858664398265309752291099496803863656261284747531669336823301106968730234290859739281415380349341749351550876312135063148556448772687502755891534712698604829972756640120159524185232685797442149216198610642128425884698471222681576282266428036282345622919881491094442233318087524599432929519169014459355702829121332086511067958512228343191536759159535286894618737764836962721488544854432719970013698084769628203019321520191014453674833514249492710433995865856202826764457238956479055510951362246448157944576761809667971568015308604104630071541582888750617432939217957249245840264375057028283233825209607324976588327842970261234765106222150888389949580778122217944705434634105934165580762565543036851108040003463766105967550736015692979451266778830394159027239410222395832348572620595951810759260749060669525782069415089787326661234644969709301486446552065754553303830786333434043990604974171666911539841205957364809461900312777214065470723594231441890595058567274837041474107297465989365450085071414301592739012720834066605844303572594243135405731952417454691268725417046700609915909180636006544655194440642123667236322626515275830050703194220014213521527570323290583905446934957092054207641090864501495280629733749378483893194557404628223738358979855453739522686506282332931873582939972040278966249924830403836790990657158841909978039582104215380587801060990494530329650430168319221153858039742374210688118920912462464642735445406872902905000933887573427179805544138694239470000722631331637966348738598290798596590450037632705513056864494855118668266970288267560208996463209252033253026856354819955869527287513736271380332749813038930047255521097193604458855768234225469271774154673241327485345418527901535726746655435598868775889877518066360793867408190887295928607560871032709690483298326655994170011821098371624759547122436103249149558808183879433496436980974621502117209875298580257786867480518126859053094698200803159274693892047052126201757586505220907110674441428901038200515910004518937843847873603554940962888290558272251624309039743302889798006336677823086327349862632362624519792005733384802403019745020319613836964160579837722405736243242398476725624641666178278573202004751309802509549498390778656122645760073244866523990222985397015961573968660146308443957656069398165091212861459370691051047739147949071245092908683719679327493487775863085435522649234957745460539793142692560901863063937119403150781823855997810412021878400066270144323298184991420525768114470584631393390120764333305550390718548545046249587620548891356940778060733812503965880114036418703260371894574695300725470985431923320708602348736045182901975383862082600548567571453604544095051257863707211846746930121495137329018660292295004850103510209217334610727758652940530216795691614408164912780437234564172498021097122245748256922458878789123801057970012370757181809698072338241008575439002508968341333199910365444345022217620746857296462018849529977247160198646501541665525890119944925612797359427710079567649076751732499969551435582600677439587534740540779553119885225310816562284874737596202880867174116799979005216686431374300748512615662151158535800431582279465729047215800583582676321973433776910822046500066894591114986636975712692678381606569285587047901613305872896512554952563570550450121500258471882289986899055576762455679284665090803172869821548854679713680153970988406946133512504392461986275160795464912300484489507450151951848347803663117369965881690123005606375185383985154054189961746576267247350252566644136754098115102167170368144816566202175698872927431630797993259383693500777600614337006336418675898567851459200740972822176777463537571067545548032911074992948647845846793989878917317223596545030578203259881972250113922508602926722375793150675129087617928690940786223835704455545233917018445460482619137743805310573784030352016654547070390875657373311834401823249477113646205580573098585791809174182208004101702932899115742720454657839119885540116471406921727893754630137840459499087251176536570220623868088992646185913562133605717389955551838245018272381897067430064930708895059260348841486648475574179155251636304927005836576368662245644395439149513475126954763620148218801181840541360351553731838354589203784529246194209674645316134138739814960931817542755230915210089168340402799978349438665004759790319236712277972822380942527892961144686676257575912076282936129273270456992847720493330443467473104393562941497252579839655224068239405312191950455599871737975855429706289341992393662299717227669133961935116218749850145906286756179379096792530519270177467296072574664560115886451147739583746646238892213722167943085547508978747513421213274977456681730979011682644277573481746986306325874109479982744551647251819312370089331800317340875620832100824230904537327483540894189858075990832716513012614388271281628187692970694273610615671552179356058765632447970542705267886776811151527233566910823180917970263317612468218195261544141474169442704022626136217845133242719889550861247125246456450422489124574467152589189354026628574318437709823735216834901060023180269306262675454389301898365323765953452515906034011647879959509630959686902823309453302160412773889625835277878566350311433702044212148586598196258951970679674368523922519337886446994034844126061363529103399473508530179366486505015204157680456518018501089409171155377596215946747192236426733191586528463064688252779208078684598060330338206389223809632605234943378812112708216340288110263871767135242749667668515133659449149579578147345592906821060123661951690311903937925151796649560687552844559108500812486061510267938321680284854461460640968540165373244374310935127184152958633401957852775509999404840583854987683389406083414498883850604764936769139741681961165193550561326065553463321421825008181513144962066328932846097551930983675226519119205464300040224767695702698605016440580622998028585817300585180517352015810329109080500647539091929394603006475567938282751598873819164169060997924351702340943616083574707419105422097639109047151704522746754244262167892859786396926594813949302756984503428157908670049733335217878395947347532483827510700251854327452313439842573261993828656205655588075005302104343009413766728997715163836104264485155556142901499001021926424258602256390240038306423946417200983656550973093730830705041796035308549287705090672125943624942060534212179629582180961086634606196775527839085206367985214810007807676389933956727865763215924539749537790947070075305434700972447211229514063531828807050866031341105289992457583313439174422251396126190187247383122522623123721562067818840883231620829085368279921924838291697184183205390140307777013209822914597816150475621284891458913413634676743867904357483387339644879595191810252972505395416187002352628832620463938596625541775045616782821732680228576480178043988651841540663698291646973715516514152390202780150694556181138709119621722960828757566232964616953924868252001200582798120836714294943111077827961647016592676470506773738429384813458819534132992123147962101744245994064340149544317770662293871151011178327871834424949110966610610847652328389750048663032118178735368622735006262829275094872727240603987018588998944939710683145757428985728492307051852658226072798261844355599012573649547883068279160788456377030587010966063435830749383839387588864484310864341797504941487608743854769262586800070762394755273860778908514402054501813894568614839592153824591476825635784910209472616667672308649774835092279157699284065078464809422589205574716096997022357921092676207233279739241422780403719942904683641439414906124252026823578944884333868071847132733595377200048672728754739792827141980337971091473423834331474775074236576131096132645633775360789138669638660235210605136776215765670353620012740374633790761473699966698112777512189750807685386255526599155163743896662296920040800070338784676382275363643946572799504647982231530887283951908825264047603249966145728658078364734365930564240406645634268638731368943578854774367313033714747225017571432201239581417728719207524966718596422957687360854941036449886477078073237397638806680648845892595006599456476043799738142313440139254303755327059896523885607442677605648837685288147727026770885547461579032077805927843190282749298126618408743940220591825766483811385371675703124305401234894793321364095555808565822184991604248329717984095621450147747777802817972932734267160223781676488395115612546872803897275712654793292760387289030377524710588117047010751759667469436691664208657639597671334059695362223071361453085009999628834692346981065355044715753895298662564531492706013987616187889241785954291318106666767195393311842974109427092536165016235927955061811738876484358262667696850921410533081161430835751307755124384550729624788874645611371588616527496015562221932512295363975450104857755511554085973118091121728029365174951315016428675428698898320054664066911312721272611393202435932838744808600579708133633133466557905192295491775799930698717931928401343514658545200500887902122988157162548913099398353536161431807359789768279909934457057278514249545185245188466113153693644531646798551826447280599762852521843874283817494074540998138987217381504312631540694581160283030934197424806576140680825030094479737571882548782831495684090447694441287675881101512714957125395314624301783863218192856692210243015796640623911360983118548077432388689785060764502771171530047509476466786439227614527201035921007922231257642971633553416449630719858409191927497702626660915143180225368185845403502870741375778331671113871460240422632875349290481962038653537993651347731567922078181452107624280216852014509344849917889896299027144614482297288264142987349872015260155533410068230442969098761803967783451358727038855424840509293815084030002674253912521833415849894838320603186672934993884110396545875445109906945705448402573713314412732341351813313718802329623679098306281899471014557883161106315650531695095639086708296900631784725993320528923232965482560035623942661948266989789171074559659420474579682472940366218126206543652409708199579972787373927723951923473687693512073986324277262642811574479635494881734686869551734716893792661242223329542190412570227876962075771897058257263812458414342632209736634830129102245277322591904161055662294501943969847279516821866485418148669235431838437457721039751309575848307177519810985823935020376967436591108360831817804996448033531016009791822358707831966178471368988161609027317819388409633213527999361043920331764340380003285603177743402503668276300301277472510676904241826687433239739659318986791192822010701648693114026678434974013048593104394621769103683383685867118168243027207950594341324753748893892770758812013480457870370313063265353472404796593171982092446008768221819781961674233356670401394657063599859601578923420682247198023363826020512255015854768553163536567140755654252552975828833167693910998470712476837924661916465084329602060561445468270841698461619738380530347688920249832972342393368700231581003542887824158934920442089854088175055010476176419714894382785570902191660869321699319371327710596239486974079489909232330813798446875541362973666890273182277677848171136151739443875914135908589042836340825754267903671292336214707526439549772071732298197653456634901417972290692739268558302775354160998523656844826593245575886101541656301534575117175486753412972308537430047257140189510469268075684983963599005968991900298623563594597816259786825649162680745850153049111268630364827782461847858090334158935099383959163600731865212683919554440933936001505196919156370040349458577869027522426549293507610160499316380364072641676093898413868774843913140527510825695269099463073346947146353408532920932706759654831537247301449495818866965197512963660443290076037810403183610401747247804206526707939436267744431844085374546945727131859446065940144779043397653674082447349190104743219454229777639277798193591723524619187910725329720980558921826982390603714460684401323001032122692393438497032563279871662352517849185031756161344985202788969308310595672148529592695649783419930643336440650258268559814260269667417738165841302195860224699268587523668168862404471731743905148169656293124284550409762948050491698144383361358529102665835615887849591151837050757489497897753211925885669468783559149812672805785702480666024162610253858033951876237023080441817578232997465803674924158209503399445937964850041140855342561384982994593015533510785548339223767689813251864109696017505574841566260353553105101366688064796809972728238775709626693400430978932300824497240816309041666790528380720744040914785110668300035807883624923932203135793414897032749734118996981924935984506869838736961439166063611135390433667901805932334477478314100795467911989274326324323280137904560860787222925195883928900937354522624116091010171524486069405276275166880891545989537565661577781927158368736604571348929884645231929614451350819988469662091191614966923666238102572609714896509480172809349301726429790408860288088112750842870021903387788489433428708183175149766702316088908383453914180396919639703488903286999090962854204185588747432719699315815522606381189122806376856355354673318083683646760346021688684301811000539638202956472550898843311740646415897282063584323294849406826812083658357476286856899380659047107671211558803844257798527487401768344980980941950763449590893174563903885275841814912983623825042748407687979306563551633933806504315259425762125667405138676433750864147421332799391823819705117857855680135042356450824841898938148910654334955689423084049640444688828294797829113646742122497102478321306768913592979182761791882880017637753194949452588013451117532017005866591256595013583110365941682101825008970900761926953701287513000624036917542867178420897698150654114688097356909578906988039809767105737794794476351626373300065781470252775204681116012086104615518898594440950212899435999130349516487248610434102631375924207420545993572099094294272319031955355003858769335522419095365075053530821798364616072913342643434781798005613165394476285661597230321816086264888202135500566302221223000095395084984787781021069934803010047201996951016253357332649947753677178426648540598438892813055661911985932680583460368607282569075727015342192907785272822406939918913868756662527489884880586253304662835766230449081923566533217082187669696217528212113843874390711934927012154604767995622384019625574281506969917002867821408339782857193633338716689049683378752105457593437909148051123197594567943057735083103790270646743304840279665909340931930385221494195652900560195944467629994626585513455066658406926796354159404774676801479056085197134889165242585837451640513544438411141497461440510628886208270626122840096893017710732723020876033744336843890256056592245319880421137540151608034956089947421854832940706806831635259883947106063817703581218150367994538808082941777283704263843784503458183589697424140190897831877861687885750080611911162015483009694145566774641982801554603541578640951046279730998340185045266397319743048466519219747506252224167382298545448155509037237126688883215178840301501319360776955224863989734372465933500751000777059286435328708216303620105123580194295646287152404766228832491164913517232656742416906891036714760635315717142422433714484632965548973082404297861391180971576462798892154115971966728086132153484472491482113360641560439404420687062577474330796424564583729127549379933645130759005603889638219292793347396655180060055819383058898864863205094106129684188726315209247326683504653235507198436006767797793975020219997441142773592819293414939170771536073084755348878510541817591343826774380176012645243518735688670353817143288762445324343349830704712388780143650932332849453985387288602749529957088945356778147054318273876254161229716321290416524218227390932398725510950964020187993142295022805367677606712690210438955659762366611046824600673309884091461740572877747125674435695378561701381957032672353832634258214420926549354049578484598392560604159028058738341529461032492473282510355928224411409027249813327174060268928249580224604550209137660980763505043958109422217515478166572077360705428252661133219766312606533129044359229521336359882273700998144675346868112866481553757369078294650108365300334980073367281184161622772346154969590017515885685362563171426726422539217269486239657335682122965080135329802423491865770769312258282960749800663391128612439076951539112662379667782554877679759280755638912457793928427277947342082982927702501251228361046454274389579802457243054576498858204473485261147751555069849084809093525994021351598042876058428392392306375444392644352542017662928070349385986337345952549066690675956028712981248883240704922088107452899946477097039529497405172093654582509748294470764355334091109324230936587703646223850180314915972229793161321809588005656211519274073039740368436483442027879357052887216872980458084576925252067440333374479884413715647922263829922135991154622232122042587090417224528818867090854743514882500571019482046221330503971994405920479719573393714697471319634847546996121601846261453379972912429671771203048193368963735606021538951489981065689052638820398869334622926249878506532380147337727718063555447482376591505258403447892635598632857058998833181090390443296346780840255167680898217822233636739892209829459173473107839832837401675576889795647580629673531222374310751502282788183004064749203740229432771673972680769373123758532064937978102955117655537105013780228981211132381826925107102709196462479007332606208668279933482615623405625788811201667449242522477787350696554938025621972850022409989229511385366667236927829324050331156811644063848156368189378711902628098136764733137785499604966720318054810254561499400955739314563499422883204124177412194450496072559839002064364263317227405779789791012344600844522828273533598441542882766298812197780694512694516032450550123835658852910924430598150224937323183159404545318150720082189006461146658973084828559588724333016976434156958158492282740273657151063549722903439785984498818557260945257887006923728875393947674843620373622017952421097939005315636954581616644079213775955527232059990208743276790267004135610358774094650072736100853584388630135778151264841940571037058656134949803674460148569080911317397975408509454415070089763779018794516988262142066833973457495542681113725941455184743707644461463652828861078787771561372129337603157965168160100325393801021407443712327679686097819572984742687648425184349255137734331763466401799769115598836237290113373472504039059673252562751926470402271540091068708021562206582446281355803192827970876819092000419129315555452095400894485252848558019789250733271005397362531137335309598091924113844304997070947148948219600783337884707911598897372146395828497594704283025670606001288461073239184081159388052691059062935615209143339043131998916007860168848192426398868700567596539076501227993056525305243329765213630270622932071522460033308275505499337168712310747814052799463323662948740172306251503877681321834184946201504008154811610052445463529464750568426834626340908992834497880460678316371207890389850409996310915303051896893596456215521118262647674217703543888700011669228258362688152575928330060714832476962548919348387041985569869761213647265889749546860864561491971054471961936711520998644359632952597277285500253718934074278202178154795914170522342832052198062629278227584476751675615857238184986388758062378433424493079167303003186505324420042334610623733614301525303223027649795400723577938223906687423079926616242580787799999675817463765024176784225099558727895431016260280351946682324969128392210936049294239941867929142943965059491259444368384756169239919532813370403943269675899637310705762903625982935580414649250196765573329998719538707820576940119484080079289418704558277399102266486364188056647928106672963702472092483309340974638091184050257369698383414718265092734045577186241089281568547156082059329107517032443910111507769845559065240313558386972767309503622728382875538425579656543004822428262267487800376786842013313827883299117030674641687834089254629039316929970185687172684391549151603536531451284983352162261522134721056200795681017495546363091393209471099453588403209308056808180043505886371025065039340309265435969987293970815580089383599528725625765286256546124212680457893689501110266532456321310022524057938827549351161720556428131553565418491340619423893720550009030562875363075622269002771010479112446661114927510288858051063748077473069513091403495380863795641261330249494738551838050873154696378826601134058979596071561610611190481025071336131891030228037959752149478483895853918073890041513160552338510845684912779692316730048659920373107868510024318783045974454045908559820727699923087258803696008412633292711796929483467280584546635796254651795482345964610971157459833012411046670004041854546141631712572563376600870479020706305666854799285932813666630070418353949699901109617212205603199999475318063626340303574981719708455423964311197027797303218127807954016869169965761472057113729171520792049413991591402562220505742883424483688126565997696306472355700208557742637668207590535816928021195800080984987973305881225454414088802575681545779959844216307484817235497713370320771289902867448952582513677917356808535457749530345689080032207319587145274941009499756552059122949822958992164269232591297354631908598291173516167251606816222799115053322588254541268601701623604896853777381281457894278622124500153285220471488553424866251995962892444561540088214814963021163375690119075717794374483516113259333554455046564504733324176037115980212901275582874691814804349086315381445009570751370768146724216663970500390556125574306233479614893349673244432911131931533168243485700808268047073458477618517128278615763661505187965295468148878826559154772638094957879728017206331301220052524367936462651779331246478194924097471829322877442313407436261916401827216426557757859775770941643667992810837645178567076684537402707158381411305559358458566436877874799666227749838475172058364036505206456203154089907969053197308535174378251988110822936641308878432269860841772515039119160030896546418955522390062525787969884504478243420553047421993266402471080505585484575868825758660768182369751552481772531642527198326204657554859584560194900716959425723591895391061070496477890532596220238157190022721245131675348862379236772557332025696290496315803080019145050432842375868890641203426321927002696856705891981276125344874992439692267169278216808650660500882731752320743026206719570167852705856407102949699036393656630071807498494141908848837218315739285754652562048960613021512098377719755784287936557823732842324504314660472760361064106046125655211487219191070766370777785147458108307610981938209693328303150522934713438365032724085653458334544590755795200781403978187525705904356974961653245578599120884721885363616887468350409814079143860109761345570452112835818575220706453426665729245562149498677950744336751797122050722199827473398071002004911706812299791577345033303955595076517977524851975627759730531760365430628018300785207237531953723746308676620217004157674499445247616342805314329390488596306410565233221517170197361110477151302241833135914289355499299043787593995235211389517492089675693098059655540101184395621333050818043296808708804908274636773402820037453681994783823503046596507560850022675055735618616866525235230829145853985565330443179455653102066406212839972478587504385644689452809022530969543322438183166976124527440179022377404928290156706674321369168168105281282799599331169273626078503070880514154026481940487700020967480752035922816254481172143008183733616771172555800181414227387610655820095713313070618105505442864887785068688106606415492478363264267127094960711932507385163575084647466006956268117435958205016459779660165464459936211204027611690685900253174109256289345319703221219615857446060213280520850254147029249815112799569236384598477480002205901365423050985688762144919589209835665036502432076203499231383594561051997156900973781452366788168045383936212634657269712320931357003630905187442179316290614137969573648347251758984830075495768263314921350639997759255138213391420771568785146238603957929777772739989221695797183753142959538949119606755888014776743031698020733369925167807631303579356176633932289863632172881810840505973501978529790037952161234947453469224842167760724707523017488991215068932593258883181201515874431377837503734353253178554643663664719382836364637163860609531240753114853324241440816910603111427854794987610837357970046832882658006388892918516425935676168756774069407300704882676616156513791392111232417933934376707405074056313823997136418233430168617711989095913593783660213794439177315291464823959812738823245656541053854051127127753543621658340831852088346179272650396426840138027548801044511363394365703307480068405861053187930519337098652050134087246964412643028856526149761117297064211920281936658101894709332829924169151227567539059670260581489598567511249128742852403554852292490067886228944181161113046729633081840848151629658581936075140129825194675710638676609260365028537391535753397511627820231876016575845528942617647276381335259238458778240583829078432658459246873112280052680338605271617666087843988136401860889008050102590458061117119050159271375053264965255014080967326054148496552702640690907065358913177000825060532955159845968304505042624314829326635407452493947282062174825035048774003843356160586761677368020956189764785515338443547318418211182552723211088817507813282334590816336676194896141120144325053768287525950529567249863566307314912233679865510155008894465547651249440146770256775380758286829830868018564640417850747383612383316898867855579555832193963593988463706730875647853882439993966981139674906659374608099826112763055767483547959194754541982517708579396325671652763056301599114181814500141388821375179555931172534450856282567296777406889848324844103960236162652398333906921579946418806107426216532147677516900151324565820682047942201079035752120314744032006968901546281063888285483235765138572018714494486519385002655737617935200060975101053360423688536662277959898436596250481975217446665361527280170615016279917312205087413809653386201998526778037561437152386339342264880480155368937141737981557953265011766291964279895345702876113281125472937152758441584359206792147210487260651057615937656208951698645347798099009264863168965749503446683760026261877692802821070304452601319317101784955885496590836180673168068733538512663703350901710379278164636899742615172097605121082290379662363312963771184298250346603511188735339386064057334247410175845134741204862217112763208497377787831925093600253959428203745428142568241684560283508221918541185822955944406034100912303445063074959051650161372022335786669893498529097574494946500409288679900402905739926584550281609983592210582033468461925787426278104561282294379123976443931303386781081450300167844724171266927319664207925181370175572685085078848239852319917471858107840367055347282155526937497753001330282051569812602128489898218750839909845792125604604243425775012706732144129353570049576780699348953543912088551721090484299520734792536772404767366841026477893806791405479600965277766858010550760103393223035135779314389692191148906134404844424651559389140427529992261206390497604102620636977266769557906384879191112271367067428982069455409944117613018409538935114737595792662557719020674744279460743059084505778312472635905937325569264653800272896305754986540733770225870309569398291904452451354664763618231759817951286424206897618986132910355804752439660107899347822120622019529510657492213674409962755684229941714798222850933674607505894470948583440435053310151949999144105211374025034264119976399018377666753173955689133791894605754639990132569244695524676980906327344475742232555613514619457111678081203981271713629968883284378509178028970494098690353596011627998938880395409829141490559481391420849840030106144029210050305059149388006663903225458789245642489137616991019442035027286095790167262883059227021752732383944650883692142783591121753689623654398233059657004148485007868290827207004027164565958709815930846870921676103096448423941249332029701889596832460258028127987744487167800302593395077006861214306469401509418989782854163197080067075573470802760712474356785270006276246932641058634261588070408016828490920495649893011299830007139104961060496541801552710741139511024098319753856228458435498541116480846513226129203839077384776415375582120221116188931127139246015878709906935910117095589900190520871312931258090626279127807280585067254047513824052973891413299314765759508209164187108279669809591599685004598380414701145562372300949353126201050654443534837613343529374579159989841552060587155228390514040807557564743689682402283733522687022110720351849056731663052631166678027922489101568991559297464961483121293337582670039113638017313648489958014806982863312629736970761146830347792377222635522575221293794298694645573569808396980848216184995429684565087608430037792049084696801466789482642927644386842475825291944156261962843017650916140259551102649856170971777172885602314610955391941421380801210026330700232746066950599651292845803875403113712895278570309831886731663403553848954995521132760911005528025950905258474852826177901909065777032276736016377103955178543927610286902478516181487786178092147928650939057623080228459348952648490510967139946725374165419335100957657474528135236535792431105916611816514531982321042230252694916719839894672338868264721203054444003163827556317853758318742277758342345599654007603774048708762339630429212288487426906402633053987250160654080193797073316726828111348925925595679595550701934054966589770322056370667767694446041614810070496023655515471136331876070111135223269691227170849122423644342652705632131937862561880511126303039127373353896054134131624173086018444503037809286516720139140419751006859393574253179231694235425404548420329728945650193983613875451940916080997612729367601364290337483485996412336582296983476184541741982512272308123836733491382620327550065275472651937738962506386318759409625235964220259635228793501016136186817101198962045221986455560698476157939757522466676542659827327930695803493496941289288915484145496998634374450117281949758530616902784832295559052602308618115917809445609669736382736267662179430827246940119954173231676373413786114390328874210494312533072891262216711125762274753461774203011673071669488116065571860944810799952895469261112605316042387671156450532638285088431348486730230210277921300037226615968187307626378553721461658614345912242754988138751625666150239195550506105556707092712415863487078269024006783704657227172604452260310989522970749046688979310790558673133357001994623561962661221305895533483249555566115918137119415439647239718773794570600758432112623167806718355444072482359084941165862503166974413460759582232970762040965610261183283707651642093393887263346635785281988722010798746667576170589801950432516337935695621366167141514546508369583959856393104909440542525378817270289465530562490250506312276087247800217246187269830785033056144410260150396871181577326490804641153131718716571624333441642986915226210943897435428656400701516352321906353988479873470682752250079705314124701114017395691639622931605077091404628179858676729713432485398768746253803656116225289614124733317030910717100942169459468065978005389473190503383698151431680176498445683961455002699663079050144008869265815604429663004830512815530701966787763921622948194329991323608389815891298744304458846877267986092580073449231996700243841306328100318326415230084570601341645679439667745511621279761341871859759945343359379528493943064716006521742899451971072193212113245171078110299561811713865654192623573855320872574598414091144438580184531713340942062574780245092072972402213840048521963136324376928411831353645122684467353220966606654925667768323785512565114411135740683955947240793832460229368407430317204899232533590716060389039240403994042156758549515096079355070124580331697835503791211241205490749111123671689100369074622852890454368962762644067836448680820557968805064867989396423658159651271426362158803753149664223846489945041688966176020854894613044248212632395990209858455318396175460882102870589109831254741247200769034903345786525458238494497076575219236970013493336267517395490244518457610939045412067588700811959841074583876724153666889855924673870052537405367643172355997584153787921242003961822672540048960117003533793919752485084700901305195959672477560019009149952495116470756171476575522426311773291476150967393077758239393430304483174947110559226089611078283293711331857183833445696869134665941472761396372356212352775414603547053094553505432032158759179763147411079171259160718791606748935494446553606246745191810389138306544954549106355075036849483507612266326315258264012577327141064553603710480625524520250621494411159723825249459695876277298705671224182960516238378353021438173266419654927216078213276130137706151310450105360219762189779575247772624024563982359357334421447559262981022836277342071830549064244723103778250609899517665428259603951864377115119795752709397603819021226398025482873718668137576009636935026458144298157882608543408784547106776164232774725795888754510766297022024719731566121639616254809111767132811624269444698561930291921620276566800947210461845912727475054010674144400577470249915839839962502025661688443157251493053883566715979322401775040428994125523863928949049223177829945694191025385600602127227552174031956507604427260361270700123649634050991354550721088956149263022100596084559889669536565881457367691225175261279136789633936977928067686334129405488587358459972690149852385508906015640975664978745771965001470145365084160232749123404761491113929555513025361313191440965352296108648576643967331334284011291983564571606821244697087605365979125117646114245997679603495990877041742221104486782861570491008438131004258312703268518651352508557334913679256279278985354238464178344517563659117842612022505819887335101834553289088168421728337284628529043074145454366538977704457474796733306979074442413338373004657339649902275652974000635765092809909866126882192135784904908566649620686723415901190527156636679726684083490898238234859868944446647145375154904950557281763343946762792655164202204124568132588279048525227569155272507922318578385132371534886788682353124084285706509872735655904976556645745048329836232279078135025290745630978527833442365904269470096269451950944143475314943095619293483831752441774012302240524428237079440891471392511093985103616759267859165301746243478807860431648411812447686836035948588626025703876516273281373785639745084768216547337342210374826425411954786764425285541048909533227037090591815340132127836989651831091668279367133884510711117228596970320500076015055313858394952444804352027819217138267563561552677516872266451343253383765323141229951846554836922899002921478062075391147017349543740692466499239414864639661173327360153349186337060362859852066467122534071074515763813010647432282911100128719944654189211753119296359603583012314963931273119088965449628511137675914548403762272917828671013062475097113230061227736145886432602837528127133434323488378235810949467078645209729073739423750615876533698694338777027251432401628435233097009059458054508360260476097273860079225972848719665861704623445753612620509529805147206171440607230570707148906155130649986648327899996557065654636612324238943833221849012055318713767534565288899317359363157318552298252160362218060643813502870415414479616832841495251825226921519335233377347601856516614503564846694131491501352589180453176695411257036893006329574842691509826956570397663941576584724118453873074114778128397525163656405150853402290415513434473848734077452684007866311963008335568841642510088530960084306962733628325340946262701156753228068913206504174700153269176751217229327939222389649808172599256441762370068698226499004670362724275650442341956314525881651389821057732720232435473002230421738686321251428062822863681826563562164665904237477319530731703580409620102555455418521145281439086041226128552573236958043744943637650702544137655632227688628006009015983203445833009145857313717835091336689589629262059252449989717233664314708964927202341308967964384898692941087031178942479930956881419032720945599300125032580854911341167083066035988094901237552230455058656091276071775543526390797881887396326761592277377123439995415279027362758465431011406184497239754572381524254190368785494078270295216788168374597301607796509174238104008221538137254407154074133825010505787768521130907749773801829851652293107662607315739755154095274337189867486257085673598901972036201203873547012371565434158272615690173581207131156004732898891185156878379726510750727792287814677139112620283665165509305257579017659586240303659532251712504904680350285381460807496819661617820473129291056758730317158502799946881237219473017622410228914266802374222329829441802511463758952987536436436651069741453914551147180527162352163000509415890939442695859611132620453449741834429294658577878690046294700794183135771469767260334881646251561187748413698444010512280139083979170951415141759470787707754449467659345184589856664904596563365643676580301975549017758883724212945655600148767104521658934105079777149637998840252160581609336739645607587415399087826736378023207865379553531750824078441035073176232071456479389670223510931293229788689390960731718701489718629761780782534032898758302727254434721322772943739762671118833391855006609723796459811276719460806929359632049087156777315298712557586554576405860233393445223964570605007096898309092374677883387347852558378434191332556295736419853714213367808707160838635311373049873674104329685186522006452331734624284143333320462394781370294895454274846310352360360766716371954140350906242904986157203834826274348314082900753516090503537191531251045568420035603831261248635111658659514215259836988290191192437146031213756309090585009077890493250351527641121001777441098667037526699669857623858725162934592352856506213749793307676111661528686699058577369998729802198606519647548560356508657807459340407683886353092784516001480570299047147834014951807325272010682855218409303583324149427390084597586405806798565851390104515179325819899180564627914114630169963474684106423283569494189130169970553101813921107991746615032633751380849332858127138612777812776834219850088169346397580184638291308225083891728524064288420031518980825997290808574639810412281559664938233912995222699936387840694363207710575888511026991198434419108467901782982684849255882653967314979938798164558694495724392291878191035252250759647551326192276805121933444387053930482017823717386720318645806360345871633698912233360909993710052096246217353914664065338160432736336750120941658917593995282651649547405723441555944464273389325467288007340913068979059286986812806454167261306910488063146392561168489932708456948906617815526375774141115667515509051238695906429356989826024986024552870280536203658733598074987962042946352392627890684101787325936738980497955754165890524905907123571013920150846679316371187895395209451080352065505553375159331695133069467461165438756858402674925951625736537501545827202904399872800491566003776180133655223417995721645104788681421016547895485641986434045727720433121454484437032138792371169375451514428811586159793470034641296211768228416181166011255651068852193936443104705255571026153885033554188967318182239846838401751786278163337064752765004923986078427994652873638593637269151780981974100342582839996871887868859474915194413305320239573178767472874163271631196498049698834504747856473140580307872691707377355774245052131090667337758508396966003951567198894087346087935364121129987619489777559534342652702246145721579818127133535366100396160602448754401727880090219023174929252171934815345393875319696522496859111424394837732279455158426659964049336361357753454040652864058228868124363887843551791734525724734303575828485202108118111422949153820929502830190343313015738990580109194150249393328262225723545367799796995705144874216400728162188939934855402961375377679841355267123109213822583771665027546810122990411769953816653727241249782427383956407248494670828851031599231229183981962565404654048257538008575153631359779698978305375602476745997101740026379460050367487850880977466999934116313896804516827538602781935523872131578276199988972128841226373146848146136633966901251844584244252320699554430582481877498192749064040842689639930986717854810255304679259683613207822701334037464279612702681768777412644565697243449497559604820378581008243283734939186933996369653617886810068849845858656318807178204584447410427171601373108969610858195111658424486502638895403614922082098872350034529461277552561341345497333774456980515546478271261253912208575528987617326436904364728620682462757415136986611076109673813534398794712595749275263315557903113113249090183927824907602773788554797614612608092556458251529343305003689157676303039729904560924711988009021270186442027786908983138898167380284694883751110763753219807164549383953683819255840710351886406013072913980980814518571669285751356007263108007554158602248295278062774017614559112027609374764653297735102059317708422594433451638183521304203929921811991036250162115969519947145917961550882351877153725247346801169549015304959150076767226167737225931546845082617614225204816088233351600706003711674707290347418848021972182483429025855775761602266357749067948795837661483965840604659055466223248107588488877284813702019325402728113820455123758710319159423581131405025641592534824233174947362138908119669352282212767972445989896807179112983920346898756666057925205306432165994311889387022562191520769279416752584715383226642462852216352604651702433247087159089418155953103534523948598624173952771910212373526079743659113930685826821866402483687481754550966924760650359719091226262211463789419497243416609778240878391392984320865448710369824022998474746379446000967641083415385895261297668996479976942607401875493352181687904645800230249034770307234692925739823956484105394114596473131461866535427967989025397829041201717479266883286629909769750850175397193551995492522295234603354998934751889071265011249150007949569962817048581881013507526421936622278895459831922966828208223187955124244007516952181261238894079887798253054274475063588604020826827733153704393240178095175334102511458146978672837252336180373871421071342156102807973493577124607330988109435560848686440490513515691717125994656657349865042607721922218147350391389596893325745000009742520423959037372558905677118803668053747588546824674490821642870452015201919392800141060053508420359228115456792774067609348480088171377447682567676887645577399728719581522352590640299077969908407288370463301021110187569918181328788218177371124226977634736422781916881486801402862471091598799846981918712107911125274606627356850068460825999145057080136261621901064149290990078805260374460440040567479516099738329095968169214023462886715657247403975957236420455077991891468686453069328893129548961023411257528284973051354660168777963658252484441595293898107763120068809625783181551778620137106541402108746266360727410712874748274782222006844223053657648387726477900835488509411568180015682965157576561378116731285251114994971496262064487589780090593639588728739342951672149516099256860987380615338064220584257074024292261353948154166611934545162031175021216484493740426979357111102178997126733683995645923130593292643451982437435829130599316936344512100186741663439522436041697269907053638204712588634803336149933381322006061752659580086405662471701994826379879852222171589129339456329111565476384010853037978770698646579819332124790233797023208924475252929583027329608943140726665156486218704005366760422519590039731645599068646955264652255812544370316810076346480292520043490304992715350465151510569440530176087560702590258568851705420762206415786381167088210984569139810237192832364167061165991935055222594353332889866028081949310518946490858709952068257361213494043218721471509073449737982530860800989514450657138132451056927268811933424652725980977116680385371627853971530198294032119903024151669729964872389360000777873728932889699109194770121684987791942481966066354809687836838819756524379006317404139435886931375760408365289031279872058540840218447995809101556060546686760335909024255506227360294195157878162860450870148995376839131252701187714139121148878583982711840290266650258926148134601759549909715177725548699522176450762716552184839686691414590372463171081334746214396336113522104342716123476976606782113847683125838464140086922988451940583249395745359430153685542176489092379415702211210667763418717919285351179047661224309185242279624074311122327494110174849772767749396345785542499778401163337932615532760691226835535967627579481614285256101895536658275691295115534060854080027308803501203864664925198407406957443463123068225014136774090042653268489627735092013748329112941962742962811677386916763573574796975720696614703680630682345003424696102327591760920611670638866076057739910047330677728143958474137688438735943520089047412229096482400928192263709047189345066592004189038658912175914721715131222077105960818379317386172601249064802951550943163987774032018832810510313012610910448188111572803110299323351355155230178807088939409668862356118558853336066417063634952956229768787907504711233798503673646348414351589201401648338050750723957672100031191827477607688049239361905963980807586106819873588424096396389944515004762386348098534096906888490612420131137070879142487501584739035619039481841269667686689557383480404779197329333088610507235555243088238644606261136287762840308824973070020818487127830239106732531212006617250621717453701363995603239298485062395898450945673103604527277800281962826508743445756051346202076667133165896283786272068327827505030041905263653305574183847541494379522742584318096800451844281759687688634764836510921533370872671050105081977834604969309866505930020151790812116014667508741939261925792303771464037559586561322238932903876391594194778930298603079184362085953186082771962605314870160443159546251151721588908829208818638099051815471686673494155066776401369769244211503796035715711500842531519049626503517151515497496688127959703282930214709218795977149826540963349509397587946981597827572858313606245844388954562977169034819052618375876260820525727572789080444489246336629850976541523350327320631991974202357260656212121864803033512283001195723784748394000168274885183542281972531156530001950973249109910649391227200249248356023003745645488528772994783784300592404267092284001367782791479748443367443522955866616600852629909794295150659039692263568702837343832855156066018067603458378403423100788629401731616201536547184106660087381254341047255636793281484654729494300737505074589093969575928617365591026354455488382128659481014087405148700425419355143366811493977474725261677461336554854683998859320590076826393870581664870030450456230743513233708615026403649109643102412539128323763783890837530406661141139069859391384303049525173468229928888415811626690989331085627525959453443526478360536377120894215936120324467220582445409548921481296627628399685593306958202514780040985354736383035188335614471832047947784057241380873909497614396897105597395403548438442272604650012133140675548430000353020551715509573472473470076151635101828708499090159245289645578622563278267503066272271409962757078746972456473720002637653158094169175513567337006953621413893873266638822103560714653603861610238773232472948925938990413460300901751952066066841924947136051125378424013465094953129807494349272775186375898576436665654257597239884184953207574803217641442102074677764627041539216643460038891926772032640979754050282579240470331175821948977475807240789451874681284232210607789497644108882678179950323711685018716022632191360824856583231663839636946903715497255116569612189349941146754951808390020861394000863500043057490203776534421163649912585518379468675857123174699558142831168841278244487924033488234304790299227394235451172024979889349547799893493769359194598242482744024234751000598318256910172513181648300500517443047586562305604792661510755184423193011876285068224176186856497158827568080023148744755129865919599959605602463670881483515805540514467441949518519404901723933289305136119076690832033522498452503731283609301103270529726365909517068330876277189333236635506585294438539227217637517397442728072226754104230496457583501702049485337388763942323353194157901681156064383148859301577141284318824797586088448204590042600760130767878478292829556801845064322351283929416103689976658507453984450752684303734397802286017785755633129910865141808735843415062289008292042730333657405829195227754015900289764833605659197313110053567119699045319527705220481122865606928747460649529085544177519614389534283492539523369550467723371347369713592528533098260528772555528645687183622870721218741043756866798255189203224457390588371422789761254657135505950946605966406345220803569551916643917894939791362567546793878454184988379421746140644844760589251042242162842367643774439778409805286124035473776005768760458456097357861313596531195623803224435766834162962981004186773513444904731890495731341352712911554455218747600222053085607869288778255407436621059319846217046573171042161424070106665133128899693833512748633808454217619256047060702326963404497555888926513900932360362407553196537302476418893026177187345021298349087784167324089359240521141247606658962363385815039071102547691077331597373779910200117043815188541313554665237902557048756850552245408281216727253386404794318451657895011926387710056837025174320557494301869366340363115482034096001845933392852330725274630380228400058378421626913746617690998191466831339651202077176825823291433095870648371903512611278595122141061111802712571350513757115492852360877654008057771558237519949062276595936462810614467814873202821473897267872199791105138034272320825541911786781176399276612576123710274463866935331827315229074590819899044985271071704912931669770659479105174159242727835520072002732386717257832827691021401684981500658615805942952442619296527500064850261072282405886560920997091242473150161747256322502944768412124675404710268560861660541683804998921116810009781491964091305376581087280124447236309559793001372101739775665045306031220347755282560286163247416376681535790900625042648302251791935627948016401019375233173400820916345599391953462028112595119242225917601634546181610339611976637672921236378290842336027224095381034779428044032349932162682752021400314441419514866750927156729973050251990774114261712683538792245168937943794144930153221573098668416088840670026520364947704354498400359005882857559000174842446395518793143225422375852895432980604818508498041776937910995102593988316520511919687400410051562652716334044528076889192148036982925905146659640776103024053316971365440797586153218498496826883101169262979295729287189456312596750434908873836696705189214313492561915933939028520475940975839448211242965927078536794369795085070944205214887901543884025419018961837090440644418281996623636084159776301457657125875642880560707113810896586474777756077964240696016941620923295764908385024731889987750171169545721987461150217130779113058459685375763607242007045970471145718807099157015620218210680274778824771303074005809002351594560626624748915025764260836483580075354705067478103703593668352757875977327374585552984747052154334701905532956989133857151257009869246282525482086655776247157105047096749327764297048274561755968088831992010101567270196173324627148476424962053844264793866021135951600462931165089188838030907844933003621144374493702036087574312510785695627715398812644593409773165649439646628982981943424190872304408503406331159851255258223020723375514744819150536528102894695987588149560575597718320373324801077435072132893270380042102639532986716421958103600179117117442464776630175563113068009331211635931463600338299892225365999710072172444309344365373702562406954730010656101803343353771309484437952442891457905580877340967624725614454538700749131618199657977259357498590731618024270671727824854414352521199478215874516229754196405211170829059768414629267284789127492529232486958806353655404485589019682446430280506858869487629359387108905942365544045085629588486819075311524308003617640013044573511119042549755928888141241544719456447540264061383583964470421827394016450281928309389432083946086982699499338304668117472779314249266214748906714593142411464956572687572403137272035690180997429819447869469548574427720984246057755424006217045071559218559826374270250517963883648830961603901805903541761007209528723743589693316094399973631728929364724849073473392943288894162660124400851748224263466385622469332129441100308751758889311432817893684478513079888928673556650479083470039464904081857338046110556257871326671090393943777604189488432508247083351725096175206786467177835019263838252113282660343200124371725519318278850771830946964060543746913235591548207829118675226592159348714623076475600041900488064794701337435242240660144902305704747075755486348856581371955793891857344154821563758835326022450764116204647017881953728838771651677637661511120424269553112437715210305957032619475808858006708284048728449456017959297999535556468736698628114570362648228210368020568490466664335663496273153567286703628296648200592629654997846329530324704714580631884838842426329177682417194340788871510918404797446242320205828398210794200147338352595517085004143574151461528238975887540309022515913561659896288358673188494261810488285057171989925057310047096455462091333810893590479975625111464556668898229474708608520810784710958204032723850342813648296961982776146748291186401509745169049383623462460202101911013134642480363851264314548726639170695609688204046227156941665348279657844328817485073600519378016642198324015101939880937040440673378742584152968795721925237750211152223576715189732142992117066714232596326487529428094718313672557060049490003422351766865499397059268403398586908061206439146361353518228436904674644086321299062428004404612879257768969681824452165274556107884790193871670502732560444754605577882276373594165788764061536152085646781125161610977159585226681840537079617214838880869362328847634635446571365784175291942917213748835781966006880433195874644331301604375672569590293047524279072453205244748542602096792640804488906254086300722130887417661002584953541865962220739370549033828922836451885965169536197384481641501534710679464594981910760992475612306144455540411023455225802377186059069191564097913693237723507182169785106549815039595545833758079094163934598475679363766340574909820547106649461006382590107973599218528043233167564070609515397165929062142345846409476053841150805423582792977793559722772658274037657660664039233615747526510098320219988624489271523293184040498280184694924621070582999919790963033242787451874009944278898441218546837936450554460051858670199615322430946111629573304908037655226488596470490661603747513343942914039058832438126165425192079347437305985185147213646239090326446315924306291086356738223422661841523593356733969188726438108013742948164044367936336854716726856058069959896949559260765223781454701110263961953037584045451803217816699455118428578595773116737653164959342862966877781432630127636771554912829184111483516556419973742888182806752816888568305082191796966154558639580389047013058078679965963515868589829398762886966056948068198885118724843251690326428386907105691110409404612363694403724285562605580111109404241263297731852188209108654079708013592628720347692005600766153478346829879028148676505976545172825068264598048552090494149481827750130252929238895071776302171975532731370094140844256494188021446263377659829646144443597393132789963277510658800331881399993960886726454915080461145609646797590586355657977382326799335799543078697212569338004149343153448440582782637368294938550517484334640278958802976700819365149614437852333921423557919090844627168644108050124421093838141971215452515253324459144148671436511145309000539235216997209628359309011863185429217943587708905328005446552746159158838422599610230005707391934239944156175069532710324444500011915520146379734686353597492274609427847226657803856171967100671478881507552445824211822222815293806521220512689039928800053900515269112676012446964600787304470112004023118568806252244047050851510463472026617983844972223755720900627832234057485162258728713572512770349166276073542398221396162617836591414557232832662470875630801344744018624787388619836582365815724206696744045692841890606391415193431845899698025636548731197987355334416644585225194602280295030039387935738826295284732838191284044168633600546027062615876827442960296894745671012892354826749743485172537778003280920753448172547154475205074805012845297696461118460512599393749142202607770394288725734350941894297351299075816150326635851259889048507145677800006382693824297030569490726788399369886218207305423012167587221531711583274020490722481090243229737069881718933056019871626346518295571834444140343247956665968370562715886286164368306238084723821968956034088043507454231495810448030402974959834190111678917029526810706346657603061804714428176042558485474672464840410331734998170919122475083497782602733603782985777311759345992084818944143009465892268179434676679734642712356812850355105362199016225177143167528284260416326633466381559614455260256349105926002104106998843806191079763345217091761342562527215980499182536673031113525793867622920654654857429155196560915478488432041300661749896791081580760407489977195826816498849363942649186887183075850165774782231657309767184218811840430142463722979510708607563473485702784578807388155716900816027206065253159320459457762355036544371327633238550141512568072041181549764637995316612093917928831267034011312931998834157220750429486014597459512550856761006039018591666789444334407753838950147095734002105154166462718265270171407492429618413880158251354819442057474027889105402543879524803643932472548030035071390306485974801945266469263540699331564316500241849855421540558290185023403003097609326010786050782253600646711627873029894090709783124622083712001290754758567661765347793148518815437347901021834654730689011962097367339592889422456737232171967428625883654273805657835019684227561794489747447252669218274902381899588648902759996421079288129789613535740525149218870244274717103607625441894845774181308085878961130142148631856932519636582384518363921730764155201564112840445231400260666727696456119220864731107719624937529808457485820694515249239311012740290864641488419129149435808876010032085206965991346701774478618056769523275003011331631223889741043314187466125635655649096604616216464562852499824587989030518222382741923350694165897595645615486918357991110948965498693503986664400233039402431997068353920205927637756641232790010056942501031057220609365336879263342542963315932153266766972953592506490875955833657611561380567641571974355034220611836915373308308294443405668634723088718460954968895928550683298105359017274462740876470490433823477247714108292954070747694702388618342215689069256528176780904019598614619166247807522996109000395693613274609312689613102194104550430603028405675241668707482423194546387568459650571335822056402146842450768999005702376358286920035178703781987280595483603236624528257833813098746626066228520070730057112351693849475147515432801758778982651198082525067887222582921835023896463115902886291541562259365515444788168260915138247024536879566297875499132071300510378999995341432061235070289416736791755417443976331946427119150257512616608664976443674958544238384942751973911679670721578587372687516341597744149979830469621932741620965652682546824376528253951054798472242502086253065485122429348287834397563383373212640600085953319646867835427324261050986671743126122809282050226927224275883435270425935399551962565170831250034324034231821249920005012094397903502730615870223614945546092263199497555300339306296853996794573576324356650250465005149054442040927957882958612669914674897324330969685438737579159941001107285265102379725332475039106457324438160206240296195644610207649661735157145872529169310802730782761483624242657438510454056289253842901194246654672237240465841836144806219466226670651555679951549699541046450814658199016545281743552517013457701494699294467407843467157697409342802162598492886179402343894865419825227264788134513769941630453219878311917739815926732194294080626528855383425164098215520556338992602153531487299073189266788929438829405982387229925089905587060264631610879799828024963743610112454641939393043575183955396287916846168794809575100383542831414646716116498985248339660684582819942488408870039418679498756019151406022153149135998692917696034640371155397812074192293950608679881986313435206457599507409653239851495837760480245414341369350567372681406176449580496009667693371329646061381752701477268647782568147611022991533120229331171034997289721249978150402063198017129306630834395037375923621127699329742444791379249743003483918150142720285338296313626438179581343511809730183833106600931393196734792062330412261499190373372110497820409773387360789122916883987918622728522824437174066995574277096813516235964802648102527612182201680041274983280800412475849928318275682835002010295233997745392556560980652565359583574393702954496511376002057921157500772103333063141467750465139361111592304031128219384361862990874235987086282530801190914602122485496898523131860569123673670501975478826764745377301484400414561861246623364702014131547583112189908437207040777699884293402315200026308619361115483095583520116855414721254042387487688526919910168500189420361852363394394324286404393929905086908039317816643847998358452393111442910380360489078616295191770837556564787196970505556074901004901920370514106330941381095460800637773527351853404276952056255434428220394768906277491885316773692959892964042925056380840493002714849047793293266647720429933678636665157705917501140532596350522149503459454980181737956084848512520501667724863139163316055435381367227569961926947625949154876161897221140806540250047908033323799911732628765924627405870195164404319834759816370503567371881928747271349932368493784034863973256581477780058925919417559124985138159631696687460852777382529975437318382223691232327399726009147031568260195938288591999013083830227309321386149793379417020445245835498830806517648000504713546051712487007844648657246208688474721209309058398683181711955695396858724338398210207425745217273065281031053789578223617607388639952775377971758071051827098220657958570755213122893668603023148768655010941198331387156792051946118754898724199497454173995712526888364715361650599172426508509634604939509618372435134584970878183172258336784542643324714587604495265867429954651964074939592913246929098669226262222875994160603214387803520277148324097031761292354935200169241607745768367308653831045701343417441038419872254466607058602176350934812155250787947339012773709442264205587576850970280770742934743201823504180250914695165558758566528771016255970900853534352940987848091696488426555409801722420980210783087383476048570618513553377411211556718386691537524607463203398144238886241622724449722214777526877486686447665429891466529926606303951736039648506575248405715015880290695394087644294760371422747645037541395130518189438998415857287718735698517862524851505703569767969704418634638880500677400783552771073397186907851637972900778581090429887082176478950756308212901570397493259989015082396437164387142311604438491413666934998700624720571000653855359484672220612153351531093301338162776823010351619465712192635660825499295664938806772406164284252101873904721641255329838268421649198126588327149928175193514170928442321699174549518302369457010364241456359412547666867670330454671880052498959927600059191637480020081559147539755527668606812943110395207552730276129175825532482174536250298238253885913742136926438406075806153353959659716493944431605849134674357567514471773542350088948088160641502040522864330230591576763756575749205263294735767866028246471975520343247126844539022935569495998644265223322159525794707900206611824986103200591653052124901745728175512339187941883642761944740288416785198171418460161962988764328093055077847309765658932291294732008430763428902523529112509873190769053911211246518789385559700683378677997283455496938789244281774410096387218752706258921447270035928501299072362590537431526604006210728182829900953218062837284551059708832263191200472802820772298010088212728873515116455273096093008069821992997029776397686212740009387866355311547026189574952698336973373517686868789262398571416309566775528132996077304600385098588048592967861495542249606837233683514460817645600876926625106234391426705147301611979799035183126700561634074661143506928146365438639039315392360044712589185535949095833830223995340220016710093083551244866996883182598508174963250397061346609530236832091694120609267433367831657746171407923316308795699012603941883551686951992320209631121100613367843229977181202859095138866983307186984268955073730724530740381267765245086863151015323823652661528456212019048788571369865917040202331610600735322119898943930857459213156396934520060892033004590427147079243966270875041328299317747691574458632376913429216013657481610936175072216535556805381924478810848928707844833828988109532659103567841303640822059864085693632510498233275096533524499978279882383416640344160151820518195745766016249303466904348135406345116603105736592396508436446704790743959896617181628172534111996147776874468720330735234924755078764475837807749882072979176009482455983598150844633504140249436765736352935522348115227212009479106774018618230924985075475795780970751327151583292674160482665044151882817208188037454147267946622579150005220965168776910306502231123467107189732103071807228082399565418557364618039725368732737853025636884040331589778717691472557068109602163233960100164080009016314752671883280729499148838803658229399630965300035349622686447534671925820762477881731470595573309045871779938359972550694221758490109712009613278780403004040053640314158138625420580500475122022726112741450949974956346270364369560657282828709588296395041863015163109944012163471858486173047301427708315646590856409509608461344578854512924818872012291052604425702534996278216340620682213209539027271439248196721185508793062131985531252447811108562863700880668557417704140092344449847776104780120567053460786811787338243817620180392230573751801501710682445578760883135539946913898939819908499460140955727171158414346201497146930658394800470307653376733468496795992031169102698135575409642105276117245213548102409636052182076000037402395299813630375668975189549143178393404221480177081533648134116027102161448851720046087846246237629200942471030700478772629252187830636547917430038469793147049675036792287703883100387785296697165478506115477138400325548485469769474864259388979711628985601497754032927693155157485477190457729683087767198292413174538967690101036953147134115114011819731843495639200902823538673552220295164878846314072005019560242896852102696177039354632994436035476717845067419276234355972620103720543966118578270365277164915084275773543881382911324479251856527324076526893391447846393893044247667468695771646898251571199627306086233987017320124792080337550113389230912800139742497146421522849414881881836636317004870277578534923041851057721144122762694099516452336578479008340652410829922668713119432840420045789890360677744290908120813401151885936101925054229079566241177428136256855138463063808956145063899579060007137700751875383408199131710664144141104242797445813129674620736174970823717331396842511479646465008159037309168843305010276502555096718490633883673672676696984195690774163323762702921761538677761026042135693831820583334739574937943093499260914642800255122413576047460451699694289381336037494717405462532004518489826359950270636895693427476483459530486414876068175133845112338832116954120562158986593320516351372402316381990510647783227309936198049740909806916085772324645809137963733166990845491370154204015834711139814786182218905863800195799923972075033169641443028003963062377832266800800766938152549337952610829629836198811855971152881847170609353194282073643172438230253265747414372358355416848957352952130720440360545873492522450374034331211181761372593626364391267503121957814370804766166190451868695494750272635362109042212375645978387250987757230953893912170884521265246286960168665023699459238619892786299844456332728696075728007693647450178878321628453918930510052272860910317114714566322667145928617008337755514596959510434814775910168796351327320218767554023950328630557105783423725680917106823023859667351329269376050718171593008110696089028699272732850820692667757299948371715507533944291825186411486486136087445778815202304966041718468060063122167279418853484604638174873853072988873513503614081638418320068325810852953522667210791385167103983497414169925284184248150259242169197177290029599108773756278871627084519534866505526740150007704166225929142223705089040013190791212016086222435081590667031579221888250088547597656289129493343886200840183437963602323147725634339472545005397202807559420562332863547679922134365185206089453265821370642680120567858626956372981927092798748366583755188675825285667532491444112511408303978345401217575990423925391666845985173260226847483256338623113387704001543722746149215221312963539087411170922607172720496245653443880742906183922918508796260606017416136832980207892284234116560512460217675268842395820797063258149389689064223213363240488401465716509905952660247673040147308035159456625023821511384662778363359612674291162318983811040652173116217129751956744985751165590478213123305165955523150444246731919437156579748093283357990115514282880902281233861292106376621214797596865680580606928584573283579827694591433279327501888779650403574918091918416985052419620264165978879946795482475569910666195722359288659277435670431169291021377964359965413484602213086307641888406819688889439244993287115729826059278256046118418130844586984965898031430079176645921686292414092176193878426131719624740876484697389335324114155109455605522980441337318056331010909253981950176363012761876296689422512624710724242013016008839732159686470434849379035626211744392189035340875914478766715763993962734485023707060770469051590052147420234825418767848713210521833688896741934789450257368973087843586785301470640221133397263081296005570512590822035567876717487910333297917844785907257669955229546790644832703834223890696685838774378446385024823420340230435191128605119799984827587919251788586330949184205725059092276407367262703965522045543628760159695677978690809825507685275521744982319512552556186946887008923933247046420823090035046906889341263112531075091821410883574084256715399153641536985386224402572421183904576560911694152755150058644782799887354879376121629574822191425847717832888224803854819033922841899863041389314262566919860257794959174001645369778176807707595782390544049888323931952819501739851389213005305591296493574484083768119359847584826175881490387399116323246286437747786682505779657216498575988495769529182435378956477357650762093960505220853732519269440511182328580395329395335304914929121452985442843724917281345690876064571521196942256241169654044228137522261628238958471501491915395307839591668457428766926882938181117289814814366686429550188264821199391269989989737902142839048026209337492366190420543606235345193258275355560316682574238884940184360743500669042950364086724671251326865722087155197564785674132123438911073533218102149182058956526012007894048125542905440715339197264131545260943267832815776609133963436360582583432191369049436449800383307598783202017006092581690985636306746787755029538805517951088664933853484232823806236001642163780076736380689137478165400750162644690411840876634963218658005552706320191538553627189677359346403821813825618996734295546816250596986760052336766072632924441616108305355543608939203591634151112983980809092462195070406117593181257623320445567021308240784078156562237799963987398633363244858027131621948052119253668364089559064363006168744801860512919772498373535690267778070846922017722577736157429007312996543150312779595840113154236158235297662944654014764350108272976370607783329676282778021463609622106757858795396527625574456932376643313542999816433736378265289720012604654618638232290564702331497823963744690722521519004676845572021781690351443112451434316321402451610494512196920641007765287872087331517048589604509451402005472375522133470825623850133957075193295539461219009755502879320746185277428832259092377618166128633644402701788387112422446237311519071220090059178456193662960012733938669188872918745748803482963372437500831300324483529689280173148782055007051994668242051839556114157604093644715428305690650014504634903851131174062790055327597581061721209803865074931017521225423256143324663366772429376032007144885355056801334049016401897819297611888708335950443944069894739906323353264139870787563323588367319562248702501319143641308319624855708930856147770634171571208039528791342156873646664962854564798174244820275656032434274167224831522658589173894311574279953295106488090722340857431432422680930606003759281605708237094839017431847484058918221568468369618708291520850418054287075807014871297310706462829182776278104823251343317221786788441330386458806593715608951210428264007713094919957797412478675075697957380346039873551899378960116771210029102036504339392172516433909523299094187993013930327201359624649678639854433641123899582284604583007930473604154215817344998988075801346109688668091789686083709196371743319094255541299084356621825801052960169529185532128979402980595687169172443017111190738239787479072772581227934655091858449438003462038977044242164225268706475720077743470627243160596123464303701363047410986281175796721584465582318150851901066237900407836371939862970818634864465740430840993010039723457712382669880285693957601925175828555041702794575712175840908352983529553175583442869366281629616804436177421606219893438989724941824285325969793270377035273228272030591646282135255482327902166423520425832741449119138948163344420756917320805361835202772806668906326547491652872894484456523365009783066763855221212952436573212215458987393116237098058302218405177388911823057466527656661881552687578835923063743767684570288451726215660923006897416311825573069744696917790208817087102744757933303137593480077839359678583640308966899677890888718890754803639944630532177673235385818952114963647509084624848677869639016277335080852654430919459435106900563956338240925438009850903816891942586576720943968366748000851991419515917068531992251140584392152143487437016383055506058246292531863434875311308614557844834685920628045807971187113858340230648886203966325081701093017368580613601221904600723683683208352914762574285449454069949534768079258518786875715988968836075451236155737911022826020971457806100049877302213043481725607085770079877610667856549626933928552383183992421197189710209285160193852076497081713525748333452204158792921800665237147110566900285365030380655535897289986581029056821506386192117389124698846509196849556870192516417443393771308893745647335293749212396495297448563681816302610698098529393978521329678478261888129996657372238330023279531496144396514128150801623348450861049454581723058171176958065719025567109233073106340627374615884232699105121399157172502776738484116803110689057996179706672364117114394207223504175050096093027151608902147068064577068650447652971106395403316906048061164649116975309223193015260177865724033171494396719654070286660143340016438373210377753743480276219660962952632367904806318228700973732896504809876437758381671479715852061997037806992711760097530153083001987608206662784048848923422570447424556080005532175181936236373817494051954501139344903041525139045729507413451468041939939926803369883795065415045572770763136006806019843256963647226824004644002160143823978808975333581031637424436023568528886024347547139155859049825378441855725048751678146101664013175569787265649702402041119191373252414451173923733761677675826981905722819385246986595252246020561518030412946797344294667400533813461725881527341882021021340178254258245185773984679282854789594736180291748975587471098621080547070577131044066044285844454078201622902505341495796594767173596311285560802232008132383905536945693683816079764130518983660502616545511515270804910833254034575094810247023978483038739849121573034695394142936098526449992656198817595521843020083617652328956959590442075986372872358953194532437796830259705123087732516122602666372821845864354676714163231072406815932146342537520028843131658797475827822601114242179344291392183032943098678652775197590497600605753070328623554498941462459721156298042250366519151036425944413010250386627120703521871443652577181404179536907612802265442483373307293028011307960133162523738195573248188317839421694399980284184844815911189582410719640823845444716723949517338769869675169057814944914660778678967413021881915851887969539905924897319021600970626823612037315157736163666776510105755448669524014839046966632327547439793575933721728433228936933851777865411963798747948241753463086981478902605071645609660685944308028053221267611450782281629585570072750368895724671601004854347367245855392015168779843924210776983500241819200699275549165104582340481697802165507465033987467510038651074370139061415037782230444716793194411600160509435128184313980763999191706276380965957963128096266746639873306805052880054558001858240920739359865515898195828122011076194160870078229932300830841369804812699160931663112048958162065194562268056896752364697595952868701546301346834462125796832134081666777947593848938536327258197811335470256628695942353123372093018343725316464459160123824891415803096795679537126605487026762638761035724465932667433099797786538865314287570762245736966591318912496458131127997307977178619443026544864074141255588693986353101513064237616027505073631419174860147291525798265887621413648574114642147400979513814707990251987746410544808679860422178784068509779347659968712736650299482525516595498182198028504293620654450360490007047010044048557312705940122195449362787089274108530993771384539486342142926160630934082135611660304948224169167426911211014642298580236446813567299600465319452809273564681517736919077568307927748719897293753484303750662253794538170586712630160989519381374152763982320794515123060093971552542311346640411851327944149546286104287457647403672636292911585906825587246563247323092869315449455362233446273911951509216212015784139745827342578674652689389924388868828422596836372398162685216043268317804790735868183483243337800811966508017946294969997042130560106788101277852222639395367054825411011520072914797375901579389330294312939978992533764953838203509531843621066983086988697770116334780331165131844011016072143554687231620501443791684324122584653986563443391741461251177001345096376413690571021665081018591713083296060000915225024409531525093421391165283799276407785411075661924792619625109909238480687080132621129488691808957453522760477615728368774055625048369587126363606762522443047088594495700280107127939672556386031446746565554513703959759671541659944273995716528329526398521865617618311644911286527203667364750875715720156467234231529030616550184933217664834398802717348160853732865371796601423109514601760750923788522104011787076717594391177260075326223952060081524721496993761539799710425093285691762401588531652815343957144216522555609739703276404638267461579040410173766631891507547105325379343785363314075087054023971835639381703187782301534172508374278917418127612446310264506754362888595282943202252358436644397936666561002719424459874013800814946430662745460083871356534353147713427296065668744544904553961091916234925251333561630839381222396853074236864459531330389576714191597397268510185887817626429541707646637106240715682005769992423532950871852942249473578778089586180574644984102133486312334775363897103950755463428674546876299423132469234346741049115068303697354731013032786338110006125317074574264353099529329531505842487229398855734474389657282115133759059856821836936198972990547626125599812498777588799072255507963421763175651636560599641161027557455405194517417743485712545375501159194463664291029079356399702680009370222006160320141324533287279523622900220514737697359138997350513003076450673524014587597178089241165872315153732200504943370628000940979829972631842087019683851576762153191797372014582179198679636232257720385264285353699416087875623354020307627961261437604078749548479309430472398956594848887295435419894173326337977058496525347511598913814728497851188299019523596103236067890778282314022736246426067752606125752072291580739946968608160602520142669233188029248425677178210211287697110850556890764277056890545559536908691217975614970319009883048409453496142901976856233138034723071858522318798667627905449664191520132835574015696759576239043661564392028021613381066258600757288739042756443452219330376208494086789302229877685476979814646536930381571240235857551725624736513239615395844295557417117580505784716800648637269579172891859973539022321765247904678667841737172972520487501654009474668502185094618350874002240135265657268414082481729299700184974229729152709457337846988896620914993359280668313316384692773301753408006378114501387850185259285060431019635058048015499454989843243865395917910983971960921554118322640152983825514508073996005864649263128308071528728117201207102864103568240450974294069949524165176580892341750643527563771178025901728981811644682871030782696574124414281279770896617817054107373532229596958942463336393753276096746447985331584665016165930096971288521326722091698684900457109719840310607052731071648327819615283108235371306610006201314818983941690234233977974850164515889571788416205237395138385566395585437745663861227661678129078174346731598551172407098494990242238654101197463434066053929262818763156061040996596439893006312312005566192121363846127562253615164881080329824201734100519227872956151535196750411474257637573763058968931009866989584480749802626134125642390949211785552643214889313659890447716326406395351651884328309642516728702401657170586445136005951117293855907027309241471762596630633669799745556259224116588446079986178253121800297592885780949957020893307466782391124545995180987081236910773002296773066589015247243727296666956226067711342940187293433721921325087308555304245624024208145249654915354701964139703798415164211575644183811204982328151079214347224940040832181909539699324166817579037793289214885118604628736905057275938096083289382860685478369482051713556552506370048133691881914577986497198722970945380770486436779477256236155710771788502669494950941192523398521817395317944544034563914528256552801264595226673241824292508042653122310036036033685748081420467440723228196104789944123651761458245326785240498909162376348968420162948507613628018962796107949875575316968166806704249165891896189329796226961542407257909985500393307458556726012852529546014117710493763558451354464894202465320710820407910053512106204373822285575020993338387653222066795697256378895577898684324463027707838358611346188418632513520807619065990971247218549663414948880094038079606237900283992799325347302943019206087351114996834729392858881169368825287595560133387622825053757736778769184972493185988984637807171818564756177971581783927443516888739007025305945056104840712234451263964231217296054689540301329296856211253315008471212823477453709375991972871976299967322874082593136120542428238125287286610429594261431503034294486951960882832484563309206709017061511162053732212659061199486916356065537217025414477773175937584816933643060341132582350786031510737612452398992156199168669522366222973158523604807183638118549655525757498654877374263428495987740824445745287007807288487466497975683113431611069809580956710112958412433740825448240482468581011770777991341542033995041307391846623712485973702740697821553819410143497146452631070542482821507200054697742280313000622115020121175124017321994206849239331583845225814452331644586573417455823218498598390910709849666677395834515352541483993417413930933368650226781065451558278311482492993566129634536875286593194579275431934387193311541317560794265868284093918083897244760339674508911993580921348028303354484459459148827422484819834053237268991326925352758126660902094446347701666456350009033160456489065732734772349486508338106871808918859929589429815694431131907215327956972980895620972549985575023872636353590385839035460201286870499315278771400944718984939274885873764500247869165453771602577570395268113868693869468972363283140878810010402926304662052377703804696600672282229458066273694517045332963612326535098075426103168064117816388244038668611999313973285370248829853075478344727795038435520226387627815868899442924795597230837439490316230374490316059872462804048039465530165717598971340628633236097299885251422196598588997100920503093576856234086545733963048624814182861897268302093982968800775034103519982559923382155399424545250917732207536621181861792054991105222968609363428074019936586270404114057275583706326630559977914649045344981112897178662581581881218531709336102511343299902873208880907745578321750338595571327545952809361825183943306628904310004285070674692465243074014557405984252223986580575882186735704952594149940227767884883976892792668186659541837060347575946397429941357495816587804657887877815618925624758115769902354242686862063259253835399425681712328577840093692850227245135261855665119013069196940688465841608503736791648989085171118652510640070528085685938590730526387010254933879774830181356035190386653943497223074584873823397974377130081141444781678077518623817397439304832639942045753976180368929118430518950872367596958225621087371464130688538861936432906589215017777598083679746096163060555716121836940002656533456573263369853401526667391233149562199937148976245225437975432968645438516811398693698516348067258834449904853299444788706431976769435931078379783209045893960915504995529504364474223314888884237446394596560910718600331808274426598017821074993836944109331603097981781148102943762326107032871674221422149045436240169214090874981685646285695220704629326950717725458870448499306004307647874916582380856809320629702882022249895492005825131569663141121657166219659195444193737127192414964166320063038932677660528495152544402489070077364396129858707261014927913911582946113602809906323531538531241642890573074864658479879313591465579955328524918113749119511818088932746489391330376534655107484340232896375039919338922126463907409559264066773626397216034316560964334627195936031527677027479013622338117591323016832288811770792448445087451866442695949821582381630358639775815802520175011681454933128838764481116243829719498615686377549924529725264678570666403731619197393727295981426459086683249065905425812484725816714386496073751317402241966393205575484443495820516692983637489601238240380244740913148823429894054481774238696282026442177452091325731212757547913128844207783952950482887068950116934263974944719478736494258799520669112363656739844705230134507101663507980949604727095379243997794558979328327819605314527574222454704544742779176417817141617506195237762365241625706410076463550643578739071489762306640707223195375243467186136655613971970683773587750240882188887841596722589418038956075927239094479729862056233174129264132430835341943330170046496910917358137802099818944071129521685888167181468668808333770302073025464564468967634261157685678638152594431810438193010717871737882381178365667887746512387580779308119172462951331643056649712291034195475216887706680856727727212779274250109752454036360825438537695309642545759489290104261155023923001723467513585332157477878028382035759269902449831976869826876227517442621458179680769317465912041060439404071054379934262804569548137458776841389460624064586801846085431696063212460005279288323038657546070200902835197949832654174710905036065516296745775819787289822616619406135429394923670505029628802882454754005573352914663099249430579828394837478877892377175130068991500212799291786647308527000910334780480807934270868878682139447990546042509912465035078022052777604803762052572105923668361151853030951391848675017218370997814214094914997811395120857939128785588446865276440389426822452725240313766292365039635356129893870248575552150480780848029813470873375718758302229768852998341134541978538971467345176924388183603886333228536276536127553608944043926099046999735394839510125121513166934270121321913722730070593986908275703833542809718496207571233908085536276092057730633354638963347391978586544830727344988088058701746181593448066647374627216025988956608294230638385240606458408337968812521256143982791593761536583016685748378252202690268068926962416857959212282119907531094127931929380419759748580586102530985162858891008928759382706014334279861417617598572221555689423227016131457860720508225431990900377199300530444283893750113185912465354436276978014598515573845840915057901891702148717600935591065493063746538671902638875087371727964364371156695496948166675114706539467903667858015389732665550585045031137012094102703717197287683610636325129642051867478431681510134013791838277297215586724371624413333139252186657570041926315423088901176480595627022390647317098885124285018062306609806073084934377441687293215397500380760002829088253127970009959803106667084867003550714091920129299545242869921862439848642186295393022794836799123565901809632560834425907448304899820356373980998507725405818210071813890763319936463270307831189415233386514791196920316638137009421603614023776505583799093211464428789789256633821944418282902251290154319194886629636179619835330091983152564120592393402682349542643131816636584931742813775342906216710570999666217237281554322118809141355539337763987666270872841903892319823302483747321464376293641137785389867428402177762878009407556951733169453245751375996353026057200820666600912470425495087593091833066394671070278004646327395708653170074159980318474691631382398420979059205431331247712228254498613841869423090608051356131366099124176822802783445808111876592333344553454154200995587165011685610875319664922258276992537611139409060852643218421114717435908616855992819070910935399074465164100889816055180388454813445550374272068325119542775640424350558013391255351084403505858966459638743134969768880744947574081596243844591160256117515413153299233676601965172526384421548134814156926949513917896143576391750421563923384863149767799207910406705652526202689624273210128970576979070945993454430314199390715211723078305062010281120797277331226957921265454352197949528200039328366761536760859193589368167263573293731517482580903305045697690535691416560626996048012871545462759621691579783890302948803839968336007474050071880901902154901782069966627929132275764399463076284521180179164233951730691746447816924994458542179402719716774899142502105155358566677157345721732814847698814426437523710138387902094083144126170969603509824540865124302815832422745314248961522316822114486170089347523769190321559130082276580132417954610145874889895162944347108105975577493139499262411609907365555234655500076963310027286869569232895991332626677728985150347004002440929901054664831175449227067276263081984683959717728873308920697383378121031664712763434700730943876825751442956155758013488451788662601788385123494647911571683112232229523661810995516406500507432405633911146945555091689968159433537531484496634204930974471820510976975422322809137287384379535763203876577221823871936648161699734726687218066494357374137935634819937017816176121520426124150172037407020346401631754953780682989044081840068818498407909711341874897599834756471992829006795989887249011955627806947747786408690207311676059859710889799589760357427177091375048686711412826208098412518192677608496210980334160394891330323314337881217459326635637385544295791361828611407039036301516733070292146785361761896916284229789166172852534725340198691923750366500087273254977692637295720146139472754400187704319476444403634385135604948104465836338944853648306375880791960206905984652943147648653643113214758717115707897849771213396506476023732543544428016555465805322455730170825958159600019424766985892785143242529553101543277028396721334247184112069035177710278724464771433978061261419869019450471076438115896039007562464605179275879756934503428840862737681384788658297911768904364239478108692021252719762698431379101678742802305149145021431287789710951346080740013408915904670097698916187922121624789377232103505335757124012797501722305436548521190976855337088725418545244516123217907198290093765345154648591320496479882035006693221924278472613793349351559527894640743285890316346212741693310923275733150842711645291304886790687352744355819816188692265192408689599896690099705949692571887398882150056359617766567810998680033991767149100835087702777282105630214752041533078976837183330778760835812323453035111736753699231620730620188373269182631482057977800380150944948247728629485625268903463602218023833846590105972134836363214424144620651198190355172502839981795576384670594088285097360744318577289528483900413052342647798271090732463199289588002985839637766108395323701657508519140996700997084074410938312728509070018939802652969747493872783282382440691003186672980924651126592826890063548042108891252407524204265750203452845625566291048772987596183113740415369103498585874011407703824483863931282838098355394820194506213335664523656135443584072974313075322280166462020215090738253018722580902483916849421715507996745155745724465336414781881870433972864546009636784874689138134103240086322408529084504172053684577400532773963981829389845402025780323928733376012350983332872441945858070008610327598572777071758660102228442406909055043777935941705651425479400112934363084635856009056136099241590626909217369144650586868204480297417958726238497974393160322961920111508201885202982321608800257119323675768372693752756048434200454658353354018854954568882376099236273818753801845646888447673127093337866869211491196538669950052920473093066263585425046575310960976835883027053450871721469028272955697142919987257944171188450293131102417290547584336369112043897130815467107701027269562703739515487780025205497689971474212979149611409319313067881815401245423298560879089508808475946964081043311493829597492679175732412450330770861846980032108340748145462288931070369561915162969342751705885913977530116350389079456016928709983595587307460074845886239284069917085322091851044857727668152764115722406848810483256303472360102614592616322190665962800746625832640216654823400417868436258391809561067159631546703257876918928678294037624214774480397676052295242578937172075503534836335909943252052371666565746275072020594973275711034318142648921222341353340767117492230958346160546907776673808017255851333678436150747681121192949512038190610815196983500773755921157093311717313402105440722632673945278602178619173933141006162839329981272480764699546820761055161960233282345579089249060671686200015928136448751396132941716030980773012432010614895196564738141114344202837537142813407646911602704015010891846700450890684685496031323721453680497089227107232184484263438962003353344860768748635032813032387621708611049769865651024793391434946208686511370156110555109033926044291102773317361813913913819688762366001022316477275435547696073595852836897932056003821385165172376649489042761385060572458181889384213706593048219902091395061880483166420414859771186299096352759544071295524000529902368685216056262153679818813007770438066047221780646081542482939620522425539145357651131736208444373451896048179183157727019120397578525808037759547037176428383639387035359418218203311901992144326450719399216340607916016610293650240541286805847487384582212464987457388762501408757286474101708500778846913479634452053392641772244542428302974999842194529231651731756607877638254650152108546014473081163720758670565679740459862725323717883325194476041173735960108159035345440923948690678552389019208317924033627795859609208546535835719538316616876690867953499512260213557390732928536843052226807294166296723504502831770381469874977070086998032552701669810058498044220084066358357654502349600930126694367242656376834175136285273522596658041748995609036670255626087979735805984277501578774421566452798396357813072431889974976046817770604633858245732823578855577620330724051898092080190514724579945484947969006076291325168577478972219089834348505809569407492669263583527627152613596183579259872503783889964590386832456243643173145226927232136439662995660519892692594034320429573650826501075623428317546280677869357783387394652526419554545321022427816792835180990669582929654494145675202793741388959636311936527564994512649055188908841094720446245991002179192750787374759295461383588974692232148959588253027666978606414045565034630782907780829619871538325765928083842954428749941135224468711389575646251372051330896860346410016844565315275086073449327237140215495080521745223994178226145484386565894386228738399916209971809542370107139771279254754058965301502476020645838587411571567261217767716750849302395748682940538737948137888753045125648979941788094838401474937882576023234338240228413684070835172915929711402933883382420056536479563877814774448631838168645065029621357123925587397570356697366022251685112584577167665317095399455161289601301903397157953103595573106100884008893975681660865203596782691418985360220199118319523959244474804980477373011635912699718739076284890360038606777838290310617780278819291013607969282192243310637028583651559773359888682328317460995360541355230349737919531162618398062464874312117226459146640146183677265924624048011010984146249991903275551063348055910527224909541175402034478208399145058708949453692105931130229530645796836467591883870139479004739727106564628863410967804193017894098097494767477840361877288384336108742760343522874106311667271735404017341086830896784512317684115874783014981958009481957768923512808751389281534081507836331785100835095053304898564600785456794210861220195589957127158354544320543732614995957246349524301258634013777783314070799711956949260604231889734916671072029145868405383229734133815255781967135699279551329550257607553119733182587928095649615593880411793793585675347991207175200444716119368306584717916606944271787877330584776896836887024267161730661906362277096722026459908064519362061934922111999884752435621294255538230795039729786280196481750157140022086431672246773867868529540978471535875013618288998730947197846228793834673640408197173359449797896805126843286707130553287679849428968375616895280015726697588845948648363697388982253993136962532489747999372621283058782490294291199655645533222037631459886377303503461777087622021184208110154918256237555655998502331170860509038223707588470342684493351009723916086881508802406437179234582602338839265486098497060606556385554196969546244087372515949141853075735848166046657775476147603381032822236781510317669136981584051961479302908546285099086393606703132833611105167257175740635325628769575204080612248464661281699817611494156081359521491396577160683123557034583336476959509826877787937851502555990983679588403437905126694779277409764168365732528082836835503560382820699971558937167488031034128639203554249199234481183179246832477954764652507037782481138206486045574110951950233183753866063391915000682295064291072936662959657183120053101562170382962164036076998312257972523955244423123202556720687215457366631318047839704946774347906100881333039119287065305962996509051127042313032743383817688572281672149132161386781760252771937740336033983897839156909096890716231003175999936823318810852054634407072319109069048143506675077877078609992450903404951217414025208957957674426923110513855502470264552264322320638531785921694357479530121071888305364784116348503379484067167699278044589924536736458057234445642399456512175138959145762503235494789592465611607795782111002771362324358706659278745448653185004356491446652919627058290271244020820520899041685995615379734781434351771672040937476231857686494926017240728732322678331254916751353974440246276027465767058771036264748218825070710950588020718289681658711628787845039451363900342667177227055135687416847210356335691503239319136200464677553827209425814225763146132178432383597591730733800075068152447307077148054224492023349099338259195348864432994920477358446189532443418503177199589411165239490564392826852688812940234127448727204119668824131365872239108959434347565511157195773862965848444445454578901869786761045606113049967469296828028406205406446310634242947724718034397466642943260900305695281069393681333274494529703234808933664939367122559891996877360425867792807511578781918828736569461216312850634419799452300415172355191556838238446687695052860870966683769194746505411992845409109791529625294495216548529561042477878158209343807523043947049316303067157236077885663895112320606838348814492824809964187830418673580596683552941749013287503537505574147642609775761455040301707620865294711673634992912702551564799628587977430886290112431510905717694536796979547665735133489529838338609034572594978975027708143077652499088541957076388928755618314990017477108560498899045985713239825663389483309169032529286152923269538143925602307662146236012402798844411538481388212370180959654561157019472337081662479631479557889275676583691919406316337560223253053379863681110189985091670313311452559887043342418957618233993864737545674460551709054452140902245536788346148336656364482006794375587714039897291407206724519470447066784338365350139429782078696973696105396705211568369033205712113482123516420821486873259030372413197276463253849816767428353971127475298913863744678361158982806784195066463935547298801240346564963076151290654662823246241050585826373527184948926528348142049946653877124582411487116465830640622120030372654869931325160469101803074728470667782091843794364233112522879492189226120850154544262575149073731011751663739301601266213702661865950920755773623087797947548657244037126018312192327954836520424844540167908709875830688017964927202572388594430792109536291669300338256609263723509507884497244931253470864329794415781722581931680161401604319988080170798654071461374308119928824659780605637272058184121782806870946586567453196619340060102373700128966268637593094376252613511526726926127811726808281132756116777621749872911451239367648047020752165206963931018079232336570676779891238746839460367111193980183331370887031798320219531680439265105248737865141447523336173054636716017618084703680315202845712768524245339196737615154785643142671210262600273734023744099111764649819301559166261926013605338207392466223584189129287729436819193931306373843834046641453326490287071646974661028033285553564031612768730809175613936344809004092433724965650801133421370210655375036012646258377519286366567994202202204070926383853682841559471817260665455417874359415628416747460658924362850304700950212064521181075286930828383142010784103885422598651016153726887342252326567426092773079010484871765602362204056756078543621700013583822999832341314714367001970644573117251921456178947582406997397871297337016310114011285527999981523799783421453556683584716307404313707858511374143922463774739009264617629114229905288219901631326947622832185820200854921567440869154219647991298806876291109780433240241184280854753155653916665731849685322819655833313653999305790429094152132122628155860784463485597885572895257592021932443414377051803763784101853160205068146881111723139746429017544695432005162101129301601491958283440965508856033015445096586176251464702874748583614947790367454621411155647426989644233506803610876410180720598894839785761463888066293621211297999721808851865626912247995570909031934125371795805986630553297035571591730809055115190602594587316444043328323755102597376682838124389947272559020757098535574231607219372230215019982157681732089587006160081261739111070800479715812938863455570564059452822543819396541615842545312713650475979075984852454426480395786805855678171112997588432354787352640302800395037717152720521441506732600915654547984074298001635347378907833208213109120618088411384888914722213604522639224795749812118169870269438710063868617223440055813437473645618346854714230726383649686809700540573280334303146471841109116055221782219783653692428251347352151431524624989249664447838906691058548199714880538067823114033830022994359958490611564880331247372108406735017696512815380284899945082624011385273933058316168171082129537004340145141626799628910681099465759191442635858243769437248296527561247183903781996964379659745751506208413954670480763377267876051266626726617517074292445224183516734842905409407459712044466493859340408480872424019792903146200951326609475561155425340797320380379808388921833336086074817318684886960431030496604935505309271723969275095335622753052404089993114879525509336972406150154497655052274640562240972514130406845852129408971842907200653432637443618478293451667393118528031770243069783009451790852574265183154430188360624110921787959127714108999337417542844156620918999286735134779690467977055253499334179281945377473802617626043589226330508779110621267801487224686786141840031216750655336633558730453586518964821246981016571124679621776993467067497467505112634671571130005197270528858410719123064894018446972698649282560661767924431247999770235034246525482211987962915812747737729516618621792002096600271277928493752671338084509432239957365872276354433120220336961244724017342395127889213985056451539986960549528703683726863186678272485113336229219159925694862888383902107406687394285858465828338464599718084883148039868808071725254303512007218284362814920244243810050656929242700555662196826502933569808343358762761747467853326343450552567615888748890118047705958770944937214819992249769186434652079745281561763323219311181392186923113609830904904154266277791504437046355980175016962810971221662141409437911546324515738741301123200458795569525517865214394606920912688703319624866296679636139691355699952180947345392058449395799313112329057954421648523777502979134096760004226220533536802088910990332831971928104441660261997786277836936623665160789906329109452442174377394803272616007384870309141939757648345525893890630226113223999361276941867361238925496819864939948323179712162555938753266317801563187771398716448223849501363747762964882548605230830886027359145562310280685507749012177781722336792216642835916874847173353806699621573230399596606451041721987891722335996725028245868169782793728473823460717577964006287794627842837999360178980773852882316659705614655122040251031300694093381943052827769136541861534784318261518826396129609338291748822908145234534074636951487772790420766051860237660941671457232577422855040188153874640418841182668579190676944897026230162066061602898375603830528521574829615613465115801754848015970366559589319216551589585434171782665975877171548288941628675495919945937257900843967992969857221281777639201293107407076099620375308420279126872714863964155830228275265130526987619224969988792391291901048084713780790069461019039560983225503619827704645900878048206079918436948665096070045652347706926613820032979438565616207244711492898549972393698788034962187218556268610662151442624785702756263716231018300751134112688557747831290643367786548293681522960725649627157195343514329894917645401439309868798885233370708605210986275337327560938740739947361494378593338008577969714145805045850962065976313159968333842328753628399948760292769258871719663259969265060322859630991688523123047366530124796617003195024861574323489720887571939105291386657717957103784611100042966024904875193275598678113248483801114858459044001404404840667639361384965390140072972747283082722915118436028751429623903540853497962946044419294580217102852089035700536351731939057647374519694895823381786567797095740718624583466897546450453555719346868507838379530683865078043025348313597092643456801450758455656418466326157323873478280092841883553608578302109315264968920699586071786271538613887626122532519652330748672032557459928287416806210862340140604553803018770826119154281588602294082196494513570349489172910515579860146134232492275893864822522242660582630592811892771394591230611948923785154258182717553798666541392138190145644445188157695846369719245167433968070168393020384653618345201739649323518071126287308568946604737596119380836446727072643998438605301766181505176039621194333510031392040600563474363625606900397364849571483864646347827223852249175859910205543113350515466243714643130012242391775973675211795650025791661342213301178571352901744619300471525261426000755826883478392204565034911216429492461646186967104353019978840314142689772587925219276575335332458357582224733174923536382712438364671415298634454047567300019630450908951439505928941387154148146584587488448389520877204409560060312472927482254350433773471501662853654159445215753552448711025238904506500704452429571467295033879889065688743060894222173989137350672847234073202613247901241178102304559143486827022389309029328539910976233688759946137893632694558470106917941628821366102066162459037720245386043788115669599575777323175163117484055567034765031246828607413599470309516727312907033462745793132681899551540281784338695676031758123762735027351598593813503077656143614800073745843639750250128974835092972492733092077741792925643719126471091653304818092769286449507673950929423661854369214491535498228941221225488519861213392584865420080379205753734727755822394768822411275833527100515679444645293063071437366185999027421871869778771879717745646001794133743845848164538047924494381788533977525584516735516556245649780999051225008830812625491296300609318216244019452562412652672863860741577916615782251441516344336792798826484212074023509310030627360704685207599243717124941517296220628889421902008584203632821773048091323766948720998377656690558042585058188894963383925020041015988331738801686895394980858020692489627471282224726859435740508656535913482437717206289438453145005710281423219088851651534439470815638154459478137860978451224010831031013296018958200931745099938395262311489962849512637157065534609049866689939568058676981825020853602855515727966937985016122525184929691878564385146419736974845320724064565729333799972150045818609518555767478853560225249429135553318619955786226488647104593360305426388726271082217807788590788374594007876186462805074079259912003270847844726336828230285464822851636827888417557832003239282441029001398927644921880641011651390924725377157750056935842136306449238925734864462187295264016089169135271462166539735360818848864703047588299401705941397876222885445704242000792823886326539281270537040144993502195754017414372470404715167622387527473485385219747650738955319897350048220669361221783202999726951790961984047581316167906381029142831918706263764060975363210004809811080498897645072936509423238127617997347141509391797982962959560264837796652037920621682028534875250161873510792946687899654255197772932354589432257063852623604504817682443454456976449275647786817420991527702353182593270237169813967137393106532027494091801693936938541057294221113663466784330528619383095405726021039634893730664414893849122899338622648299280316109080177840684804077099347111548323362657262547239872411334992188625264566865189085429178394069383622334422540368652453459479694710930560324664382992816332791114116576267613780745509169956554871859221381889904066858360565437265261485514229247991336328009136885659090861661594308803844278734271154160955174095481545131593459968685818023238804358239543958530845450789945424096780791618674587404153500941443995653447760329886962997638311593702775938065665669519737488299278167273716386393882854702608618811048033794652628810588684250906387415928712164099367856340319850637076696431369204823069145489934722673402611464053181997947630857059210089934292891491617815831400595829856900002729380882264578452036106336543403591670949246701755799813243389009409309397884087893643660024584359208094622038517694320678856363839603550637803547440992687295991517615489696389661983683066626368519905085386760057160728223826210589384663484751941845716880834339611937047556266441419574694191978047261771087203482803411426804745684144924072780552401390298294602991708869111085005739468405043049265820868685865769301252647193821660170569595986093096310414091035368779176048968654290572539462270451783037405900154574625569245314271898837418399573965245152382591083414898528399541257097714699040383343287950654760334315699079307159521162910477416945604303772999283967205832491919874473128925264505408921242323368918408211939213366099149636322295753383227540145702366427766731932818542447816247652083681548517620860512370127622937579329865920531519265526297775820310660144209218208965776297012864941821265822890089353737033450270932993386962350869269249592165369073231145328210253353792785044153479448596862028073537173002836942213403885127370041780616961833156454397106900031455497167632906611993159222771571581808953682848848006866161999610881387382201070217431149754230735622765789313864684516338550213538830676567706771872852560503722881862762022784175067108678044732197914298817857888113878688871859912126680223030155352996692981269420052592948879072905872103662610631494511960292368461159040058287284124610338885939443811892594214858754865320300380328013289124114394770439623439247231319377744546931673600603762224234947580849911832483873285751971344859762418080117943815602616054797204076402287596259103783793999182777025844511799120406276216693258764766309631667079672212351702144771895134131511865147880412298557148624239586958804417501838925380329913867847695898929369814651580150039287739852040656859787681016549228526801396271857736771729716186911387723579661372875114731935828539508335824010935849670336143350011566435079674984990779743522197771184243867109570540995843246807943712009442751306077222405540854879691427961444280809318991592506683105342061461066850734448000377851210943648749474180498574819984782880568108707959701876052125335304230386277275703009159021172254424175586837460394866890682926495289022138035595006657514630116635890699340586147255896734727222525320969494036564444501026492310863100122155091442191522552442519904783843132191561521774032504968877154944245916988173751125554447309007713366600987416420087436931181324909333625599361239710381511400612668243441375045324813613806593535200327174439510752757031741019316711562719525181554057985870934364343077712179816954400955388082245554716239699871512718821223262974403498438817336399268331103532267723463832053627423365035479837502794127047414701399324136134794767610356098273064856464952159789286211487120967742459332200599904729366393570755736393532341761294054992177315633807431507631518882777183552412316729264583742526353210172908456069620091512305633447744583234274311107702218232838872971966745806913937827415691425463510344543884108984496601152917617395413274002931962587936041854639205726323937363702221352449078880849140640481902397712234650639527502854193045068702418765119234626017256532956787547859219761216628587214984075137962221776530191137898019408859436616382727490832756182271135146695740346559258233269244900391513178122769194935645194413138456796139611043494811651861733450717472878516498535582710291476003638610739489491610597633059036546823287025051975490241675472180195776671636756690753160669850519747234954846107860005273466936757934439730995763426674816516450618824810047337468690849797036555357382087877135063900316659535482128517907041550391977729898081811251734079478005428917803671215044051875520711508193991166358616459730650314562982535364448969357204049853518573976985450610714585021620944308949356313960340554607853895884238356348067198680443397382900645679697008878173271646717591792131671176577132715584350614222384264553803159577756041292279459911203808094584287662642608450373854997939177767757214642176683933390194078893462095470554225017065213482482439812987160262575914974581415391257252908505692981711222034378089766916506763204576983527328011863921240017612474197947386709862925480038256533899694024647704287731657464946480644177882689044422942075080101160099138599081794832439785499310229801296030688678217649629244963578000560704073296502683813724675094874262775971208748409434690616193163726829290351979834251664149098580184273354434129856615697307130988848944035373130264050570316163969780355323020913512813817431194642209374862727054161059172683757519294086493179689682832064867822806060503280369537720793371774024159268327837581588612245167239131469392966920755846755033352467877229462134103708978065156549832730511419026741363550087534576471769884960860741801917946845380957969773059268612133541207322703222179191429788171143602320072070274606400700880795958794248818181310601967911464642738719635873997549438371709563759836307056901392127261981946403180529596201492755099286535660478855435321240157958559520285776537219048952358685882346600059632810844396455226267541749501945408449026480058547542852731078482086851400528641530449098738503021871002271759588204834520533667483298916787191532640657414795575766941600436267876670896485497248172641548004608842063358141135560444160333373031691559618385845931743548706970500648042861109083011103716588002767878234084603406856658281349810900498814637846014131697097155959843290943334097706591332322447476122587576793910481936892163045285888984637797504327124136604264771280911665213226746851866479651752254552248918825266429130369523201389519700104983180855412006309396684535751977858951440702848574427311860664023648073562722939724243942150505629195619440440437236350435497745880307323472683132090821961566635154515829141084262167483782478296543303853981884757755726089348827784555977540173664058726078879126096111546254473362529208793787686486249927545510173510230699439813098183784093719910902016124856775706328917442229849165571853921234067125099458458782712711673289181583637185900219155824004701277897697477292732929989989232062544881402128252506387118912870979874801971004893831783281174283166220842560768220512631585964837081461866468909825713565920566667976592560281996642925504584054701266749855412841358077496128378712946110087600235718429317767433733034530984139957430779019213975888810130790750177979189868235890659571839378329088877304437593488929871779241598216391541791543431056698959473625877539200759193665777964114807950189785007168238909547658699781779627616408440863176896994462513535508969546819119157853386946189462933718073894324246932251074646518498453065976281445577088520210157392515664012649667951890184568517562969983272414416327994478869677211178786489841501945550752609598500628396476922029180353375228559960705229043452726088321094840018797704216538447821074092483644928081319994808229721052687364315576234273235049553249873012487456396973731776257443755664641079520043115016674697901213827509150185520647969324219701044368709082450984398997854128904905408320942981184269317392977086379092915713710360236772307801921892229230914594036287166074455308558606958964521301551478579396939732676402735145749650933008445397828238149220974504610446868429666317299677403151118168593384467811339300197860823321728741611801890396643795995066588925837486893432176243246581502936815997252975077336930215812661320964194710178910469079048194924662793135390621117130113163172455512570044944352509869584253379196848603802303150789953970809141149374906152867275726619878389928731909066165345527242064553144163284949144836686102423806747322123541623007523591899264524390884193046852772580739647646999796790584449651347376204678111509948516074533258734111456319149101211735797187731468716373087048151424471061241063477735585466499289749403055826419333846997167517743734473979731665505534223105374265314752772153560762707628812083758855321323710907411903570079965649120515022544256319073575584673755813316185648640397559383587788840357769893262390696175152001138230697907428878927593078965229723194728188467598349054534680320290340276695303178776990485319477274404066836994451962464062154233598486387446824075090361487413078906308808079674039445539680463343158030424211543115046127926280959074867640712877408553164040758178249555006942428801157637834882866701963221102132644233293288943925076446121415729534168108135962600868073235850813564984896002168258117597434623470439999767755260743371308010814274698685715613139993626391626625446777977718829250318470637893435161097356003046032112585589787079713549026531056388366529727203919222937234622539555531186242925321548882333848975761745122139247555455891057232034239413144016387614551314975048914839408451739564156717802838919959395613395532055240383814190244725292425944034307386922239284011479201017136297047522471201014322675845808808157124629118464225911980013316976239250679096401053908175427428790769919391613316966943631326460821846295511341786055896388767727982360678352615204435475309911935369240056173113920754423184096628550235751033926670888912626440794772519614539280126016763012148572917270917894677161446814760520540794053808453451505850309396264889634034942374588245208072334426513577085217577259942214141545990760881969833654420316629011915784870713749090189476861753548472468032087093161454945652695349044675771302849010169282311184651476778281854979735507522077556414487811523451891190368932021735814460222818605851144306800736406003413559858936337027731472567750575607269309621068365580859860336116810831373001355254814906792908382048301808803516907273792324769351135866967276866783221701687977230148831265048462342249887124759912988887119432012951418489468761038649368305541706860324500818234159938415023282118794151704082228173166558451634533235680947894978182973289527153522057535153718654876434854607886237626209035471680884490698081395812905120030623492317697405382978640654013045261172313458534491772888591792600301004564810917602952802065121311586353820549772879409181365107230781007608399881732934747332265889741855909160598699083530786198150632880956094540414795390423122811048078511044478666701609888206013451502587821268635483016454694260365580108492065961624798374361314834755535298058172170414881801121691366765252823729010494533146054813435817210380959139575218727110812045183213264731364852828111425862758399105859752245431988559575896028344249309333688406667932141998596686069912249152317032099273917618488635551002616550915380947780383080272905029919097621173293754119098860894164966392878567661460650801093369306807674521686073121103996803622566229722022953968489746558292303877645743288781720584127374078496797252429102477049743253873105202815869016382034360663190899502684210294505448926911367537583852777207932626991474841252269218676765044132655416379540720881063802217073435634444708964172049048920677669131445274011301734377289173929887984004246754343354737427849763835284842614752785335840774699432424885015520075582992828758292118197894855898552346701933492983334652959260199937454303599087233414096217346406169019515128806217872322857080385187826586786098843948907433693474441696903106168432352891527908318286106859836917300795544265887781261493644526461945152953118600474018736049996043124744561813999472012805772406297917453448505552375712238895939371435096847322127499926912857560773845468174619737317512655430658842522973814120522441136740794623403079856125195557979419649135033661041511547804571848739918991635466246465518767448538515794527429210786190808452997645882263863585230868932112784040165922469942308544427651436451506946660878005947563292439649962826257222842160975080995599790560645098817505039983816000224866946060461454622119307705778177801516067742188794140268724180175423595958959580114034914479453397944263725061029646802754792869026239848953173571738087814277428806873889438188091143709934235172509243305016039748939221819434606286968507957697506597590019200887122918513415139187731611468946992752338123996451801266802456752102216148715060942606335062955772993066833222652919665536765607785779495023154374189026832452615543494998496390808376393104752131926943252077391907715369129959516841896834364653222002839568676295770900196459458055851404377802830554158680418135253394915711749577969723392195665591974060619046174074666091338977207316436507145863656137570587743304839888600640177505056949529009779733870217355051967580027025379513956637578022973160678390974141634148323786873041824587206854775321667127704247097612328505010476305401794019599496532711063081046018780682572501071528208353442301360538150005413176660265776001442432738961416875373923813813776132218105012482704132093915375196944040372652497491842770367655998956260445030964005885557809120673742734282506678928043975487959914148890557641823898184057165167274817036529106189278009237380660893669996949816069620188813056830973953692279675940346838937239446450307403516999093948150884843995277162865088127246194489263948648642866867543424143849797447529673660551662550136498250840817462823561404928136271732473872871374856786911211574472313652548009420247701817162772815643512581543392859931941874205957716325726787038460403351080936811764997938512170878128686106442127148918226594742202206859774712283474934858538323686908853664411919327850129659251900096073735448235381392437262186207270811026562716648934348032261324417538331995648049369502998255125113204578463285574660919402975723080781952956597057776073391539989099872191815092627473260501950849659596504288964631990278492906810452654270153008002997507521289522384874136507349488271750954106393258594789492345870795305495137502467603154921096588102854490959187267913345079605689564811274195792545815090525253695873597860452371179216832351120008179630144718380617032891478882879984113183747519930279563696416312644820578898058283254573461773754283810465447900817431064714351492207407213734898767504579342734917299955855441093825561096806623327277905825163054707919119459689972939211372632524277505068065611619668898286518020837727445142657821959225839516685745193043613956513673768287630980588075120890714733925880864706493929878028332677101882056667118175248089928415214341057479256732080685613786893707954499557990750437314057871994501925353955458951401088853055901979948453714565447770129532519178454062362610330862183263069973708725023605798855247031250314775054656631522297707068406401790536056871339516720576100701930689956567519537254543371510632298835444965871261639620488826902323074235942152102347578644229828927347166633121953980430086473168340792403353048878292374409730169334670312785642285356891342704784169455745070637952787944160806239468423400102086501498585314454684727217238570237513708375412152382296237072681373993773927409398350819299671316885018668795621925259329888461112444167062509472652836253752346006074837251420540528631082046108384837580594536947404122050456403958000485762984930023999942846686190095074794188290656280420298751852226238000846521079270497999453872008714219397376845710467191037972465134509938062788852658881977767622130466905385275831815465010491180793065685576800006814545810151005904738757661320577199291443187358416665947014301710904659424858736573724126894599296273385177812008243117622975568935647748384206543059382264852258597574956788451289530084509039029801175398829201080431328939410599101355602499609415632178415109401942128057840109469525361610870023036889629070437622087294836783313137147373735118654419070352894877136906717517521714474851366681770235758648353005736992807882168312647297487460812292074929948368955845175839384723509686814826655984856852041183481068729994316713284034650550104960169742440274159113418599996478137057131062080846811211602738471864814474521324731438418000016967139720888930754426746671516762127957070177871906409707542680749770178944075034048196295065889142390964566075590902555823316181980116337004207901963299436564758144341726726983301370535937888751931576129759314341723946423534314894302542019467641606051044128162070926688698359567142913029902213936798690696151909791017956099582325942371871155983364879908195378288544001585598910023193328318948552315819725463620860661184908327649442678964532426743467932916217698406538375292034886815917416647780771160701051710667989828314660837882243555315908398424641106549265660574972522513909459396492992932647309547073328363630432006742155710604426485827104503896073469507497146344477348340334899253644930927340647690842812856903590238987361485707754198933618749176922621052042011019316032878384380775357279354561182559118555235601691782681160349602067744278475904780924441105863774398009415180557935729787506037111344504395644293077909437000810162248242171189621649525033919378807364163421082265522456582276259479626652128115174484165237841798700344388332505561983215505221119551102330051470156597716677191808273609561388591785553659008174835326887010109769121890478606413215154077189075570705634409901497558608109798993331918098042222240398194020578803762882433984723733562372082239624099530811212757197979520087009552473323212739916518113529190839013264256787648204740381785412886856970412932635144112191513920104237635131066572482197366415109883741068879599248972155312618805765054960500753154158361342125490842928546832202867538492166736040374967802902367524296873195748742570832473174922327120782058592926585182512581108098853445978657525301375626486842015889180923540580322930755969735994756463182659555913931008750815833071137229454532844669941759637689677750979889411050605308036185125270999303735278219683477203846055134248964181254200473681383428608652236861252714793309725480067282397693115469776091066250437874474528284293802427456930705110016826970331477319746072545403280956738100798594282368398413029994123297456234728154586581451862514982801244313432676026966360461039856021878424823388681027297474489276002831857805497722789365722349557050954095040614274028217537148723324399967288109890784951458807984199497236717499781861411005431410943474735553702600015030200474677686900329004694469763694538135676587995641022219950383804381506987448288827577158403041592098829644230021924311356866041022267092856607666593379220532365067886187393227176705716800147723280286251937422914729272962271743613667857277045755505402671008328818333185879972989601776930827715511535639142595490474381860439906020152247532939538658956621463821045281224745970379651104364168706688437263457544653840701058143225848615580097355210750317083959238708714360536674999516168489505155362564902439135961355861673223103727849573875001976226201654960477453314984120140570711803022732120765952685230119447981325411486509288496905131226607129082077997933628854576260079416229112504556516012904137249904233309939843778141445998552984236672843383101257087662920656536446413277997782971167097058884939562849997313632996090729396148322007713467504773261169329537770879666396676509528072303321968513733384521244565571119039994119682937143101142081276582041402292037240317541074920943051626067563212237530760313323430222539263137799720620743322472073586171408611941681141054103740277272860027013512641157213491267614430246186429939265937515769337860150810459312657071023797799519285686005347256494699107287413682688355865185932453677460031791578526841137882778063983207112932212205903169679106569381323012240199132505804274026958198376748912010646526884697335485248083507527007353550335415033798010284481769753973507768105614581450038632821791349125594228108066810831369696756962345735121395634119232220948902782763413069033967572652073457117402926424442185594246973459360477748098102970055221930066451974132363823336599149935422504884801345839832331611348577690335248187541165766057239812866821915155075694246700341481804355529467749189466101120276568273881639143959722395453556874435656204570734969969330281981153074077219565564095017106284287456098384618822284545167754602630125332252800449011324601491588645647360809907079811495447620666872425210103862623714407417730971703688624416422153031451577496474233081562263378564861390974231024543012609070023373156077861897432205498060027634370800749450878486279520077362107013485161429752360188382577692582459505734527192829272392549525285888566127596027034390694279065514675111084197243776235443629525622248866565407923083617620498184577844502462641927045272733946740434707072663761480677604081041635404073563771932350874888707724695861359220074890882526815701604593050453697568947103091147780361155451040050798293835397065548515799813542527603464775138760904066645275808905767044402382951983922898627015056624621434067251946450756955312244647752938946937456321065252471099807865328149720142220977205716048714938704789694485243954163553579945026711764447440640739241703176231890826451458640300025675018398525305552554453874962584054740230707010435886340765238091941617643147958908187155717613682950749541715835680967031957995307182313935629116813467412612004483497365242644253039040591986577853258927639140922047772871390121434211214483195546790220597318502349757715202795765834546184898987609466397370765898051345829582817024917147413594735164345174223074638900833236457022498344193968683364987038471414482783516047440489309897396424839569227113557963135920669951274182634662403693207398150081406864497819819399259499440769103947159043582524869915990392824158407165171680325887148462387936446103680744912489499472770482741033287050361130562209084837127909396585533981925548694679965919810228440152585228186355066995542662477414271097894528049464212126780962185468094462220145543518408332963317743773220077334125678191303603366767005810550327091800201118546899036758799096391112149266733801814391325086624486456045748188650433524746952470088094143648826963667014536960807333974275427388553943906665905212828427854456856625711028620257305561258731139428651139761549728887730734767791444207432274772958765338489753403264250980857502806678989318020073937861597475881336487305121437450809708377549328973130861793295164142236487383625527102109972241548950533620457645429000277917842842759137926343607085953841031745110046776090589521091807624836846368082597197157958979336833713209667301661021797839628635559660877147672179583203121354371956621944691575477626857309528970190412655812945273735698629493869182081557583193942495556984215707414115763939178879668875186352526925423563295552382635603991124543045958604521124735848070379303333733471435252691467438839731891005759221712751084539981615663274611425367822780289049256137610039653000694320925197271928579847092743150630020022113670080629679106342332282176698419524303386587027138301764424120734099028722814634189204123295734241569140588411968936483528711893204749737732267086828223205342821393833333953637196982668886493731970838904338563502258521333025014165793922565839216011889471079285502642896227876694286883974656326213805291416955663067288902521489837367635136600134387935782270948719501416053212485333799326911240700558066446754326678706402430434730595157709864817146909094744521506698503409175007413935296274066219028188924312948896353656810734253321734231542884466534616179917751737818635054969227646029528219608755901820193612905978545980298483594637890140612295328413329791083963236186091944110397375032126658610980472082027369381854121358824688216901242523320214854596756638842082133607031956508547951144293915505834569837333097484813895359065265651594981919755131762473422567738008650031803292907267857629514818454655779268934740000466022036861512217788112668535180891244411776299535538533832259749195575341236232712858299897081908004260316620494853037821841510448589529277692973315705205807184241636429047514249314206377494561508996347391018069275608595694302853274119425924396688030032370462005620842007246514450342392924201621418530292419615120998196560618848200405108764012488355081712570754735716181968505073309369121682039305125891271334637740814133135606307126923761704904335981430328036218454894503548401604876432190533887599794030420193333008963692860944557857177838618010597312104800777429483763389088361314143426678787139395098678972946007705714816579273118077473538947822503939544857325387859657433044901270471892045676604190194370164046804332573114530909526199118623281039035336801308875561203274226242924969138819143210963942229807396624245773515108413693098506823119115869162908073377397582465652711164601364391539973072686390118686125425124662092566253517236569496892494670113083904929550681356363182233201610043366653616019706101774200643976438628198554828976586382159354376335829647094208616704717614532065339412125109075770839638612454644554897077027489904013262582909748446959337516871524576782229560164540111931979834299358649053537683230561552678035813587471424765032754841893452897082330552225606736914987122043021962680926831619439756151848828254116867571346981784880960476681116082280423366855580933139497363349309741618340391942808485805714899263407211730809522987776388407192451995608553972055969518787056925782556615851247434770959765400959734221028839733642841349489734381923256624949672740909903182350599010239098371931005510466324548733055354772345432894693676342455557590302397768342079887962627581877044166579388961167871473404337817097939965945705685809263352242460184084826924990918449772794193334872972517074686756446197350145337763348556825441715848686024218491056526407993237114144899108683630599059622277850640030874802588819727962596361934064182852066243046675296419792079009891459547600434325748767201909970798188709607880999458344847947756141659636979777603131406875798354964512172617295372229843314954641802066633510921337336800099274333064466242570976772647398254171942930520013766481282309725571645718961193078737833307818847855660060060588248785460074473102956476308734352418179793325028914129085259226926519608250928777276848335429829596243828213699961649697001165058925930101034952440943330650793585471684386323212183798229607055138874687478518135516876668208949856357911733252039934508391128690324277159605911977476463476030688882174609493090301029425479704127354718025396661090590648445125778234066776315033561239946702393979081582931097254030229548553225067662134619765319590131695448291525840177896918294909548921568851760590500031544354810550885002427193909834379791396754969375700943938628303388731448347538760476983412545959717165210104404079443001905027731382476003182647283688954126375245788049094824392508876272079476296030087937132311614945105309771758829174672586196686719856274990101209501036859283795039153083940780160869754297503752380136909977991112841431803421339595818671975000980546105615909956415042830051206820106458294372480818217651877024922887847513839810035523503972678738084141308326757863766868312395899164564432628117574344869025434930056331068330581374535744526583021421830703074812278551723237804407266445337633638599288572933864099284914851083162240088396075098821201537452731865165144979524523305630867373023226604469836804494103928019599673810542394142154147342627454648081136019786000339979889292250372914823654483496617422511591599587308450603003797929085759070175545039169250034753612089306161900349598898756397221966276967090913930580079678613520410029747549620249163486125272200225256083051392932995306749214388193500905271330433339646722473423644064439969803932902850037604427526688977599589221153944361935200508413647849027334935297503627813966212665825202405650034361811405897110840283690101191426469966137724951343242904048205890512593455308547155367347223806427376980751748834484280579526851545027132240167717320159200168451105357282714528203286893225026645272763612822053326676812330114373447959359410622996672676127751827599477706827377209041052062333761692114894111835387866340478713200615938159860999921395549549344535305460883845081971964386183097913055286855887018248416527756060165266873713532073835806237657830135363756074350060461860388268084450160106944717283058970184273569388507008721703007165537803001255185414606916044829144253131482757479612614493799692750306252420811151600909163041925233534087852251252636351050764986247549347650502761861956125539742578925402700958230771997113579254155219580995604004425975919463753246736419918413367103648005414838819605628095378032400947409470223855560399145747150135509511508296768318431208308185253692555245681686839299112903926288472934025025000930365536377753306884799969871466541684689614036693031321071821774372930747647030692520084664421350992308455796326401149693834963972085643298142642079252592271011878881146346715472014377428222682853571491660355435543748428141445499624269550165540717099939815210442981721188896665780596079843503606844551397504704835537267312709273152729097413887707009879357536432812219062918450535443776950700766591076423213605915113939038657874881439242916935710448671530373633076998343971605683444721428803922287475170884790665321429198975129129959950292678449082381826235602826781888194257272815645202851025328796795500932767034396574026863119399930484711965116219887107266445091926360091020898496525797059376248735007756069600509289732101296128881169063837224065819198210874934263373567217802454802964953864915910445061559181130009595814060849123260376222898159107483813259477671538390991790915503211412988700259768349019571215973402191741666558118890763663415342238433331177748454116383107611206627699242243516878669883218966238998046323064910140385170338109767313256569616936194316507691172840717339416186532438524574264309425651472626908593789764347416517519175175175168145096252601300769031925864990407588019321223444455132750783672892713755227597122319741219990504901335812616868124114492170901161661941229525817970245345420010450056253007567149392307638745631036291856333763526361691221919911422113899254379518387716823411419797034534429725800370280741066972780655824020077847122708034068782895841256053333072653448262258620910111946816096893327034269493047452673458633745596895117785440949481656300268248150415343881231455987996712120698219676124669208225427899735375368351261890543921950917969586914756544775195608480414150444596214026247313082477998637475239897888759020319022515506050850885712571100500800023166390552909849993889898521346048114180010877057041861980253320925548490465332106581804097297834012233678950425742414707766854407815339007379580894554016895166260093254475219558919686402057763941084220263218418930382579952929352276661704388356277037464018504222791475889760377955507836101109565373442663861348944950571750390817628132468072770440119526515460972392553654846340101495190942917117829810654932518945310482238572719914338567286895409069632421305773254391256819360710076239801056445522158887987147072964370581887847133207204386758054385600874065589152500165904905229822803391564533095864074424366357350634477778135487667988424733576686567694636784288732442357200704041693088458277593502899374660177120235982971894353130843496843909065078393776027442039564367936566860117415061342840070155399629249509417971009406046001748187168077031929664861911328001874951813988131083572514848010771436681176196433080451178435280497782058907535987577370471210143171680577858668336230899064480587085119503729017605416873942517383733787881829735089099367743676916160385954921881567544407770823976959286272246245881775322911846857225612870899883178134225271339159887893854111008312847959633363537476906346435471148459202419088553141277407631385560556980595993292485907189056224258229217451392351357685946557419696429846166571013166238397368172606909133050431067966968159596108286367576479626580820561989388159352925567960532364266443726212943554276696998704625706034283776631073167437289532234182000420472697188160440524540531479091626087813498252228009043937854623691119251011420068068277011512019113503496131511970693441621439419935619165274894381251803554621479400907947037101501368232677024805391888377536785680399116713084933044850940066091526994624861214250226437109302470893121904497272416627992418354028606873098932506400630811308019087601619574799210595662363642344009216390051801096338699096943961786876145669018801797239389538925070392798185071819855096626756910001850783456235044971948084694906145981267993377545213489009419028803058902388296928642462516991044772817294918134587037207499136351802645518462975797355945982989141591781837624158225487023230567098067359579662177986716747546435752536403001087643701349238001598846616519184419902508428139252355677440188687984327462361459466839255111532048903325040577647131342476833906236196232025898389939737919114448404407709372050809310493224228608315849541340185544429520076478323200000090427513654124376704125735139557002831122860619059526362602959716868978968191627300208721066218159541449837493999908020241777842869595305611617346981663386082377973471197289835750942442950163211220083626978463873393075500609286160250379779788144240780790217005635436467517306529896957855011555278615563503404454924214210039693793992316389910562766947765128200660147387486829215098804511257316268570988036151676654086505191068343916745559997480237132500716398573858738295507851676086233672655156193198615304220537059962595700808394442279150929327006336988574865755085503609259534488953031485281611008732751735908814352799068528877610585326710576249637690172716382355559339813198478944029781406072918780802573012290047115299121435377879072823089150137464871127016899161652493337399742539497330959469682566136397253298633674743739881861382130549440223072877407939970385472149133692241304402880058373761545200429615675200975368616747715545812580327686830845453642069775720114170987339491467689574730688640433181307185182338064117584029125941483203230575408088522733820549935193191436727507478956551906626590770105504049737524292354331822106514352397745354301767767496657526328077239224625049533645038126485189666183224259541331916746269834070491772282485367800163353549454315996884971001845219942239829186807808873322986775641751164771449506359425482743827461639492468139100236189931751776042533493256887524785670101602531942767852141932696645520785589000801077641948253056233852365707559863493450207516644544501292763376947489795729575092552663207488288897480237649466260062490378410845127168426391654720784137868064430294149549167555596043235640400891106701356674580930696486420201271947418178765663331194148267431113679089571721763311985338360020358803583040364676945995069376464679065027725317691167733823575670422334865645231894731742783989564555496891793386931275253547131571245189644105828605830575332929946782163371695538591608123716379759090913997594020339350182862557350845229049273423753469042245169619915346543455371212055526499047788648934020632950710866968940932535450845028205531377976026375051067522386770158369669268036429581520993973064223102377344960507865719194341927435173691690814389757657288919686048153589931077044342155993042581045362406928795685171806292281390335290194490493421446798853276897938065094563102391339113432747379412282472157972847854826384193303866897302009985363490188111854248020840408430499633914382529552143294338431648058834555373985432712415715646140709294607337859506163998381217958883144487794723175695888946981336081527092349355013170461710230756884271416462734322167282636477584533971009166235585966489731079153215560540165801196501442773089673982692089283068529051436238882164185422187530289495965694299973632539983360846541058846487661494054263364534034280332978499357020598689595828715690449452369192655987855319626313841123497709848041088232667858392871165620215643354485233901235201580113622498324094724049965315753827291205835979158199526791789715300378871811041404702453018097325328690191772301580290600062962883906408109344241827197458067267041632593569627576059950233053126055976245560396397210077707056993179174987524342271634173717341975755764429857288465948364824799369443949674077644141442753072954202702714903881505918809614223534681489403228798579954139305379835084391421273387064966147908067563969815313642231694293336257910188766357419885429310912888775725706549833791002656185340469307812131444234320973098140622691188780579177628606503303265003194640179431268279580196892365386341506392911992134249091858058773533122240035388706558868440793465250070577169634678686289802365769779251396384050842692388149331425923036431661584614647538422148543592340730062285159478462219421239102671407401742003487172965145891883542395507661512865680032446341190778597030558159014131207473103067716334011336452591721579144562805819985077403470632561326420519161899310623663656533992736250197175712531575785288268382762993952347113388758565930269474618942830243801473727364650690096144596484904507928982823039907272223288134921313544463727145462185223147884811003643464242219705925752372242987539437959576669291696426263272254914621350526684806605476124294573148128411189650945511703458618887311665990469427836105585303794996969712045833262168355332329387991727984692099555825668957132860078134866592731621334966053460902701310729834323879711810653607230824300166197216490666101328319101953453781613489752379948105199483914318029429028525009930556321588347860721811966977734713642340885300469344273685199327118282226091219403260836007963786953222869883785057579706428668086527724689816221912910974413188656946187397390046915025848688688387844781199157650048647479458104191435541899493523741644746742376943930888424565531928845327927247877040688673737860804583474305512257990926934012256406478585098139426973997757576977194719691813346799251157631561965904157058561960059880629751449058142766271977061126999351503452035878122936313106382787627229506610688979624282563376168559164860566374907583846966801049276781030683914202517740113396031768758762239853062906441873850655452790118646214563354768996133784221364505482192952956503054416731904083083981997678419077736996228834824911769683706369059155645391346822571310740264642609155903376298540057701748071588763642481010932906219001444906186577568637838456690841736870198494923054876270504738807629230355230931019205778422723976426628300576001452332184990567047502313677730923116590591231936961001209933762028739130622521741754188386261436587559144429377945639395730448383214662685508454947232990927028083191592120124384966869818611908287769651613664607151352145739015273727873409424904377471572113879801353986535906782714972286046070350909977131359611007623739756289747638936953386465192486528465711124839668162198031965840831945345298159937659595935309579202843075291339038312733698573323896597257098467121831045501732498518384081890963745853057675221253221878855351464233348516259437887705067242336112658242669777444870948699800278526892364925984356173193076132665974977604539459355178164908007630437263626134399419477065520532153179219327164198554413615512223695997854339749803620409384363054463085037517443714150944210790350521663395615716673814693697937864923920348382035023655267603144097928206453534921774475504742289753209137895659528878521763768490561954297013243245332514577281391643505536746213930630162351505696036680866616426189567015511794092434505296567363024977250777921581961864888828066493000134242065222595358537687039136160145527814176865272257403701985457178322709410979348293794989200034346244469635349735612025130250266400340929359720588775559190461462205857600435242272376438071710822885794210049534019278800081868603371334089215045909656745973581720420693080009408052309527287879118167503874701566475315385628467037512468440474068777860756396480240964593597179364096421706930521679849667756275016327720778975017102580886927152480563902961150506284584332614507532311490820715300040344358306614045229121012528026474621310604336966005333473526079182502948079761649207841509180762691023508076999740552266921908589850800970695242922042476766435971541134393249713267019840698346515920176399553698940923572812123930025951764714394706255711803178299470649084170089998261931651503342472718567122430570685484310267049404851640532880293062372682472882773755320139180735137069026479489582641203990463690274337940300608265780293826237018188095286044192506980772318446952122390659591049123317579551020267095571311851155744496249390218885607890495135673022903984391727635717792460984962138730392954995295381633005835024492818852743136126104229703165177149610147501234383758810945733093138070345882917609891484638968526060289954848584901211639123085926508140118675621731126873567329747261090078599377212771418691746987556698429464864098362893689796859020271685226707232441279063976380310612624384909956441565011757729149149793891259493619901105616275266416493799760271355560158923941468733934250619657777572910620563014486197765322449803177521030734024053691248545386356510630433427132012788864199302546856714234329095489345817081741331776428896219577679106305589320877189428533100163758307275386721310572420251526359938100279493084019777256112969148446559129488495704912424631888255761346127285712720477145175239787851257884456169715691268098773690368776495000516752983908373043512286115609007057291756426267452594731887109045492946812645546332473462246535849224012874043055790898655937294468279978621235296239343796146165024111901274257619685050619687551697502929316715849339626654321959318758231264922737530744634708278276109169389625768631993449671792027497504808077995651764838234999805352098706847725795098353069221184173605102623800876573761844055211403548976916328313331754590666996137587458625512145108761975063443958824038054956014528885021628691535971004995244628397839219558816144461476232673693199332831378057186587385614239388982226461249511505703606932115680736730093458108940336871541557953187813670681030680031013930936646504463814944153190951807196726397056172220927623215981549912778839770436501151916919402059726504958025205979871859783393035452519885106402036572791373199851092869650785236759984858654133252744038685961622081206153997871083964930647067975450994890428984564229088230018878975974417369703815314500807812890828261927531101590394164430576587888358015608565302197840547050979195128613730834229496880245086944698483254893429055740352197446669085145758020131289200301222462735425277116440513910701698347603823174509484185332245995763410525883687200263603655473110366128388360313500405420470816079345136491733558874636611438778003200684954783433617000026283193408295500235302373684427523087924448769140929813689703021589724565935578571975451145060986409026878496101641077640985659968774903672989157255499973589084847300323394944122367751629050554257640901443677186641090509963551827030768994804020643388586162649973464476450977364977110980389793591968240548771428154779676478426332835614342176141905433628976188633266179034026993623663972457534613907836206792749214064607051547034628837681770971989392922115227287249594927885114381276729261230702265790447837937391142350639381800068107161203222338170117732134913984293421481609633126472674337614765673540170812227665937428329027055628340661543337570870631453189353221135487985648095593694875294439989368681124203742726570628281947382130188995291209046187781910377193784362530346369413129506225521018802547644933409029550071931858638506539559721162634913346170897752700114515255090272208706447494956249995120694255036838633669509471817211823880001263157356131869890335584793302541141334284267358762642822385179860201899888958918426640479174081167365857481615268377017609024133638987424124668572106989067422993719856440552754600586334984271142525165647362639011131465516666659037389748963748009829309980086119204232477057874165221587944402439190572695768033250439512077504470552409465104814629047631472305809972436179927449156994546204474381089899160591898976817225893230828874718286929288169622640487707162662566606402547001781754269062243356279175268274845898902862321621237555269452754790971557359319166836873793748931288241512364362630398852207668792011841281739187901312365280522805983982581516321937262138255297743574616205038820845397652640549509774294360079472275609936890632058916240124285849236494180424581717202995085745539702611715629316500518737184462568480357691114137177977990979392250090626232254093219286521377403418506979531546526324246745734142027745484661447524389817923183785919422062060625044580203536568401665687651361350850286898858069955878325588828828743666956487483471960714066753130605384913934891744776505987063588882157714211321260141632217442586473805295425388708359307478476563915259756523852109907468711362092898653879361613052590935258152253410161840526837671023097376675287775244840266837074725894634194319262555590596507948226415360934585449652578624778105830353214976470596618891331881186302336709200349990443211969840983663796226044716948651504033897295159362061870678506925210987805695283845558531322300176017238859472141079962013161029522738509643424399847477866516739318514648786796102000636188216638560923832697721132399369029812285818119578517856526918324666639238355974730111591715541410771097076923522646671791439462692628129625743511532217118879437228320777647953972777834256590126750945479165685497396586841637873780952349550588542571061344410882327762388869429468074574157291455377628119770972399093682659747013572312959516274227287337855153880570032690312396071894823089901466753394628228267806981302936102145443405865756837123389736904022343516165294696673182622690887851808527599105863624237364401281172136877642438423259218003098003060170770450715131368067579757483834194598388990072038796240215538804145162157857803295547039100030239065905259043138638434157416154462449777051609162857809557776153758913288964575250441899737217212861364479126862833335090757188585066534380041694632039598775745788090118038610509732429411134310909611562095528975551039090665806136105116601578969562516975173077796057168747104472274055302305402018710217669150658794308859036391969999418666104382480080627360582244943373313688536986131807244979141627349144267524888050688245998949742930272698346567601111361169931068034846144417368316403571192029596161605397985008118409100682800220882754207831430316415049685400150614232868115391759447278975486736414733324869470358415782575374575413738496249906499999763207047387467774481593894414448304333229072532599949980309009363321532439922867498026866500386992983003171221199867456330690637049266098669756043585894948341600735170980062238460068941978643627758444808616185875425635637429822648088345111737862410879052242515806521841208100538913945629257300995738744234335322938956332282984505201178771017590440837293418195842044681516674045112337825935430164987077180425504746116518301778922471256813740127508990075654546624346810953682420498386398817552652735696470581547269591457871034221026378740189307644693279273785377157023468210076228755695327643113424985563755172696745209879060175475661126042459843656836932356285571788566602341171215489271160355891154862898111072108393172810203101461425931686371660151591980739691556171851810673048201417806540227639892183185204566047460367279109532674461262703516060353471813613781693079762833958528812635791595772262969579652115375289370822879766362848246114466429526698297845841385450304036716206317439722942528587923147571889402519506411462762792291721728780843534723659324383497707433180529428433346731708021086661453040777555993302807852459898011781915572994731313453586123992270798328476417259148537565077430566964393658255345721179241937016516179381658766838824529000489580896902897954109969976050152300158957326689272717430965232424086260096644660880268620423919623110887287200709719779097302018476156817933105372375631110889303093971667045420488337333941418548390822356877914845558972562531554116892484523067643261667996285578155405926690910768199887683253651662883661401092111678271658443545517542083843378667824288836753292887678680786687172483898734765701335052394806379169578073576936538130232724889228002023807834905219710692152912135198824860052687490367107114853303903847263838092077031745684219083435172736403744001707193223949872953021849697089551027977808490103756288674607180244823299950620291219496737527333425251741193991628070562957521610652817762720588100609095544507438344743826762536483954399691740005104623429140700096279671994122997258766975636894886307253341823686000779971851972513212611440642712265521818003591769503886454577045679214782582564642174677944985842728927991124005002574687005542437953471338020467457039399349199130283925663702143093024442430686473549502053289623395919220663877888721647907235183521626817494503458602823520313528981834550673205939632027728416793279873667337940951558739272247046382116286400460425049981248332274289113701325888829828815350786591021513560896574895336355126987535459978613340109503627160278043225051133843073424621262272619851054652004529688046095784571327244012962936379515074139610490657820368332872083675989779264085030680121078843189539901063164743290174246103215346466126499014863514467371821654955262907496945348413987142804608148867448492286179220339058347270060308361598550700102923708270571781452830341644475486086376217495098317236283145173937816560498207044429883276743449758223672802537184386891504171204943666382106953419217797716359877734301818968315388544807691459281976629609276766754423615817795986497460190018773613040280216162090892660582056372433393026985039186779551776823598603190289914034071850091195419274427896142536218531979706546495786431261430469790884023717371462795789428830185954643265717688629495516399136508232333421238722045676044383603482590639739560284283748273305550201471840494772223094189583494122504102640868719409345893699731957149647107463574356094928491462343804000936994265118538796121821173572633022016365997966305026021127986102208708549800548962787078801618518768088691331918065873259482982485536692580807510749693628017863840193197191928175488838097806956054428640942091733891692977395977461172853867024617534299814942910924208997348338432221847911044515467969013182906633977943387598275958392661245532617361062827984286514488482299888959632068939775578317357306779990803891626190308190333720826249680424822332674537588600925011778059811362812454211931902287865993201718294278540899337511447511704503291225918813054672656941113510066977992027419312309941286701134285092606654376089130658152236700016698150914318204292512115903113403908345006165592920443864662289468758437535287603012538846216908612937502634395332661028342344213056737507268816256712712121760606989301991667968330142629162573456303662405601400338209596824184320320912214478474228839254914724656929431984249972586321888084500807402973254329197448615163634279014446591605260143838509037984655575850843449769498719079573913489864977291239998430995979979383470244495646405319675970810774112243834800340627064503854116035335050423244944156651269084528246566005658535046604857482858432902666272534547817284457284626187281307499943143778176336277574266385843273665756864841648298155394855971494217387325775281146606584933319325333155632152827998025531110310735117845723166315184521444551494622647138208489492219500400705254629553105732249461426310876855267158151471006170957431908460568630550680703607048708858526940364957852069314687957816066960834194680855363192312141883244068834750628194019247922254961569687520123139109292173204482291046981532442285107028362025920128763747187095522919943324843104040340847967220925780189839477620561074995157218345333972996706515024966131365948274369708570839173206413342465555251377818964072298975294752562172024276085541887790098357829381941902255875661794259014719605444924616342645946897739088115420729850608973070036065491599867784135046829242218972441188308478588357070459671658727520595758413130792989012958612622853381276922732321601190835884288514684348678219832295839161162600380433608614094815725712813161295120359816681767030387705059586405870264206154076399739938825364212731531354615240800310926651868140488101564006678297561529749866316339549973195031446242045333326943065836030396614497527187159545328189596661095683257835411789118377785058847726519247205715587103957727472726487986500868980645024957831367752978229593783241774967677525199231965742432967267914604158122360915630131107297396328827081580742112242133317045252379210611906776503833573111912210969405013583642739529969499369176095299515870491569963042223546306837600803562116956402597621788397815893502048392464299436872808224994593911503802712710408124761362983241642490198687281182425040510030840434436853645938907712834863008850900819186162838978659752321029732487852155895475197360652103573183285315942519417775140891874857536099180389586730236848697103063211869093781811408790128406828758838700943721027077021140087661252942514720019169757206825646248833399046452207745667819598302482107002641581954462288461633347481782916307568175362924709660551024109330789677479487818179222363476431583607531687811185648576241153698422624350616011689270157153485791435892299297385025008927545312323086142033794281119857889797372009921670101855187768100220094035878104460345987601597548372496037498143935530159769356173088421974252123937544020287542729344276959934876367451922401924524930106356464698504882050218300660180481023513394851628495276993601355068366355610628790292225056319527108177492881325314121365168134279894706238676400313949387395167365647584389125089130433064929536376024557620308634393165944235545514116359687480456997532670414704608571866633724973449985837768878475642968413924261063780682194405009029149066339534012017534256182392545035040819506755090142446337314794677275593495408319867032677209588813766480013184494616415328823643137188107120967873132545703917421508406090034294814282817360746979550478716148296678537354964516815682893890234752502689870003212672701950908447815702074726463196210372482472822587434266369346379160009942223440775529454581315233980677448788266991409100014071655069273944865498426243477290273664556271535862413770638038501907234516912248378264035486517179267483322431518802895135407448978738244753276861648160580824954570873031661747858302564284500543173125315592183542525259514128221953479161066874826626808075203419877533621627861530763790510833242845405741500859542931602092353009559956243934170514442344709386038450577868650922296531220260999274395938895560052526609404213548091889150258010434196094508711699361713204745803471721371450334311973982497641285398383321473447601242236339145844724813338759261549475509663428016741777884280028975871617036374158589485368624125521349869301668683530624305209996896185224741395284369751991451578758766285994172673638741118588777267537133632341574352287930668833852682880889943563300653278808224394204641722148791767616899759881551396893989380049150482879382435620379560775946665716244693192515010825362339981355537731510420073043814295400746779776575778638119299434655367718435779609293178967954444518523858886078525865606283708996972303635888301402187921903365268585584403921221273089559865626191649482626794610989391673297836597173056783403917251628511220539992833550977965518577768306342900156118588954728017694404003175539164770168764570336239714508117531277643741508088679082929862499542908036568392191778106563603518278092269169873366168986540337474148505969748956237270449444933022715479678337575529311461215211017390714355671017061747863133522325233693465184111259752491729448206883628620971631910334376883396944889751916156656108430167848815907147932337838989935350935581548777469494289337410466941173014443580254259254664278023842067410928829330995149413843962698107819467338153443687185890109196196238426689369955691637815825673099493817676111240990940382164217977737319184614267649457153745652881094905720864747725708073384125801701358171056134101527172453667061382881106648426222567764076584954463022280379852598190146750206834480250795713287616591835734221820792373273884924381906719177132310962147885525645115689819919220026053809530728019758101447401541002864230341390888315455440004880658770737520789609721812595194129678375595115257142778874672623140713462290751191763025996043442531977356552206010029029509172792217726041654811399071433220200621886912507415213723181792451432901755519334841825112888721892035411264344376689078813463039132545306986115685236911615211916308887385302888076295050638005413555072001931751867086396271980590703971138779109072650652777203722006996620197735775626370093886493558296932209235264850775136780877603846313882145993492601565015354815426858393719159605725485299696723258797946282229122504044069542495117316652874859593774501454903576885581560214992627204855769286516200306131896035934767699881457463617466174402314303741150372805124219861529773450326874971187591179548598544076125436816124157913220024477181847864887132267974861877972350924577760932435959254649907271269686154060034053856629386144790440676445748815326206943789896952953772671964375051171522972967495533083306908375154203978147273674301101692666607223238853140972775522227014754930492499762974493936665475909309595421064000154796239211113203004194937206014416859067295995557952924607269261251402968799260465021633019124931523052859092529529275935371891433152032808025126721995455534845296776183117360617151837968921910585659136927695603534383292453757252991913166568010526842197015539433466601501192200204440976434193122411908189288330282635907763911956348376543386630822050758558685588783994991338338622653309778688451450571522217492976833861466988902042490218374038852391594164204592752809424353970874678359687994107104697587940263904885012900002798094331897818932041786279152566278408520417133628931279010793777871871150753647800054630103648258693845526937947288680812422421145431541163115465524992754621010776929070564300059041736820845122816502605152429457596667155624936989696106285965742143242064387493269243838082065612470329586686553527924123982868260316782004548868710981469906775733708944631692230930403896994402140657208934989609455862305028554869832394433730089548400526073826193291244028055934294333300366435984440981038231096853206685822112995122850401963490876374342521338878943395602246644444812739347106668853136429618962966102778649228233028833070889522136529421861540876754214340826907412325203628910467566024829072477816658239270637510802571844530622701707393134388419814964126948100756234034458871587570561815062319070312111951575869440978580493666177605191675963025962984576217399162959987470652427120554154669588718397576136105263693981525133914804787276314100206309593093124677478058383510069412966008738162635469793621098405039881608601631065018812953869538296904968924385282787731248170216338975187220946986639036685536860740113916604387092005340164991345845780659875345911245079127234321618240214524099699177507527802200922423036943876867299256724916506462663158192967820505440557606476284749523372495521903378029419181325707653089364325479990620508651272163888883208013512811502834081864358591544772466606842593107154032703431277029184896321200449957567879081856424050363132180045649255088211920451334216002783753387058098597026825375308520436587023982898295684613765366795466537691104061415029010181080850768376598627675180336291927042915625217055479873487846225540604029601205793739128179648192673953950081881666186975184375879132527962120180003771305363733012530413152856379654274463082136355017158683633634833053626556213989301032674365865934743269940813562629904393106915877334104217421337381544273892729363705655393604174385564655118575714950177953559837623105187720516416725636574820156709779512011763209237209455443785735394720550766636508018017661647536927844364866820727101939332732299458717504887996512947195428291564871113664559708156861101608649500379129796804818540475562468858261157767715391733520620501470873362441430182307455151386039121076767909263993814158623187593443301116421849702869615243590064035083548750598060648657908717137112109721654693382325564136430996822295356779271532468874659627336076154279976268630720889174635501367061527802748996665874558862736121880532701904601269232458765773066708206528938739162008184726714225888682091025363828214735468359302011243351920970784747247795934098269037903918557182868043001560235641384038333339874160107194439909460181891128886421767292351324820427968130742995638656509591343891936784734458444944105730942637639087587834639520448444262006077427815400162130551025369088463092306681666781492281544060231327596621929202045526923640383604125221184849199537795838498367609688388452770597218685565882058390508274461685428019282819245137480257247880790924813622744822672311693056716127901702273624019057611000795747650098201139056609796428509343126163266128714058583501373546908958068767303957127967762131481249404047072742834418302622175163411694515257874127276781320221962400753034558639223431717177740059182235137545310478838428128991412780496767099628142527015100231378219288503223824018072580343793257143593788601177841267094027933961768008059240029656457397011189128793765162714981277388442955829716517640546590745862997269250056208074688573078448155220590539698197724176141760305683132680703635038443043814576639256738225006075330115159119088811647735059094863944791925073188581370979362848714661807535795688953991198488262371046596543591159327501484826344318414428601527810524682336138921993504820530479693298256159305476185053610114390732891368469007959152933876398606473884899305075566114128667316549882749921934483527571365872298975203990219063421001839302742813455668705821520854351623140761128021402549759978132675138499630591931773645613313744833098215826063411165524770447358782442550882196017064099927280635889889700154427186622146768781139740821899990323118198503654809318446866216784240569865577348678667725293019986327506816330409805003392157862372896509053700680355900248710020775257317958746179790489641217866820450312952334875289029126283259683158845803745506655563788240636628271758433377622488438924524691556389225905944637574416101254641116295819690214471659680960613301643608684816586030077959389523538731885791353331376798097004870730915171956055369848204246096586657554356039691249982478360111781483356636485426022305198586305284703531076626205057029506763718356945041274966974985224715039417350307415487158923187945908776008446568337547677346347415869808141709157537300625066425639886239683380203430320161529622942945388126809586495811808359211559768416545835409360391797359851623283262156007121640978108575019135491120505085162622116912116013549540774511798930011394194451863415831167766240362248769546636458734744118865852916447699977982247339084069757198153372324998120614273713091736534397363289199019382200385659059470294307811104422549440437887120693358054334716269466893926757119887295838431927352221686172964110411836712462494413492560906770766618133899875967358164530323869547404677528153784647948863274748300868058078278123318127966195185874242864044610161646745547125218711286887462563466229885549420770766509276432182888192985843399566045924976931693536367894409082101771161642114176408509787140849007870674307985236292889635005501317838037780478967333639912915311901057140364156061196074094492151881991560692846892884202387066277277213355248753628917569219969075985022760390399276019714037458728453978981687173475767644725989665607024628383407307943523176150500638708508605916281969774321464362213982326435635163760491610823347783961382211160542679580793253866550894635188074230829449852941149303933451147772595278990812878319031149098919684216945679090347806818178373376754026707099139905391096340519612287433806985043137629667659287623316313253948719307707533972405812840499927998050378967287878055486904597533426003638019463086318740015573257910473592080235760180882550209705535207087055140596007382246211550068028533432258817174079971802725310186508586556345253056696173956225746409756379803781945557945523841538933212151945070501056918239025889675551399089868034221002098124449074781362565714604035805924015122764786334541523178932484169867479161534777384458177144700886283803061925044357006076419226960601055370259480987727046166565119635215535796923310029190460922708446012561434712355497965073029763991769749859539488146356404625057068164578517251663790504232452412059348802494262115712294135233368090322177515342917634708748333837245495659126882949102671726828305452272016086137950899268593356146151544478255482815740965126032495836356402127859734303503151419945921971056878129019021460371378874798237894601920195194283027465968126844364928912893175218419761878082446420854219977597403880631088389507832164783248805473267830089661019474864869742919803680199812367319629447298842635467088373973231791360835605207773185467986619606356406906873319565066820354312850175120545327142126192563276492037173131451102689121049845672252196095840266478016133952342439927134976889979756513788698177067470667979551781924266071344428127604199860810236668803966662535119695994979732283489124913475586117189363659246669792559317183466857256103398076526421760431830107954884036554708169812998398590835086969030577064462381411255484319140067765092820084005285178870844603079168670786655959444855819814836238410696130755539008121969740263551586277213062280967969707640453242088368133349193355407910310359241309422004615829380181414078392006026599521637352798826689805308116701047579473423918297625412180570212472040940984964684052896352287604674358387691596989725040433184426145103900352531367701251899642838331562066804341745966916897475195724028794766691730625512521762948334650505066262523803132956325588460815458107898364247647074402184977838695814999342260723858299069131612122189701933881798444841950921166896344066062404003451339258285465372949479387577194283596326964368142735483079266204102004142071445338187383659618041409250798290445614235368174523402375905109030738840234712673878692261267297925792877232988110696053770983617306111999328433978745947876936891746945829086871305446865641745225867877256691968873140963582519698295628394031955424459301580469963278305246311916148730274559850774498136747299012130504731635779382380290858055279397462646729420879026247144023821219338248815618467230962446504305427554995624836617524122478514558336514693592030698488416208713686824553758656202008218951088376922822395017006281161187802228318315010839173368913767721054292179083296374942475876007118283551449511750673121012258662785804812689701155936181920126803105188165030422496062915524063621818183361844229294479531679456118479516443588828204305403384537164225820001918081194491249383076101603236107375356870091754061490460152789417479340252092954608505947061006918159114089623609158473692880743373780559304646412649844723883848365140937892037527390319911355841026414244667537686764211143569722153348733769766546666899079314565491020670391505606529447478072046506497434524992668577792713024604198392946226628817015263176416520624638845016343978372863954922073036074210249342491694863031925154658708076931973353590975901321716000816849637383143927661877888559922464418335475648140072171442221306563275593219127798398051345092799592960662430744557846139942887852568003794521247838568910805853027779998277530212976007093121212631121365063065326703237605271213163613156007217245643914339947904041217939840551729827266820721032714405487326631528278662906894447158601626100149102329258613292533008123303469386580887229185850809032951773108116218764513646421253484156724414737361350085708479912878700410110351136401523489634703055246254389335072449128249281580048178599339541735292673848746203501233281390792647100118561882324648899606152999427610575058603610198688980611918350531230019140065887136040847168389269213777918393574419928527521905853040437489345167958790327096186761898900358023005259951423316871194413362182592459528475615642886670273077202498360850621865834205815042537439567465542675506690960445359862089364530552483217480159923738550137971408601927322320761048418948382648483080751512542281212482828610836876223362091931955008663095542105271983618034491611975804572294304683402822561085541795686332120213304812917674060227427457709249409202243268659618727643112060189613726304967613598541395726411275904568261959537475485887596180317717794879519037014212948351406320328924992969662819406270032270315888459086762260792124621337782308072515228532485117786410868225062428757380544129225129989142880038415177231127806191455103643620884977323539776200820136263529814790981534672666745737230076960337149056382495806429217503748350240277792636969351297250540292037773720090814227202640645213101279689700925453808144549936600561788129022885534233706527907133297534778942307578833251812124618893195802679039099945986773447576365582958986692332598464510416286196802401335234980995160488645447271884956462324242329605486724375897093071844602255548613222385985356333117562160079077854183177508849627164497017109121649404132214239436009825822842319847162709545974865433720412099127380459839205791016979353174112219251482732437811483411801840219781428333597499605493019090303918324823424135605806223346722333907251267491549366190226487571796576868557184349171093127544203206942458888668033847981529983501445585176865888251327032147178947431001570795180914744608325983507534260594395708844197683836142277580109948130823733953833995577736722136805254833314819363368217829311294860489267004652889877951080988109764223998610006575927565247336613507508736884362906854515320490885473494775848584756158312563094452831536332153752037971916398034476362985247114808552393662141285155155089801146411682336109188479430815884540040475298992849342857336386433130468931898739847758858879491235628311802902844318911709235671350698788975775320223098572737372028048782917698112707947150750903021803054361284034530721700413506270424048507310926510664038542537562431539922846086695303089303681877272852093046183608072357493353541417869831441953372851077432152140270977836196055080985622129093973818625290832249709764872378233825747938056622050837380137961223252737509236286849032051589797755497430181767187201367640001140198632915507520921305441631278986283882659769144590630147049472869237779066306898006007986141626388565873840959853256762150583637242491875177827854603718957774966902193329424727204888926107174032020160658416872547669633457367810846573428692268487533464798269674877453332713455059238937366085904982354966873596547738409789825538987413933348596804118178978748723070948657858673056035518625529003332398220575244200280202851097001125079018118033507946993441710718684691710059177800219831643435220854516490211116215614019767365289600169075509120766048119203822289191600084711312405871114432848396734623582855657550170870784724822179768897992208410242328698397937473326069206143784944751933353364654593164303137383816335225086869919594337206051396681200730469821556686185948741217689085265538791377052899922239370976494948996116739706689445167498104559570761365663236029891658093938187204738236926307916921359080991213513873961865113012730024694535279439683422123421825003945637961314070150527807320522808944484814757922184403207147007714477013306761548498935933923375176150813841024842203267862019135800193187886683826444240575265869216044816186751782679159278650782984450729382527320834154426787535400312579911600513387108531220002617558223646113041160459131104854464603086676842161065690054770349988552344109526117826514790542412795843750889097194881880640479215069183630862321213009229494679421864990329145179694605823294197998572990204166822439004013219847833590451860658033649493676140999164116611196840452280012650922271403137008897204490153267064478517549157868955715761523243187824142037583766532963257452042380403696927105692923979018551460355298840208234608359497312938660181339609821910645562507938099172742678802960590558399631580767277564428091355487944792311068978871023370287663916026803951732246608072184699323943377639101605635342554171417305486136590318290941489290928249538015911397695778648390646850671932086715790408532767531022264008519414313074815027262671355259414610530891038450426623399298500975135590334046086107074224580012694761733971189597064818823923944720712771480321487109388938587110009690425861144607220208640451265039152332751339645594835806704808125505182228331439823864833752577852090111513202437908551128630374381231070590577329133423515945143350410588832826175936932821858447845426568302352337573496276446927085781608062422822265879928197546098467474462245135447781561524200045989100856596714513598678850049250473136289542139977329758538570806868661339895130482924745985066266630287103080539791645180721410923472365294609476776816954975452362869913049889393230037767085215471244707224560108282791433270787688370870374955935314186672011214701312773917107158158651057980970993388669349785505665932462866005056898539051672022172101344238751586622916656003085758616875344540144357455094005892584470964183159376588960048509342638069968692177892808421038721653401512532177106652975849390254785791757904431681530543001122427313606347378958941069489489061004839987496952055891481976935206210803159528823273960593055377192128723490962574430422275237499569935776165039552743270192149317030845303073640056507176900978815505480718133541505092391229582104414588244646201067993216497947893724964312980296314562286835919087911652769708904803764113619493586001623239141066455750425068883634925690096973952617901313416429892621705223001857831587143003527910885406977629366608070324065271127654950904954344285320438296404358714272180835259280516483535612904257117589356653787354491302532078964204241971342947363609954372807212408834963053465469974046934261372075295212060612500539410028890424795929767288073858099015774813124353274972651262481227487187573135717405528793009095090010745613946705784486063120660878934735339357836391692178967084633427384503587396947789693122163604287125331086230986645523668193178850640317370601563972398078243944888720084091818252405472503050176325167040030307460692315965587711280698413111872706654753606724958867222455025907089258340637693002192446424307857120024605675923255993753899593421943126473420542391737265728630322800256832992404896461174015104252200087522668883897284219658510310442669165580249567326362528344829953151593260150791961809076490097683406064170244420864018619146686968638059623436898539009327939342801433822318132002970510543670060911145243642651530159166186221999176530984419652416010048844979465325906020113993219383152614841303549963838770612643610726620199345266789582848143192618604751569739403334949218753020120846833102333810847566942003279551037763605410844523246456339440659404712430876893561654619485442656438598984177927136056389673919200425624887287629530693010733930608534340583910051482682249892986303146382346431051457372425656223556363607842744923993540464803729229035057760857495471872503645446977151717370702095899911929397143837590580296310994851843542208329839683724417187674359996503828768453578735380625597569027350356579648317671623766238075217404604829394946880192816400104972684280208898974875671421681161159429211956477183475216460319932861100892121557984568909208855838426170939329565729566578711678301246937251899651870288157873379290531162623591876440523478909584308063505265273716445076611658846705717112609280638645786842319035733546827992907032111415037528599635820192797264616176868639723466917603670004600025099436073716708201741764176530053165284882747217463166967531298614684874995776132072401410278447517014209646173549306589294654359598307545894357801437065815279285197888195160439800478118879363189223482268626156915901146071816735944924849289677348960895374689307024223880090395116605594106034612775637651946342055982397205814866355669670812665620518732395127287052479327122531717310069278235704443975950665549852773159963694849389580898506785890010919129279564188237062061510481953875039195001385141840194691366209805272557142118967782601205919241910289750053817584664474126066928266040258471341045564344475760709810010633901975359990351228909591187680762318351393742334991975785087970732524338819263909105307023259394434302460671562029586504807241109275460548887954934199314314326287897374960841210840229086440951032598467812920226081469379800289636297847701530934029361682499438798967978263576778444393315769099259112801414511330595871174638672021842447055301312897638127894610256337035098296182464123687752101701338743450316337896012799540457276156248203059512036684729796347707420341624309100652916884155129403637860513131596024663701897718604317707475491859681985331224730772178923163451188327323097928646150190480222976625542197486120080024989634483314071929654718470334723797622776745379358906209992680981703056631729756904763627080486201906818293548649530049046118695991153853899548343159917592929394736997691097253663274743667519200803171191731421072875208473694533153830629676522204621243425056318954119125410531501870458873945845683935820522633823861270005299995413683953142590515028017265114448213279900267243534498080297724562742339018907287069974960761285327364429912945704605547549921542255515122156738529632115977468612919867149511456828799700623858136982433826309714113619855177857243761130296654404483351341720782920021307385113214118933982462059673547273236621858800547332976054729576990235185177663263626226252903789693558086119366363117517825141571233566713163685397793191763496934485632709663125939776182854568870162927272277928279281310525393438060523310068411687834204602212032449345161132798786172814948420329387288989994334180049392845431675323983339583133267952267004426563528303514313107994368442303464505044812576195651152003949952786562266054753078338451252826998405285744658134174509405585459017206902382284495988430316186829564910598552151549558301639635759235123693631746269657033129690471659655660968507506182271507643320408974060510125301678350423914510101554001995747989224453998488234697187464965172692622020896807561500302354630850749098102582777003600603564030212621484458212385617209199941518016531574844262107899464682140849064094285258368962887665407110697447148597840627440156265055543769876334529159681567381217586564783571477491747748743298849545337195147725209023770969879857124036102202196257289843424021543115434613143066608731321894661964221857629960235704494136005988624774131321872529014606202081922190232008583704782286340074945595615145742156393159654243097468508055944919741343214522820816050509442938993288895760498096091446010289734313723227719923120971503609269740563606757408874991712898913479127059520367473875031142143804932272338225323374537590975022327062961532553757928796401705604274506197033841905037574323082809999896925112704079891263324044607629103111525292641974739499885715683277817452768239571039104224926864695195648987218025462349526607429462412200579942970933858624064859340253642596628294432270800913193741966210781644400912250471314023077008927259679111017922504079840076021261039461777492901306639079574368161300515884852046210530649570731961381737024155024124119468559212281094141533062433886815661819810932301647891016817839767043232922628027126773498098119782014510469026772661949166212605892383968559568250798558992082427591633414818330347626759738830352473841422412464282402824007513899397955768085810577925757165668507973117808781378180507424562174180096284202876476095229455509047294064343015102254778489803291543101712514717664803549125900216720384213392688544646755900690536895716667431005418236188839403688129842440790735767426163948757704319269657747519129019189528836682663286547473102265294171743424444640523366143503295922838441668509743396182860966107362285057448571589548721232245408263855876932699638485342082977527674439078065424475734592358644576478419707035581545638960242530476293534230719732298698403443372280700327480149097668791452936213740182584935987439756525914312567244783802069838159614025176182824286553758465212497110479557138144353906763668710657300744525439800980223237371586868744705041541011729775818191999053546428254431137219718641769731459465390931525352692324984954995310113907169113375400996076040047878410427266579757593831851342615336757611416018113607148906291720756829912080802040988916150541796426453071139403263803710937267971733011059086035132679107536423087473621848367017203429628976866738049331910329625677735205658831377192028770100477345900895486555218330661369546049618320398156806938008600861824251228090558338341912290955709811062124025726020792137072899614489148909922558909124753394541935555303967117199878510327037303748031099984562630931087410238364065686521007132508092153526009230636725667720156758013252897026373911082228400310795358362784091583931720717184846477261403275972500646386633369097904812422557878322287640554106311099613509762539280231853352057972981624831668349569914522024211004435609360685264824897790490427545678180969365783843439524518840402433284108682213129260746693105948530379276738281063148142144347034304336899756189802967245666089378669577747640198636907867081167708071727394023496567486712865519623871823644466470458239745044445877804917651066530472939921589959722159081901332752928462206068429953520839133638651684588878580537855361688746492908481893169430595975480253942082696845668228279761739852804227529121494256971313446510410185201777837002243806996783485766461150220380052897242564061000492686482147956423960289079922424694884497395768481833683682108582851326275532016193068754828461228957130848983560384206312649017327374570111634094780996106903120279026060429244679040454183552368916149583431463060780941231938746001695775600871473979786433835795354985157871867360133453517645878936158835411499487939334873871744208085867272418841681323745994513525084179378391668922943567185380685528862549180488068096376396315707673681995236582054584842618601072105515232854754174374881538407432913631597986498897811551526047703906561049043171946051628488138638538265246254019196774122827850087777596261652696719660409015985331240309269563840960877470184811518098507204643410774256582382616801941995423653867068769984074825024292177970415726802331836256022320175973652350892261783737959135457698390187197712489736537573587297950327370407849443973172442839909560270461002705295197481723450708904826426552327518834328363506249423277721998024153306457721940154953690617627918459935637086929248432970515883925751597495228150866657727161957084495773298276624477856385876397019496828404043777118537040207990695219529053798569642953820543218103611211865984350398649399281924659606589126357605651436356097186774957399212559655195623656744402012463753417271661567537518387833262656684828487652058532030220620250526471489083368434661871744413781737684696580286801417791726538008678464629919990084332941443777482132012649839053571296082828035184391557819836127604991165591107643372884773443846283151321650120584566227273025406440039588010676069229934806614021388366938528605909224897949779891978822583432947393693589939261019222528340535036795221402115374866904042501183028324104119530163900571269755342400629786799112121715697832370395969424426666732491577352097120411874862201079998503569271150522641173858587588380579409342214223941496988506312786044402519201807677653989006410118762480302029062220263962566348449159212225507507059099109353747300158370087227190570580035946355824039457056538330383996523083389588635427122299043602164606484635898452211515757468828716073199062132936607192802864321686915753052485123053504649160613504045149333444978295202878058363161534387470860307375761910617700851977334886696818742475360436774839599449456311363504756777367224424654429750231847008552175910546105896300660997702735651271650811541247552091101532443111688764911364708921059623326398964185207458054356601941549343509966067518110486283077137899649227606749538271759652945999330333600415340746881719907097516703084244436723446557842378989454308375090346753035483097128084557237178942539450032113722328045394820816404360454572438348937643085115946709463287558985522350305789086349253922594602714742597059598072877260606901770920931202906764376773282275836355140752915542364364742846587165499267798075559134515971793115344760753011770988801393148166664343179175969069136215098328142134716555489109917805859706449542322852827310962279261154711121911764893895708657123705337278403270923627705470339587001971513068577562820568189872903489718990175694456457673784676777751813938802761101241543507923983110838427654990960911761355967482467795940955350207227103654952571780464019803241422271879367000529577982046103182136070880133857695713495572078003732953600620804851618176440083283539715559425063237307867616519526563030510631009070530879286935977743670149924055535434897978050482994076025546555445821990734385459565082256141687816845110583900606699597198704795953767443668345996505075524733318035168034257498607493000600549175260234304573539271949208563318575903111303907456436294285637840750907462050348415685887214693371542608219553300755135971990641083147595252618795492745699212857943074999164093563721992259084360965293523558808400566721839012614549701817751619787394120841942625097908242892816981804322327976076886488688475181545701522114623320142450932312882671209017734077118666886393635198992464675612972255701514177093007201800850313162769956158362176645293209327134110480966064797302836726098079674892053925075672760714511389342626967654577842905475924067428815632659944065492934570224498651849976136263500950813411752853931574607030637174500801171588828719025962133246013405834036480260814190885961041302673801380786838722354277869596298077655046245790045516610710924831062150887516485012858569145473903210533333544936003308296426761914603720392613477968894074750441685196883363219328662857163855068032683194563038650157757959853820908341346635705542123238179003102510447398783796825196389343163399412124004886825177303772614274598490068194183766637738136178620181415211079724787267677422835971602134938682888038170261926849051459596031498211157039379112650341451593957898640012762525007313460991840386180470714497849593808769638052685176693942894989479953344029147222558067979006689332663757656932907152981252880310041849832177872908976795640282862803236425912433197725192824629919600090865506631555629607618579142112199762527268783903306132913415972915673498392290850631228339080468295802240026314262828168920392035625740806373890364656973778735760808274168351212657959178168191333776143860727595719501520904585372888148278335267161112630474352104758541733887156508951496842808101344294073050936683977699906576847512292237275927608919997177003022563088427097629091528418707866125015369417816465759224352764741604225125014449954969187286655430854974474425684807514752716104214213183195837904145406095639110626492092815611555255119847961170390045033712108720652210650587448361730008925534075950037789012826236704456087855701837521016339700771780459591125503466390536024196550662644358077367682433300920534284748132620042931025496805807227723338036506333150701694537323944374135892985964058896475737679428714251495192099912030380719217614486543138906381432354821829454011693085066491788773283206319597305787517152738109149361242377415276586124784796407027389161629128350324298008339548227848820740555822876231660419536492669096634937189755256929952696263260453541396104401813369286288064511180962915708504804146486644304146190060039741251608007135265697021735447432984879299645416296005038010885911783168750459970888451059183694912968789157303883696943118789212512824416498469666181018635334433113880504575511398609976248176846491394683311318376930564474421661603627737474435479356410391515008061326262326387228584896158807541491157244174311628359585216625350984860400967987674861470465820040689546342832949661222687168895084210208200821504881636459027889397959049464174865809883957279418960114560270571862386475132140696236526814240973945488917272602123359715977766995473572909737970683396091960871014615525838329556603485671861568746074228984931557986182535490062133522816035666668237506660968144077840676537529729295977986630439595671219529845603886427574868682164585315907855476858424562470081613637376201709051933668996378340990782217897075189056137236989215192945839768012733867096074820927359340070856786618595845900847785411006785730275612110496722018512252222514837481977975430975559849563142694948233463590929133858453087905903129636130054851131502659955296962090680479043634756107445033569645695970071350678389966737020162670244228087402995049056012699749076315719698135467831816673421217777243137884708883877654888671425267146993114116806894025920000842159476110454913653365479117562126302204768857917292208884182109646214069344242767774743303092793569836087389352727965808930949434124173088031988408913006425404622890722001668884613000382292111501549910748867147023702176061091419347165492847715180704282929128390335619373246098478650874324901874531064248670059311451799049296205847618573571997913180436069268645533348750995683301863897229959683197175418553042869121502133458831970729134451809892299650199162429966817936248479711999912561578643675853790936631101933334420104566605799778496147384452766367452825584954364898661194294459947828067504611677401339762721081453643094046157933183763524745964431755057821310266449253347475749395472024694840715311402687554375166922230862488641577588567582340325399632061375528944030367442094370848308727025202725500353180708274984233233849212264116532899267834792830331461604139518971467331886448063698645332889803308863594233887316807748498420586461042483799464209380034930319635010721204577205753974882412005028587868719830204473820006479096359354052977713957753217410950265432149499672464041217417880037628783758738654552745583590072835043825315286509905112001238158765879223268523567240053332032584628911493700344075330953785159742203134641281103517291182769089337905911096300958835521559176617561128389256441135595210645366403897188102196739220605727087102963057453986321590746170674486354749792258513836648944049792307666373202813372388241228095466952827239650256130390593340987601250809022029646867787118565125994651641353152904638108285924767364401551380275786732984159361858516887667049430471663882684502865107325651632716202335113913864979289672530635472099667513995977985596167650130801289319249993926333278960007788230173436645816288869400598952480042328533785886989210405880493976605243166444540837863399783823469005423687442762992799893200117951349174746051334231501977662603469057357031298389773881599762188055608513335092480197389954987186213308260848258609765935857792886452666610618019833124525718873407692188922108265003769646782110825282075625643045953723324962928690319920964921542694021371887740329709690228693678595175768172848101603373054279495008118060619495555222592846785620651701684759865485533709056056690403839789562310713482043648747437027331065551931868727195871677829699934350573051089543817283596847005474835462630209517106000472762474247195254906347024827040559194581564954858815418941449858788008747229227973128524105926481263079929913585183663679223037201765057415756761536662958302250100473925053553758498425401030466963902929917876084980961975413359158919071370067757322911937381772292598805022023735782752479949195288683923381900751686380145684678562934496373238321656907587280272905928864551189354325682521981542955849000821915195680751863129364349412508610373992039474762535347481954061242444517873746877689025996934985496987282862127298783904962519516621894228433411931424552094092336712980361476822730301865965233795929999579658576178203781541294375519215160414868279500665673594956473350152625494396072046963374601527929990500198694787175778325062032511503344159874048985456719725796218016351950821250778668076642129239570105761785643046162676622607690121526804065251873804184489439171351874952609489934615939758252872732608598545784138743764185450234433687443356837561807725455617455791379983580242038514164071436722445576497037625856111813305272124201004258314044434424814977938670080884148249892315459911322954602308093746604640272378102226759964027610135802681507974646798404490001032330049092931504142644476266206898756650447947657712417897959169343440098428914127749763146071663287395554470028036095888742851841889816647746257249404656889734285862976165408497647597137310163171726769125462653697002710058548070960131136137348314486519485923593491269430825173027736354235414196176545604249869135265643933080359637000826273354670803072599029452869388187289339435982732454036076886790197433584471532341031905403997213204161620291854771867375200867580641933285923863914152536581701355120106525252994605717437725674732463548040947048274476764415526326947253857552906466370482900899244014504328723989563722324248001667756957735312174919687450427665359042380686956108172418257092336113909142562498222822893627903826421863371386917112718132374372232718796184853670896353648063957500419802697738029152349559890111786970032927843027089861837911125575321960388539846761315763321897548688157015994507798185797301355950224179403344361036851932869441207636744370539036393450095565611905064985815028757054251951366462224591628181464242911658702211986378580148959146428804096276394023636998160187427303261979818445404185513157666918026874127013399741637132890250780193823518751607023776403062347297222941331455653951377310171451522444282575063821614311480939042054206936000661628641566843939518234641078794146851695121018272913520126876017742947458216100874473035211498882027067771228994753012745029003775532380022417089263738465187945156082535040116736909750725940322385692153652649238023858310159681977891303576703218849490659762167420102809003327643074021688465674201497994564292597231389292002980863177447501371904837915819064405994508843950211206851344429524222493333469758915775637359068302512297214967280198918045913888210943440653356379516031144471622681603766219618251487138165317094306439833492295433276794573000687548417683237719562487206879798134014080931686641729080359756495463792285666669597618598303498815781752319935062921634731002820029059172315853816477221903704767140661580495966747782000464588224032591079826723733450796905971372196319942008619470471269430992304334081672612625205445901939010334370081209244310806759976279137770347690653098759841764025875147193444925419029436836394737955188395571883391809181336913531494368174113997560880324708743266846251719963428788277872398578806184719364241815291672332882622414112741246566764888376430438845412354007522220970811158138120676347187245981241472208843961520551251886475191201137584480418494674921812352805573631470254187398062176037819144090785463864086912927349931270921282292849880595248207941751244080799687260485592476957326767024039226354701484488525500211691203944387106935834318872172267143319559372704726291079117631596037692101265376536684378388727288573060132517700945464157620446689463398614998935478389234297727575349961924735675971102678064938612410247251537283329419789168461962381684729184905999439379831130006628701752354940368100800958658740543259004067429506507020864224935583845172604704324804323688828983049374287467687258100802580546961442158342176333762845065347054487665894779709213609960063359454657624708199158095169578770971342554312066626701369187983407367540896321432911394399833791114011111112109936790141589991180321906121316762084655749893937169086759615930001786376207702206934652617887676728906176214270777030177957488686169887895530816382472867798175518421759432507703078162466202125924384938115077171213996656882488396686794935644021897843209203360541064371480515414513862136551987746664598555804535487288986063022594200650474655513370496614995897304708081370251714951468354975065070637854432481398090873121602768230483162373090754540188751761692941994963774779767299726594855351921043650032607132792342315591077172691359297342308884225690336558081652584105495387728790750231022908703058999099356702980711571508296598155561282851120693657860804045182825985050883678541596770996835338092947755884598657021442315511370692979580740520075003460959890808597493103969915613690116103130703979851620356701514266935057611429858976307417522748238326012297986523424445882312815039498343424156687162580945933589208536355587403471733256257158156278943343276812511464689669038156189275509663204052077728373265806257582037468154929919914868299073452918899105697190040249271711087921334513788184173338876664081813380712114817291454723551378319482074267952898969600136788166411178753288636149947676371147626871854342917287310349259956509452809375728007409702410995520087365405151578862196037124902489356069481092126284512081309738596842679791670206047947099731578516510192939671871452569991802161699280520039990874372394564607854100749965451916882250350775125176241306409240985722344045669232827584651779847786110447370018433234845777865619637648999280386148682579216244113854219738836493333401006126291421034971018118076706685921162313980559956732672042123880810387232891635678931481403936534154488935269703216697095426338128205843235878337860800205918292662399295347391946608050184057527988547600926256690066139336467668327149334003431012036832633082022204309103158947827678351765571114096208034306462248041668037615893510790886973235527395475304447029554720143735104170409296194014699434222707730010801944015393928485857508407934911656509892580436140232222233435487654529373180232839878662684512347792441979634722625722552672476653678764639225915271923098138397592013138507277471738840781259794998789576972661363834191687801247764385485065988901836005961804616700855458048002083032000530503825296878597564949985512501108907290536249086006749733524003131423208975536672334758960122331384599703171167813937769055254165534525919443315007776801154429965943140109097878716261983382397519812824809095850230999282185035687992450572800742738797299122585506789500760896162316826910973787034610488689136980720182244305132458377774906201635820837553422563318534251211517251380085351639737458588972076856360804653564769928186239440363263170571373858925524458113077178622491559182495116204008018484413675293091370772393757401498858357289414029522044345803923102407490797752407646518072522383494522250317609086751978913431543038119416120307739343361657485202040546715372270726838304016393822291419442116932426663811067677329294726026698909503078419827160374141738747883029604739975674709619611345996655931222582651564394153019112551624371256556969730774810297447308786859431382393177329498129403714567249845122207185352150261914942829071844061457030996687623965714919487580249748586773281066011660925878285902963806803583643161439297312450000213682773387785073409195672144501015837845269224034145507458429068090336491842272606909108808297472668035775299355731500247672958642754500637987103933553213672418802592785597144231509998802914701534378106116301792424580677480596499194679141459448143566753921316999799514842827540477398889828145600812550029465315797886863400164790241261187125862490990825032278581845563563661706661650169361750228866146326756187756444731622124950309341891280079532343367226480992479077666341054315952156586159740680295909745812577798523803931223158648394134570843885977892802187605216940500263132019036107124785599535277616630623543782843305329063882360828028576977598935816733027316248853053015130245717330335015005811496148801999280400189441185751198881613674849590581943648374340950269789714761256380928550367509947262745045887004227459234608692219481158310911525585181566986478007180081976702140928294554506863090932897671568797093558101233561627686056645237292368486775344790864524623345253959112575129626338334347747681685083607741417499055653955724121487258909575012250604488530883421675531596948533876793007390505578369567498809193368796687659724077718612790839598342831180009439891116943568528533866144110237777610206519406005277656905223504576298610770578831084167375567856872123515240175666719417279726712077789997804181838912060910917717250701892717268948885542554082598597378545528563699120144630148011539559880437198560409390031798013966598902597718499313678146669208885478251226981435690390272174667458634390639865870310615668045253264675654695706131732410039944515684832738884188093967457814186107720914337793194089918880491993078944908579929075453241647478291812664096759496492565798477829031009195470599917899997953677665249629640593290219104502201536079362349019795346983009222226654314648150931774919085519775748104177913916080607895595704068286591080885821469220034654628905542543266138021811578596017260703682275048383037071165100198342167491610259130318562132338416797783809484791509564524677211061700198418635437380327182165714119693401821260045224425441168725673913047662394808831286501099510931256887514703256670508645423185137036815932396761251870257155953127499545708081379377053418400826419780645632461628407675679494352880068729930654532855078647391261149362232127638559814130390304495256160040335502489989776488544622985874946307242243925661625518233069894087125984216981552108111824647055933376813174569504915894285154022649484062056635369479164997763232482800490868084412748052611359982294209141692624710237922309483679297705084124796680590252437167716052744704738539233105383175810208633503153906368714247669639215043092764278950791580651746537166111765198133818080162610634740449038825640219283001694140824098939329068588209062103877721089519552160953527249173570133792256127796004912534700086100406999069472139720819056512939973273723189900274223376967444023077129972079785511351912313111453764925667695679983894785692749005026574350892976933508540597776593345075412757129256668811175464127372519590281604369938531085206589842258285690210389223719955390045584250407755193639688832049584157733796965798370728247062006427189166678315432832559635311694563681994730084749040150032869206304173200595065862105380487213321025730386585455033560786430659714189561899216993106100250709867697395773495467318125595474077892681829014428127451129571210023752418242507394226345524000501344809334563279802374771835782919516946169826317560089216298490161455783634157571420930298265185247963882868933416289889295912039795354874044637400787792435483667497889380339383300041677971434386624878019800253075453533974242214845398077353801235162595123938564040024327012048476852627072943977999045189740340187464032083725445140651249887133896654540469335757788298389431892824745084413688070170290218023836927600218948184259111255438429873104685609706960962610839195330194622155090679224631908609097139428393155654960227041580556857573545726156496121918871407005913602286822908889505409162712236271274577062452202892408304001811659980740863943626632967601169733244221233613319847855526696872894994397475872260427236562303327374465881851405648907035837633690846862775644199416764723022347605514869020982723469288170503993027758773108775693497005957318598904207754167323068993984027335894775646816907526939116860408303586944312409886032856483192053842476650715631183950962998544555306629565411991390276901470970863174063398697355202977928117877066241727832621881973311290468571563637850253359261846975496984725397322724603102604500326351725752430312514230602607149158112055806651950146228038064760027724020600795638880889302861447421414733163913806204634031731512598187361019467889422517813683288872834103125581087252978904654691736747393713221400903091230530254330863669478159242608109186037810683150230079293484552108497074663250368143626605983725719575561755129569632935657421142482908782707182368164771723487700202293990926752818615639755141832583282736637162855635537032192816052209337879069426269642338905011881287933747203530634071083156645344999987426896543715200158796641446865140990654785774141966848259174160011678700654461466550993904709304326357428330778840420471110197867351496708220829651348217477794243075649427612026042143314702236539266356008625844827665241561538345787568872173078853923193574534325507188168249958864302574001911695555547242995033267690080271231215474776002020172149130071447333189226101220221799713503332436822289750411772203369402635662789067633764181719286718701000568166237031654427334396139031248391752485896940154157078375952862217153097396505449344413493860773671996049844413445125823818967459399811511806737805592626584244170911964213915733064117361366722708649065084945075878598841681094828147385632458140975375957270500622758006392932627761997919253000155883879290800791337391728285775101676067287684188023669992567949057517249293541690533705161345184372240789454734434308546866290726183388751924639787846174209437294479254759181016984521835439906302906302327769176715780728158360293188507055794801065663587169952389536178659511545765087289063393385474715516952486769274939268752236132521151360170066140266176452370494410951382726489139115145780875699358187079218387467499053174875790724617189540023701533512825220318616862855018035196778886437804030560267879713222568928733375129194650708508862067753887974971055180850094489748663012963113203246582672627796150703117144436212160768549264729077018870928620097571054539216937128248699775224301762218477319791162407861497073424199569015621347699665773367306525348079898994274796480780551674334675761262744788314580282650536775857292932801325258762773899444337344695370639599823218204722146385729634261681465663657833889742799866938746861651569317323783855340244706726847370542730378888053427009882329267028409451916265747767114343976324471247425582831582767076006631180400293496271618323975468051272479497777355041152947269743918261601848188665867827829526328396867887450056055454596584888866094537399311767657365365914714227087477508716092071619952325926590190142306873570016035554260038810832748313658433648927349797491844795916296031130518584079708101179785050705282504237665039577054577103169824160285658236712860718026600334203743926397446732169251816321660955134050377735270613986355064279362964885153998479410411999427175993267813129627851054941578787237261698353428743351178856788937044356463025126046524970052615662992319077286111444117240914326403740228945490050661909212651977729402609514798748925395960584209539968458244044774607617273298857272373711683634581485479585708108935074980633786127484743479587759011979691709545008698266502655356975958279337484220817405080333876396566378756617334514706315396859466469795334569792574283879687973416641340073088571091573855514074087659385454763754056785463246141907712476544585913689392413688130009930595434867854305717169591749310370776250631116040822971468986712325842233470265057032719478891705273352330242503260020777707982020355452270189813315147704765552657279747027514814358260097247695075664766581027566399276193108685046431061798323542919550824783141759427455028825976393518103654372416875025881249747497805396239804997979819794099849329416446474446206000482034700622532535923896446169270659730491796067816336245520034637183373666973357739505878744974146029566442660344903082935704819154358711352432754499197289733845250422591263992956336094707303275638032622617711645047377062373220814680229853709015117605758670312321721755015296583248541876160110187474175073662661720359031884053427834361729501757930810631729747958650992785889526472490114752281699808388724641839770095030634188809511875557293076160526298609940380013064828278348628064751060785961631013524407564590327386031827386415575322163699747874137280091051604184117054402997419668114545838445142915793719153511775661125883670102553231213972632488338652649859505391536631205207708897690568806506732119794769138466227940934152865758504097593293960255109523464450037887547995349699319084721302062683402799925809865166439660597177689959446732556898337250121751010224336147304738477634931491746309604066009515870311878380564818273954760960224390252233790629008843750258021391994522764919673989354979943772273095185684920216494271515024167731844888851710277964417378628263897315217227462465513226743227054886828981509853865216294658604157160814785420466676895639689061411372655614022179687119955432002804768886286179948658568189064296666353814665184179891414831670323777028802435913076352735598749109536586575851949932511785072336296735300611574421924941440368704402644580660879357798550589640528747874659071963537761056548514670901284730997877377092821522582864355950432866278946525125972212901029383979808884461088364409141808858443136625362616759849611957515481699676498827139058974860384318367374716638230672574368574732384241919544984272173507177678088913624283476748753215980202578353245672805515561525033505450166246223104829076801283594408639141464154126744062131576105663167378186168755671390121459368143043970253519448362512799269988734705111965690499515888286704655744569488125315959518040369389769740787544621980100831378938028732962959000409873130669341288681931349789861122585667493117210985065276603909938818865553019099441297890183726306767465872165043284593234149281454229818144078421152812076035171919209042693061171952494973517340481306877042713709294325314955326927808820839105145736137571237050397296844146754594745002108694594797069925465439291738107570094464508569812543347223452099749939088952512764013658734490876126570248538081261587301208990720422666629356296233181905673289101600604526696709457263763998426446777195705348354807647677465771039244409930865845885435227261626628916316028088970625646790130885269746901968105080451238088837213048858578955572721185820607200172366736825399794092845724495459929000780553412711354196557101214259695198297715540974256090910577169728456529589659086259924557525708600770853108560593389768092215531473834250271546014844485870983691072447625373020435181278113087567938398998796156863347349537873552138867831355758210781448886993280626825486200248080515507318544163583323839042626986139004457826291887692401999857819462083026735782321053818613334691692628557680921529886588040820283967467832248309496035473947324319900162706396518612792250501170120101719456163103616101766979983858426836788297086482851619300809863964498667991926182808595779262018428225570035116672673803323817152413379240932115748300275032410969870130445849511194796095383849646612536696412517175498936054406925407546658728544752395193657408827775382749093000743686059348041826696091209074428394065611642183962924406988572498006345365762104769160521622063052880512072633252244404213950151729959074189675336329255012902851973319505299477450284412393122086099328530379097366533009676292537109859474640218208610179529044255005057576871428664233726049009573319468423869914727006971744951275073578787635157709099097175157118708684912056582769315632058972291476594711785113874238095081775172160579065262905800389268563362566149638771180575391030445410322248107090526241046813898741908312330583368950772074069032862467873075604161206072559117509947817976939145176253191214632690912900961566296737348734796351080540243541535810744569808491126466437390915362931727191325913205585243070290530825729731682781812310231525028352214280540712163589947991810749929293896953126495031834105962708533697534095154440376809950284044031028386480527953707800413981953155096232496078491313827225485446523503429486354367467843130856529246180575314891296103086752538296674598547119083256506977713283472583155196730282726176538985405017516910362244480839444077525813880588990748702404125356606234582438058016620131616958444144617546463980479958864858711949228493656626032521566417146903411100538046596665150968548060717611178824193112107427970087263405882314384667640648504630155227218117814878657558045196422287538077626934898729709566052880476427493812059511888704328737184977935718754507535082595744319076076645350936133913858435929554968710641922090487591479809755394330452052851250758880564638793714105517731672371429061161478067057101254743799583575440531279572458302017732110332841389252942061522691865703541805327780935164907194582670281518404999672905876137715161594424445629983614307738892292771420293915948901812318464601143432424263979752210074254567167376338494451762076388366965046979608459947159105963934612664913608504839547375329222943332711019149970355827012010399595574057037177502007984981521289107827846507928473799555868705522682089015550338323330855881341974706701966348090011357170736225916155332791667803140442132918978404536594872681716232854006375269357870023616289233937068859393507948494706623550731769277757559832837352132516552996456029169972591615586450759299745838991897839119254525327061088275488168143654445351731355072708531499221430444565811656911191169199806356739223890934025089286355827341382025847069645658984122928812023039125110226182635411507394161938116103763911540725629955950269705294706513818438968802585340523535807714994706819417173388028019106237010307986521006779939182025925120334041468246225944172910101192565165220479765625448759641830853316355038593476015348472417194693108726067289499638131893321929995828662076147278179176410803332594651739419174592937314519680155415999106631771812698250893751071637670724227853375828012974199202902594794080672683767570113825380340168494017018404319477445744926003208948645912727307429011812543097193677173578975663561950917179948621744778719898063269443955505903850707733527041447914678811926829806867403039334699438451510139226104033873524428532818064374323658650111635909326337461615901920792241817496501995042073661657451605591368456203238725088388275382103596238977329385823869486669426798124303421336086756557315584778991678879120460871765168649648527028295060792733905695185296133795859402934396125796649916728627617636071899366719488979048945767723106618234752760119504334966021276636077264491201980881216296974458338460142629690263061640067747660711860893053067697987220637574132677503288016444291305770272221784204924712033691202447253117089943563329233003554030201910722043163497306268066315078361435743038310793215681109605693332543518333003324901128699249681560791315246169879525203309655855992804524377753764070901886228469264123456220373540049568233601961069156843546445147455684789096531571673358837771157756265407778329640368895769657811063976760441846347563919350849470879332533372443865471459220684340022436544246733840468705609045932213384834276513169253725664385215237349965713559258795364556586529429421286757060436414091320315341688402661627568490773109551233489230096728913142879023560199255832480945256571356412588226722387256821955292182444428707128070457188859192907902648830844247815098152081041070844997890798903512941267163808996797910039907283736209226896719571599380148070123897663486275694029955193744281514215271981028855722071029653482000546563009369916002740851986031262905828686420873124050479517057082806285190670364515646824450086665805915545645954264735229996099514014060746207158474323956691073124838345568930289797744495541091810361639605066826948424250009072383526004054899274302850083722695044298254196285941075475704748296421476984710406975816402336815646848166734778206961675055602251112829966704840865992589360119099599535876174974227146617879612815073043039173599771181695400113668622380474012561266090450232291103999491895669947651266138107782992070336456790339956078505206370498153455089476051077673115542952675583226922479044510037072849769238265276889064607907217710380582182249308507327505991409396605243943486305829670369168516943909110066365700361682285784510764778493404243402047837351717713080266101032327987405304636831633662406096051159584263274941634787319190479172040691620985891702377864672075044053550348397816204927016002074240487541582034474996917632390380312969241723155663897820880920078083441973567782592990159484046547756205946743226960429939368785306112675205433296249400479233833483897078880895464346353992855933444108583662783185066340749123702781390653266585858121328868422900777537141280277591031924622515799591821790830665135071113388272341793922390998657950718893665950185755623246684678546856775939457627886511356047181294711877449062162561405484109565289164263502824068010198415754351122801763149715256538939697070296270958607280732006355213186286108819003524205018506953149720418002668394418132841526920205462337559769568219693357733798702359636983909787360665051607827813344886669202139839616970363025151087365034369710443653767123667842168544246150982931852570003903272183921093488282179100218177389067849875535786262807840952613896178644691258677378927213131413574043239000011725084164579065510241303305407718341412494178315980098590377193536859737251593887338296241662549733892069902294632556638683730441591135762924609893313859156252202965803014266376558099535256336918020010842184464290277995504902814063137446120807504657502906073936146892807661378713307933290992726417477467305294899688384894939088766976994193606365648052239495751099280275790209259874072332478741011000216265989217535574239950323535555821983220637901268183580300932125951152567344895798211205263490810968667185852548687004488034502975657173121203099125701247303921737365851114593409330769243592695961884608463263330076014673501617654968659851420307505535247595049669220373050475460143890714689231793096181637893354430353275680900078935557789324757955038868427117416133747481670334112532098861052371460751016231534355623420950907470759988203354113348499283752699230742443497438049522351738805775502743222160980678394171536906688178056799095572573511949091038849886445995741978389423706322073040481648415654190547905041522271017968124888860355732349030464666423927203430689146170290814514739926618409941939718304715829582079204290443462518283955587032207958158818406629612739028636178373677726916369768975777456767772407155094876069493776485641736681290223179983658535445066949830297510424678702668388740670729911196219499284993216442843829893414181951815124098568179003371486625661517572179442637015443359292627455386710746664711971194306397204710572075952416241806544519703883334431236490139309286872758737677086934975100026614727792210472205217880245859336590383113423795089156225569686914007860548943985669990635440710890896386740066700095382403623871685837142085754310848159520239218753680887810488347499151401458127268932339332093564661167766534799991185965517416884047218757021158522705077840639170890042300352044867899979078024301980515018383835466997183431205399397788368793903274154042711138106655049120750813542687933295964440467311355119432727871825473414288003564654572348772572993768706950659918303557907937868317421969901068162287766362122710740001967462082002834849931164489714663545384591098397011768888432990466983328147884668393235352391604432229686497112919644455053161598683643368915685107222831765847021967047889950477624819119023484571641014917723241940665973032343396446717572669991297640327610518425934857809011948636252873155907370946319152186881872223382877661279612127703279696366057039520228820690764529130126228003203221960902749860285932393746932365558228694575648475939859167677948882273441106300760127225088993499215735500929902501031485014518344052220720092072053022712958924529665622817807073406939279169821089672367089678159754687309185603883260798110180250929573083721907503172483889857742991490779898851988151623448230639066319053859766105093186752493790873637782106556678061679109946143566059298756242315105063363078897531620898111323054693474593451305343203695384029186567100597290218504351209195383408574805558231658528359008774632851559225121788883618468352693843721971793545879536286587747847568943476392140510421805220485230573137839710869906844684265678243091723005185407080416468200935948102710463082253548477558061087210497219746036219131502062879483458935816589040585679663179419554242281146898665427146190243234546850969763890272748781040364933963930479113376739175602184151119123728539982768028114990552898978024131984236540246030560409250086270260477487352177701831553296698188676494281027903167485571063585567991210603114160665907080426158783796846303819539405607770318081702231715319415102213527149649847592226287908314442440046166816959631721332266823091463874707964384790826972848123721288067824822166645974037389481212394677504398788364877153960597107135083851369879370170179445876793909177389861810073886360270862815438656570605730957736998401591682564165714131961837040391807531236896635187656177344241905417475406709011285843512536670274713151254172634790589652228823434562479025940316117332890400538052614221721876393849201893247906067663125681491088145258085371313524147171075594274635898802003724284116608004160299542523340796807647889576539936251750604960520669797369109892034980357549133176368136933232248085136414789464030224864730753001428196606172818586745704190678313464461968983451833512288549705946582870070248882537968892354007570901970699647156229855175853493407006290466194494767684230746469895299093241256647589701070378345346069394810899718024887447088181617806713021875359039401863117394672787660987864873455438236229515156002420740996850927971734628983314740170502425237239971394304199125916681455858819502158784501828374947964635427116546098321373033759753844939386203727923517077009869032677490104925363721886793454356399407249390178019261697841727943984069270474688635914172041596440955145951328287214890217517822251185541234291495886100040354150000667872349827687746485476827769639901466069132511072475615342305807895856757702848191813418705400290585650022300705591113705138732072843854861951447456921598458116023748961049467752407774364436934046232702010815024736729044403095239296893163105716450541119136048258109319501912700124326375947585504912323624747173655668800559890057311666163946919009807153947096263657446744587913697826721839114262050117495651273435675736090152771383144655781257025026244585205488734522161417497573858680419051285226032048062014428064266320585105106636796415641320078634820075876172918681519987103558043975118529044389869582841557423866543921315907184538721318124784730730452150843274350105266753051338559992658608175094578648093903927350293769391031012519004553974777842993343365974319592428429784460424865655665258034500849939363233862784209238197138307336791922897499682524199309306278110448750369817273276376217895425656439960161876762840164768641282325186599613833538142884692265261650356586165445680794434536633663638725403285068740165660443517954762882619910755370586835680870018928889491206376151035958657998153354563401815522663789801891894051587130734395053837737412484551976699703840578808961644987330892902707144101138326675542786453084102884450372096807451183491179762839381946267438748724627495849735758012274932206342264725159929920305796310299464241651984590742219778911321279378039113402096418439811846078934656462048572788005395810303565258758842109456025270499916169503019614102454878256201965823947207878578646823797393415764012518656471990843944855841175137586578512349743888534030261008432941854213684301601352279058856925037872136180708196704866422139189420214790292475686405688809272088585103938558494299639503684896359618293927064988790093428921530112523382816523676878243834549025473716788570560093264041612331190558878802020412678824249728309668468233018658718538414612824675903154515913028342858690150942942325296606866949817766691182542413730258558938549952188585617911324099427676502550554202396466813966529139732715842542655625037802094054947262739697032024003210752516985654725502278080416290160272172173924457317333494952611074611580158090818287069681818400125514352137212408880591187232792777750211245127565333518604470132926764699373241537860546917664299979615285231598727246587586028142098591811354739782488728372585046491047461117930470332527436485208390484212661950676655918100989311059741012754290512936747224970915661153772518579608386643725289911929270767645425164591458072526274067671002143167627228715274392429684299656102168789730456787369200291307625181970788222260932042060518651716091672353102763592014984245846451746021698461715313793848444721817773823768512487505766023334740604552682857699293582599495427628362649240644952188315882617357152124728950203033517603511015768961797713473327646096193123169313039546027261056197380625024148696144449676331773414060995731909974565055649475631446313436703967046384519794066718933211978569880857261049909202756999034299797607789168654703421978834814099298799506280026381934775028586412030880390478200060543704122838466802894007448244467157263985312170347069037199915567100314060477337505662817473153224496440533236867846407025572201729786718091541350432773783792711959055942049548981531682953674120498846619779899572657402503683450435135403217678648281166437533069696827856066105723949736475588848740995788936601148637235171714779185065016969697894045538552431822723211127692114398392384965399644502801313931704475199622645220980800217248455732856647127283666408974448591221400983218681967289850817169802361358898369992613408204104690563819969160005789130254956029057554769382807764373668735003283228432140866739759229467374822536682052335266593999630515983341754228979924329996846235144890560811192548869813902673662373265954878731848614130536022940798334611809582678438709963800646927248747311084477837903606317942228879310091510778045711067582509010079214550084039421434745170150560348054143110464923717818068474690591430514105129880778553931177323087781535770138521126848161409736236576716263907735940456704779500643527557286270848120216727683876497882807269237185282977874750836404817722021708371249773569982280189007765540937639309380499623916190137065855626473301660910169614532333619496833762502063195866767319735726586803758385479056731837912307496031525046888886970213371097620619208789895503131255987358764007495370694478099933670156773247498016971743546199833072363195334239989188602063655727728649545127027092046088982676026890693573772107971213107149223852918526223870465070599458853713502553937580146086378618884217612685347560003773582639998515515974153824702529863854541545303408882688676384668800906527527626348845908422078262101103617791647818481847319715817851536184994679185777992903784779935911200101071534646640400488132277251682377197130256067454945509082606489131467350283098324800815966777461200899473801147979208647057340596698820977313599070536201323409691285962377511560214823678998169775937353447805543436734507744123200080537261050821708022483830645693966812321885640847300808267599524129939824454623863038702409637364195575137428969743908818967119723928093882514325853327280722916799373643940531206430135623336854883130077188887172844915015916158038982578692889699270164632447930060556835706602081690103757182218406661325146522692207246676183975351192252375351874356120802667176506563199827112020000289280758812528326788229678395461204439789451079024969820401283337294007633546036054986664923018856159414014657460108923344048167974511630608756326650698065993595511338524752290325170206144066270838898750185962185540429612044232825805759022375788815463412344940947557164324104408066952922881274733734895031654837744145200323545347712408390280870287736843119049333735401242395183630586152515996053231507334009183380072173810678083468199211385663261595460870529101899919740625761977991948374359625388928489190675902345953855089917503014267226899224523587206439211505695502583343756126889083791208919872761087468830538944643376492640689603507797022526389153819119876167867772354667222729011507150355236436950602758673606790152716796779539421668003980300193054269261612167274269321181300356683143751476869629528638475726930398142078697699038026925061843859302844939472020392024801466173208263121357843255391611630258151867317945485271609483909776254468461531638623237002201500622522080614574967524928875593778262444762949979652323694786064472990247425531164087605834602130657265851415834846207365348575627937238939634541386457218337737242565589982938492828934809970535507603054438928818841922892677361265774230436537867007454605419602683803794680033568155162581537660091410630338719562600259708685989674313619713063580948479745256742024462217044467784234239692739784346397943809569217736049811323996389984019205266571895790593974927900370162149319825135821850474080299235806844931671410556350907571863562985551680410528720607574013476912459998946837370902556856835094736308945730294180575955107967554934910757149859685832484365819576813949858963480918303037479030984053421012713292685182773110689283441886003199185784529397550940079068115162779214775538895884685630100511010814591234478478749348018529753413234403892152434848244417831521875672829354781547593196329160444464624177370535292854523755471493715727524990467333115114403596911749471998161594099035649091417116257408614429927898863835570967355937958749395636206473759479583359138961727842947282093186387381276044011125067467782779122563962899525847107327722437958386441447690049521682597621156044544792657682252029654317637408181580885140593584663737289274961461699978379071526285057072052570647854400995110865764916317991110248059921277610737653545600479093913929019236792431651451601320238296696365862863688443066298259218978472688322810493306875048612486789121292092427051056741380874985025598503080568815631673167009719691239399101672256556627641214482197533374014869989691455294884584918604196658728865792472395032960719469120828233903545817794331381342773985910472228819173066806796997298562529411459230275471808806928883906908889065631348492907375118297298413796887185010895683821624608218187132842948425134156242960582911751146173540062691186216732595749556405306842246001343768379429507563907557881887794505861441248014328554458608445837510625001224271976058495696391404618413076447194996804973307795374367001588790890553603779499491950868878464915168745256741384454065183355892043940615999671003780752200613707553875532439888466857632550845841217319045269824731218790447042510648405234469963530970600107982253289830221188125319404776342084788046789836662306051770350579990768806636407451418932122232843461536204677428803386259662460809410141641248076953267018245900639076314304852837476417588382600605523650241773942613418324655729879295575995540671768500767650114397744727360346634783557204133997536978462195012688631117910150234324209152755127967595941265683569296239086479703697490030374450232703392748591209367435929159714501965488758104670006598212012584200191492650767713871943005426955789260250920830245562294552855956828575253413362669294455171908216390075081660809232509106447051742471402248903127058780176148598705705224637157891344021742540381142765563620929602342520143121678645216185625026160606544113682625551878922794277946230460301592258086813240172873780385739389078253734687928940809192722599874285800507035101852834299323126753953404327481704138151328761036029907508214652611750312437125772431150646778637548451716034029619946536543262205005008477983541525315211134154072583244678680942927059151515057832228795488547500224773205503070370571272371663749914776132836007531483544379375710761487159953341885415325485195289333215321036662888218405219748971852165678474694765403057172560958015701407205963173483201957506050314312450634482709152066445344634393443623767149832862728260146341750375446516241306092927688303286743164807353322807344073497182250025001830466672801301945174791523299068122357642111845745753014289972175060109716642335028161974883221324967894091036098963868652931042650727215167102084760338058468013206616390738341996206715460514346180509459474185543552312156435020349122855422809347562773147018838922914137081507412834726480476993022177734037278790597042844244506725309246317414578233419821139873218680241480458925639845681710068443966388067139379882877680965729598702941133558747160453673973843660297172394607299861157668965700454342713820608923006663044070541244517104239458441075160485054162510234414618251823142190268579206085112609565479895765543759406652979909621373346408590815602544135823066578791578072573779635326955592151367450998333651274845552798698274694471025787523356152163968094896123010793956681486466875036407189300913863429613830965734280961854206989462972533509408580104670327426166922028084583143275430356218824260085955539270763045317048276565565441919659838862812099596667162500268676470767342461840447534192554797864348233414488147559836867898814162263279536777263069722092485384757077005719555085038418990837932075755599011330340894156245146482078796141345023202362327102782072257421856433428193521559300059225865627363419845228727844898052384005587996560300627823969767011320768058732862647204686906926956901573698521235458098302602291132702461870147569821278243490212191552470996312780387442264213167259168095103817993552709480580965841303357712943036334891599516556159874984240930962386867080556355284856225078881921986749489458373149010446992467333160283280439220225545943034188368375729221025791874775478307607784932867693219228964111083962009263618017867937151808820725364750251958786959257343621163767330964165351045134297372253213815385606901679395749829953769189714213831481751851294426240600884620883988794674850994829562583740663780702006082149838945606806443915736603719946344576752016578966029870286101128444564796429863868700180377079415559998660610646392115438671939000515074999008755299734196690360540635290303787978873498332901783272947795728976908546838116491013683100140446329940584459197442467403142204315630753606140954183791873938649783370668560678005906896138287302746072329084720805972650655455680898950408766694274864919404647920209431795461528785448020784166801497110041784413860221934434859336226085311616568372824428132941533976312533545010112643715539519783367720362040406933150437745832500387288753298250583392501143146427071943806515384857990040139455541779179118539986170710626382396844025104838402804812102383453062758416385352845767382422233491321346992103880770787803813231781250185131435603414565867330691063260926179309048153516686101262132618552799642332308440664238991454438528945984096571325714641876240931175050257323962176058096436983026648943369936390009294542304684796169779598903677295693416197345038254769117960030738644789474365448993956291266521709570523252342125621440158143773422814857501849957752553448894876471641110555065687083785694237105224544510680121658059181859267969862872108406207884287037845847973254410411890798494153739177825166589942946354341123672035675662986204325183424641492788191379352239838530378856298751221224700399953766765963892850573835474240510875186601416754757729244495280550532670377685871229697092459829553634752929344393536001837495522923438379811290747108453990310959942545695839416976358260149776058678929997477229522492855869096151312867353402894938983709654303232728407505408449854976173745747148006826599132710445846118792570767838962624299492739795266651948741076724998819104616410361843328862430466508481523637073975791791206140093507931127633943199300152511200080105002627956302965211431696917534831470436930276822625281453727273068629437209723074684735968150511941496827472812357974569236030292341236515010413008369732992791721771010332259407869217267420945809210719182045630149895735104669764496838289558611323910134626020452328160268631953535300817857480998048520721694818225117230814360701026722716745141235537964554649300928367125728321148889797657136480095109453932322248032107420665792910297227052167134296657065988616815657916791315868768969691866614921944052748695440379929074761284279475651559087244396020666570922920110411403906608831043796219813312185803308668174947318016276885592980232237363399882681221864565188196592550763934985806887368589649256397731932517461801240582263692055366991722590150471924255832523123599497033417108970195785652843125355607570668981650948624413974739162455747071986852421995882951869108011857206384495573994478287042305013253736943630681266666536037544315653913662871116051978752839118918392184592421910799564107501548935737873761152641347400143152025533849504420174889244568417803932813822582305496281679868772470945394200092407420837364032932294563578439059085486978995134331211935866106483540722975159728394340286473162436413553776059769228840978339869222524036720370957973204210244608814948347387291957812597506189642882487672061858941770234352632713105774820644962768828891060421594381314968080559873240515013696503968034861844745861966552334467727152355994055685504158444285816525068944859871065986191002564803225458428518361210060394922669449872869441013383789136496214080459913897997899538408348002573744979746248209365789712684114413309745390020355176598699166486246467452901615965238893489052681440939907344227519206597397444081311226549143588532703512421676358481918137106525722834335365277235037258295699244029918355607693218956006955274627695469859813429748693955772073786697287843318078701452007221483465116729078237223357663210282097216648225068071344631299490845653562452175928064936952637821732017342594771282949007034820811575145656688960013576859297352529372284995530194266177673346680862861768450204468437472195804097033755172644229180915922544748755343191677562764639754193013556336519073722236330175091851944248357183744818337284517804216417702071050712393760531684015169033798092579593379474254118402397521615350959848883635296685122625988319314510197134059819510284345336278987003381721038453442530448565509039918854413764485657001054146731379449347964612029542643334967217647002729470740136264629158120101623897452855922363797043424647022721521257640610080183150774920599320106899143212206725819007657446833101433123163972032324559198340005376248644713074925845725584181388260601492648866329069396907156311204625246282147473606854284360067868743868081652919695426667586160924737198617752996163896814942544618718154995726603360403995019143015586498444412042597154766170394477799845815212832446841955309798646049040257523255679806875643401154596475484268139985731355015963366935443043702131672015390082669241217650837490118115047323752713166643251259838515161130685302848135341288009931653183674435890344165071523950484100420435734192153044669560606356549836637105656255792366773118149903375486137499835976225977493417463135914025006867396112837877861409059223197625131427210512590628455220909597827460801429498296092628771445850981169916595055810431883158314867504283776551272809214066559555526343580991088850991148365213795415991424036521947957510860979782476415982769389094722484717098593157843255327560689385994521975668742775771503178822598546437579036162288821101429393351097920489653681614233062034192845616764277569101802697936293797465483346353084415843049098391466380784692086009720333986966508971362308574723874359271541718581716155198796448230750362800428740289648417918323133247866665096710003550731490945384307991826413092630339239860522037469724581702027209500698963004273077865660789560771547077638173081412237425581963629614176647890974024333101907639682476470266614617001453275465137905528540825630038169683979594158424239530873577192982394251141024608666801914445568773903443715750248905036792828147943590510211687113770381738168300192439985353305725270006247358284591362581340975535505842379702066921861141151586534178655872728744091862537519794653359139026423833411797233609808419379519947369153582071025620586849061955680978350960192106815481968002060005159307261018759017668419639711679396469802247001874319052948757475761756338530499522475686241761750670797628575700880355756483153219182947549893027550004960327066053633279964668365749770960311079527853604844636650438243462274821965649613575653768845015469175384918152192444713048791987214977689304808654007672764780098783300825609586198882162074888596296769637920150543217512888437428633864837427597140135802004765390812506716436715991599042716768184749998900013913300093425739524563066788427072778188546624537052226978590180486907693146745619037390226980497769952516334188588178005593010326848838710795265375457813846312761175277864949565692355730377632126866194357287999090531273266978949940267775781957389219432366309219467668217582287162061716076017519831196147461648740304761277025262943597275461038673348255590974198996810893084250475445842624805214242606294118281495285184548032992115062605355696200687681718739579794351415493942899073297518226216417216330427242429435984670222181153736191000853025577588849749687672843036256144006351689840449780125908293825949517830671868531459041465601570906340256520387216319201218607114966768032073431833257370320402953043901496241181492311754628641171557602936202622793925659202698639672132495175464864564038342687368733150420597794121033059097930192749954339229822330671980578627428854475887543350763541769059649558860342774589018439034501617178619924216127323460866856109977068066031116506787472090141695780408353635794084282869988836524434297101071949810929537302026025894661415024811732321346702343009539619256721319458376494668473339904249783138505278799805698599606259712735055907517223341895206567409931201866899883386381226883272389872470441988239273358968944382768313905705852445082854118441313464297786371939524454674145562634851294691895298045905382743447048181806883714687003635607843863346962383754472084458982195108582616853369370468958293125865522819874997739100031810542728896344747594256763725782585564603034926023850696121530028949089871649769976314457174212653969001807292545339297687847712950148698617534035544389703586232344472041197822693258349886999425325514763927883670397445817671090135715565304441224466908573096046346062058920297973784290983000758779173319491219498106698819312141752344831027591563312325541436558015722470109025451426888476083077109832974142511553177411964012851715815709402383978016536280744435921066154346366930646319492813612216755743171946298277696358958115024716947672647970772526353697505132427208165347434236478159575020175627141668880184203791372796040993847285730015816369058751540691822237163918497668510958358316415074542006837192376229978960145121764343457749725572155850204777083662781146640830150584923952102942726621984421800512803689583155853112039805647962337740440969256075326590148657609838556440768657224063871555382735359906604029233381180070973388632836952737344032011815826675686519250924694185863038942086401159965449840320294721781522171389253734264667857890959133389133751349255474684710185271277466989645783877215169345651526354517735146434563106711137383589266011637873929557348356693158822232041003639840804946340844440091945174588942253547527479335498998876073503189589579892887259510091948320531133778006145329622822362845227557308958692602979408196755491309301738255389571111345741347855719578751230558572986109184791969380727844447031835506242279300130589111738782661054582613673895908902223668548295637779633541776308657530955657587565369016403697421330456391558165519248299847863072770429071559141330016480530906991366196032069706288742920697080524673205857711821836443458719378458152139586526073112964227492403352577300245774790621065391707966704037454137357034058937394985161136909206980874300882171999566272199693563214411969142723318358438966320587188722218819858242918849235783261707964643542113252736257030574443881035508823434535225396630242823218985372026002032983698556524912510927871004713488007523515850681678710825692340181950831893380423551430346719105809106916744686041384597901383509954502552332733235149354128695750203102126684206338582979843904482092547062099730089548332380804826352723040421826070642300833020558281399727059214066822625808456567630387691190368252218328235181223712718629008195863338969607850532289644635217410514187462790170578100582573919780647825939923055581886311971977945705894151572072278583998624398600547499830885521700292686276285975858234739640786453613348617805217792180083190980666727922594029922102849999985561422848395267567411320859489554339475566836451362391015389133651393605545781090418938195038417749903595277145792358459124978498344975041583329597568074879244033567913966362546578874537674566144082575096881465478247306997098325164083853448121212430737589213386987565881709962269665988879513039401297714532622044561402889176122373367337568255739646378504635803022162685770223295219469192035557530978034803080770875283708365297925409383909827156839581983448822112123315971148941256552665576505581615880259588730222541866731457068267573173546224392721206066496561413169563447307126429977551844562557802987172238334117304577823760170999351370538780074322871238117368608262865592332128318428703587191772391521760418160317516791800858080715071831695805771688695664049278184207663082868035675404117741167970758713752513515796090589166658230878287708819197492886607197454421007651214145722600282812584689439278026358013064940817978181674655885808871525788448130848174977693446696553225822022646505733498546228591441354417549771222493600633708215137199369674353270780524819560835200545958371804718309736523235720555867504322447841042235880416594806571544157079254378405570446375564447224024465789533796381015196905323206270559550932823849067746535331942467292993751337209079739507040081507920961870016888723322390950566914780979537009903833866760590347295449892176057356399798206362415587926826677166071865787206498576431036686370413016009815691676100800607265447075256963179690588729180046880227094000159125551435633042076783037979984108752990950299834945271227192024191579954921237117310164210936926048597669386476060233497257372449011857994496944456353645383089076112872989408895766846085522243879435714527872413813978380571578857197702508265183171309422039723263516667121923577691445835487539060980256313403684905287345646366920874554923043892054640109737848578621008386379917520936943884840231548655056419768810136961422801536595761064482112168989655098812402063938860785681214786852502189238568475268850209904119688699578166343569185751378659993397758904410545066907225727899070010527830932720983258307521638532761827979185005020564200533568006303516223069315893039724159803115193987191058442833400178865169831720151577258729936998251392853752845547680885989910039990902757318386512091861650387229863475652607836148010874401063424293843771823506628368016248826561074746797459570728209716532992809460678630157249516165743976171139855559638186255764832793295874361214362800721736079082387459090003229177079591507540649979133607239077967110594583525274760926733304090253198407942855169099006581520123826748871858176216029222688978248369799935265005308053028452606560506509591886811662270987094932910415234314878392411758948622615597614305715135402329194386709016878093097294158352901878492251355182302717835400884947420196366808061389489147767029061868224152397681927391399807389469364829163270028082198694081244684891568986783639855079136052507565339925247350489372979625388779660704139189430078495616703916875501378858339345836370391833890709508696262120153018572978119777760428254398993041981170040015744767691975445601069044921066145494764348867086101647910851087033333999739376085290456459670588468559183610973338387442434338312223023102865617079317497762884598686594652732520061206007219891004680854454226043168625610512274193354669659860391567438731573574220458126882193538930853025491565132456997696429570833852009133465722975353697665357431128775725469133339945054963466434515852969613322114485898666364911304440496609669047365706707571255411688255680430144947722487150750399520243765796456067324865511998532174613860543318987576354699527233337770548163973222015005244764551687499925206286784855350931520991172867072597875301451902105769817477866294917031129785101214098869128855081280345427881459638673826348405376501071400006647122507442883045819819859436480833332558311620917569359884850527165766301914905001690299373217203622095608924032702488523690074982590585585873941612890963454772503202621884484575412980699343187239766873742971107334708406321222966111161020556661587895372475506246662537969315173089729673024648568389759733997172850684314224241158486017256223246838688163547890605291610967583161897198881616198743395102745580087205628381052549444940038480443489058092806133412010078130881907472568007999201724293659989037609926096463239425659132321498390812423754950383642325595193650008694449430867553647508189803714554931457374970585858698717615894824572336885835679335163815091043768395238115507931869493342523137366122699384423524306735035904196227250116842996061958620181395300933381239384628703466419998603352725666351283505774601484942365606411254267132345189243458545078768761116744154331474822373579581656057028953348570448401716731697938254889279065410738141130236336931277420362213208840164670841517940025955166626837350849606648951163082860252256474523737961902035291473959476476090571075685545889168398988466978927000475866009000925178276427339513370186762674333003889809638118941173812028309567858539824874655383737206691290303498132252269728595269255184456610397864537989995715789067433977878654331766262008353582613612989615289208618417970572739821658438273276339774047616410246898615566393166476849756628474146937818153696747180628331654766255622705360921547088351435158381931127578333579378602417884180780720005129961238855603089469210675461988082250681591811924478633119221208344657675471013629572224956497681147996993956246231785297295003396319970739731726896029888640505361271962376718259245394467430968619816137911721452726733619460217130819887499723817882491035077422947921947895426692668120652292033241872873865339707948757407309356155291267460515890383370276137544028301633923413197744360784094602655749329616112820559362685354137412858432722630758406352860302009268522130812564110115223945266250335576409359516116303572648469681787831277524804192330097611689328238058708047146605581485092522344311233706931639286919695228394015822994624824600689239895727180788120143661687981464235252823218564188506666628038916078539644368913483898003271296619561342853566484204761743025819715682821724905341948695461302702911680719829091299976553783799635899211789986333852489796360802397733902298914790743445010205130889325774324399389406171367459851866249324718525003674724149404842555924016808706889723480202549740840833327697689037670279937688491586061842972627109964399221462707848645443900217223898699035168780436908042242218612562930683632463491095865207241293015413783444539382733849706597756157063289424970521210709416711369087503404675827693704129673983694266766138458678214798549173232458389066037873550806128574022914655413678719101774921852023262468928335057291051376501998119334873935691099754244018847493721651112443818618634402395958077684465953420249377312308028567171385849887859952065977243026761497188418534893425617127543519969148126615112152933355952070267061152515890913682977129050096606874031461806437627909371573268826023562771918117210421826944292679650010832702786520521952120731838335144560952828846903944987765927372176094005874518761646473997912436167934961668428064885464145222480429968329988759483175700004451642724298729412304579859720334323269440511184080874014194341300391908922655211989803864943736347681466849714037210706876040069175890097369761748160251307605274582193378295538563358294349965725861688519092968342432010012959243655717744893893356613248829696319833707150961803176741410918407566170047341180261070818924756982457822848789337567746353882713961530377116396979099971143458538934896115384650777082515888846867489101796584030709707125575284354630877697876438460365167568636959062598368039979195694599666740831431080702477457916233197095822515477797526788956366951038154544891801911969416525348901689582964386445364838051359670364393873951434943584812677133506707650858342340470082363890347697938766009026540864218624637461024820224141601156535774672107385244467528902660229541160196631627830822883782530292547887340703123482939917705872320051970682626659652113391855724991889261307803487304478163419868265653805386537751787925388013866636149324115371838569334667441002467664902579160170397211342187951623820423454799345557753677142345400005788006643599202012081980173143805917768007798048877477710075320880587254452545711442212054348576743763729837292111994113774018242657052011606345420341111812582681358336710402627095617849880463508405118627552421501438512319645774582862348338038464814936207705888752702555963701062046529913349819067706358070536551748769948101805090529362435177761731751054004742916360019420082588466679183463093489867862192361060510862714343828524978641519286120522563817545627281906246205350644318003360141245986329226762911417196502453809854166282093431430945527668683194048518078691688623406063973843490904563487470177387081295274746408837708986272829652383300480333489950818352788596011734193644119372614575107278464385409025546053680270011834746630923836619389748169732591696469603564705668863203530822559226173362981682218931985406203304617461491902145820967002819920114087857264156487709835665343412309695740159899426984169709156337155204724178614207042792476601587515679519171416766351585685333895837566098774845421531311398917647566354896038729651042665287844266458393043316676722026320353953375328569344203275686716007600561577057657640388763469559280650347702236461505822305210637915275557180503123846900709842257799178760026376021656412742917560413648250854256840945813686325779940314961723103320273110126497807686800520235630546184324915325216847598919776430884301384235410636961767992420664679280001417271802830606869234628852818236125595312291308653900258118640189385756679430988486977130249110411148459739729512209949146153670301398238047989451320787280877100801033630541745010712592381542115911231290282088618559684562657327046600779581561362687857472770775435974988018383623465082305362116858343629532281278803557827172768274021064840562751516682535561865878251407684555190913906252642850059491601637965677853619609154304835684327745397249204864327174154323337363613249124268115285988837346234069965152415298245427838441891169594669041217745510720194077560609350785799303798046398466863110372022512674875968452688799227541577275082122864855534727794137741097206825273354612919030415944254500129338860058772175855186355340678987784205257376238535331658802473837580622279373978304759375550762355636748924113909977862251095720188390769145347030651706984379343185538350620644020956231235552111562070818131037325443891986684388986717281656447400552360979092765959159595326665195863839140337088419832501317004006975827774298846227364938417551203043265901759209465308637121105040052276118078405064592867457515415879781002157547354267756870902297538704389612873035739202007424693200006835402695235146595829628228029779188688060701925732694885905926570734579939053081731197057428044867773873146031710897447005854090374650093001672538339996849384856496519643196925918872459446761891149401580931741521441227047749339383521461712175721570897511899202535590515183714496636195265532051739062544308792034404843498561087084921055022043634098823754788004890254350515415762429380717053818856303109546316871139935302819792556225662040229558462538938332614979372220466148814358618398738040599541908053440102834721444810524708912180614876776780248207048655014906452399880952589317191010254197180844638988754989949681108002191826907102437263171133857060977316199946738814825156320409924097952820429726072049361020909227216322584792210408968935007371874909461240957711975471735071733299682734304651648353961875898424666219266239269820160390856979266022563316172630626696863720745138570173331537314410522356339090873830496311145702657756122655355189221197153200801776034181413434261014766519718350959113397754175911158519609231740910595080867026252646749252034441489438929009803291166858382926322609908542227008563697246050238546288257366549329226461299291047370003530778054760181110341276028162857522229325342000448502511050539280200617949758281987953471308743121704514711890224552749791780956498106490069253794528919648047108097665770228032232809132891664804427872214652322409680894555667261421930130643327511360706293158439419023135300419786920290286023912930484416818805618400646668920398393006535668636836874945100670890004364369909367038828295377327779686217257106750198360664635997919023027765517771834871731994202954837248985042784201269852775553913376789084579546350135876988188000352442376898051471004285970811765389633341799736136861791058273384849931706769609651671520345814525753730517930391324936320401298511119099046961781266986525775457298222694053935951825555178125230548554055806817060142054919914474038744309481114835133066554498536114162602951255747099999832613966983151760954185563177474757518209208975886917699308511178060597202134285964782675612732897366053967711171777100246987036388027956425770146448900980687539318755271509868301083782349323455241533689512109785526477647183799784405630089094675022319052543217141926016810919028905608729352486683063327176587474433997127821433068763366048256171216759857111666924166474831553039740158528634216970754310152325577746570054382001616084756080849098596017324630567212049648490368583259541299781526391556023455453167999705314222838420217136020023317388262361755985844932708765215450697851875009596849905211014380183120307880712961651310660004219942956881075675127148958049465598946323709908674207143176430134047194859951072009407792066459717329585818714499564854898720219196430373132287378952475666761364265708381647785579949473871000177738636612163133248392040602942159653055264253036837301817996954122524974638448882950143890529515750912468499316263663708064951660955214258880093008842098157176645857698577091630786819563133527069155810023267638049888111315130187056506661703796529697885278378293753899646423633974224491616957320288757871278146389724429364432508344949622195646900842645634689710340670887573033863697525044685640730482801724061892196284123839422576837821343158733010497243855353105104969123075606295660218378096790911144267251471979021600134468395272246621983976571304949283679988221434213524441059129117767101836881685763091572165319577245078063437528440368643678433807254101329678822257110797195012894627224564180676413341864834864844302171894145670038649342146214910598040703584582538262728746636900653217169554626077478472017485870282791481618471133906352211800026954607102842698828732828356515893588087589146849968382798705055288773598639212633875343578998362052923442162603536632424594704661725051893379606652888663943584190487723273670679174315230496408510617159450934642295717499890551404077619343983766379193470400985339805446105769250444570041706019445839992398934098795653032419192584058091582936367628092774553739065803064425069539873138983476947349780219803915661162280074936752334718616169572594705314784927203676440065394473410866524422728059972990844222008729652927650104937113718991166369635279959982088638849387412719339257705074635226722354900511447431967097394015562219846495474738891533934044004374676748462024855387558107709432507584611662763505118373171384662350668959613535862241572809714286204621424011412154817893207901342504710915911903304549860019815518308826198318479989718651296045657503481807979980059126552348330576357765811785668132461112242300091748975494809055086890679359933566763831931425218657504092339529610191943763374877632959023176047175154987883216182787803187729794777317981236580415158893200606205821601407482729077567275914475865197168960562209067351227301343734450412893365779250227413023211277397156621928676680709068550438003116611520315409864625126411412476221559600421139675145726823939534667941339099747383342874667964827846841726229417132660611599048034919420742869545831047045662335914702602063802530490105335627142903126153088515646556474334854341239617196758052829495046336449928136798790660217048922192429977249265414633422228297380727049357237410483324092613629036245448854267294684704036022805506216164804048773468671826364984355922295378025474341444765942405335693403988848151119408063391007465707139966948358981992950140658743693999104422535797969419261142558329007263860737244547409268408118220644522725430408819993077918103898413386683781774143130596529459630287294030782555727343198079809348395116328308690823763167863781368140559215587906425150490754234289014986501887305093777380424028259590303761988243108381590158928442562830950573980810341471338345802903370123379696946554171283001688157877695898149691301933081485748988339689843644582524665140748572354783572914681523097594741136558560498815871338467450751302436570427578262273485885580850033480903346706522080581391444884703657271169896239256877780185656048467591510939776560830680731029808042176521143229210312416701852540043164885036202096328950741794793110516972340754998941335053307908037399493849041663744384140818858034924959251879240263392563409947946398798607270920964184250371068967187150047846759831294795000531219542025383147295850497135919345138246182150821244018394269468136742697816144976170585964045496084029097585705644411900469292395305448933386885430954143990469761813732900228825878867331541714433504602592588576655874768638225668662376701740163502365952912738015419692974267987669523673721059892598373081952420474167790984110103877261191837946685058943089424364272279540065526585517476861165165332131433584395355700835687512507626959916716581212966359798637761535288505512011032403322210353437958730760322168006672793915735202631151448077088311470061559449064596459627273960839501322227203091372080143531435214538037963510721632562296628379620875026095822062792893180905369673111934579810809815424981718298191716563486432525527710612181203349444257061606848938270487125982428641809070709776724011322137297494506675413831499763689989867403798704664014855915316781860182946549817316497491207626702890988856024666052980711566911392868953287602109091128278534656367302546045123530633657695368910132058696436285149568625684145177868129313524964698822374879334124860559321042612547307167837736961639969611790873081812518155458539266881830826278279122023574284259003910706028094383622552812605156932163681124151428418856461840058744424384793416394250234257990310979558247440868272723735861176598222430397950592172591681174543053828248793913222289268165451193884786189230526923695429157891456885932840302132670949007160496708631768563794146305220398714116800890207592357314395594115139143114415282894169133633798141455804296933695432732179234743307996887811195392137668562499476281661443881360820146305775102386423367805942962177788217626727165514614781056216843337467918734892364248841535506556359326852433864447210405523256622899717919549432544342248368737965722770380164784757218029060350463231583371688192375038316468807088260833288759253743897299567839540914617040504605311583076799332515670565886559958206027004497845079167401755505141795462222542274185587396073758293801317696518574020418494426745927140785247853678514083797010003722183733707173082465716344664246406566329010410569487039923608632330644520350790228019922832367866153713742900594109350418148098332353211309656888545357475736846100250163724127517378000174690203131670988493204636838251100477953221555558577967876253028187920883599047409957960313357468239409899630375242801081654599251317310439032814446871238700404851636434994665900474190722627583269137721848053413204312459572032074535292666395008545899403405029350806970675604017366560587264048470377732882959473731922641444837993077978007293179574729971562282635375697001396632228561111479986147916991303545105581852165593416978123893188824761090005323727432636260013654104703471097749502231551584956485666045400156983838255227673554357486028201230863157322566201689306731050404256179949417887387648062004251277901201114772504868547011977926950725500246564176629370754643192586873521820255541925082414207343113893218654149788670459429621382737262426347453927666831131880663846205515747865846047845196863037192480726006056400911143547725894729396194918713697361954917063265695395472112710130159997339449001696812936594074944351865468993159470902274116467715600194915253305114498357700217112102660940832002673132845510244492477715052515249203565649341996193158422067808860391383151031125726112927159297973994427886725395495101553203461616169940874899336727080734524575272531402008710588544412977491382171009327396902612912434965451868354666091111806997736660595378963231047910173352452314405310165886766563165151831011906186615384782914508339644205587248580641874690612849205021881491345337503374449030718589498905206976876079043396706701173740049699092920809096632915837098372257398281442816564922552179250672345849210903054001581268076247993288355132753719051838542288299164693395413643153914170972186442796997941981612117095108343763045356085317817482995944583546314741067093901235636701045505247158464020581964590316062945001191333314982150019893030427125361686344294599642808037767075274661978687078839775145774156953194196532692168213156152562818286630772245841920950899680866673229112225293446160659998380124393518562821709372784223070285878828636464663481397560571467751970059996882850616629491100416030977931772364783882813908612820326090569263701522815208400314803508468633577753250562337241757293322424233287103051363513212830394466748996118060873223726691503750501873466533759544758448190061446537459812288729543524718007940875966374975403416538861171950865498784720234474664654338206942747749414471651906803269026447127272486332574843343486348494312190388400227241863857927175760063733556730429135715068603279305213304171344990830893975676330208736401298856781765839296874233244207863175274667855290314773935436140781687564832746763290414101121903532125477261125298351362439236733399341562794810457006010461685219717398652032253473406423811516121254555974233949689201384427789734645092325843651880662755936697229835223110981856770185926621080511120046676179465399666784250020346703267752579464756602000779421799671335806353532276425791314023629148697141538337554929219015137754690786045999385017568467597252407695277599467445909330931779322909100416318599872248914112433107172384244033829580460539471854687548486540735223409472713043187959217366242422268214454721055413531476944278159847639486134091191155528707669489231833725644589591422276454500702154534050727905791278384723871818526121329358578608290513815623086561117575799773083817984384546514605653157761805898352158369461304499655779789943873360330615233057915553119357641038082874889769239013212094264926771028794333491174366762396068332921790874367818105744038911805655384072831273655782589019118029602665069663874135095932079029515739714426309338987580660390007158051758382334166324155657265188456580797746811280741488348470727116359956414153279151113012703989490890945468840400877173095758502965788180588124043812871527945564946093254333855644472743458511200415755349101831260826146435537518102616003700060900862445775225796602105188036340811177222830571827811324711168829823581704153693533606980699997020795072562304255978372112414386470482270832754095412769546279788107399397411118916259991763444518508120788935363675926057955231324469928759726999468436744294035904012373357439300822266745901087327983999662205847943431230445584795148197193288503719608929914425728016771523750921995842423445795398814219828044394361339818816506629267023645778543820687443076020835164287732905733254306968644272085322705126608506065114601354854433567382928552766548644186445962838063772037844612266024791823170184823880216324544550334568433807080541893039795649657805916059583832807764251617289921800176744759494548523694252778312675535533391624379869826782768934529486212891562811375806826652973317702153940917557503209705117026228831418786787546017427809193711990849077259238064295659053121277553121470532631815484075309849678889133720599523217306806636769930663744037534407524860254746565410561509029112171857785105604984602497865885701122853774073294809066821325353132095720465995624809932707408082059796859474164227369283377577868936165256586352981167314702201218651571822420780520714185966662628839036573862997524661715384927526161303739098788031683535811555138593088585703400882097630733094591831646652959502162895056121587861978369654141877618307765835159346786366402247433576625379705600498923542772605755127059454477623632586357675350883557450825192584548636968975279260832520408808075994617985464634510001568346184756991554556391840607244863159740433642555030785027170308245938152498668998544372817150321026875664387234371632613041260609699160423241445492699728444145734058357296503481028543782008355150833925967944967271912588684170121027940301811904633971231912458725645088283004057202266213817126375504852757442604939764889395638084663034263333170234853242241277800757858134160982567977767321287809905209708909767102580962331931588582532013826716656244893927228631634469653250839346981671415066953567057720845861694612196175707006669312245951841859725477340982146968186508277055080841546532808064227337559638776342439294458315721357912980164530813761007358090947507365608512007619509566835219648628455597197364478485474111879370355664796048305435135976514667883135116325397120580040092478993509911884741736088621057262277212965829417703853733150551391537713716161864986565305402976089887856981179661437171762154086778497221826983654701170397509044817058908728605312023372259288990223572790923811352729428597448145801059051746167166315903270390597994353219192844716974603654922162646174740230746980301936266107331419421206313628125064991642303346701961641443612783285156107191430763297469451414904178237224499635673438979378716063120461455525100984173711254506267150697426302948472912720759784759530079685411839478737986860976688247491740892456464465775347798907276331786811326565305953795392052559811379218133325107385042744302915371451187408524107804034976241001833585811148427327862304089666596875129282448625674211158324115108157241931217699076193334861856189598426793139965910978676956418294318020647351185097544365471965103265574000290680692809961594468715652116038389703147900166151973927673450454933039186719395969048127674805953711033952876592192397693363773892847235807028433089809637905831839292331479338983936357925805528761961973501015940336453854510636899273907269725875629889788099054178440030629143894804520713642209506573787693144692015881641219014651366697126793787467270795179506303565142863313721036104439203147865212629075065485583772812342307731220395327138481056745225885912113926138916847182747375877544179886638786225504533885358484175841433641212752094190124011970006369436619405484323423013051101892991998715660211332162848197706813988777970296361863461717462844533263363421660979191112583513019003716047978902493026767299323926586806522502555910110388381380642149873385906891921244483654458092738328903422905765698150550722025410523163542716489412341288118280855063902514001195014629080445096208246312662691353084969510404290802173254920102567239140515556977083338076192877344016984872076230064148996517221572208794241008349273107161586516808819901222406342631681179497009292254538845655944218070446164708022311365298148100236631371513217149313637483852523154016355377809722388870492893983748389754684123186599114915075184716955761118447483811851751984796886424238108344031359399610415733847599435276615755093650192748757428994428669176880802498291955728304905655923996305311717462809238478155816458268344911350513867611063526087408274797873104141897952696817468838103683594584491863238536998476604917903532460262271855232453303889151014346553998405628607151210506366115376989158161251918165317284322748827511701253483279256040452071442566696716866894270514317411168457828484609620568656127601833556904990365762691191593932249509286585300443753656413915233280367517293657505635649419362913418487028988149446214681652496226837067297976535191101579710343237257049267800609117191565844772995187912074870956909883520298498565044448817476895118497536298304618899016528513678976147272171511871256020594465579891059331092706289154760765841794610555672542281160177593330399654655173758651185409402974982198217689384964386444569134683931659880186404731477565541031539669710566543199745684830246874822777279868938807396295901804688465503897107518314678189386098115795491692510399591682750417199612456652303940614888671523120013042280276892731783882850382936120538513150696848136447262565292083528628146895867330577101687902986383059224779958312301407547380977171267234300878315011065105910289290490807386358631802092810384257347061754286754408175873557260413558141833703688514400253243670862855977083816050594844736161613770039300970553745499180546054366011891750773859330225656043988110685366377170759586103943141869087308329382981422956519495620589321890356737588025919468462782029813623288992221292886841646780460175458813239823375326931203810227928471531071998700357705757819678726044137949975283840476780187913094096078310971170774628308380543559329992077591539216864213340071234787268604362778445541135737838062589859935671272320436518121700722920439590677920750448210081531633475166577712759283968580235466312292358382906395253219335030638390263591572681322043982730530595432806917486506233303818360310613502907766105110432985333876816407419914691942718920049512810396885626842257429040526669324323962396751675274564176798679671869320817529848213539759798177674960509075219203242695189154881265843827559549937686124603147886797208838243070246078216700732748849587338913014345400937988438260084974382079691996180856548406878597049273938911643259164480749241830865021624282662058754313328382364518790189021347767423818996382410985853741956915965751542532425383438001642685216368848041830414758078404461584248805089686952237048096427919491844377916852734340038270313957397273828153232115026460452590287604651110348104634058304166872415846287825605364777016464580630352565360967592998268887697324433504368564646061391966965626049545794196035517616248606367694033037186129574653169512915739144056967219161584067620467541101603966323402221193602267393342142014769258546475842315654080354305111213388838207839701294466353494149624044514885362240663534424938876728146379346914808206344550868580589046460604001499494943295010758761030516085235973236853023777798825889576550478178458377306701586737677203719524561530988050473048236745739161198409058279053135833420963308521876412268471275057711896796390602162771339036620755135692370206591900657002588813255280860420933499264783062965450415997113171364066148929732139707966559777736722776456871412155706857607359253809829635487230215682886745223761444367359149816632621752992497977714848571488409798061625743581931162906724678737583946189772976435243210537986913804364382625201531895862812728375643853871280894482258420584887742991159433558178313615112831154415946345015948191377669432522136353014990374419010040300652764333208442223774536805251613886628110776103456352920153834455727325559102341322799991097147581893264748034572337935901504958180899804027621510540350445542766053587576306573213873232873296167416315677854128388869529173925292954360560837569701021242845305767667854543190948179780076318997024042810558219127539918662555978786498371542827855926826916115374206760829411152202692696385774672548753959461419589766186747053678168229570160579075395345793531140286273807697718223289070502464081152802847320571261330802297675010413047755654989054030413579057051961753720211726144767964614791146501159067721973350345095304087525700225211461332727938262186468171616624941303634754910939740261382579748773564038586806114562979567059563651954279462906625787224712702975684853215270200583719237088121160390662533157826853738611998293243739486475262791050262194642767870771486740042613946532747873073441837536547976269219319608017389884811242981036659742096126990564619026318924945847600297053588553021012617759373844119731449984474202818001285609785932688900774537771281875918033754897354430426214559038238454165113355892619369127056244739721539933297781108554432027810170801063919034405022044309100919048925383434406638595654868912001475725078100202744004032739409584611926349346737533588666811516163952713021877987876699665305076384297266922450426109121391838763129232276961514362105763494915328260074892056405763669092463939247600196268749527483321794223075409170959018736132143362948296384582414200456713059367675970277067829667890512972586549601641555829687933496555066904834594972005469759964120276757319785598210989598977124483212760899675114769426223528037746447976623467701676843345694196316646603905188897566134194124304678782106894330743853674446496485576487261957038678566883531978617044787091605628200423370569807286862022901122234949484750632956082170488256764339129569431963570723173420732658132846344470925007824780109675737799542630303439526892559031060148971679151227193400892642538250239889819630587558409273036087568592913483573021503336089414031098303269239765367798347618914942232692954544575516938029606108364027503558329642814308164232355869130891582299642903155196622224581626091246298487985662679243924649829176290179609176642238442272071887522166748239569214100743606733483165825934099727258127224119411219708105726101467540590894592493351950490736015095621039487506341321493399406404891511761527572599130015926918384140102625858263495053253319950218919028869623421582631803342402749876782436217290746147096299312590025482107897510709039260704161051810599604107175244301144872887761134204906694275642596902516964870574076629337017539290403263010748901958160922875166159830166376685879823711420947334961102221064275409616556928856478277217163978831850159094471451966822373655321209039460369530082124047449796224640170050214889481566202134008558835353469400646914317499188867127221355865425483287609511334265075058087323250735800848003253620709979844214668068843682959522299048221688104136382853088371989181456364962661984566319347293205433765581003556447864163730033244173543361619114499077544444317083756602511321747694242508024825326988108768371672194239822689733217327060884456513159118834439354096260170028603633104222827636305706662051337975871495338275581553680170895504556256267468802780663187941400627096595312967062277214216874356865743502227122106182334248822943253546344097619695417879321492565727399599186642916104092295153003293116586138787422462648976396216025153745821236631866873845014037269010893158852110950959778409436655224782550131368119825162336702156925122141612238514390377095886986653717700836253000042846061472949961882701661134538860043361339192258612570614033931711336057643593055170407280498842698108689281833160033459879797636168477201762810361543719875479917579493213310717995536032434448283507482908071787145855158383546236073369365759844854807277348446877372635300549573170053221650765753724534476649695989899986713167499552716047294902609711149819992963074852938994396710207213541900101613164213597977301909739005385306652732727112702385897302725722618679693261186333826730284794848005492886021751669141052337625003823742125559488689178943719200269781047263238407764377801938316353809823713825560431579395184220732534235656400914011457614500207238918157651458805180048376334773218160100825514147400085143264827634614386698006712297822160183010985717643630460087618012743874205789246014828438833059403644239098679332907954601906864084296906325352573804378601968211670768155218241631257764694568751740101424201251877658441402352443985662321213947660320018255692794646845208779033012039924109855650302979498315025132389713228424846042524825169312064693045792076160093134798632879956297621352328135328549819429179428390247876345171821534777834607836416856393156030964161421724717208111849112174657171311911370659431057336591463651501920843927259895519906168745546393471884362617890571561493043308384705629246033121922431544050277616996307677769987733158556968844270021086939738477418040326024762377461303138915231104676519143600002294976312451969933407971949454328921062401218491245440024742081007827131662247039629829168485875895641595040570508857750181913944007234449206794948596172511900240680270849769616724779269163800892263117735512837951684374972607623459462660091716604672210045657582832984139874018960192661066004515061777718739665178163463862140910144881409369490984366909647918144940189841723176415752207095956476952607661392134560333266925305159750777918528720379555341959579044309003491754104036962919471079742817646191951685571102198157809091971926614133284098676512887330660061542863075238691893886004273179990916487593797538137973847924238456353039662598815990334318612209723512110429461118488924143044225085127933149450404502381840803273749540893020517235425676469773317845567673144565663870875423663883898311932327672961045430199474353268938138738663638293761983706110415131629269408033197060545969530824973669526753536207822987526249284508924675449697502826477776066557634538905399489665174117781373855336572430716177243979058555907794016643962049676814380151360468531848828566463884491670627947184279997259001566648585394646710092852763095016978136827507601331255618874636851685339119148449376786929068414402443925373217692250559368792964333776555799883569253148249530013572500103300825683458624799823933141923106599493180245743766883250891429259045459741424389338883206229534788487344924956643171316967432035439850970289437545667039393704252701876463047923815940745024122863321756814222430780533914409727803964731708169693887910960770111609582326123313733292622951910444439708716274050240851215611621019203662188990934433913506664847264955826997255976038514117132442776645755388821039443758926203535770694020325807980844852071095262162277432743442455050640035381722155195552680943076798083613813319404319686596656749967004777143621805547516115568427947578142246182977998137191572687658051544288553227556314360933357457809593790045985010009078410258327932717079157440259482833822751221054772605259014616012243897772745062571375740462239264721924520680617491975481354171002590264314442626056415827040162146944972685850121704018560041729145743812838635679432371121658058273255156967944279000067386494398500655105625154010940850160706497259760165923626698704440919251956221890854408077842710965547752333248870928569898588305702868872243526324918769352013069878376177620773943512432354850416756377083644753907903699288761495183611286979227438423904964619822688931893263158876026239210142400179363117728611878302787532227949640563387411092352486614343383830200373578306634687979605751380288029168394746631188092929313687697734911670822010561353671545511421260416986934602606179429172225650647379868489800212911722834278892087603539519623054959755335829902835945474173275284689135214798729968008912973060328940175402668053093164720380469253325796519044703641293913200800365230418446384375714600732001559959829486855209586968379008730360024987652459756093403604080591801542902366361715188651222833365958800339270137185276803413741997853788365973535559826126232547530596570442053394019596477786531416144633191731941437392683025805585674110196535069983867153885134565266141506214370695399865908039688174237137184214204826924058914050927441032535396455630398124040820526875719808400252820628654728594304773069311115551436678392554239145942376104255941826706267468360743641846730675485900966003399538640987691626119985503824262665769113257486866317802571736931887523510756874924602551206460657325366243514976637050513047070891132107467057342328938469446082296009391481727292457399121641431725847534282367098006061097814696002709233102628097225037039684779254506328078535658585405004439979354367586892438740765767191161072684648442839289079073722630489748996535327806029080486816726581180591189569325423022747053505274192995589934740610788914812382258511697039426138584263554851365778318210668020465744345073336141343363008062800395700246436720733927930642112436846501871147271000035568412043128527322915109976196469378321989952359364847083288147942079507495124770349707057189905185089144173319729725118149932059746042008607181275674672223349382124747227988821507905673594351142092080750236515007423531930400070467658263734024040396124253016032400536882001041372560492730430704081942803362848675554612457977414338355789639432639874922157640615827898391032603778927298288064419181859696815131952707511788966695578847171956097500911851171404833008332294996331345870591416066944724349843235740904159059960957574991168826380334636187706157375631614831838150513151655763843389465837686559640516403377282256083956419395721761189690593112848526587234778683723812465463300065174549260087621795091751087296127613677929438530439505288748536170739017598967099133603733368667327503296303527839461069026888808334838876610633156136627804800970618522392601608423699382782319303764226743762480337673412617809926413661775154653235386904052676823299942213929996374464773596090470931210631449867917932025072108527406112998981646696323635447875274595450791314774608332010522242283899896971546189494423185852552870759299058713301377398526168012724329449073668691280826723528491996530631297867341157662365396336031562125536155015239514822888624659431031662358227372436307816436974984677230192994040284019421672756431543612749181174839587309339611993132357342895517015599372785133583099304271886691050163498781142732073401988250045872192225184399446804375610865258896526065248976835113605822917408238397235023377578389427286310117036771348712584344173816499226200060775029392755740277954541251091118487328979518368730224720104862186621067107555886623490309672317159893468440639508121611553107081142042220608617747249135639725680708555104365474937436210828431965223229036400664847386529358100989930299677045485668752503037767214737006310390014449975464165670912235181600804838424859927118672171308684035787281714373904727588386974015561922375667645422284665472268386383260239263008863369609173089268729520330824219551587578108916616822462981890733129866375115945358809675038373806152233558960806431830538693234711901736746768032113236457250130070109112869067563456971761666451460324614749576807910125691192715819985394911335103184624726185427402421219647061905870394922749447587451179662346675388040548497378045814046570575236191728167465742002867558463770283319414313869907481706456065686024789520740525239239104691167030439832598382653483453833195728973767907285430434252970275959798143549200307404753858512438000616376347378948512498489527900801987101259864071044698501612670216692046560694959613223613608111731628704946800063832656325172023988004293087237684785212411735599495884234884382136937043133570153442751612894606112006467923906953228518956001279206634428453712846758790970358117117130567223022961301801000810259837421637569268279510975125558861186478129908066319517002280328047390838617997941997636011183884940945214152895343869611179394170620066125170546235133316337040765350103901958425164074359873019500495490749023756297566688608845403888026043509415967059124660063803015346539257801937404024437486928078993231178696106790903150235812954822653300002506617482149726552609706832078557069927509826661070052509186113686833280803779647540644750546582457025052099662206048198292248288008972845374298509917584635335733806627509422843434524262241836343612196636744059911488845915003430529492104568133321228424006450085426370834748688739946290859502094989252861199630818743937954173315760655422815585504149370465352288300803965275687579316082159067305104012578579708119395606008892363356735515961168721927351049582308932944868135209303968300289717455479737817881892362206826159486623240883585225968776829565852503083480918476465364500836097583795555523324669772447465396767043652208855045712851040898325043830127863561395340669156096327425046929401769621167916985643616034657343748872979130628192101473358616783324815092067793674491137930026498092736312504248492758457592507915085056621679964028792226285659254875486311890014332008255355424099283639546545738125890223116016238499230832873709293467453709816544299754102374728093815147079060512916853278108106400057816682995552908541463921431138177844732869305646049558430554316463176824517301529252423237616241927458230184561472077828001954220600613915195221394793994655670596420164488228501935194800037038246454556070302979558527823978685446239717329048782464977299872766638564086574823680086786752248487052425094366722341563126752953064623880176460234557725876661760791874651537691890101425660251400895738553487860042126448622956169864819342858217045909119436588340766635059272790032044369214168446135668261175619376257068449953413780922041577380316636951643146089170057908675105646583378372805573878871774325900161388664238689773066425971543110792305597272141848977862395650570438395598248329249235756297964442445179044537522921814485813585306741991094048041578378768381885160791769326441300915996030132290140343838406980539171132275946766577672603444815776483192888014535091723506287013215039345878070786441535783545285491045513108709642250730177685899132364252404251343468342090602803177782257370088846961432876057082102723925685656981843267047294476443456619889452998745927969340912904618691215253801137322938209213919116256310932875252567657453129572891732341590659578634224168477330824154200209129583345723751244151708979213211349848455045444606147457156701828350525505320170014329355703011840954241155462738566499079894062923983259347503866771212146345220448098521818337858727568759023512764831169943651359428165007042442470680903392331043882929304808140941915366124264276212615256283555842926461643893652940013449878938104867613787414795694868990343613687137496696783070190079865994929989405810116051913220810181581745831033718776054833018180131306305210071447158203273146608139643904110068164702753464792168676510849026073720195858323557064689950342335857685164437086978565756308455080223232894250218232989257124749279299916483663424039970722473270576868761748326032095745573630587861339718595352543529482839179522905747280732870717880711952119868541782722957368609472498081286245777548198848356474578573621536355438269673633554159202144679818091507331025110110053162005252852585326719866031746133620062020390691942048049348504256712148775346623281407240009411756422360179818980817591726115399657741273774867144358397881785843542332045743002454045819671590564319946270350532589858560626752038656626770659147124838368917380930884051978054085084236508515612306681570024529677238510948372985542667726909067246582271493840340683816704034212708246630561399622603578095025948414129006574062747037886041827735774908674842210941880673306706959973114025069025532778194643751124886678376174915668405901878119477216430208108440308365234073122797592838903020685491013071302067085375257616991045680670065184756521817559355731094383931152646023849069561315318595871593962976438217225331214146216556212361421124860189338612238948741624899249486115910128855333159368260562799936041181379688175469457318542843368104074922157388964936134178135914895311304871594195689064038165016151731407275175899325403445562207321518679998536174563386672148447556889003398277353306559234146997976305275346548692486888115758651513945138748245345203816906376501497564492688840646468628895058044534828106253053597074534824619992197001981042841237908812525111045422641080265804589659197034642909084138776809810793170823765914312660734529140133060533707784380916481883584650770759752777101145056758523036025189025172819154894761120957809634161091746112915427082487445504621066454689272208888887249919816979262605480534180315353810538950252880354423363473623407821182994222206032902597813120805659245282409258803386139213083026731135369630615917574070045736615381050787940183973864234258659932674410289280826920785196115995555076468719450815169618490010273133364562584258358514870009705041143588309639237685120575709531775933471106521713735881855082376270692740579037118229882736193868663950770132442526967500043163825268514819194316721522229984016345803099970504621832498577229984101849192389131496527532547780388416443553468704467304060584381780580403496812454939233467171642552815288181843661491015290440889757230268690695329225158334429045579005584537981045661952643050834949898790003299565827901531334117745626402567885524294602313615714083337002600547843142993140183814346427450786923780791715847186377491517662554775608149367134659853667273361869060243427448462955349113797247472053702374943615310668256112771764299814160462312920759512312060849457100999940032996065916381218647665105935876835980389766427837137988035131614235419891280718261362457559361023596123713287201839115855341658062468948629928668247583437222915725591423678630932578546992250095358425125852510154581253449283458083172183839215705738863836735338469234656848574004231918699744935413773389027167570293212171703098473755879776126427157933011776570089379405815516301212737185399201639464210342738132892159551252112938674593531498109247934584886473940094200553551010014985012118394899646483533543921416539732350551530722621989924221425045648453748487496080853397321663311510068529916339173014367321275283895790024336685315809515294451502952486157795217265256282106713208329706224244865140807852378404814615538768547928141309147105156727783970031467670944766179396159073441241979964140306713464092598489841420529129927924875443296576665155105414216156013302334154963533580049235793357531903845693730123117716248901948952521992057726367346168503465258732238102794491229894745688170402983052972761382535220205209111266536436631338290715308730773763402692115028439611291613742779313064963896609044040868618309862566546519750914628087467242199657919423640672980883171703433437799419319301398907340522895259802067601780547985640228398966852463036138234258422178635194938703579994936388904687335808161531803952153057026699559526171280359146422955003538972851809040968466724217905105523575859373276871492803959799212984904278074887869173234605247873106435644435591085960211447492235012520638537271825264887942813790031047179041110239986955542016612130562996719992530450802067012929689013532341476524023632832176544174941289010620351248532663034414246932467276721724038038641430174142366144261645611486647842695351019308113911774384784951439669347632421162447913641772787198867533953034913925879145265027822635950888548805812429193487258911907190612744990710074657516250450535103720805999565392898089568741332818126416546383152178455689947708406369553686732694083014501191130666910515305202087561184317684096090919543638090867851534887518115708295878576768732533694888845302122252673258725957245952015750458456076322471565874107597230866766450488997446352052254718691083664098607240550025837679001232162995730401219306625464175947847736309137494256076404339104613985572433963157502974146883707509279295653885765631334596755068368383063111551101072843586456780214696018062009718839632945814437525360003226106759828817256088611637160107605478371270597221794349674005646913436807415487206877567827863307627352277796705958404986280242151636046499617964295328954500482406025805203429577115219060593556396664627465920594346954391350332357909311596135687815967410507185721185521335000751574362560944216724305606653755451027601311843646531690904164362105983618205908263369580204988161148892533330184414546528463052660566919123270075655440770800774396242974103623542276837479784310447561304318093466655356251694859301380887416607732483417133206870236653059275601381300797076527400029582271847562040004281073960085371746846853391948842484090676520114318734453276290196680081404683473902461903151363297043596424166863395295345994429854027629435447611555671573788398485801898785841411649587456086171776110159750309811597311832395267920097977044888583242443007909616856098565635511796063012969799701687809315279973215422848270615214012973646114457770433297059162953731574406052389270597360225046281753717107061911594253598030812082546829388152804645292255692761095585357240270767390705063167720204725383619423980065662291819667680805295718058449096513087929296038810861103010778822085982302368393649086512715621473745699710917202511010480147579662520433326175541339490775633463047862369767545127853775080709352788205770205909185101028753483431991099452275395473518215564021531653140559077799410081809981230780056167142761886286672619739349668929020782843037535638669912114988980125615006839393350797832030216863656105885935442918127244866990743826039622814848700812887948655432294763209046282590994300893306119169296359980075719205749047090069322801141107299100954046886733448139417866348685835985427633672005779669289036551383840631825903192402898688577855104255293976363337286698115566051189852374101329306544009511399368479906050998172914012396265978133433944269737163119820479648530008000617954518810639794678394916121887704134172434385181244894249746419349708924890538859599030411492732423441138696433112739510208712906187413967735989508408763458034400240895503590256507464800867324980466855422573728313053581720399391980673813828521815915985438790485627723568786280045379274790690670515126416005720775633070857094517495443278782371477648657337266614248647402816358854414552283921699795307005773768887297856441745147373724971269477819913501618886210899109724306287435550396412847711777412925545954199815022328250725052035915438249646730639016664922220929291426303354303466920224709636479838237147247316392533784424899075268661985776712764996560208839725133501328015175026443370512122303389006497922062071950483356440933234852204253011398941314867691472177796822906953740303744802433227627709928538033954247013257419994250968109650977246023004448082713203110392216347728340425290446486465033265497780600180588282696578527723603150383947298122843330053367490545253535305259301471122978598931827584412216651959302035983788733274855145333789325284079130307317537351135895442236208396258864643165167178835157327289038278050321914913274819169455230799526550747666243199336949600053837608810869614005751272693891625349142659396759792395714363752604094713315431903381089696125977539072579695100660299795153666515106695955020494539858767601571599831850590570387932860128165702447068921597230021227167893192141804351336020249451867257401866079078560126672874836413806873130061916754853065684103710417655529335867034779481403948454361246178699777024995117884493701242437468290594515356936118829134804343267319312875077588531176513138922656896336676820187947657331321512977180355104995679405765258844692198969478802161372174209818660967124985879064104022816619224827882245637712905004209443913354763948555309336978574258958531132866447014091650885456817603668338314622424083828175187679228733770280239245064445807051907629122003400449246827862446828805130361738264285209847868338995456018986881124618212506562672858318536752414167764803317767337861566768812181206844582858415168855102414583840879680680293370558969998864634548184737314480185502614900550566539095461709957543137109853411702291484532368657608585110981449688747771250749307934773186234564852489827232014357535546495530972744162346215519748088339025661666398790884677286301023773100481585028306320735688320039398609637043671712828261082728742135567246049502053279905040255751744830607602234778221273506481446845070863856933536815922401855007288910848193362664897997451496938116169270197300766832355690634565315804271026885750332389945498254061820226499127318987632916572843295062476436739835158746290652195818555359958892064730510258233308264745206487222599477592607648151779376592999166137173268913804518319307328427859361811000162354012293499092984189662216958696314297391129984453606396596928700364294122883711406569473789819710356681330927605092033322002006424337683492760984923757358337155325393974918092949453175316568066124890664999171040674869356511027995358417009927820524835557506416081784277677809262626119351672805146717330502176388036963319950645293008390770455681679609026589658534882022532278237568495460583866228710049194305755072192139377205961873843370927978091846439703949039363004679777511880953232558224380066706466380927035006429120289332535976228010778624043147551813053770684202602396644053455858548334043094759891320548880402103560904349585087487153398307279452829505602994247603880301941766287174284844269517050756327664066182391817881297704675306237263633481695421449234870481919448091394971277955798000611750985022458074993413706211176526817406354140945210850035966064310576855909021462985290964943712612963000026501405439686363854442903865688203754540126416557788451153405052196251178489357320500363549788932337704438716114483663702011573421480878996749887556059949685566960400919666910773875363350775012534043321467639810062959132913186812180254331731771731599357148950785053949536674586145131286145091944245527982469770910608442917193960782585603768814973946426561872328597236848564405325518628526314177785763335940717277193584390815693079187668096351424160803224551228016366255358753828664659285849651232365353443615416934564697347357468861994619342486934877451561779535776248786101531253923340065172251606186522600071924733439318443853826900137100728163080635698637006451535936315337210614260790291253576596732657670693904621784559231817024579918929480646518306853774074802505622176663937201633721632384175766554157524337637286640143223210202139954401351821450468906346958725440031568189956285648987023951865820016793875020214183330288731501316684084684087250617011951762243710986603384237719969039165871504771174815796298794204297464138511680742024707294077571179621682457609907388284717762857730968028043391083261490080995687542680902759562374956339296852141366610438294409538239814084675588969278387659150076841440739036987987919781685122347452982107766647385493599187278016701471437089598024583514175668401916235645007646066755947723426254807443219540202918869104712871516335400701780984656334664252211013413571013576294343058751573075683580977615902267894860823905831568617082493876129374893041659327685450965167259612372282974069804407034482828538448059040812871161677162486474991068778305600328714826067500980371773104327279716987481859229543576596788094287324736050010741493906061097442410039226890225139763622148893141725384646139085340334347374460729916725567589416077103005034488186543493658203171700563031829801303341337779377659380164839265261746885159842883759144213739571630697830449557775986503231789017778718243497413307937005231954785111760576394550960732086464219094537001691718597478093657949473908246483591555371677716370910169803774144387496146412395415167765550615615448570542107242474396406069709642490328330956533521938941915877046560949402845520605220417791511906839831561163505015945487866298147529115128319559373593147174293988528432797381913499629902900604510210865456354722272617738241533476603465298431429807301215896064868990474960434353509336200725991903454964389418225850635832177453801440320062398596788887689505633457597704573869571986064563473747401272699557049280949491624771015190045513030957293000612988515772165933467814649206742309814634634826224240112848191457354811786055539619594587318755061763311359421274095929915916913675593472945013492820966766878830276360079700051415602302862465476317453261291901257669769827642150751259646247740932808546255381602005931798116563473853801565147260446838323471350453432866269508554321314044873650188411178534649242215951114844007028715811555352561710916699851128796160568988406830037430345059561910285222620504123046117527950414285515179086739615418684353659976460669261020722762287178756926208724069671474478840419854968846810520054015242451165106625153667675497568727069771216673552386367559255637200968828511019156603464396134516837971230155427661610335559437074397424668515645495062116405898682941937314309096847328729316066586708453954208338610821737566743675257568031302435343602447001137176570524604666843065125655969603068438121332662861065390283810482762171367215917639789974290194772347522817450989005036951315030295287854698701783571348878361275744745626352747886139898037652655819245508492492068439025289376686606863241790357040468654332954270549345054380164537713991740208361816006344291693480430919654215022501528372237332074372280072119082935649560082500918232123934783187601506274245414568312359092826401679113657318733323744510896179105137931181957743724376661504459918427224055469507679584437741936768613660604202732887954216414702224213425474130276693568513369654528081847368496432005771834177963894062545348103154152384758084701287118350026084568836605487791922023014637630873311137105813771482395584180714932293354980987801005161402915667701957579279907455095060864888626286562307690871543635319052802689948126697057172120069863782147411529069408043452522501463009971967076565889407000095438437089777888497964121330980873992816422022368625319207011574330852729520165235560273507850670486607012266657651914654114082851016390342573719595750444190775238284137557782638286531278209145742351816451291850431465197173111587395074770623091530841998860958552459757899413773652799721191870387850185074090781972787823891005250265491597369054231454054953917643366936483571730162993439362189085054737603835037487907503261358964541574187481192548501298036095190360503643636716104717071544232991454535086699733462059214153523588261130245374662623689199626997262930011405740886271842563829314820148399713179911620992717206183785667801373153221381883728227381333426756351612371874754314692783662973172264849070567989612086696656033132027560297629136421011371176649840102858473872624982319650341429191349666066130221891153068717246624203779041152629323632705449851729128906401474597787638825310511655910265009778862726486781974983256472860596567558126667351918954661057182836882961063212051175689462305473041804845618001704547136801654770785625519734276130553289694110919044129786672420886585192788390179401117836097719232443320746080200684740942795187822998246012576706315928157745743713151691233645306534760653728262510402482736381801995048685118391661741391735611057645677765935283979945869081066015181502829278956955002158888794074255148850800046529225175207910439723069967166237942035947781592867276391753450454095649549954030939406711036917055011337851899662223114272194400345887304403286887526411280336029526092721939741476260704562748869145280324261752272434661815569564883364977866006766221893937602734713781496513557348970437890283280370915038473358053653449272605865058146847038332599559294317842685119277661001845425534262315519781505291576925340550123993641830268400798673827828407293417881870521513715094206706499870414544214228152698254883351122373072227887274646790966565266350284902220427393289165653975548031665118729719747627490281419661071654944033044224269909853964728451820330384275583425274692057972103090191946915262670341289999509979426909137285621829880406430045077892626488688187545040376642035978842226368074135481201057697804375779620281909198552346673065278298566666396387908170932735174427947444850200446472216423276873900689627421052602952007919562897631115913734468489393100939868510441781182234578991186123924696663273124019406716061999520542586249419640740952385459545456109630395821155927153482708069420829273409782885580419001159205307970331661567237175837734353676216337109431209540499812980947570755763147354539235353989336550198989194626570628458647739092770217987863288477899068209778428017264618905389655445971926151983564663602403015844477246055152558180543542222571450062651401386983611889971926291406542967942136351631374749259559016518459930228520446274991694787522858843800299234927214024557769232276941544082903578868372785007461134940746569360249475297938369690364578188340000613728686305802261079075865993773497397604831222553389052365492379606056148213142003306461744500707302171266834079124650525992518388723305663758923894087831766710846811893844679202495640918786120749651753864758966141444447116918354100678759417560255063503779356424676399335443204387926924449568987232598469373800346592310483819411972822261822067795393726879679610969364596019095340252474271490525968226006030858341684072659979322044128512217317548552475775428529106318669633709538673893922512377895023339750045035553065157991428819513794549263390136952017055401397697897164008203171769938467467304745570116553956632804076528119738673915828370656219125398193445907001873847680654826220110792228269529844198430201109438030066560721312253846610382432070508392694157642601671865136668781034725032324376663707770317587163595186945270226981551267596427729859303042287746543297114848134227869190897871684356262551202138748431514005435257209231575929073328691211829762508839703066618406214377978928326820998234587973422811607235747694961013623449102771640050097814153216068495451235475423053327496384652922248920022025208975660368755802320125894955527484281308147650861593636759886864510065778079049511672279466716816878634380796595254884947887400202964158784006459840010569386113435383667709355117994993400321458837583573965127643657199361749269901118804776731212300480918167875068122160517559646770897543318083819316218670541509314163145855578021316505687035931317341089407691423718734597158618538476637418663064237802725084969459092813232373636482989748400312138975542038758576931829399310973803875642297393078736670870708850467189207069323882932481834264264959989818166741098323847591085499832748438636401409807250458632908880897230702060650624171866692900220654119715153703494362890295535064218617321806179312902585986791086486096361555069527664578359209155675711463879159058066993234173427928477157826803145472525081674057612002400820611485899666929639798720274394680989843656721065349448106544775389967952651626921350946450622452785893153602609655840793700068267997492610983651350432506688440081123056164866418836194641441378030412472762342173323279854820175986398240895230474094089183204675703482865156949256379500311429231732227084076645599875992594293279033191545590942816899041558761246621691470436668296874697893845697454925229788049835793326945614977200737503883338235121935464886052297421000319237387027787932749782142820350556101730115027178421927126938222546958163183892549280842447830026043504454876644555174267907025042868383171434092516268526876606089906597824212790334962072350848709891621640950299950507502382433268993429906932652030693725574399426516237302365469456529211387305605545699177691393644178710566338927327593927928157682399641568958114482401123345301857293561455222330077161333233015080117139581022418167162081217830150292443754161225806067171750516511276250775219415600325574429612733452928233409267562843281082349533536253847713773570076241423070157356200756949177463968865113087711426968961800847170640207211945348839644394762558005303842741396088072029414722339606661754338787047846088179547274404598566213113238350834341145272352159413027242183209035564125560358816946028746532502424312116177434863919960311886081232582217043812330209267085573762850953822698808902494193336038054343268217700097561519386335501202885387239921265396537400516831800362311533683397028678499681582271189872179892505438946124335118903831677826371790708115983260929590377532972504744469807883384620583945070354512373956478812825099931235888870685731750215375561820376911309676407320897023837926044033574889417057643159302287427537279778926724345547786617000530277149906326180688123364812163248053725978783911280628194957685927319446000319126591123063169612869601473873340519039371543097819011404950855472852285666511680559209044559123039436544009673105611678052539045443746079348061196258556874378248576805504077279697919001144333584034013528847585048572630123360929577068192322096262280788704732232327844482288967498753700822120544703859284403265695839828725412576600006799463223911642544124361416517634444045974184469378719697267303907594596788300365084818539840954877812211662192840338943892958389038267536347325105540834492518881209006138850508999376772333620997787301739339291491573374446400766436733025624894221513110742255902592976978526046054692595378631408655320311563214711859625647742416452737334569681948197937963789297602095696054849733542963345501045240386793957383370985027827353880614149426284268695079676325079182214243279481892104528474782932645859797053414684565930527172074332877040280276539693395342947290874596206238990305281130507949117947957123025932391975412505233550799168113353882832004850390726396744184302808712125098103777510633310682956705785486251584376691638222087911196149627201034050690388729258094134893897026602277442259581421233058699796461640020253640272380537245761329598536494789824582372400081332692887145264559966186651166529218537200882054944147071238350273806203361605843886914790917307909126900966908257227945491369800056582173120565470815430429577045957497067208218239052431196482461156426404075459710979085146569165941840830866059704171523909722252861802934023810539589205918720113108057646007934431082520112651787809991604395996022562691630470044549484311172175954194689401723043594633742744470023366740756003606873393842006179320144674488188215820312315008798512593941701445534540388032282487892737130644297467627919933591414558797799088844719175894860460008438205364438645921960869959843409577973141935521355646651506495258497005951211571102469466141221385663847976844997836996195693630547738716310180950335617661181145908550071247854235003284675735045560156380886522958535901416382319772632289558694669445281756451315107710900052976752577841317677118265464797609411205916067014300011278696183507564358707598191693168668222762483164906410658986992689848191264516196327717469500403401792741540095805585885980173902466924724585797814890619725650116383524576396604957701692128363075564997647156321016170629121623181114161841198010213539895767808580319916175096563543445947886637654224917833530264674897097728989683939365087985897920141599412032516038543552294543028933949384599489582811785731105674513625031068814270478492644172295879321808963073347545463954125179615739596501699972242568458213956893540119127436257698721527309335788364953232257557928315118116015361663379377477690960122838482424806813544555644137572267518524905995330384610967504833890135331670130744846418810523099511315567066452007898011474457473795532147048188292143377864040899326921339308923535632713659653261786883854246656992491271542598367566201074166607318124261210637587303540107942218544978095624692815386633103405974982452149085846679984649234489941189356717760419876245253254011136987989666711182555773383294255968129274245562663877410551178377991570443832929875332529978747781999123413725234257698147019830442989943453681575357931733260905018749498627138692699866208329902392819702074756535124337987178021116533684313917562242927886734637583927235409412007887646045584813277753103108150295221311654137423364829705322391658245384221620585774271194642325718775481391657051122196794485061895529559288439578845805160852171857493122165498826209752390105728537349883879370794121446819799999372255634434842305622109208304762518188677619444108593094431110502972718151237140219989805819731528196877219604110810215026891479099746565044923637861050330003663473929302714233185768791510700671195371272549646677412571369219455658208130717151251372074148166910184974492378655525248970780709898802967582443618527118735934837844453210890180166080498724275036917650482111038763548080935912873622581974206727084496388533523319302100132978730309291933452204601662405761255200027595464086616726449023760101164666732031786259163685155175960593289858618724330988075343652513404276750823776825552344926014738002994940751990809446722431549763745791454454051865916740561746512340929911835613568414258297731834560877436626391343643541269757217734362261266988587363630798506308529040165926760652580282494749018652215408391051141293327369673247979942025728489635580386032304048252675640072454702831052903113257367329944675651138301770924895973386879743580538202046714763264525371312407100891382164480063149462029206915178884427495613126032070797937254401376057448412638305820183429025926179912804305610758856138669161909800889569903447805253735284460444854201697921041486344843088662482759818114112624383312359709925285414309108888623621695692887072100145858161914818008844058363097829007817394673914867373742653887023745893985721455419989299366331399083240001171720651657807015244991304214724023451347081102573113664101834133516940763894155201349562892649963784405324618651618269123358773280179647933933818833699692671735205635066308544607498669137161437564598231426542321372895625513925176621821775069380128706074901446657150810719912277326930368296699856040487430155666536918481136017563579113965086015581910467368732474736595091355971058606176825574959842012611658894074395113255860732752711355010801250311331808684416611732269254495343131881446938090235172198339013530728951698855076513313598512039441529886244258885426301583739254134584670181717063489508846632709922389515699569652603610024330595940068309405737336713780858639866172511797600685771213352024247616621977187089401115625573706633788196360632471147888285643211119987268370389012293757590017738853547687284143444330307403319886270824798116758129978321149804177549328564995632449840849603751916769114056345044273302179072648189250343665981825360057882249792724762167511560511163916549225048237253945113130190491014788633177091512144125494993542043555118675977104395708651779657753242125530804349307641718687353888567883035898679410190769089745001596801761699515248960953775752019947511592361804425199161061933623464437037838968421162517384033464080328149248346491681567230014795406789147017773931440122090440981028186258027796997745359212838254481574060618276646204106278211765837982560401087060830769532672521299977576381021622523422715235839147398801859549404744361050289784746151462917861912953615410426961106622912839614165192432067685346196373469074302209282285161132357836902963048529587639373899507802169956955737685292482448887598389722486549162251766173412993315010239865539545782015322765170412516290215229622856502975841764699541638697512174416364450449293805580194778588383394188053258994911337748296974956808257007040874251583958638141199959763108205662926725029674240046784980207621631424247783434702617022521147912444559992684023908141318208990349262639796260098015418732876578958010250807375666374856105227805499141136227603722747465659582940137883882042809520402534872109487087830498872192290338361319912183846801668809235495700491448814272298970328848952239684112213221294190498925833489228383103455975588029772061386551006704396931043880644383106457602325128098668218006883459038019481014873931373865379155328571056577341651307462283237951172653031704506421396830940695073047601650446534141136582796384161580199398771636819158609345687450113456318520385036296876517867603089733697398488071041703738203435181810451843959874375450253809958624493052312725978453492679956453247853317016001390281916619204082977886134681767292205701490686405620183629284956908940156831789359066645688827727215993840842213754780500564860848934521596311127918908320238769393773742907184151008854478527696555869316769892138378094198694080985402554950156697304850848586630394354577527305493497227179105886617474498797759105892548865887999426939195143070110536423016517548651639282722152170943183781421055305466217782035432821152789792692069924256685570742364338212073689242514855250188821587013441726416103532548763443347053240920058749070685545885029305450681351669441540347639599047215696420466291286892659646368551614349869769279079554161955722950884013794034508082938634408698296210542775205348654881900748236436619301662106160474167566136507208292087112847294847408032004534969867630241013843735891954941604652206220602796676992001454335240196920286386246681096728565710493400197431397845551863266789025578757057408899753898725272417319250846566101464793621368390468312943134767817230160864079830088646072968785246056990532290801293536208193865357971145668640138397696206913593935783233219643350706598062315375499374439653569466125579125588085969088125636642328158219378454508487399614844866805483953749614740087262760113768533003005427233332676721285475845946368527635093377525769302970046192920847895608112084679361982057078012765203103429176709145699499206326481180227823218651528960056317353378070914909455538339126936168349056085070494947678829792907202805716877506419256191611265257624496347450192046176013090094539700974445813939042525328473566298814077600432595118159146622752759608904628473695063244732783988461018780132515822717502322243990519265644842735480830965643282690847585702789665712281663071672152580650515845562813150692764729962412801378947916301230757610146626340366154377352845494106808030845599506429769850023272549628674698089783556332926248016714647941502714399004709074458302154864055894995639691490764555467645103726405824727334129679631975105718989538426070970753180683504503488734682117637880381548997259774508629181431802334312597582763844802140181701564384146068088643769110612673579187007929627191623652932915002901113855393367793808751115898473762336211062920461578526821077826855102369912049065800631742746781072778132692699154861266558192294136207089753377132633794508688145527145429758225617363167858783861073758481284475848757959711761081609966548603726095224604563229207511277404806620498810247468697333162710990089382939370540829624967190553140063937045928180872307632479848804386403387143603821357827374811923176870723147496596223275903179523899974073273490309120433435727098483736307577814973292496977923747747737230548422119794848015442562025649084657550087417733839158131712754804316869957797232683608407746820567610543241533396829242750960430403222722163052740851675088817109621617837873202098451170448972138722087012643756535664028805682946640722527533124359683801709317428541875986094081664048876568348424702476708752187833262947949700846469247755620356724275397373796436612497358793034030315990938316587373335403729218369217416763812834886465939700339725622858726995350845748617594709428162642443505452235959690794313391884964047115520821383923642355546707743174226003962235043085053511196287808264484201042527880528659064208408462153549661127247150947884872385599074626308935217381964398182345577012419412545300827207424911073846323110785352169708102735643334776036147111047080509305682309256872097973170722894004307365009015527716838411322314950355659519729942568603524718817246079244934264363465987977495728874920287928737797072356509306395228148872465261140679355973211917011753940238374574472847196165910442885647005625653970574835092911316743017693320323699520329741257634454609579674491497365078673750106688951459212136541847637968007817103870918303955022060945980486182105072006427984270224787213167766191174519968390975142014605564177555127711612023604151555437558347667553016852856700243959198202357642323140579109649316710039735967676129783355057821693181182437646092452128423620551825442034586561245855415368449602310699753445463718500460261094850449810839258104808899930727265671205133361566353797768754783124244604154262930374855603026220959132872296490957307405608279855216957517182043733295620714835996795674370922922970847873283455750502868494572340575336508781269311452348989869556694590796116505671712056235137456565998335540333432491436976477627191399606724775138412005282011342793642120678960341432490191838841077245198133185949225730856395610094465716514219041235397238084152263715364418779582661929728047610469996326877326797959801582335767532012214573774319030128474786383113448652076488945287782738471436391823688497940336107925673308195955908631151332296097883687651600757735231662151905047880411550278166754993187457584039333529599555972945071520564984342594337265931113442549817921054412318095448071951183449962754054085410274305196323406289606480248288372048813079516719554458970450190477484859997666407970414998630322084491773498131793491257452053170351983198468169723896496354694116410386878912352165502069590460287322758060363849870559613392795089209882525580227815494874310526187181557693109626024846125079517220973026362834967269818290912874323766051385438957030747889995529869126686737819443994178707756852175028800052364938243743111263174714942622457892990395453284804752934287033491912679435416721249759738590185503515678530404040438194355792169574609669254693218948114803900489990768799304244841283248710727025290916541345629288583539574097239042031904602229120731899802787624397842682328982495054145691292087239464371596910713646494308238870640946733637845155645065827959345558902585865921317777924593285349697603093979868105579861745350322621574483171964567306584899754917856575048031798049329764309768139126805624282699076265979270033264083466579205873888484631132679077908675567951099505462270916418395469419636286583376339392149352806970606423929142320020206422941506435097618768880085419071391588706990062222843556813942158359360995465454837039088780454591809001543313252924393624161051073006926463187328392772520581294677638724563651003227668769128266662937244921716900684630267167403889135012625601799079814017847239301406346618005571186489765388776217301920167299695447832768859905320175346845697413357414401372856889779184127041783157888029981814442553140515571111966274629041216631060231701867028813159210299904272034822671208333501660466837868617905552312668070645833622728758135618055388060903072569353434964075478825740623051170195274269868325118881067049109511830744113116302438460226491152563753229334628524814332087039986109998296302605954796663613757310355150279158661205852509324091325852846063464003734959695368010054530514146765929372550169118660497188541024796792292769250427139342460482090391672435860802016263927273770366548683510121377963898873841062934559554326919270040696666349646182817923853920448138004913219966075198052710640580833065275554024768724755504852016843282192200372104955720583423493537566939716351825233904813897811164893193831688918360436538580466100925393562857246029333962844395382557127997088331335834767475330956850650130538765950702220571534926360528007976742714977657265880175855295393820438839309533661210669652366402190373354630138253533061146117610992988799400590110246049520399451921888522339820294243076673205147395260936954604652289547543148248802596056845596763247845057137941397247617739205020268312493592787707937722469562548370515580663781924772609186290853266651265411075042543755987141695136108248244737141876702873928011429923335850917718667474016775779288479361775206873846191633734874954086951430419947591400653248550474628067983068273116876642332792266811957175579948075661330748244888582754619585410804261701383251268191583464030843201581160102421009129338726108670749758956495744540207046535955408484112606947617954953288829822946515251432627577299539062484667002082414636975560482678173476855857477979690287825508694502349720356267867317272467984044981190467288092055203446164314085181043251610812524318507791656245758005513399791238493302822835479358823851945954790371112227920760050536683354798738323722571266686651759454135761166283877147517077647152489546439687022831874057346900553142424602609746591585851728629215218531327562651065478687333468402656552367467933600438817390866247245992544814637018268554925113025645180362369153728368961643509649588710819547924102057023057169948714383476214556348155191017771028560334433912811888289605361731528248761278993755811951202603795443094673843727089667392391379569898248825099231568716277780436549229059980888833246907144244565304844107889695269869211862872805149102612899466128700781776004333611157477426011820871598015981378605268410765430091890344022446824801169530318215190163176838505668401212382611585242038748826364727712624872108624852308998434498584907409079851138373971467466381890345915444046192893401057817674814366336194933521589791445784214861738485780124849854652660349057666656018985078827616337649867709672313903263962768035260550174339720583105121697306869363834511822853794115082264495995616857134712502668147373716263349941107689658162129128576169545662852271620421054445517792211784621791291671864288380636140965462202679480669510083279509460178780928343135935649813252993143892154211808722721513721766533838922899880583108320205288835861391462274696973318624611526411264476437356849241706491124584677184798053852612615586061776912306144483314187684208249301644550072902720116303571547701818620388690317850857338917012742413329423380778642926192467102090105270412169269601076684391509113297092175000495582864965325870104562744322224349141810691626866633614536186618452054953931465649934607245438401791033359563792602006948309731526313802918509430398280705731266879144001871502338702689808507232350219227658530034549672443712699338796684903816672317853500024771814105952280455814070483584967324044902420994591816955157712825245485479511860052312949251701979834796377065836720970159179400589000246478349138696286438329021467626257780210995767544048440574812546638488060834146005557853556329445693373180305878363611731461213687732236872451204389003960609158577484622656176635022373867438370450976504138448110334321669984502821382214525064743276059864108495107726326811566611353839162125630271938384944391978908896686417064423818055004133537691684421430307917936303050598914754499109847390876865776690038225073540943586154844020584520812170551290477927285124537976967339218521853541802006244717498424535949358281175623338236491082515482083894389504858933306224339808822274190768330238627304915502531498014645687695072892498122891664739876114984095289455749139397613996952424488876355163498139095441688371307166436384356022294501648640934124702450896436961476225479094319461474202458130435059269626118453969412431155120857212505376370326154677136188468731474791210044733221624114436378131959431012983407684356225824351615456849759277236357936963501947682915191109733435371417008089640035219908245697406470424321435709848338162386140712787556785087085077526060646799797021751221719870240826718105803539554294592033159202513081017231316156211830545785971978450495224290672460050559285088456748432051392760394425739950321297733593606185644177028667692168204281464698379277817810731478148655169442756783731512944786104499617754523449828028147842452876793792814953133615827127188677249174746952670752388115157978977263947313441553650895512461249785533567796107868260413446747556325737796301120873222422857137259777067349311558202763887451362390731866719949631514061803783750726984778385313983542652781443643431885058238628103360016704391503841782569276657338918291383230816782791118880911183421969115284537523739810687894536068448162896905943079920435685547119302790228184815753940644031609924243094224968903912589961581775464338344857122621010501422364014780227729520608583314394015582837569020748056003643337675802677193684562843264443338976545188365142463141726016060041747641421716701203727633336624330716976255134733605972729348759185540164307678909457759337761837045965722795057749642716831988230866361419242017431304062776339257272893018274946780963777886969332312065117543059307585240456723978903557951249770921919095489003755529304449507211664350577415519119716070697598673447646246305681237480255564313208179400866202679633362591858660906935019686333117308212599932546608742782389428706870441098655935471319404443373676291543296970188770239305303585021221680883089997998946305437736335383504852063921842039906933971758171628834635874626985295630578616031214581106692836510091864019799740463348814537440631737904935251286151294527413579189938771517121756467657653557232886623009308246497371520230615853755723853431176914950647013702791718902662735081813874310329272584848847947579802425741748037613215330691942117307225900533930572141603416539399285258468680280883642308139174846707403130644048887553755315526276826924383647923074669901001902034242065638694581439126153296283242192343550220449696546851227676728477055043104223636699249231559452822317719638657778122432868432862701437086603024187742182636095987878433075789548469191529162053670887029755172563122156435677145230602900642931204791282551358916686538350882104089340005495426213843358566528953691217353175151250699785823494781088499164961753323602720332773930765408849441950966244594668714257975590612592552845496400522667230608656050298988831796410161453136539267178833907395863889001688932205521403274396332237746469299132406166389077648125132637334715379207856266607432360445476261155638964832506962894984946861965396379291781301023157583591636944201850887427911488091633555027119803980109197073312323875945443030385492967536240243267761732524256871767867429948806413549543006581554932749624050327231236588503453500472492086305783042699940144254681903435045161160278748149444699558275913652040792631078891195319196793856202682177520053408884344254219380544594308507862194530402202937090243069756491900846287121637861053108777277899936661625620986839892413728682332520603341943581120672409495576863625782771914063732654923093191706056320730988254593399395759807103593639557564641367833387412181635892327519276425705983137995051599135303462360038287620313012444757757715413147464115575373814102828340153356790625190608917874900148494471900514209294990622463338847932023398362120093186254519692661945874989056071645739832966333251061017999139751162065416599632116507395783704010669140240861803530114331538795048586868408889863325387762847183696496776648546348865715742685067924668914552627544681864426190928921304735322110338333230477610048919344747648061564263191718104364595931373940514255893378337605081641580073469130695694105832542364085063006565108003513802258209116853673095663742591115206614744369370408155175013670788121463823926140777379264521764614577368644376755460536864110758885795934603241476435841473211538332969197600938884644053789588543139259415725469778542638263228873112757658785948349604731897330185586791867636117184863092134212241330989650804090160188223865521784568228255280528724364045237519290637912990864263820572983164394012950835013871173896162532840997067704773520473437640252774347420321546321229205922701307189089484461501626435415062000670754227435095185213596789703910077238913434673272357605725494909346469783218518934787010080742933089947988572268282448195432988926487742757472840655018158162742080598203757636784868485354636315875616512307170609506204259955717655875609725434876434689682042460627498582125018401137327661942280179507947957231436542545019769756648604717715799861420689967396176702881663311706801486771145646814098885536770452270353184712965143527571707592535321817715172742743036840525517214247900912281993216510304264327320340072593998246348703642659506074194066366182524284538687299650845693984366881329761500052579323122115874400879770511757206250902819011545432752004908869018284564892482596956898080578410440303704879370624265992531220680890964381535915818528820558203893834124968498186204265600828927854278949695437514455979021625888423206570904894560108917107622899263180706781376449537405046514024559595153590560228300481281482468451554529773663046428805962308683900352442167630406301377355704619625056467001182090702224005232408377405398950746444574453997404331693102125725115597949433727477087257736813320090691884867391787539641832803200336865053826973415407453090110610295994397090256155224223450117083113424942656148900087267237972705884713882213584099000429719494354460833364339915608443836446524515705832985374521192222182651282560046641937061107584985407784106950438070922824889313805589176048977186921071510318680196290949726485487193457429593695258963222563935254744745536795024729387477551979392736871013958614560536294870547043712406642946132657235135787327220308877460190466569841414414727683390351816901329278256661351267401054962438478763788867221841827320951529027397323014020565676918704798704543198880131811599198418003491608982197503779712214425878084001356268080575365952276729058763291656592100091924577305659329803299587367236927982795727420387086943231086423764253696343553755114190406113969268221372653328135976769202403216361481390399283293370806773214406510368430031097620731131696301352023760597709354999255987337606865190527367391392203629880280257139841084640372976050538276380181568951134338846713526976333159877448240746505988223241535235219776344578577779811182591146900925878133642649773790303511918963436436655043243343000767157779674904066076192686122228969016006678258651087903157111166785180324229586990359311792955288103343241056991738635725368639360780935643554993393607199919000033726707537001343556663824060634986012796829979669075618265803982859483226176911257058341028888281585697296524422512946664424859543848524854449176822548654959868207774036734508981576533982268197518954443392033200495357161064401974270199356187988298735927643993791899446547997108685768932626331369900724550471790117300744916882927776621907532531172286986582241930768098622309852441281586766368675518147719491699576782042675443870255262259147066807611694424928998209592777470360021350948145501939005716428989608392601180311992262078931417784448412564950457403287150615068185320409699659875553094381848018732721256473469134870051593600065934079365494949942488619472225527190449808216391815121905171314455861519994645074387552046133826575005944576927905192387975798753636114180435513824514688402329299649796190890416645997483695864786859769160421291890316138023407547890177257205000858058821673574322895054438081378292006745801606676191206352785501954074386273900740848215944331701948739926978117558849871611546966179793713716277016783601329228643208470699633981105982415966908271367477915389003291646570659702638220332854063481266940006106637007037568800194250270294132387888696549756284606651155545355609245454690952517964415138765369184608145392008190765029012266735868751344751479119084715146454355372476264536003867001734795668380592409026225143254841056614990942492843699702068493885252902525539214672313654331836204484639216730766353535400625138388689706870035460100219042994785326533645962969256113136616652855236687251144663380620348353344543586021117893176887847485404041063319036821006696595135123068301439305432178318703288047706381836114414169591841474059377889076819772604263098880843334583851865369888247638124111209813259320637557124473802537539225457445842801513927955006985681254062878641093967416723732863682392676381587690500588481481701962366489223070135706185503535854522830791848978733289599530326619645931372688480867109250802320192067795879510237184385896946534838862216867324007157195896661372079634455237756732231011811483964621012358111518329642398483117750602065763947211284136629153775340836941953671169573034184227974956306156686822432080747093562220444963440535958062394662606321203032911391401311980578993878239214862732508402655583778466416429042186792909076776942932955948177460117878455139804024762255042202645577122989032887941898954111114192710679284157740323557317376085024209512632912829790423020308551782036063104490753095603132043035822640341694967935147549246750908459707827944324672556705871442463977635129414244471829436673360973516095108123170178400720955273741982573362035857250611214693565483810985363513895784540247017160329412389998566181945779931266846245907486179413341142644029224675054351042245164317917465457526928172291792079620460310311880445875083732636556946525868982712103807719161485097932729527137289751027660996418691866315250750188029255541734369166947040338881581593587735132709108059423768802566280493719782568054644003893028866322785570497691252912760316328103219114054326062773602925173961567207641431917285640399261327208727291140443768823385236081453064922777034196511570864653366160039083811835564645359490438547295716645141112807079811874721236211408559353814039831537236751049556203287857568837289785605678396422158904718483931303662034384548173975877284598793364391693074669381621698333501248646620303079845840125432435890704189728545850183377493497903041837311773416377159915808306998830698028377119611293492150670878665051527490304247278321612126184469570244375658182421880257999339732742038022976296478455765610322083697409307888190722712375396798561717561737655449812763162319743520830889268919296403509724139154354840583275598764480383116347403766363007196141179336798204290196642586644219772244486064640303071153332144511426428781607777885830600739935841708601814542619634337968651008764676809716989403844833230444154665030351318572605065065148370147100195206793467790214524272343926528818978620226325684540380021692869858037107099762158953760643526045936056259279280397889302186359672466395733367089382538472244057536757828365286039636023010331210342770832298637433815649246820680820846635427095104040684167248870680434402886348526250728035485734190122270204215650548038413394739240381754973417358088662019299068009182848746845305530140255178019240719429382639095217957210643021811446976819723822776955548865589312668594401002268703629036905945410911991612518901517993936563328694803041805944433152821239239342319501780891197492457161755283227575292949310521581609230438055845831396153256464951614654117079938554832773066088297751635310999199847002934526993954756242880818084805217739672877480957234699432333838248183462116861195188814048364452500611367325182769604243103468979333724803525080963610856744836382302482023910580672825967704677346184476887528355608587412051588765772608321915143027588406681908765656849584444481598737218028020673529937915650239892659185024465595204668473111747316714811089351247829257812599060986166657160640081377565810233912279991377941028967280733065825281022046231074655387189429461477328113098087262913114922493939691225055068870319109942519892630514556693743040326278998422960370921683664352457987255440258905038209813463978365620132978399059196754803819182497474097487667613829694130455834552681072079170265276784949530337135910162748539347088341584093910242397321701669918084758662479990212240874914326845956520561245680799304897065261521301023391356979050234311481719487236729386013382037100292424903075573150650551067882959933146687327359368485936078630020518566960703776222168891107032325712742156423806615626071101363228329737458118799697727514772295901443083519759988365609490475911617483618750692732898413179607130796266968564078995128605583639419670623666569210846167085133990562910902082187669951895699699183621926161342023027886111038390044858870351672382633301555835467112809219781968074335797899424562506886493944849778305680357038572356123989115894242580582257139068959999804064758075838748252780161529769499081740392911252730285451438708034831669635257841330262441997365054236005173643768735212448326784234772607301012317589232957215037141973351122140872805643473644728657203096520358312902006505345435530233156528580106888836481293323253604246451855543772657027465356058710041625389826973295446987004674936340500239487868078008360116062135763419076705761814402524795648162246354741431416180971107655301360088680038197469152312756939374094607542487197277045595133642859300721739687497118180985772901416678025414531493292745119162338989822049316422492808451366934715780363842259060171079797089746750743941545491603136790193675434888324574989260238974199249945263835436765231253074015292557334785350935635717228913392317144497580044226835181022765853986482340198687718828067175213458414734980479408710652633156473245687684266170073757269171021715778807785225920794356481973669961707620209006281428899709782485560286930921448439781475091403956897904634107716378523380608379674439580622962127661196201706660493779808284924599394198705628636804820225379907537945692724913329151466473167920179358089672151204444928066697284366714119090441623125100104928143006814607067862441873205117036987548267705348585026337114901535399472436207265421633122950582886846216508072710981533021198710111226508920856309189510997554329020544048509774219286675421441483455165298978664853765103476624586449719766261824317199485048906405216073911518775239875714695042716061775553963323933526407578284427058933076188543834413019371553078155762516764208957246714859052517087792655782019619589532217433583136027568987718468431914840432560811264072141015042504554054577967470018353175826637500632194128837637600285038608115321932840578406295437270842060253441712229452315965038546629855614598860126547759428415622742417135386253476970467568411962953881364654632153437235387564183064757064173566873109587083847306959032286438382279584461826000400122580679832878902217186227044404504362782478083407959711468758557705374144840100059934113587516524659501497654685439403868167426878513884528675635092075144835056210778021209942762023897287496901212586428209186867495465016702299389763895063761544324358718506457854839706416570866242013203223896262331456835137415097132720039405374911600653601652846473337273821058807051128459946287373664012246735386470986488830854095905808858147385807237337483475072628380394391279170645993600211112463077335531674645798467956679753155533789890025055139285159063652174194418320436852315058001396454778428911373504974463611919163335398264375369919539353671542720986338848951095302626077766991389630626433783305493925416603939508517192142847569381809592176615131524433032600364705487367474225553539942938756699745118776664432936782627058273805063019232686746181727611942219799212564517552571490728271662805130249144838950570326803861553217793622117372544985474911220762082785314011287543268435295011817930237397592205157288140099203253945551253458963521608508093749122363500722310553295394301812587789248175461484489063681760722579225296659338073009810161702123402427106458730199192743068093263776887400122228551210978532371362895561990535187434520245262198920092062149919603246426427224374197825444177254040261608425536166710275692352170495680430248259281829657196341663474927672851933303251499115434509059358143564733279349669606718171334004926534474934806941333255888984019273405244380287358157380456294559144483041779294976891833492433173549690887712967867215388144530081465693560938833430518735370854731649393582740762987208566158607096444181954087794576021961128180531838504722907322213048512079719609001414373051386712085714716293005202786576030104271498154317588459814039155100648138735890306665176071370348584745506178922755053852183900963742689034870480298793575823047402240753030211781843998116311735711129955287933100950319390197206919858660863061914322329606241474770386605977774625932779082976663450050720279469835700091173046469132659800031769495101782539490281031416353572178308517589580703967176216064143075624954016585890824164024504613256691714418809374474387115934660742170949588168384318706415221157958254284730120207575569786661779544475846328990784582013814562690409939335251262308317139832829142986321526741973979237863541561102101773387369732929866920465433020661747068017123213094215159916353853086943065079877101119980285676398234143007287201763380730057069772315640736207775321915264357124368989216175769833175985661168940901813818199878768309133324215422633965498684371377110826985805584541127847960652705206192367287499217967828224828082018696915087838456558800045696906606572179481815677802645324424236584063852600035654391657637532493449448911087803387597107829286280451350704309965747575345410733989165414610500202914631186965640810533270014856219005267609251071776053161404137818061523027024333218774466353917253655694008629991650324292382570450037527720088838853531020664024402911739107081865541307824267867862692513711297819191487093009778144568495435400055291866555559822839934748504531725902740558159636285907520605344887989489127217314733716125192732599088164781804014352860029088450842260646417441259085783852747855880666096810184177645895829928756834870204904400424753010801144906625272275054779914664388213523813739959486430686409323168353850414193792780123630943756944999585267409641579628447307145778919984854082868000998197277419619140642311878189033911973570903700171561077445034515454377137550508894850828491010709507217261849317681658525379141852132618402741495244581382232624048221406488366658648000889969281200376379708644685117176076346351991929295589745102230739322226942012984221968253345297451592876285698635357920005934441570876679585566740741187977704411865367432333462341197037553386293094243157765045807947288983486377922894097517956776878307566710674189476512461406797233258179276046832942848285100223538347073478438957998631360339235529373319151508039682507279432493869822744990533023592727706047078088436356742541480167896486703930680281581753351451276281616449849197204993889990153846183093026448799788296997657800746730260364066223375774549555478525479096008670340283818521634937026383056408190504715036950545951230690785404963781178435682785946124537973610391553179966198702919764257534916252810968417745337277926268672688148216589160046689208964833287487347257291740640621273014643612732595592714404388315840566046053745460553376752643908540390059481327865944559590336702210632178835100144402318317520588133232266199527075291631507204465552342251061076047527162983994047136463194078258935749885245891437726494536920889923869463399333644539841900867627529246641532092457157681711987637263646962091082841598789594685299734536976225880584678501559481917145271423753411146302754878891917377782813923731262146030198067078886918456983784623328675334807790694699755148684728846375351841628805910770195948575385228010273262995181016532009058648327393737932796738709256832539633173442867991217885085240411874078459377734944046422150472791712819037378336345247199036055410421475709039235951458551374382753151199507694861817915040267266055976644811493102729614733085659275427869793934713572656979138552997096165595084316271467534656490044169304253734855768393542138377700809499614597827113303097695628882436920619888055812494015326623839093367760196260967768960677711552571176051685116786425350766066235788418401083212126071768253338634129310578217918169775605362133406703273867591310331272608407901908868850223995506747341091812991577629633001272279280400506195276446224192628623017257130391678971188541362594196124248112320320066940517247253927430793566802081111894903380776222640659765904722881233025881964666364630548101146005459572966233947481898621321089443456553698438412314620447652194610409716323295045302741982929851978302239554895927525322275597603477749036176142369048757054529082259031213608931432730981845826361514185051701753477767646426780900178364549507392127244811971619446578899247740002540143444199370702006955017434205912911464543512036015545915923036199005640193252954686904586146754050328148548505712720379212897639560503264473992960857479808118881149465310464098589031921525511966064611084348478914408532166118779522870449463833986396114459890050107937880654264010943595733939714105096397453883905323945886665672499148874576708117925152881084260823361256224575020241053138736446064525068005934161106467304578731003377803469168419341714340138920410352868193721783017722869378688727464856901069521092378749470964232727844170162053480565890999186706327353877138596537414839058296709143481020159540031105669442100348543544777643428522817645177873725552503918720128386672083817446156219733636650563459897566970787958501869817344084687566251571916967127922714530953460886555648538240299492791728885434976450371149210932347164056964260627479552219329170701283048317685832327297875487657262654350039413769131554424238520876375759566324586145393937377749837603160988298705202522487035962577980569176426702373628163458333590886859585598994637134460385350843162611221386279333593794127908637875466664336318855258600938072532330046657397372945947414177948904528979510762678496899728332381134918369689934819832661464439627668516803930258521729588697049821136592572907945536166993357128938792519689805640008731018665211368552553343054772348096081902160033679290167613738056842387063692773188027529460973681145159252733869556591786618880571263161732196674097183039644886876979230360383304965675622727472985623959073451359444936662875925461041227268687921265667274672351195273118171166250459944027751416374118642870206812120521149778928305496746156489448483766564547375392274665521753428291023583981248003544916068398240688414309491616917614370943069552605041884706347393746729689896875190689893292923423624375370212623289719120050323322472051702450437802600071328367050651096757187875696219165443817461083764048227293479207750547549920907999813313729711140193278029998338418972736149466283506714093709155582174562582326818318615926262626930703571203820190384795695063603969123829358807145956312425789858569373119517831657182194163524581717914042068150737307162157634808491560262444015149992246771293929594818442128333324372486813633281636690260515394032169224043483814208835725211352225658664383824934531492786875173375365947542737137110150545608526841503582653772273467445616137053416770228064632098115799071720297889503298305741131285475614623999458506890387639044839350211477675132131513160499956373636673412539619934560212640242927767461164217412218385783590201514593121013773956534937906816385324691186114594562423511907208179344812531470192289903501522354448268208558114696098226331611763918918713138379019138160942435900565094184403117403723406641824281906457920516548493843336304432614592604388962535199458605079177436050066707375890879471367756999957298445631955116511219163436556340763071262756588507986906299961102492470948542896021103404400693060199321736518083256516810588068408746304004534584595356846373958602759067857746213687224709174892065914757849213378401091296795519820263678729527841827754191638940690023858361507199254453618292307790739441553219683181705431154397387441068592886590871412157065223104173283482067653184854945466917927754813977280517221734792168522192049267552835938366973577415183725480587720812839927015540161326127463246159214325201833465464994530502448051889036267766147751417294172636622719832051961211190773859283631142584447479599528534203141253548914019991591853670559629824720752615670058253021459946101730862312619369300644889545505557362382162140477316367507955728933357103856700848608545962544027070308696205509838187614164353826440680133924456410574297729717687943401723214714207230786634348098185669938732801366807599189910650261303240612958982150874600233656066516411014242928405052912736965482668836117436199926621159762466483793833090284643815061120759348622798375460333371121210749246134865304967552795962248002490766269030006603550996125935781360017796084322292861673118062820407028684571812732857028189190461583788033424814355291313234294563607809164750882607978686124303911668145210918447922482671777116229194143700840040024403291537038273462519046154767094193809484411293140954352965157015843142030520753299467704494428368206768604491257197183869152244743613682661170654904914003962629250273844860070479124159924698228126460428925590475506708373195830834713362491603769215649425730820180347762892957340633671559908535154851053252153626326207881939454546610981947147930809319487669205845647209930597107269900860637822259061905086313500123163599129397504441030896597331211166990247146946084688178024204998369257612959915408082241159268330977146660713138969519189696980312975683951139432229557532355355851845235666449812432636846804511862397727022640081206739113191452633474359194708550422398874279640310467970562007723447067634103017076617525657373805299411298075649415790299058287096916151743029158720852272373479878006731033443622076119705185279963835763307140143699027805745055854713244389098348937908029971321939708565506619406030127274987812305058730464765987141342319635254196153931381525799676682903361686462216388822087824257701526712799347177881002138530512611067428628154786613931940055672174710843819243324966942903304307266521921277597096149858661587337187198025137134027441426434151772544670623524536729865497182155621563389185646896234530900871875803408291554536536963805615038544887354954832991522305638491532667969422885184561546829937773183023997820983292628729216116188266186245150767975782237642630388406917909993921605367264505554221126452771614880406825160858923425112905000957998300616582311996607264831825456829137621651914954038683703989816272100461621330671004658535051534768353101788171418145097808209287601772702014225668307250796092534029169378387253783971774537428670538835269665081079394290469740787761774745386039962849386553929595517089093719500726871392518780052828060940147804649134874210242078121875129997707545869036654063844644401162849582302010114821209500041078902595795284900993630260827043705994519872035777604441901007003741679075224403738017204903713614969042450906194337539250263434598451304151574108166857211349443507031991173231384691737766491927165047238731443178949223561083393459380975534837704664839247046721020097593823036561565937926833036474765039451477795618684563516889280998803511731573621283443819357345697395209211510829531748347966582323665390916601750980843401245809184089167158883549833492214058780046957853936446911385785348342134977041476722049642427685554295240732808247070248689426293178533502631047261511492876221769625428621900220146504653487410031347464663084652484155184263195698846640814498880733201463422109980823635184533412347059920093458176607822535993214154248850532675603414188868577481621202031868133727293767663900639312451639838884870224861832297077777917095908932500872342674015178144285313915415368446627556111501892323467446654644917323160087178132344377343781238821578854534245659612149577679372704742724191422794432308349176680270912129913245627353890849768646585472502060692208765537566748398556459695083967066429622578778025766364943668829479713208128971625587851116410884653985237717310123019137856853230668357857556858298792214132542876873219430719625069163786931692494244033817564234733521161607557660727754405911715470785345782619890727839151496690823199812716078596948263964168281683890723029433366872477451914129710828279622270297189580167453283596727768805368350883622535769046084939464574885168116939078269811440225590246068139048214009238247728617923473056499681096600154816641984187233714359741753082584778597037373840512783630431396199076574513760375451793678532379286990578244440041357434509904570578217929331176961135804196405558711368871620213847069931535439777611379215852445756995901905795518255028033621006955714847924881548676214241206687461158916676416395188790443309497446024389567979579611992452269060648748148156268012313111576061053073275996364023658738153869375187738514119992549177323220703580557102434545347721743302193133426253209540305761284430888166799603901438480769744503014230167878808459602938168583780618874327712886317062004056624431655149060241270840245831235538447981736416926523809470579210453827681254804847277891213357678052166966963160630005211287221578755756257451911199774169142752353621919402348879966796780070599531071229695816278467026043335997606015544656190925631289705544502554738142246037235133699274447911167670042484862877735045701132589976147804742684091401867439026594416671714095249604052118989193152265607899965897306975556908994226684639222411449415842083137230341080945690302180723828738826497085875560651690478574338771894260398520201434446070874590428374284715695253109050257162022238746993587660039313195007988894757468562088703458744921230746404800902413244432083343074261133749432581615059044783810239102179930358691131728970404860358983310485975404482735100432420063237071532698688698564828440552199122098353050118793660981099541499116569869472490326652715976146586553087565160354664960564708526016869452494984370062646883592319118654098844131468655682759858401623330245452272331902408200686915430575071101485292910675167799044387921677823051077132595095197348077832014403945927877263004127156596718913363457958278936185038091160986428529232925985264330103995234087474932560020659607139630475632670869599290414006631298056975813118465682881370556084073256365146239875527316517009742460244239488776992159424951168671334184579767585259272412770937329456921071926422384141049595044264011650672489533065548608406549281532813764223732987335240574969414423391768129553755462621720975978161856938812434782437710992126346042166010598994398660660555137987296811560646643207942570457581372851765860390658057250714786092456433806077835365654483649056448775724764861445488745307503281223791200240650829734984789349785518655665474433370615185040464703080238752016481153498132327495362490073690044378598519735471192969699614800281000932657691550147418072808705699646192781809192551409702926689635362369620525124385774149520563226507492561576440946037954103485276245076024114819586469387404789733716817942251201844299338885675405121905558431490756368700910414588873968828112255583347979475016691519859837278816975763253910820043277326607062165794025203652792291062426920025315943019372129520481330728455149055360157669006984258703894062385299342086495791212213542218641563841577149055201893812927435867289895199351000053646397501309015606541192948564161322421791995852550252492313206190342277473789842527960827591395916447135933458262870919425033075393039765727399049891298360791266006967038510606416713437348723455372876757698389060464394155797972639206885863394211320706294451418419920941524731285404026915618384160055307154673701175185581044734041401191569796710197531476038629138928112108584548623429361063937867630019535612469762892549368025228351514811274425978595233160431545698172129648929279921606294701717037642109745876585016384147096824305470580017590674235668882093319487785986504821286090217759306624878822118343599747189757516019276668504979356132181557486067851391016550341676401616574334330936216196442587539134172778156661925631711041011278442522443554879179579285174873973912381736153069426841538598908953458773110278694756630861884472952254986926165447963406725883803666478201186512838062474836113130821574872169744455632077002089523918469400037958722038164864614833342611653579328741692796087956831172103233767753952514754767392526135331226343791974954028803065002848754836876019561097481451276070573632613264243174603758421775152183556362464862913303760529438241149329086290978710819819458940444818642189055351559098163597517376387380151221384798584728968166608894493132231640026898078947123754014563035127826201954465054390771238808818832143273809616026956400976082166107624290934465106612918598861166627308702829347558698106115787701058440464703163796999114069710485881743917581748920073022492313221614053690796232790179999108658663977161964453126746174492177929271673522835118896819706579513132866966760193248518068188812396187089123502906575792888441980829172601398603136251218165294850776709618892294511220042685477705193168910538826753932917213104408915447983889784873322187191554722563671758900515493101610562661256156498672950857611486516339897577567681839415958606279082436834617731289105216461235789203258606452282578078319362358562109316842455864829935284657692734656532110866435143049396005739093378880978984179170740000279066792930338032426182198803018713158401115470939544433832874777724802860676769498322791743882630078835659091458050326176242032465444385846713422673233452680264611871794111099822677782079720977957651094395552270967165978533693223566468986885923860495522468175135393029717125563801222173409510300532632634030137529627490611988025868793300714321944463300788869987863335168200861431832231487949520434151710062118827823703066407087473348494149316225875801971902066309657413839461143480174730795746781937425002405932454861322958851431127010104610002343133491636171410787009460058630192925734318052962468844002958893769272139522168547645444659578073103423077755937737385045408664569130844516617633690059398948974806664447039871439379999099424748379152057036979959928291816220280321799008011703682711409465669385325913208272516519020188074066252956862868050507400106825869567475410757884516474119050734301195279412637779538279932608678384358104306287102495077068837522964098519393492677260041672158201403746948436542655946937346459774719187873233545412013505643527935044065854615466557231054641967237414393718116635775667233500905317752511712487372243563877314885081435503071377864911833403156478638524296242784172359431492464565398037439384724568513430663576884577399363154637308777734321668935033058901787503713508578886925159427575903451393688049057984469074561921815232333939435513440393194003454984714525116460332062216591133443550148509597560006905933519725686402151119495253702336140969826938835728488086354653467249740496483993174700683553347545695646936161042971445987313310794299585302003076684937289241961232881471747351236422686802588332099506086256844392353120203246023567597248091536676532575066006042170309034002386637420568768225097879858919408396091087345351648826542136518627650493627409858782216425014822506604968076958883856184330884714555851511462444397604854660769238028684973348345897429079283071482737103201584542453900019752935185620542827295110190146727748381718136301958792451696251477023378098288925464266868332489638495710697558660111596816582852579560825852888524944710286367171204771053617843810360377711046114414712164284475334913917396200310346699665651672467714394616979172074543502430537316516762475431114281726468961825821241576058986483596152697601051715316719138582624279420742090699739706019678491287248319154409347657738819716278593773276565963231523327201634988473100200211503035652664266490620192586601007449197467387197985843356265258648968697115065142010381446866330301509929443169026316815068051910724239252303240506534439996285457894956041572737588125184192489088594011841184233473218752969491255903601916553212128822641636340159244624346206913186238907456137887451878731810848877055385231185949103078982517553511642443818872158149756855284105380424286721766062347160101985884448717034627824285745060363754171636047204754332605123461203123478581361468947994208948033401903292917432685550221673936047922411613371974874161327941088430922851309494666534094390028487546388213661782668041786196554105757554051915016637263512022921377878604730298711145815720706082295455440443591043750547721652580868498734505023665271188054312651581131464483385727407173149882922253247816199190020919304199825002570430125998607116134978114490281692157935914346198918405719911390001579432584591333675145543613896734725176322890149801899856665001839312034000377148497456581229297188541074850286567507514912214698739563016599304024052428644722585980680041553152160641454852980197784763492496395236497363614018770776365499247973460885667491195231797356455173087079727949222948643397762721439696610906165134247329271518833565547920504225795837891514630895853090105953212725936809696870778272641605351827447470315950558225472742470100617060760079317188857184808518155910715042599800538435154395248274161610029934254386640602374634846739519057250284947210791540021596309154668512769867114182746824613157705774363687007861054488815253689304685723662331068054890306008743912482286930350015501508199494712404173339599019230654564794565023098981473251332159683844936989303348202261117764528261616150655519935662610378534074086717809704299373539733090416734395515637596059913507272564696495859419312727699325463462057449262645503714068772012020931962096662607761293936664396260105857033306545274391095467500308058055515216736364761474418713166897891627475283192468268384298282596355293089784068773886385331067313710653339914997018937404509741108757361462856773506507355827388902165621305640271445808700278422195426888916672963313390697113759356533034415447816964475250336878733671437308293720039709760029045917814722313326976804669897708121902794865886519656390582132541060115928513892163118245263227145453278341143051318615434740583551839694535782238285972058024363827088903551234723078769753558689506731280628424484945654822929199686572067204057491003662154726450430652357640869970143072410293035133134702283876795466350426927103291573593438595427361582175359186097915028513417969927672809642233778984657619153095035850127641219384943882943518244585231362135796020911200083959378293242779256782232618783418249846688940925634022913377444459559221064745474721673114325758507859957661644331826853014358977591532702148127615195078437586484382828547555005019346321599643809341485653363531500910092184784923185028342395046546214127557233331409527007032493243892036346745366991232818752592400943655104359197198854741438698569365653024382556330737154509572299721412176254977275234509262640176037244854999630002551619184047299838171545638223071740078672180535372550740664216482432061410822122445710389883303248020598148980020402726377425232165405515550018976917815750754167446659909305729968560917011020691836424292328592007319122557772572152368283239666691285753998341205522098329801652770550198825671355803057913268785321868919403096221693782179556447404982884120764538240236756523363324022324435242991468272861623359084885929205187155746992086911459894469626059661237547093170186816230396224962051662610509778405425638709956037915060061096896633508504853388684391612100562161162318347163834359839774394491777575547579427593525701583859209530217838501826281359884527276915725479255064530269674472806069242281721474708480525961859953083065492199763656544710533500715573075864882381490096394411612984697510849839308660930474001066239911785644082315093229248233108013283111659188717914718966419189546549806200768593292888225804687964015267232418205838114251682820847348252265601170602694027987174676414698921865377820513145875879180148874576812605021224387470498002275052328904184092531691578027504342261916355502135521336705995510835683821873447195004917950814815418088288107116332074207195709014629144843930359479152892734777956872424605356577029065975367110794173564825878016828486245040821967593045136158313829561580462792291806316393775115441766004161073601092791466192394729466700053069864743317461544688538682965123364269711646606541437655948005097414849184202645513926274655076786665554148493775277755251609891571271585572735772034424182040535221839106596053363792788506613347452927567435511330422214078347421300341733970350838615014031876210890352643868066898259327843013536583561367429734194912062203822420663775349124986949077428303139394489430728610517575150153980339297011112930603045844316830633257114908436063037462807157446040733721694807951086921786301801175774218589086485610078466411610682382640226793556681165099688446056343399508199148900280023975307012564658179531568718050812376545261485139463615179825169165788107105059145416220841360886880144224166830320621517846160881240734308246010685421088121940401740603274612729861116010032240034885347661327729459758060755545857525439657997994410466230630898479607381112814223572220943133605887610448016840529577529231008092666796157190389120549790386953570183725620756849360287193646460318723030760649221210939051858176762990104930942055125015902628712079932753661210876788500243817971363267702777034142279648009921036361257459825250256272819394228655834087753796780991256499754963042254623566748494040584657812347800960043135101497339827654443611369208661202773571617267995904097451535058483564640351175535496859061934276076879958786860379646944380674880157469625031989218517254157739444655200671818223238863519811373018691165362345488672293966055963805233462256275552011287076168696253119155864413395956793614190998681740082773124486631388694207835428179764008296990695831091367489032593924648388656157554593132302572596625038160797234539074496740905047736083168461904561556608423097722144829577567163788613618435498755308325882761789201499953756773819902267649066980233870149702894983274939824175941237727659095153096475445973324613988472462684957984630040166698051420499294796613326179075051817806379971323546266468948436689696520715445112908682517707358810826455391733686314647212683850077624957282840494813481765300805193938645096969803040511774837545201160626357979331161870103617297362901356139198336621256795802971372786586737940112986214798018308165222444061162761462236804040339723924841620096994443325142406479995314116742380984281957338100614240430010395289883481083370426227178057693854940817515104814831045150088587281032520703605773707176427842797169401955423829358838630333595756866457931904675784461494096372206332619312992571815938912309756524223756878896835944212360642496970772617901109284024826036358185166777987161867097491046948747704646242324214804615187041963663744148540604776106674196130040492653321440499753670201787614226137674967139500586488448483402611350867885991894221624007931890711845231572722949300761323671107436641852358562753174764580993773466672365036993902496743231843847250729896390949757950795041863855850360231092168391557155653273564153866529949244379334526394670311563732446133261250038050921580746670833587367306408729277913477992922128415093822053465180701586885629383634066812562612765708446191046881133657861102845749525463916172343732511700686501572409471014555347204441481578995109764516250852984410131371610814861082004294685594851641264195282614631572527408035606984748646644042687735319415842665177788945770703112573634695040886908631058572079186202965059541626789106708560099005026412985874743051870870997898410167983094888027210837863582001133611788836027362884418333976612719645818660291053580909621778950099760379138186162656727854701063635425979942182480543777952610450702615719558937071194245113949995637510042577428886947435983288886262074379388676686643116566586211774832551684404638470842557391850304378508959322252394615401583778735179516571493954473883324088262147469010918019328345631934607650541039160081633490908587852479721906579802264822056299043655937404075032622415310657391881196290643891719833066442818276287826097858626764846871664519773650706041304435096790949171831057953356395573062070658913041159294579095136587004443964288148911805555377167833901164301839518261666739996981833700451404171134199093924954964248852710800483503937900224085929226265656951634934155973388338688665674866085133646187610118502816502128947732331390303944549017305789643684451220753668453131410508945340376648984964867686186229730709664762187950094764327625599346924138258525302777882136872133575577767431858752456249706479429124380163114469506190071886070663973581526667126090418933330208250270996786013369565503280125700561522802012348234485593859502151255787716078257368644331814104109674666114526421248811769774476233825237071704108401051925488222627928729311229252693859809657202109581290587635965124710465969865374867251130452392336207426797669239636596439211879563159409441895848200754406987701268607900041256996308370961265371340195952137739971445219412127750206558206141707574167910941246011197730566280939875324345107300145560225068437479492682433042289382874230175038232212743915834639129348207430623223844057254251851311489557068679728650661231904076878568310030268613248673463897582806087855280272547178575561029153698603837553317099094655806789781453670595174368986562227234703141630565298850608196147501909948346933255591127835870364937078854338737143840207558586416153425204634511223409090211568648652004827738544849839636167268223272225690459920368202065468194588172356294649213282829202971758028015192379668891027273227672663635130676507818759874268789812403160464364344026326604656940178375388410486977638785401773739201907051195823251822613796095868103084147006977940897298041252624118748626914323768460551718585925999376147655171785835324741428253158716583032813479325905089830884490786896906753214249456476262770569228773313732023159113008116618635246949191377878019935863058678155561614536652588404484001372290760479010317548982548804633209511227829996013080933439442906206909883959621433928824143332313776933266610339171333019635795085522675784423449352530020939208047795046344426048002117178768299745309156758718851441918517834304234015377441220958725213648675483244787716340538657579333925767634445634695012853484445671218876821655794645388271608965416626763699531776402155996834088634650862207496494471851309465340391074146684635159283526262108496484402076688136267792978237221521643855161212173646583236628845855662663222234806365347736081887990245233940224563648153218976481292795757421172648986461968375821090605181625375276993770751345267458965854888878856254690270209828886409091500636245822403948814798546703022617823692691216780041663994227147625169991423269265965716113359122991074797397638532459012374384314246424378613936742366179578204446929012894884048121518899069245857496197505178050688668723295684369565604899595290647075219018496982346432881075948490179516556058070675757697867189393676263262771014372910725214864962384277784696899926317711171886864605704063059402497155185485699545765020225582870482698114416421942106476425120377447896437042360057437451517885114854039532348625855022344402885910118646507971943769729855231873102880586739725171810115941626201451792955598182242013317297749996691701791404731483656600441905701956806736946235689199320368982406965273921310784053841915760579606665096035747156117384560927144347892355686647022022348103859975007004654413003989229927755542684171692071498677100279295049622628052440230561921012238191909756653200146176147342496023584902433154612307706013432897255765711517731921401084635897443105800740642911648731753635672871879856976523323142074940887144750251373004514180015060212279400290114042259029977325849606669178221612543102288868092294703470607843164875315834649762333381931260082772358631026687781774406522897141227865985707136174544298544806853398712642705423900327912245399544321521113304470014789327989939659712564248994377826697557649952532635217661749311723204720290652900760803645128590383105461207246702293632148248078308345369733832006361722258121789818364201661236637519875777124647455156300693274749127116426961672959986495137836530119262574686805560900839345377413277328366045263214477938662960628655915488657283574207051494695908381952605507124439711740371758403799336829419999967773046138580025978584646279262357790934449766712902168036523439484497936100542141407003249173277249289612740289723183869128785683932636356726563181409360423756670221163421760724017838869711689595052276511238611396463284855825705968218789302845485977665413703571773230704783225997082056322799617104999805206881097436974893707631074700485499853186038264853039449695858344864972050173573714694207828293481679911392389823483493767823503312530916159084771124665675015303426861574100148176542256930056752016263693705645870648915923473914363739439994491484950340698941837049152101269448577831885303498708756181727149367351166805242366780914223073831659305127653145337686460057268405570143204306841666090016169372517369366492274640097289627503622203501682638140830203430197193448549487378418110727161350454543583547465585623047500576213673087571091611501526657516072748047703918547106310235235020880031844549857288881722082227100807145927527557058928273950096530733931156098350388330133079372193471195364661841391079776061329126068696096384514460331174170890215878047076840566108826596520438669269348632846116163114385567148752908772392363660892296751177565428694328135676962185800012901464078180245046036213664985539101803214023805402523295786422103683393827964929973665095719161909226788744708390587570571881073721338850931103129186633012572426011249891893593350170291605746693662928555698718231584138265881114122510717005632137146942550851982100083565477322168108128138165458998443453265300975381662053143259801148382356781894742881221323788669577327823016385676234603005614399492514332946606675610325001355386112628140843445382541649214496838531176096921980078121014009610249938863323363873445535168760968886534101646332234143680430284759396532403081117412898013960553129887002602443156699803459977210695355504877163648098640764681323912837078224132937225127040793377247205596077510716520666540554323392149635850275357156251571630860320684994432524572923383243343055280352985345914061761836529244488978866507542073755692718849454068840781026563516990056773523405531819087608222876181722025148917729034134556621010101355760187320405398508343320888399689791236763482359080398832484388062469288560187571012773117105149692336117527524149423602677038110365112408242239680919855353629865982584659120886921627863929304152792647588693550993496599222039611020512015414154055502168110521349851546345824782462933739214108934170596983782495192940324336902586373980223594698254737741835063155891949625493044628041073150469818724106313015525543413132860217712781641774331012203164693969418768277778748539595444266875492648461276698891191869775950966823648110023808089295061081933606530794350344090587881178951719686868493895626992228766032501894008901825254389766929652005716027735165695729705170704760245923799224076231676700741570991518897767433519338812109308155141052027979637920058605754141723554280485212160329083174197130657705172256880841007305840384901666621909874043351401331675542306401669618820750600604959822994597852425954405653745246429524831738026634365430490345080240040893658629426839583911907762397389078030157555426332682157178301189633201906098658135122432975637274538745523263402146376016085402741989517353328665941402384427085538247909836040959794063701169425551748795743760082873549604881439063741011840974567082800114642507804161208876559384233331157092623588970088160427709826487422487743132758044619969851638192107312704840256640642397121777973357594959752300561472922022188452632175165078768396165849570416830436891516964723024425525449939170822863521936937386644920383423804787201676527489327996035313014721561362292639921836143669236789361563393715372349882258288854476587008284464565524150606522460121294044302053291148739785505429830843519604915092595994532599926543689519966445444877913926216639960990736146202352694167381088351716343692420955926579501249216379179845267665637450814161060004581513457063658450698489903272059708915351604505411349428421533056232259836678831940361127282863093840169462619368364203238450668361183275693318209046254889153459170220071034618822353133521252402061863105417917465980507037625174347701466288564270127853117904814701244779442216406551180070708760929730339954942971361117657296431720513330392760367220603747806703438233664920313739196534682792888432592462009750021892519201879957440376532485912213042637661053576393494746942817970869994510712677844696127388132149834610485133200214573263203994071209749957635987404376743241807431734446763472317823936040560616701484431284066272752321341095383218873655886220213885754212888678571106755344869956332223744386714188910555851579883275218933345099921768758449172496633194161058727198982390707610564791699920495954467439822296630150156386615060073504478963987713616216735550210838909726551714791245662398497830193341325940602489497444776511427679324554960717932813886486874356290707923240768195316032778505284239812111063678778978682900209324351533117938606305802305603454328872585004282724112037568646263804652427209437461408000685745806930917412521354109062288428423276288348508492850207124906610677514430428899488585054854944571258314372665950086078853269430305829392356459312232917503943936766478694888924253457606324571490159686223142875280924328706489721733444703787251845314842887284153865041129836748903356216812887558679476992816554842643770473439033836881735428706948549825009727590417615862103553650075424866786906096995597209945438396866655517381445012556416445395074819233750629061851877771606557826822758229872160346951785749437407149767669415933916842267717967814897292501484648767764753762755572789402934828981007115133592382855258733324535924534365090959878105541037738464824790086651643246643837068588106482512712096313716074479253689121697688982124672508832484944695936430267510712915534886191654631222929837509759000670323712683972800675102410080841684111379761785981142771471591349264352796594586858006310311995310897598121619147889193922464956060543599446540514708501590662328765729170778539386382927670808176300232950020405492918904900050042020305417437179739761978184296719257226648219270455077797294690934739055977819700765290479719476185512861983734260032673779079457365068468664135983258024238627225492630239372244107957029316718085294538485133947216433606214220825521337746775205956024778465894048671557169739334132817288280514286473033748211665366094303613010438395480041600537875953490665146574964711237442221262002915857028133133633551855652598649936040212587301494881748596944085873976727335538908245677652275400411758011822035935577746343781880661804993276982040267093895978928183503244452748748012380492200352386002779599895420099605573959419249019850480492230510893404421987395860581634280634718965982374513583087282474320508160117657085669810600611436804133157212781791793194885156468383213572662936960551587263537372326336902915386536213749655923014568961987959001316109678696481819035887525912089971827151582076837984164635578540086474252816187159218265842094272841465661727910087758099100599810773198281238652251002329126961459329712555010365168325890845877491136718067784089836655916948917182305184205814300131896872817158128713260134352042815950943846391634401397365235559112273508480454849140649228164887218220874951814333110304419429792472991463335250924024421005152059035899348102351181154616773840749684844963755921631268939566989199991442535963641046897063514598570898154842742797383011957345753895496067363075202230056930596696760962645341350978402618471384020670550119551789861269177811789773504817120925928973959711765150612207099560445702968160006774685769154268330387983668547349107042148107308443254474044562692627648302174840651823601902749903519946443840806450119205666083164149733573911217202130614284822879491504382391892675066809968173573667818456814253506756931769444065941166836278103079842069491391625485449110696439657322865837322323932960054377319248965929795284418791169394144370800090147483799437286210090016818132190881927033846635963111600850704700517529825077669359456539073069009690553975244895874301726285694521610087888053834279724671378526658540254241946367050663304531633514704667321450503944681203415836563766114928528438845022019867086644827249926139790808448333411785922677367499339941243604592465076578981229112205702971723017675263536037965822000142029893345306928817392193384144103818666617280008550621329180325390583768119144659610365710445398754804746849124161771322674961957721330624682226312990978285421618906423334775267013924007875720789180206093272594863036304232548035284855966992774670588994815203221470136286059802263121928443857805038094925257141072202711265050589444201618187862982147588670026196828608184601461420639881446581494853282207343200544330779561440220937624166062269788319914440293053755403570291114285644362192948921956581397747384335099599374199851029426796225837899792258442536948588764172528664194440436508802662172934076382376382415083700236454741380052267868668931234762330976101224475404067031719895153909302948152612361750783094785478996767604030207742759935077114127094064140457057624830530833436098335264843618442562251428970482331852352599994653942359623552788925597315383781148530437293289565633636704151566123137458123036766194426045663357722970726799640928204036520876700989427226609803732791709634625765399211813055463035072347803016103707488091426890311287739497626199538818770798807136909998284891566100770825089598772258922024519352353442203061621416522968733788526488109836715860663908560380516341034999572647046190328051479722158740410134941152820971239231786240474914616498095960868032246051550717800510559586046715945159993802707448633391937615758118340993621152881644687409035822802070901928449465496252424714959710506638057335628771473675784905420890526941867552266486601320896474424737181157556033511458362461463336474103242514234814065707712455349891227288527021931293459964009241714933516790994769900916531434729001817521465961380802976499211540856677735946935392404772782917992140209027690720907355682703216249032323999998468213796207372350663848795739845400495209233866632723381863267090769199818434966291604115284877744144879447370370597805293273287472909970507230905219591625614733723797255372013737862674859437569190700021022119045611081071460026988172171051167470066932852280699576138470492068913582808582019821481603214889253004200669486890791391888064620586735978182288806909143559078477641755743774794211429312226482843754750989396161165166925250160556828603563490260705546709112446817242931417612656002290678775466253010810022182999863955541616011175768914663755006015537608710881798528940977940816527426643026472009727740727029496956955519594463298187434191333884310935734905879171967739830795337233906081557856230620430251645537468591912234978518981111994961583024194650898991554423295646044701892467633209617643899866972729774450348283296049160975586332822803574787564819880120908773089842663939460020911697062718831086146542672501042002278189242872352088394349334109658654641614212903705552053102232927840376321948027441639489944820889772570467408732352488600707616850467613906302617502139897282077837110379349051190793674316245912255074412058377826694696704423528021281013746667680424740337656190824265885833391182187679575399767575513100649051729924641376631907142667236281427633228435053043284632406203062695176941703466417664020568404571096683384592913962100125563068275197681961698406662584831586316441348487690485525014582144642836313553026817448301215184594229746400547374318793310297714449227062089977313175332378890175542933655535725357996606433222501607639759478765746792100947318368946358882027859305325827084867268204831470862144451676487947407635279858825065819095786239778281503764523767092987523793346356834964413564023302042693518276609842180431145758122829212608551626197136942661597313115127386416396627867463505075584834084471257394383596574684627732959615242116802574337785166430077724641621160717477361108318910886570070197074155906451130203414433858292105724220706764455610742811313873041980597799831156517052729229676887373678592475612972229034723878227805074116827540484502721093100156121562927777823933829115955506601999547111397448022358370945556803538056002828815747084938497034415737409616429445358674932931022062331828532032955023969342100357475634218668829474582059997354433752259611032476198432629702434852735527032743394162342872349943588205394042221302299233883622557824278252385142704798203117395584251396389100286203071400751792142241396848808167283660413899373742532040058985843176970379506397319342970053487977594247755024748041965633712578621634422905850440013191435372306982509517382508169406188600783235646025868952581214520354070642295773920784683891594234800464628751129110715184784142724787151009601749165298590163847891606202474530866851738956208069722583179822334471115657536313464028037141409391154044846603478603431449748653116063471117746084836137866452750738119063380396222088338074415963068674209892257932601315178506976950925718550889871655757486605949291118790745727586735059693501290773435113290297543246097011076634659916662793026008405832374676847244853445106612190984628642929204944970754348714748065371051236125361381500654037817854524508490261873453427094384422837715826508562061935172366687903842201312251373192744358715319239682554987144139256113216422879994857387859230643523548256941453632310815515290662737786528976076734666117183175931807817807770745033105817838480264352662808721762075128987864282743034318398317586228683182197246124113564586344613003772429347424679447219563362214466760855776393820820400503256272451021203402157919157866933458130662836791859135681853413572645373618071695380637513629246911579871531438427693922798434257740498052822934675458777078599092160231479949174109438108362323145669283900308186861754986498128216040570953804432813600486958670340285165825095558967891557121918082161590965054502932857260365815840535242512305220504462355454175834973819101622449982826020270531418195095338271462118913998144370122892784067506325972433973877924627934053514821397862353043671148479841359448537909053599222679023621027658982016576644154875930881634608411921794487666538902705571643665237447502216822062973119868835663656531761255649185275794776874644870030391929618837113628936631472729427395952795815214276168464008832085333752433050203045555026781957486818851350311077785012472522498089575854789352057859560221016960404759368410684908081763261546014734998689480062769634774127612910980982954330431464719025714390241417999627255177688440876434017354227615326922681477653806887986079437229239256640372413777203713687048093368972125763567592453045408850146898793567509579822558115239114137725605520159825830931953136790976834870457120449157266261302980255750425956217786055903018602858638551870543178074360601594453552516705910100498745057484358930089402471035902102453908638046941417579321295172911702665604061455819959584419829007847318295248175196681387188824477910399286261109587079738163113050756973720487090360268646651824723603769952690046698410862920020423840966152574862529255030390817842264917407862076942805186346125633977837377400299630735802079752669767668280559157965633115132813714440066790442743066598552480140370833377642463426948235616177508857397963113930698373011215076099442299756520025372151953736941268643871657899089004906291503786545999312327851946829964533601927332990529061879416032982643876283888978894360364747281439372728682423430825048635973407967618061984324930602237558945100739737999309460414437113028135779918455236184283242268170624494564804665398594695053259636712995303991639524382806845629579237082076295493237551319041532973827076303863960941944727569785231546629055810371261402425066553531361535031911447315954664749772553089521680037279743599178310785764918525139734726005030004949484803503925818056310531492210654260888620264381883930707456327316404796989363234815668509529179266264506405587763277726677526360894408854873055257746308429031897844715541472713475819463913103986900911617060172025989647329331980858769609522421619317890117674369152836958931622317918590725960740600985149994628857903343306608629581490616328706964116645559297488047433092705230603401897759699767438284625657924167420326004900302257714920311002812302975031048336520605413500818082141767278908233343007626858095619072252850822357146762352965645467546054538959772314004270750099871983447716126431018125430380733790667569951936649004352778416770948635309297042339191274097600108561617171468246392255678941089245379525367314700081867069736340175264905368747983157495157633755405625896978829020100237293395976012396411267234742849591988716463841094526668142705394991391182812257517163497712989263813648592614679630559984217849982179147087102674579328289386798181605015339740318454261361532591663683175669222795621617937959817411425263247459746385045310729730989660451397525660205379545481861698078263462155886088416386763583613136339481004118406221533798675924706480807784444772837831353716189550618723417347775582437317659910964062710271754224715499998215569025731678204939295591962690377244503662463089482706609546150600516173899729602783389498421502875099248707929947209609113005646525216729403608278415019642048554685575719239518379844501198212751309596293888842529922067986995240344511648739595999834924691378794381578432613976624560680621999189069212061552254533243777909328834488754260415550980394432456364862653586062672829589768343023937499519986231886723318425773750572574893560803947635770486528425789002667289434033658451936737227833889999431980801523023437771717198094122570285349504806517723272217179660050529745426158581551233883839035034000787389934889208320505577521221499505330481219836583898495792076950205357226021534507845911821572911198074124866681614321668036988480131063622464088302745691245424905200561817895886589903259188944775515103219677656771716211807609875196682595713780870961146572720502123570391446431809770991990416281080581196276574166111117981372377702540870904398104921909905103886847284893149600568729618291011217560059477803687805789478431558947237904490416504530203064838636547634933861081034102605747947462666675700292692195418320697046780278106020967214787636201672987287205395419153831485172012111064421817944398715705244747719326284613224207521266309524002358150380807325066425286575147832415163352799277480556232293663167533587934383607369553495995570940365132635499740247670137652460045329645162452392007474247449146003826638227972124249836270339981240543817763430303772694683364146796299137582684978427909444393102091344427171465197549329913520589093120459747522151091858084660753983578124323495327938129118325406117949208778178871298177214729487380903621096745478234003203016397718868538704798431671760320911278712569199753571542530799125098674128366137608130050417454325824206645061885777665200807482548032431443015971799587730877613964767643761312421133461305061007994778529549273217677462763640581465852330954016406532525354024821907079849461155529409546638061136387999138167637236815502365276974435977128122427672465250866857362267446439700190498034537009562072121132316152450150323629674883755407240906137227315164997666980126729913687966659824050880269518926074785802339039065525871746093479122023968813421027663284779387601487233281249264085434976165870535901388201903189738567134038311088012759448417013395463636999241603536073427068434130445575674918374135301708353772870570974338082123219880363720841224637054698063140679324400550837136547006546905874306938495126341572348825267126913066899106136967469312819421897173127935928665640559805157563168234747784210539412070549995250103963029694232661017174910045981455637972112855262810561421485767121370190297793293988778017286426277662313153442754523930323549847141807350939802648240317050761659020436004636181280380759346533987650135204067427271138732395649511919626702709305393795516250792580028885250188312052642624181122626205426048480975383359235801750883850920053407804938770965876299948379161581709924119945215585051403087622228217412456630047725642264898585826551332612497789101230543374659959744921332223846047939672343163518984077744007743447849866563037820310322596244218466485847099509548633427771471190068807172757998910120950071067847648019798542325589473479822158159916924422294518444316092359182614695939441812234924761836064313177679263231130043736538870632060650906949412531451569474307617353934004078766048925373147712687054024517627017622311879035248843898563242584862687490854717712795332011697358891985054627631082618332478259485994655435994631609168844527146522378767050952684726724180119110092337493971202968387828310322930206324985818675912002111898362136141509978065544448476740181648672535107175908571547858515023442585809055039688763876914053973920813059121652132718393813788152233593990987674411741152552563220454644698213284551596217667924968231508424955261536470852450448486339246116032721556796703933414118645926960086369674976894329228002008155625701214890294448759547525141622190891379801437169439065179635546762829837018289639643642573436455665896750000913649464397912893534810522347672346140738745473820122177172381391002422176332908310849913082206865913961686880978951699751930026890880538740196149090550749115561289390133255124972431446851751871996888948615495759419799641949032278967209269371344146764983512709006393972734131415720436179445769514352655341290089094120060242317749708690162442170586239667699561896537087310493769771251850102174033509053179161263821271885760113275759872994762489758837003515340083664037809624833777519618117006610305663886389082899274277186822598718724131152454246230011491387824730272296630809904988601362146540519873872979893301305944484019310814534129276753678276990299903813511762746068012707388829732404279078127699974472410742307587299277248463964032546162750053350390553961146865047544509292426091020817203687371223166559452598723086382207596037540068321032934529351334312101475100509470600783740456004766680433608764335526723051605590833163023386687145284493438842839150421883238904858559504579609764861020479388474645281716209257450115725240908439071546870702068311089845027825798301393083961869214488618849004868287563535346500402659408302689555731306554723394923027975958551371869079103420765045096380395216328326675817628313600313365133123344290412071267164121499373009189747788711029415238514014299494376400842996760966185920784711369373976425999050104016538927134733090997101832808411433997719248274090015482822028451736054090449264363419446955684258313619617069696303910864063708011179877826141375990513698859335433064360233571659958671090637529737470769927063151563116175752237397599861401072930734455782655355953394247434195132090969772340580108907691008720909416096690295065205581696700506144795761753789048948467999209322004525138335837352871105201774247115988777510783055727750647750321767836451597237241543391090567134928039226798377566792371789225731841432564697723081066102364824247176909579475262422252317568000594255549372964523184797002030487170987443088961720333248915442360766021971989597865898703392900509527381214384577328868260731980927796608307538348135046861788932900468941096790845242902127226198462870328734213366089063706723958673644711785930240138967577876735417288905925384653432903616471010962483355880651353432113766395176571330634485299670829106996557250649229219377109015130282186615360276923505284007609192466591359161242609701815689272813764979153180585219742078164883952603506554215642616759473486520707479482126577157489071314851526461180548684774218031526687415382912672058644257479546771150341517286491373438541029753745192380297273215226197593667545132354547822818907491561212344122977471412743211417483715413362855985373814324795853362314201148094590148605453994861598152486681498477343542551406257808027151698901899519487453027603573256546390434505442396222331659941082348220897481813287409554305866811782583033069072113928522540309867248141620099345015216195293157318694097661576309607870329207195855733552748060121595812745066762161459130863501401629331630945441656913547176788232729604566110517835800627848680519507506212680248902434401895391519836779205798578196048981372187680971687852092349441546247539022674701828651504857483554072348241726087841763726636522616371477875425860587911925508022210615533664960722792335072724152489914652231170127713431964614589871613755788553848022910204259890202729776097391977640635634999794699278760538073377003201083527172576227857387051792324406340896055090638048027427291876314248106328743258526504458446953253905902718397035597644371652538432265898572749738918743010087990947184316537266573355373768832629401193408536057234265541836972058248460754956420199089121269408307306177921447516486296834620971751094951439924500204303308923741237316338533415048259796228136218200774560350212501953740126591507822958439673607307001195448993585682063472599955360896300865424924042508105901613920899901032916953930925448843642677500790141434143473695380567525324666964433194816089112789497897018611050981679922404183144819270604818149511844828414427980043815336171322637514829641280999078394249826222654501420944935849944176223528155803302822774635552136443320779190175120121335814866536301301934615909018160439856533911734584233379923175720443504024316483535363925068307049729033222473121910734295655943818516711975102003546323328393052131057754729588604568158733824614362928835504850652232463668667314198305650600811942729001281822182473605603973561872158738441012683650599205760169510398439477196500499668890903593495500901560562321249186009528637619544506262186309987122528383586767098280029873855198108600644667964757683446139905815243867255785189957446405711982098045060038080930975569424657445033902856969709764579526751813324077405925003553855882161710285009063533853132242151726027057790942556550942475302079077864878430312378557631042287202999429625300737698680215438848608482915311702317731083558859355152004712745371207137373776461034172909861685584535049563252740308282092586488479886970706928306730741264309425679174404817243923904613167516268878639472150277005032857853570040748712434900671312090612653230827134014396931506814045372715439780546988189561409539752514226961625170386101760750885024456449878436297383409336602579984638129861808209653984867745234935023419731954799549167415313713299111530466026223142348057144694615231391468460107259795822126815297826006068205948385983411634955174074756644338598860529200427414150625229402893924598406844192445620978842913473910960785806587940684512448101279449345397806162734142105849573637900343397957776248375479144144612925186660617895912605206815850203153058864948445372731315654678610597421594852594376980901813190837601727194398630574534698542388768416507851645418261949604246286078322452807667647104864393165943242117187809920367114298518900706588886345444535528257219510043085900688763689350981888290499249977472696239197928647585176779224534410399882054904220973609355210094676692094567425728730049370910423281202803847028311191201026697019201253192573393159133026180220253571999629892296156173232855234007140655820121974924835915518745764062694661634014303715400120620814036111772005127144973331982863183177710774720608938985260590979723401476752812081789610133242620463720047856344547441048802001139273572594222813974771576695327775662094932494023222512252294497434602751565269580557874314024099144362590762565885751976231922002039946438481053085676160712098998632513921347085406432953292193185523914939727152379595589891763849843459863075899515249249737215593848400894660420055378673221527598861314394935167368538770868449722262290367356745222049310803106346327396841729758654904034892921978177187817561374438477365627655947035068340674959930843696799296961746464881020849956542009542063969492967381486588946630287634652909387925592598382384830140334786294485350272379911718512932888969482748766854908017330008530192712663877172890951882127636283254081473580961150404579902631973540028845370331238745403377733348539143216815234739880045332714780345823293580565021624209310228483761241747269368958719968014815156912023881838451507738898045469486354919671345322801241874980025495014153993230863240886324841315112365214359149647740844407636885465662893250977159949100756301123363661094089964664385369297407155704556790879457345268598099790168001908975005785790401520220009057813590826708092830136428040977119411818374062065874371246898981792382653774696832293032990207145542973515016070483701659801867884893357727854707340812033322039883832491192574093566295889262753824816573058607545513247417838093385034327997054646516415986138069986006457578709423027460972383662781082694837742695033282159964411641811514821685666747585632151963574424642801334278167199149501804712981623118545100177368272544762146209271237497182934843060325442616721926876816664647920539720874958628474530930665537003632011809324043939465664689495498905688493084844579294141014483773522036545200370129940854609197288970628563654780535735538465145138446375704550347591977933194247234394480680155246649549488210429910150548812016559925039286231540822146563332956440786777463843136347994522798849896256512847938169932033236592758270839633831504967240644592308172569216628033990823858996621506844624327448977503473665518372962656445510877499007891703732960555071255910818130970093283457228638564955188785328261592882914534681945579009584252803497839472099701672208838305033466781572520339120986703130101944535726762490257034307239000965871299024339413863106242930252083791302539039790773623801560304787897436135963242358185045569765254132850427916819489027611517319566427985502293438514390184484858044784998085229015513077100263186893431114486349230749407276270622215962846346848491025490803000647269829648968307473980091433031261978646355507769534335982829727842631743083374345727714872573593102820876790390958274280386804066271486128970872647948707473523421576954895828542816351425297664901839608197732328034969993071099140753195654525205760230513551277792013400273049539073052811644574003990250684233085986329947284485654911551854132756770627291212243708272285269100403198532269355227388123057366776184609602235704384529772236430399295606322673614587529168727829578326472117416952503753624751309130869042534492862004462729563952314672528065215771010780927906928872292388375092830281998082763629645521720802459650788891972801781517366712941937551668758550699404243203675250250972246096266761467960060080522290809475312292293237341224030482593191384222012931360101513808020626576675792365636217158022275106684539271568039120064518917262301739865600268486486020056733334185680401448036122740717173674136962070134811591923476408377185839227992574565364174230160918004342823466917638040918437128787623400819118804052603911865125739971223925306026241918870145311927488283484801114489138537008430195055525556778957491141753704961787633775239925471598044522917682464146375187905913733870077470382057682918061157935039424205432265804043061842204302611462244826373603886297297016278427106362283777117265463235849054094497961778140286514123061401502301934083274510601835827811552744388883228781924629182379480778679693273114259837083697121692335354090651249367724396765036774911598721257404823020913683275610736920093221809638931967376332839710441660412362560669993041566088575258114493142427311360693052927132951662036536757608031245433162098710119275428965801209055949217275597389665525610149293166951409151131633296019556852169367391761230969984708700620668668291870742620601087804127257530829867970882448549067848893112300309456836865842818008097073258686905686706645922313946031796663195395143483522555125151761621357435636387373758432425161033044536941911713613724377912935906031780283365884527802851425653871800795217671080834630172747456463492017698028475852478719234843132340699282215667542121828711658021692092134772024157123775933972104355046193699619072096317405613516608526993553966304974996831557931050734131865661498959116718450663654965571092697111009369147943057429045035264311429052137940041957241984458347339812236891346433637305165696484222800280062358457154029928435986995022427157954779284729608332520377113582001290072566342274272122083083162579458607986897264407724095478694561657062547719741240483994038626037668411587174769250048959067353987159178542114797287777259636249618861152606048590758171348543338049641858979907681857549570880200067871927040961253763703331238928190448577615555909373027186303015691695054793291003445860276432070431340397116735471705039399280479279416753332453116368068085366283304375919349377146557833020869016497897727279590480471511165060074402107908143038224754710597365084781581429173358060847037511703749329637044907651055795652310971112073143374331609130093489865789484946874437693832507522921601445323094133338338201599714197062262034849429141932688562036865690385510424633245721069802376049681638217897101851760550550365909071465603796299474350363310056016639913562226290846088347053282922344240784517457006093429943899669933120673177542660576502633438463430931490860642281363553653940752514512610981216011494944846522099941397515379078239565422327009315809663680451186817344550979007533203042331337601515653382908937225999641763080183870674129046674187016945026283453964404586892147906160054468386893876345412707912343492309539206294678250432413784859034069064484157866408407611369081733196527549689791376997139016151589543167604139060807868987949893591316543018812617313046722539647865850002753875059288279076787670612957299790310620809299808440439863196329707240557532300667301812335208319642590446673377765759360393799086532429191230193690038987511861352435205360432036566105503686596547933469892931726843854762883449683393856665491843152409075955354865943611264286135602438816054807076342583902776866533535213524899617593548549597758584657499354461418498475216064137057810966978558403961510565728756959716273092369148517608460444621513911852990527592197578504779802395477646506136164200863380175963426080182772525959251916324322679112524192147529085582839121554601124853566593960975584604181375961671143059126544757509057704868262055401563874076230525578921977501603214337330117253248227543070558044518297550783458895760611891085595397758010897408395232673898681599089811546273466599168915912994112022758978663463802989001317216105577762570418572152259191563288644781185743719672133520093648393904183787583820446415032554850512141929477601817135278086974847017870003927633764667814103047451081400112384523056644151336898156883690769106616821675530183181854156313634655463662564228216950004954447750968827732746276744250479343192537672299052222416379710063540807970668155101596283889019717433281073984761698240164901070641503407885998102176115640595096934931366790433942045588800346893492594551074798394115801453427951822943213356187674083681510579636854416347299356731188826557137744060020947267697150202630477117499843016048906107301492014174542573110976249058033916682602174929664083293569117426261325128465908301301968454763919907659168693408347480635552300071938685759436518683474971923825202650898963266208443473390021500562849456440585518671256458902361641486676251540733274514776501068764993126757619470036361203620516080803296019990150001766075564045253726312034333768857205881085056020482076987572874584883679114962328786699922601723577262669184981322850093493026227289110240864063885774263988462881029150787873011733948923335758339351962400685746651808886805831267048322765602469952435786746086206610398497335706674270944448727887754240590338837775422041390019642917178216293219165261960231555664833443484179244375396203073578266577776137479836294974399213736165932480500228015063822901721118235114625696204983428132065973552448832435948255368737011155045649402408786605835258545220869769820821193195514382154190078769600799085131192920045831607715732987068531820317295856272571486639506150281979722173049569810963012680632234011974718743216102549934515153097515566627676531572425114132180249322472435168052291091944275862294366592602933998937558730741813696170959316175954979709516550448208857900882880216434264719990043675182989947500852785547926936292289815710360736244714095578427203387914485952702025988202817033961361067396671085937452681720375427293401542296022895128517573671796645883154536826065622654220337792436052861196844178909012414274099202761390700133794254578614802927391297100786565715485878219027291776512367852080778381471225531661558087446778214301560330290516223098071421656800586589730309437679524940743680567323379777458561953305041397129937778057687429853291161057654932710188033679183981198966103125770304664953219770855456038227852812264650486225381385132850010867262746271667268887499626359540009247612557993420570316512017722315911628965269973953695456204244114662985226201276575262531718694936675902459771414287172055139753266855142445218618123999463188764228050139296362552146309898351979525478505973615748071000133652682526010157511814305609320534650590313672706415940972625739698032955454735391555379898138703823139269704649470518414670097107435365153899477295052529032917226227958031529026297411903502252861460395763628470953934965579024770813104741040098235399940115622472542802933900193005009984065742094247950580945247553873195780571454599049444774103860354090815813915819655837337336880602146737360156852800547358349005095091443490185800793635959447056514566562384430386514681862443474000834707350555255441970673301852224836471346834780895862103947154566992225294757854575669047656479808624579965647119090474446670798156505076097821927848303754807249671058088755640798378985043998405937088979466204881886229897923842129024529659894882491136856519342437046546730641965601547692932576309041769594367241929148705366488482900759561732997019140149492217033046658319933455960556896860677178622619543001712377301253153855301203612697207726917712894671515053907619524623422694285442409766744994714952104764948731205803185766490076038908817429058892121970288619971184158893245408926545746959788295120574875519893356958133546254340881511385233485159540583770174001430993309117248883883522241599593000073343965672921536187317008587934068047371761766251696872480866670066149123705760328377814817608632047432595453477040283712089492052898797537396551351059574403085844623220293835370880907702057798986690651500496107995003941506089122212143482656151200451278985726195391598443773207189473742616389814479511273149810877341061590462020370070627502313082269533572820481685996793623893488192389330069505467111023004227155680466732741565772913134140060264826553594105977633751900351595821023398719146928860922229474556259301671355414896594545425716596037208864072998702611294578729918652240215117962308721646919056237012987733684420361028722793278662879560971606650153939646048361474716819976225340550615637099819066986101017029638160703427701273569703130522565916743207436135414540464836090697590555690206162536982028641266967522700115805626054040795872160099651271351768726971504298233307052749810655700798014886742158653934036896521642716445986651861906431865245536871611605235371227040640053040684221026170651047377351593459981457470233326665509576436083123874611971389598189518304265469950592896397139883935362268006030859338174151846011096925230009849770709975314635102714106335632072967861315797295385498898644611963526558903198712614535425943903407926323226086838256943027297410219981003099694952801597269697814064432839142137877447533986717005893105202634033477658869057280017012057082392660538801715638668389496602192904694166631303839570854305314701599782520004948241321942918514816175944327993554683531322949228405990724243261420266316924056203559552945813671691289223488489269598699731582092255667854744120997280443087472184700523869865138010769992593961660865290842667168554889706960282981999878126768289056238950213430380314635980773939572263420540430634217713994323593119886349817008320724613731532214766298879535422410284156439602665004449849761952428492569745120937068705193786658607491920783682133700732292888778496089371347668527734637232470618302256371399624578882676406925870629090571768672449214706446085443552774803936373546463115293262348697042001992947395014556029121575344542266880717872040501965236992021613018210108032531659897348349936565209957546375291354853902789137269962560070619038798711980926145845028692973152739319242241701369579891145466473568266262895162986212547220279692642180307463405863859026354109385638180245215480088020590448782679266856610846062652921759456993436522951500722621498960417875162135224935022525292120541956019187195925012765941077767663905236472744823919836040323020855156554343458961468250361130636251844253687075236215800036784715065123803063020701376179770586622665440608471174754865407649672010642780829357022345020040682056640006835949896655857852184666804290695615186198542576970730557924812122568271498094544418848751416315420231331271926498690169437953510638381378060930565882170656944264845430083856283536197346300844944733062636124910094326609960496086763431543883993293046574214329290563614594366074662387852180960996784034094475946255844894387528222032815853307815765408007259897036936552866164265659600589691176301087394922144841767560354436418167070460683551408878152313567477165751842109286389666939118799845840234713037629530870658452859711766551751743077057197003269266738614572052031159713906776688468740254815320658359075412667114409093629047517462226768696152630521310325485453227858803309852435472291805699252364069324392807295010767199458734207134625791743380277746712471760871385935901217002879703892074875442408175094056270564331044042843252811681913987631829157037721531506977972192471420804493768001165968191757448733138356474602656993811411346012355912387538784406945071256017017513182240192988338100049886673698400622671269507331896278198101119769338467055202319335033245143155686575927160220082937723708709209718834849657670673661559615704329857618863465958602437807763516565171048253814263520725585662148693087990161445868681711808574579640669702242381553929695206603285545646441567940452217588539612731409710978052989249830779943390443068895777193273964437707100415183549692980508947358085471481812834908205511780200185065395829299469160666112106255406521072343668799048189014429627498290485530984032789196927103071266455223428849180670357606332284967420156850153714550073641634012739090546999963697932729069804445088853278731979791306230341010600358512463266144214473670427109617288903445048938185064539352438949147539071455392724400159010998878346769859561393487228873799549089831890164538108672650487693280527667299131960664807768069772507315322541046982740914789588009762126660392768638366564501867522658335122458631257782945630047334356341700595199256545755123849627677683578637736515411554678963685369658587019641499419793808431035986795492137752596142452697820301305068928895695931301278176604901302007681612058104211464304876659925121773832593945782429404601288440263083993095143685038809024313710618308373159978454969588212739142298222988285871102248028999505115786413232489162922219629952411443575715124150205355412811975284986601878927107810045657427693338818281556953874596904927808180827483400371293379243655957994835247795150637237274845059662961566651483399552903614068805963686559552496526758165412065849817659806148708445167881536209375223405092665014503989439269557102203692721604111867926458871612544875981597708516213637074836381183681486246718477473256393899978764725112135887391852335512795052457653897938257351793670626274960988643361909412853435495017754708441319604491858960471857182426577626322350010268642476134137269349266330926909617229557491155149458880758918834142282153660677883286714543346254554704167152584703724978199803917703825566452844282844377870201623334210844020997546854524934190824457739092111279228570764656438476208860868484707203158997898002288097951403379357743587315519137624474881635080415010674674688901471469632747804696228504449004664736378747470528535253522368194174542808097221042046219258760503155222750686465850710684863751701412762574801524820366781833014519804879105801518524791031393477435483539569729366748352125338496918083269338019840502627762409602875510569210530072109329939313453329972343126407749584114109941888430125105693508874465704571637907541069688689358582525621722915616047885785173768784302340086601703042191166180515577961222268957688008382443801007242003256833179841944014876830225534370507358187890464035792337725527447539987276127926024225181452151498530270344348844985756797088752656466699051648124061717632941919891189794441617254881767415363548435016308912553718551032989914939602212644082999208497052540414189166988156399062456637330760278367638730754665873099861157882811737233959474961511353868674815368181780175180914383845660837131475259656553692753643821422685283529292101430142373351595317929962460080503855841780648649356458962056633755703814003889503982408025247845539427647245983670257315239304355385893125152531310186933029142532061778264221273582883255065364513973155730071391776670111370816890299930784446866955972327177188678051696028853274453346892749596237043220538368611577083122101584947864572205766496835770785912486443901747434343865595081481045355866403062969661840662469636438705249575539126044610021613346879956960332859321911623561635228351488449356954381253651092508163320691680742842185599451164075920457662853017991238441653830625616039636063875080140443458460664395018716777865742015358860085521481938633054046932540293614320734486341938779655233906215847804477761366664999861013737962168631388247832733346171291193274418968252595700782742222518732544059565898495239420105126549959520333084627573429135175220335082318664087030209818930257133906303563414245324195815901485283480316839549645515117873601499441806708497927869013044510372501881599182872332413215565235239061828751567993497170593653079063387993101684403091661156401991637399941361303417212489013359705737562792099581784454746032097180267146235740027546211279728543458585151728027913711954831839748445761622607301260180330235916745413454126028039178628526773684123596333015388481472310040222522661210796429158395366077760995322399314466784434442565657996105813206563829619127303793657532708181753041878902287170197034589252346382712956815576257197528775439972978261522890505442583276418875619094207727841415720624140490479645435452346837047439329338377475564960580850460343865232426289628284087116609020724441626209021806888389290370175089240056611901761004519856487826886621288624541816801920508347644341577053617740925600588336619308558484767489522253307028526404918333321787552284356241866322057912121976618056796940203546547978305739589913303327691225627374203639245340582099908204238029300828462635079531928426237897619980144168081652611562279142990880652803289147202864135830139909570300904197202878143561838407044867387915804914146367031270715917451616163424964633629441465914232951043383253050566919342205075859831251765653427032352627722549044778481555929496160729709489871347381998667068854589814483169423523940914024544555251528405795636717139450474126241739306016686021585690723992341409443805949442319563936353550746050910282488485823127000326930228820583793152517748499236712244781916357873069304480219717806010428727738335147710579614488394751221688811691154978725666979626971137430876714116402695490959741004464649109757146328554572223486439587177617291444809173378930184000595987944029906693184760533678623117760794573353121040786074113781709173759761251415723297893219146319023808986735819995885838499254297677407172530932178174697261841809137263120052655698460425208704766914071199589929039145434425408408395164579184423053533068953103593025656231366561839333674304198039196349930547647101806682517413511593308234423021359226207853893451591404401970558032091585304161680989438673405799814357238529260821139291608910733698998446272345027771840024576063535361325756533934032998611492523950840212826029578458262343753906018983052537878547725942022140227580879265804414776487852009219692119376486299418881129550428914004765161088359658775048561598780156187978361484235697451321762080339415923250414976638901993306037739706644573997703868819345136882397944095815079919134355672454624926676969336576986597930441323120707639351442912215102868938896250903993835680915195254810522485666576914424321356285436736936126615742851117528380104795393385040905744324101865610417253665843181848596975575362850981475954097197150652019333054523945828223104211982080106290726769296929973938990603948816057920422668081554060622327688049517654394396159577347930394044333750424733608098955642396820939614112167987696940772537813658486526406149658025460971194277600814559724620434163937513427308934606482003194149774021962558787283268152769614535116718927726011370390523156046329498543425636074396910640898905866817518741394795054618755079669578601666028705942954737421095588095901825035108275222405800030185954642499841560248574436470541515283233669315234062770996217520741396096283400942169417777946801507226836982538192029229757238670116707235581270218407135111748276015512748042879639134485476276050384334371795342913099681359040749150481356957298300997221662101286111265160865710814039703898005465215976924606191833339387269650214535592014000674664247032867714221473575157407170939251437536576641448649123391783404819449285589359449173177368974300930171841656323302885336761494750279724604992196594079194672934007259032787338401529980436594820552942478272458366087541174257029736190106678126172210081509973485978162624157879852008187130548990705117311072874371007788422216500332352940900736382042664599496412143787182202750913560939675727529169594481419392685587693496290318750046670883101220079272597639972343109121013293761863904985582301070841484538528721033826182040262182767425633831494792022165795271335225742247235829323600515198216666401178642621592667644843763060913995495403962158979265412169647390406729537343246172522889046586153763603768199759326775293100120321368376909223742600907420994729978736017246715400813832402231487267854830748946277421370663908431331846882681437331348189543649124873598002939882222039405331885267351873313949729133517544358837097947284893397642870987775424922366406644467062168925663707613910179944253756898148188439305249047271381961473692600960364573413152527595490810269269604239428751866838538178922951457409906136823039618382563794086763807164518045126537062361043638944430806425799400994951280544545949354995428948901025223922365814562268641621804465508535243226406818623887228052242721668889478514244579939237013500339956228977979008421155522925137900091261985194982650924134870075263217281403423298092604850797734799357576482409586299881249654731458987167308837955489926309877102196907393034979927370593113835490251763306041464534553087050006377073175834453463718665201689717951737532200907642207381768938208784297195465857036112170754694952634356006103897366369067114099347260606775516417221518777860588105436021686837338283481193684047517022789608468142349645565739279277309271307006941831317065982810513125492590557908601898030222671020185784061178219755978326230491285891994202167729955213838752318049867336060267168065853484337626717851023473593658638769599221707209999395911490451682588315682225500064559250104064945352784619109710469406051106486395308333155884768692536111766324133736474287406590729347788739742696732953346747864075856882654568728939157818290975052568798700365595270849636375694407858072727074068326413868207763249558884299307689493660367005578663768837495631579472181974757115496952391226122468171306081022546887084540663592938724707835865505485543077585196809792250601155473792909554559851793213683777025372916020236236672430528457445909952463985185885564330272523212203339067445398793080385580848076222037553810916137006786719092062904319963288652047818287168810653496389307733724858926225085284866583852812348180032707457312325517889101339498364484513874229163198422052243298713520854808217075090924907568142904171529856143895417866552301523836396845242699781553185743722411093012912621070571665612065324700556306187218390592887980632485953828653567650904691371398289508388727207940319618310090086201858735257393444620168075570102418224380108523918996139328476837042297221589067373981268494784226743937377952731349540196734918789296140723356188864506702459950517138708429715801471569025296842509337795583756248691532923739193386322199775219796015866520426193171997441164743756422127105952571165955910850085538707233858468820977386987525127139731089361891844879815220487181720113641513533424546071855674748451531646414863110257923535840295941609419142018075727420778770422140316526151614066303204321180228792211718693065287342153348996823248559300174304594050491536088565069360998528866466020094899585709978148444617896684973739945107994409507501434104105675733770891204644744997060631041039002905627777989748575287493104973416486302734887449483479469878595733708215260301491962002516212700119444836129208651388389440220779123880043341836637062282981276828011703604217538418210154143213899405905087338307987795164416397723124502153110699583138199754102353648417267551747361909599099752755064646266483144652700011321545211935840084171354942327666852172519902410901279093915049096842033102510373609719626124941038076211103376233307104706617665546035024845076876382581418422541760921829015943329151558066228741317929480756997867091946421545203357597893652635048583359154587688555368022050342120375202074247228343486183826514078142362944064695348886071788468244828239577804022615466225636207088896035361367048152098614007706874716151866730496630530566631232320836797137548287011181372716094257410544036088406490689228188185114561664064836501869343789059092144307415646153601405488026098338931797240082067437031483012153142567930520932552969729546982589331483546443366161619529029988125457612494007355681331097641391193747684846083544143564195405980089301765835207933733242467210601839576799605232180230974031648748580102824416929971360302750590170880323700572490479963972170222648132271425673606225917055821571226150245994132290073555172369275418297397247584852673056017102949711180563231996217905303725637732053621299079366537692127856576177601421925716668248131843835415049910213458482593767578857414058252722005271354771051559150994413284438852832683478708012706564277469719344424557123849208642778895542230433319131234860089272125317012570385852416209215171073588946771903074226486701725024579105693050927135153806254383805732840168073007544299066584470530275040766912482754215133280001447200135481201733151990646215059945524526582467155576174734197880871335564097088870632967084833433383560480551017274768961353017722644397909783709248193661852874143920056628948978788287340286903825747712889007917300828709576747121908248010971392874652694134020438352007265560894706671699798238050211295820183855930625841277510571315613445857825336431976130908852605965459871894084920454962690209646287638159244496688991518894020408769918580381109623016408115813106653236848583727692376797549946965866977631914990116667251055496690453966686576216165134326189865254158569486909266276257792745993489336459637214307147173478880445913021764952062811691820652418467220351215501344376521584267501959279130387441148717552657360739655757470025669954227230913715784517522303180829800800574769469719278743806574199241017371913302268771515221988865857945367862569233136819325945436732723891470829529874123120620577289017657599542222743559927965123879811169388361779429061338860800029621402380797936069961307510461898004903415029948414536104972546361388951481220114860859720428858209058799257998078163547670235668023540241351014997426767047241587573120953564058653777641554830003140446522814306942744765968913710052394953344127888646005457441831388016236230812692371061516514726739849201386044919089152510245033090851996318110368719788150041261152790964664756508032624652868577401114646287829512838751051320252834413093354769852260941285297088988420149400383963387129325943672402707191843472800988914763826055848230687697381191821951386291978539258720821816033695203996241521442583859580704346857873724941497459423714317756242379895142350189309447687182424379582511340315807735096076023981110816240566264642332408463999759157438118496804447763880571782199621432775574206615494970596099477371983535891131926990902790531563829105340926037121765105031172639467278492761453040793582978905393632126132871993268864487397475293913537938901924395259132049830525956927834090669036623252165323146823203140145210921812757776654649512302057308155307209960671227781540154748749678041989317669520471802619538563228072602193503722145191887193839178301510612411540976115760297460242783844134244836727900042430947597561022979654627965989860098707179726202697367897078151010173279430659433413999260246876038826193934713026658192985416020164425571665135403241586686242139730285792072024391965575187108930933332160580089682148083778268909092309479573499989860908939219250102309411508792131433884921689458433631981668915765270842573085673783117230408522623489988345362095447566787100656689677157347388350333318961637724579571779266268854269532919279679204700781614144798402839347454128931793683863826010131614048453029177986076760679763101335109061680008902444086920052194850425733648118858807711803307193000750340524119759118515052207569964312168335773975834161379854690126829088485389531717913873486382381439580742243572749861599824074183103322077349990783165901680654446586346364749767451755731497663145851578470372571096037592902254581463851998995063022461371349907600654560548610375510907293418745087760963156471809770099357199469281742631513629260987906966635494594365814466948083354170970115263026695684888633650403028937923635997607439410231195722564594595637524704452641730160713598910763251823493108245762729570286800753775442964940197668847527842019300864845372134470679349737024395189403256896474717407690199032308054798344353770122280423604414285532331543822385935780660606794403555484543353016152802876550505124601761797429744283699766021897985155792896026033306288087286735403975956027868079796884196513574181369430955903993481607870927821662455154697246457559293822295359085040163746369235151333303474612898916326215767475464488849645469392287920474730147536829657189858623665896180177612828887535507819319902792423600512422859100125629323813816505917800876186905472991759471250310354508125220596080719829036775453530873719104040691400564190806962017434649973630430375983256499503133258398779426945429662079052059534695951496378368405556142011331247570287793983829004688872056489654314313036143039330033551408897496061604800273347440468117775040323135585398107282784374118479191104127261437155115506080145627466812707707339187295079501755132344251565999866830256230979256762238649994545880059599104964820299634637648828618092372099587908067620540799772708588261593583505367095476144511281473338756669570190573212870687309957398523890724207790490999044496984569297488185297800712883907623788076461995655851463423032606110447173896669049784324446954515275736810328714627178129685852365188512427537023572937447985561082542593512238426208056543142307093849977139194594109859617274062547287754195595714810352631018125817457882789404220958441474136474410698205738040414071907012963901804125644144475772666314761516628629145391525728610302707516914256605459497893044295556172171209757213326297286721032555864165807920790069542684081863043273760108292479227721468458980072376740285634158799250444424563559905472185917365950274258457426791493806422759965487340693099404017351541500487735356093798717302805733861037808419249440818440305266240082828015869266276421102867811091149823015754316654803504923060040736085728324238817903996643645366200050181702068877974499713168686576809906167543556152023839178867511943228309758708002272222212632791887353694651766472676337927456382513698379929495781783433094866293355510962343333891797057740843135162206985601938332312869384842392459513188704725556077276307255110251285473596744647142940365074709450434316139724605923198272629580336529319714736436430200779060064305213310471066024793862104622724990574979435105253658273309342410846351837484925747847366515879324991451602917904967717498539652466345448813741500307882609161974311728750124391910937461012021450241209007031997739426638549644375088709917696590941277449507692580223222651771980661168131564709673386621542929395625036710615479411735690500089377808519164162198163453608089089472063090534478192004621815927207992701911695206160269538038880033576958846864149445940946899140590283756877285159893040489540093917188048349333809777345538795673808544767988776684311760209868901079350988260052085270686477085670857082435494851083813944581801653901316484965121286499547387175094446307152159621173779883911989952270374355732915586736293579492926237898207368602601229772794444298074459553391329710882681611151716358255015207584614150851377151472162503769239146633099187855543943263530344328058557835153335713554348333939468952999691821178119696776949207205190548407480978664136323176860908652680942426772650444196561424023186822824762875425101938704955539636076196370076923990111482500716810856563073550132279093660467401202298735081131113364350321972321993550796075727748594783854391291892585346908196593511439480960346513055960580823290011180917684725276904288093956767378353086708940168653731666958448594945882215758150139262296072085908373363937459738463363227567578095512017644419741034761108731078458535663424104754739912829424889472223698907876568275672036923418623639998123668397401420250736587916579979303626444680996296873086269352916207002787405765117380536861876245032211427305030158022798513149167067276494513243709274944875657527011275360210674605641299747545765488050184653412629521144151492916503275853495237593866865527862456097404514533666754650748636417622321373642782472383960144505930605462771401387417346964771871894949156956923148869034377208886479765705025591763561075436080132435013551454298355051630674644126393648826541080080479999159002261219398168406992347513303143319306818794583800524122587776780595451915196935705295364026965004572857473381971710451293082571418858399178038434727847983865251909258968940914385808588777732440558534026705364741653644362982446222589170838387707577662825576451174801588058108403615333001571820421731665881376139516265620839594988288765254580404390030443655609325300642175328803284347985560354568047220763348555385973963655708815166332232277017904025787361073942476392998175239136907419218098534844616038885084734231121103072716513352296355835748291362217291727767289172409407192026622013142955578851194295090843163906997640179528022398643798434510046317999254502792428400826302758311236795127964516434345982284903469294944250807172593348305790704234711680446623533402706926879067867371169583930929416453292384559732323733135697199998724596061155980325109497294476819287597951620013225238057662796034386094164505175684649996565502277315609747196049801546320622410908124288188787358967088865354003311843753808985933197238088752275035541359772682259527654761447749172120069753547634732379367488828124249630566839823840702746059283924346372854695455571781222547424928625252537416383938398699277841073937512043833440813554541431918523417989663919404108788691855718768061472223968116630424049563143124127333304120597774920189892196131986134006429778928113060111063480592604553075153133516279392923446535863975536379090718750633076806560325348182042973555205346163745790002502814598256673035525576115236037655696323185703785935660688271149583660001197370096535228152560806049074227868249635094361577583932779628665272559097375959258662830922110165029658034355299149176560201700709047354964810781057886092211768273939797041986186925716329860316036510519257949241849162388886851071527224640170571977488916667564775984703417711776521581321941053831801353649556209459588111486469986740222669489401069685773201516262832206393618967641785983383299839435566712847262521881821225743872074231883210144315259422573425742258689015562830009378897058192618955782429145553543190296359010607056576149109722044214424067278410488223969479904817571343633619437419708832318000204641605951697505415108064444717522901831251171463422814239738381139053724693913465888733546198921055350572951424356185389677656572031348355627199426954152135153163156506980704499750259642815021072372452399830554366800771938926524077623478408520493427773448635682417661078104237186490887500766065021702106143157790130270621235994371741145879028133942259494112486709302173210481789111348621447689009283042799662323520038484760529306989420182304681565670018864879180955706701038787167777812005126360787994468839222293703647941031560055326609229989887903190468127534921922278410356131853837896663977902647535612594783447028613326185164905604793303451585493829287997189426040069750897657292866223896969673239412176676980005034164102888206084681325184145114321493268206684923241573693745027444589626457857698549844084587602738872349651006904051345720821541860157625548292365624533772285646940186353358683160866880001123402642679666534156219042049340877594296744372201948664869863353876982415144604230599438391992844788560534065238383678734305567238188359294432142765513646912454344124416067564775871326536346555393243706351668789977203253969351982352942911233591021151020543213121443184097032747490884301982538764876397705879796141456931524950572390580652171020365202810746071761310303282234198889961266181812512908743529710349293480802769082042926117021874229828026434739340846681127783996350428880986429147379642407033587724934104406644511864218892762752713910100301101184383816563423341593513280875070606925977297933006408996975439496992926973284461053588215355528025627615489098352686710406117816040492116471768200263521055724584946347113693169975277656662045784629374593199226795470797534045743776776571855912597022252733844590576432687469073634448506597302744297394804424534660522318177866724040495590884976656328875567540599506685459338394083394753495437866433506192489853724877745949709049226741042245585594000442968868097651831733803957971827052548897475184703069590319077654787447523784881957110129978190807487570594470541045458462569256767756139022878054850478657067295394436121576122657128160711518823056194683955700068166578165119856628873306450429305659535165934497963522985448632790374689974513871327155857390324276623609535075379965557713119039133216912564525540518959804920939361680110147055953041489271146920559521624085136586810074158285573178513115202864654771931393838567875345775313713920489483488458169685576571016732503092280502027829151331594321348368948798964801759754838510994122320899307769674286804719368120039737640496396613361392107490275105183397839024456676617634499465039795318590875439897063099413276671669801160081574806208514994236867004389214057937085610038324351851013834373233136912098413756371890032700895800866021427294062787149410961490312195324813260850148429510960976921475357242595377224851946186386218462330566619739590301030591779283523100308273314191208663414674856027316359620416726379697150075020467424140735250991185972726391697580676894239321671688994408775574444327072499829064517913623115143823586165093505946458022771070367257681670554789037551803119768395646477409329250634680648955780736717486840912116874925437962205137311750787276292910902594091096342582522470981481784958664755283890198111820646891602383535728762538169948515686420937538550146721933206945366615275025539170135845199933070647158648699666762715443775628684336421263448335401366678721521905441577610557785229016575351566761571015438391529032406408522368406383048633753817675834714989138933600632409013710515966295486321034263949164318502640134869669606381979964460235545138914439816500103597085835462253750399264236570816612570041326214890117039666911447177499307749966680457222183029952652778908399684915880271103276988882579338090983736928867804632599052386726510185765121545234478634327429023575993992394213301980843119046421717360629511705470229082096945199549110443504185660308337342669864970327662214714106767877164500384447486734031263230664549053297659819111913180484401188755501404734640782300848513790267971053977933195940533185325508070979001166914649081955381568082471021333582155630654278251429275735055778952529830270428957453904218184632823283825263659430917168158911223368623043502550898555067448141681759594567225209930404353844290875517563265144767375880539999441808033269028457245126620572502074223338358879631963740696273328021129927370160875268497417178938014274248456343521451796029122558286890850038824591319484465564509807574397744859258144867746250505671799305645381948618650817203682642871581164447801946879529349991420580633866451791009944348808907409370933520123935346901859197200157978576753020096346396647790011916910386657025547058883279968491245361046303155155882602495305691531399839019052896914568901093203124510627175260196387130268973023834578499779424283904649994943488866860456106132058001234639881981224278582127896956503409780094356505692740212515403880711296686343870662535656664080781419675826114775780520246865373287555515621371646888750865662113102186608115466741747548391570613478710818633881989804458916225419004439102246067075329350426943808419414362853222607063136824456407426982409922371431534489491328414052070356779564682226739095449457064881272403450915990283506429710616445914947774603772083943582929471159090477880833523108733852988153867242002352856234672867133216239886530695202888452539741499716991912083325510917718767678499673185182970720141425478169489909597110421642281826196400321533649607516520465027260584373085577015797682826298627029059997681824335712822877352156204790470056266392957632872301175483510229678431034896172838110443502781290944318569873764681943341381214596513695731958620651268881404750462360613200798590036045933702210207533505618981631661656548540448915328579990627241628492038967974540225409262750435691189406220745316825732012849393189784180515221304784675113646779251292309448841575506622905258783253570755894029275732666878562396842432956288515074766802930509248168058985665470501391406779697835894752483193762469005396327789439991974731957172737054812930391957315435624607781859217458263243454259022598411850044178582284816124218572630478305335362925983048801218144455751862126028344225882785442037263206772724915145172164717344814159567909855394908767034024932970985942606152753347247221564831586735517448793657709752587512530117673350585932909667000535767029340918213006353457453526976227204880503483940479367880239188378736449436216897363485537645296781108792782486047981331394616791956152601590503423865350770147061835459350740422138636280570562361541731487625933463310385104066474295211926175349504051480722917641390115665377470619457270071897096954543110009359627273070421967094404246165004751951476221432017069814669812527589387223125321525445713858091012156245474052376368596491513408935555657873646375771984133581081771875954726384641701896154608733430173415912286173205203478802928139676602532184113095255192759086675445470490297788873869114554744139362924851728087265968810976190915136937902394943020049279508849292109636446488306393415608556160658857861574863769637525757988195870445761329539734641556417524432636188203915063893866634206950651484877483029330075423355400280369168690621285018536955341126566372656497875212795246756459785809880836017318397539511722170931383567692228998042589589679227711658499594531575227671111083129174968725451596050307126737758493960008358204684228037777458643100682256459996683032726415640722965194361471852754592367081161035568976661628516891087434715090780380284937231141242419976128485413223112654978868709693446683461743078382743385428891220683062635942779056200227935687756603687664268454832716808248175253307894298683267045464797816379110610276893709536612342978885710483740357443026226283050014098479387003472276508414745511037040006503926149036222524036386922400842846952985611868713234813185371637377759640129040297275497384017860712675762692183586524841040916601972288745672416388701862401440356003112555261135730878801543351425768865927081751581143784785438947245764795092503018626913313789759210102176049220648122990589281297303350755160338251553128950914848033756235663736267090446766244273059369665969787739309713642919441893419910991361157470024228738031042078298491835700656898012727020507550812864999445402769397152658195851283222264227506493376668812416475605399621383309077715002496907576964030825828501278264210245954723915834181383940163317450701824095188075655743729462852987121250035824491700382097512623854154649152542048069769528993122290259981714785357775988510867122456376727628896265584855866825743450960407542600112171417660876762822765368546528156899482647886602125269230660246206614598610414330399954329007876284491230778451378531641546121465755934403029639591400622055181148651348505331376034687852215022502621981142489595432415536728841603151326328523800828276982478965470067642162416495155437131845702623574857766964089866120429935401667163206252751257032496645146681097211063397140638774731081164753160462266259187496674701670227782950324866767034383271828317289591104751460543215924876146172671947686304078673634190085888060278454121032994659244908943768765469647598029965247315029749307782944368781330759754474943439351297857686711700730494620656646674659524130751931934851088338147764119094184026312193151666727911719259600446968280842355091707593995571839788267896074803708822290458066478425631323167497039472905047179472141249623103790652625607670063689752626052121520594107367378511544174760422459101065222315047276378081154699561039064651853348865174141119182498249030319426394391633591680538541168542424461541678276613684929671391102367547777275581612739181161972037818695902656830707102683475583679414867685365030963602739397652408270932863442594430396109684940616916967798557776773177654286068250251159154149123129631466520499091676644567458295197553920132065541107424091023268764523258376074511535071058577728121018878849582970500757872965699934373627628038671204234025346069982231594537335853369689025170762828566556608944270259056329021120429098177830418123815704218196856291111908132142300479572311302396558591601007433424957958153874812875386199681571517158826454731767529487829290057178071013004483883943982955534647179940290853206508820312405232372423073361777163929645784933212227218451267251852217509506424694792501680771788856741566754385799395843326517705261564103831076024670417492046115955610284370139613948341167665226972111446255780500505459078255321907343148866093416121602823981135951977440759209698440530625409743968109411719596697329225932737763035048589444214108438080073592895974264400493214624830594035537249977974013491392741983575047579645503445819375216372413073476593997507177793031657158845523422442149200392860596581706414427997291212194179799417206784825203687315119441857545936638159921489699207866460079464509311582159542208370448392046403430656894890711589290371352176520202320302413564984904372074444269716295815585766804000004518480161418909344741873805508638050911773401836870291300743830231309686623263469911692201257808239010361668680528024343294419870176464886528402623836212309094752797056591678307077024141808060486572523128688140277945329334819428894993576986479087006537767131764709542224012433733360029292931157490598460928789407775705520145796481955179776237119015697432014214609834405274315287845726523273888448956017284259918282807553237838598413257305744761877717339210686058645434724546690668338564426013864813218502135507678098733311814977794725099603974751543564759962039564428093513140857621634449373654200261472498723877647280625662839134018280213613787433517686225885465818201344555722033601830816455671607413099765993214242140095817507211580579388183150384909802670159924666567032698152325623114422487173179437448470002063579328780785341005151419823011613824608959191404219604715910633645984181956261024082934644871149279814488505991791292537588235005917708863632348645111302775772640296539897666716207604441138865102953689823180604151534828922529896832817684257301874687281925259558457210935272369592389126699026493280472355337753086219019498964966379734675230082001523105783949817345224403573815928851354710210250865753511160315947532252283123713336453455751561486286225394672370195288933466621062957608877045969367524074237096198532558742978182130475287902678935678636221260067297012814637461697462960022941538806262045495868876369529895886845260688048281793194470944534207536238146132166734394315420447049150772039052302053796927299611773547919494497406890527737684435672771284791367626348708946922006881459966628313620369651978550647221056123799351968622299631882312038888512471909991942540037273464073064021350462552856342927324779400227469890190167695047736925944186330297718963835731646985629143268558795624725248647205404755290107898349201435148286798924625486670116171209386057217275881551254740492422613381035920630646087255340989859487366898520726495096326403747266132770696425389916592572287055495416269462412905174158355054720766022687279606561470924789685340850343868099163673998094504624279044643316658507891726645286312249838065610921750225052124070116379598171963308829679666404508008202026557266485303730812575301382106192406307197248897788577537142995764553066800629985244857302658660558352462788365927031517121193075581374594080462764016016639597089238826817802942240006954507547509605579871741026494560223458436726104391903394005526953447347298221597211327380094571285877638007683357935709667749093841869728979083386887975062511395732274699819194316751802137799186154438614905329518165881101518537549345966696302534741526297505492946835416250153451683267608229184252703050394552825216479250908209991537718543549044849508537546492015139026980291607061799921170679853615359740473490764534112202113886783988186352266977828866407635262112680595123956401492327973196121106993398113492105069183035846227202082725014257570160571194641038715842204376324713942176310481110340002736351222909066750312826599161399678983352015965846644540291613247098607738589506472883815663181175467103299215838113725660927339704057708824741865708101433801228405392197799952875285203767022289285328632444851457203940601873011632355350514569412063673592930362575551510717916477459170571859452496880825404238592401796358458631209890434410245389043826512008317052637581314861000189048281062709277775050013393363053980138307817470653455629231052929146601022388226608859619216618440606677402640730906621742814808353053206733779696878679552062760588513706180799901470902559534562653657485380243826598514270816485276721438747725963395464747788962033477369426762437597396751644169785766451709972084847126454605572165146827552956564419202285547958711296682643949500921449551469457258339697748666272014300890798029729050509645695739593108310822098168010190563517781245777728820272806398275198725315677757263158584567224383274060774245222981956733992284555663169357481602945573745208202002037936741341807807074649959417554002290477307663916085187103622804770758854350346515480457338210473193087044569884985878173033032225755404752769622433429943985438115252892383505831608422767550329497591849713973388699484196966638900377344411861796689584417060295534395359589017623076796524817462998385874893859286746389123170194528654152287299675306026622679739556278634384637675273688088218538632368077426498736500404804838131970209782285045739468787529975133807168743083805254670984431662649486699481781978879398661697316572209257782470751523720733211114280739812619964003190115960674330220039907277815052433471641262514204445205113826315365501667899203728149409648012993488417044469337960207493664044443767444693365933929269021747242138869592001283630980846173905451434780498939544067905522587033108739111415972416214354882928977557450666225241033826062849101557179869510291275223227469646590871916030458908756083702508525125639506540990767565322782092861341363567440748988482814929939512473340395294176712916592738197688467333362380247285518351110004533556951520752703590496468338245891392533938065995941476383104807875552748354020914379645221899451944379738794501085520696977436055099209777444246381617544604236261059241240275656177400935719593587346027703616233253177139477985636543333489523546138428088202451259339868311775200964079368023522254326964301376172583805818413643945013949626491738151003558059023023939399841314520395062105595979105462305269510470107256761646449322737836481053876049989927511460727636682069076835571526811221194672456480948157362502062207599706039030076820583753580612124021858980465926528971700834925301894264846688785307260410221843996742029636828842153377901868469533353088829063963604508713112728673842706043585338059154716190403307269948128139135371784688222547869992032775277947848186880840745264212951781498974477761416155021260507891550652399477788703533865240446324544934612444780009609360251813435530196508410507704401418594272719375227773753608202342550374568140403380277037140238292210041397652046264348099370157375262679032531718082938707151018416719860810511337014751743049817824730675226837130392182985687308658161775033481462272935474647069518951271183658470211526049530505571351671898497878673671208969104841341409205515235822460448760196983591305944189123172533675857600109770635484721415722834822660029457665348603793933463569601123853569680894075121380222133482421616143755462600652691416943149405628023252128552956604400748301841665692991121476359372698788099908204325382558589894335764422592233108109844770659917682122533144016213125760208984220767128094664392933985619900795146596932088304048443847491145509579040614959141483849642290677578209487135188828032895632782270813916294690540322082043651341171746220723963083946086718806554231111533411949483979200472492914145117248537695532169663603187984885769031961556955323739864399089620682221043708440829773521965334322860966320233355457553778339341159874327690045242955998189407719175616432144007869609569863955352109026192610821043696865480419117658685713140210103836343688941081434683433334372646992854154477021896238671501057071754278572285144442380568888403271121595541316264582144597784318480023556996354458007077946305045364564362832424954091535157742054406644869862567991198356662515383965652421723027158472350106934831966745441044453334471014505594733845103109964358547711436090552850300117394310522367913752279732896273902601320419272390185846985409660250263293018025055738494441374916561555148503874989188003188473414929242832941694716712001262850611389579950333188347055818905930502499586153839037885665554756873726098458697235909203324981325549544379255220088197773984017476272557581725909637391866271387084907460127903964647275978589315373784105241762595074507254245462270286062160294370912918076374966326363146800050051974333387843248070971060628723278187820505047642209571518476528845749317876587749346673107494549255728442421892254618674835171123692413330415112446724139826998778230953989711762251883389936464873265150102914819425114844435778010289750494102336156142058798923112191698093647719781492155976748040994988828846868208550411994827044786725401397963578461760977671601519727921153107340518769871325268607704336315240863027272022247157764225209957667059960523455824880894073921934952777585416965585625620633608228402878936208810439410367743623545522751860790921698060896243534104299440927142649495700604763129905166197752904626763886722607518633854748287890799016912371261237942431483508313834706724494662805308111728654151331675044307546082412925711363217809355077596011971693555330087313661180289308423226940626565397498538080631908750367868292278075898965838557044429120786919192913654167367068000792428291723222319356930936687146918799858228587324674100279243236391919698746894513621789490273610045536288432323416077481400016883454867335578756080272130328479356745789337344982214945334622030672207581152986717838493131299646416911177413961950629376848538946427690409568973237168979922712864211078574415932945362834399075433087725466537814494311150611463734846369357139284050618039973849373725902532032938147528065756087771308967928419975045336048229450784828629880076096018627835215380439353693868478572359826678896575487199125324061884635747285143383534264558295632507371623499396231689299786731295665154818650346400533247794704444743344926157585891587550917354808871957055426995781936626572520561019829076027182495548975328101470525268146282352327575403405649629904574246915048092786222061663041875164565815657209434703255997963537004689706489522549509702827989683097830410153504799068689129423254407858206392165670709033170576730865179397646208754834216947250300926191660828886016412450723193902519328058391213512717596079315788702298997730596507317644273162844566049642898061279441363593486441843680441698271172961663584697745728289496639297511386139105283378206180376872724781604597677844599554729853043375411406101747718323057090920206953402914818591649528795233438947786079522065858383174908721399311787533719012041582328153247196746198503501524363200879591323010448696610621370380830066687250161522458051147281793674039191922881288787718887574530525163736219054618856582364645534243132268719626730931436778398859013695603308776100365807253584123728249950389750583025634439156392755800745081434889686821560427932088015166186158535165545122531864002753777863412972768951047849453914996102891243776421904827164447409056779694129455671726273643006262453090016819870800200917954311797196429067199679058888645700122607644759338294422274854523947827419987141002122551844632710667896860092380558510374645194849354316242507643645640363233446298826918967026135782987916121426476167736208236559268324968260586689386022012264917545818064904948594840054224980679376508102693222613972665388518551487831108983209541299491243240785338129866166722198451428157031065736237787843146672483586781489545481286349945185142519482415476787910738241001177314437560092748525682429898537115415503667777427985492148251346820952699922399477372747045966608165401149860619032535261200621677159781136296103981244007126922418085061267314937932722100165519832389400397108705193600829742699168386916909640364534867727234970639431147899293092902527905015588435496258692319157554281772927469553042350077658401903729929016084372031856789745061895476233816779273868303455376777042303710856530875252958307637516855734584709367595635095300561073462870136482280130110416868873035521230614110415333402283145697723026764064723866696817020064309393607551787785118597083235245805592838012292869974627593869572509080674885391576578002056373484183605957760657892085432619150352245053019125977892563920821201368826302180399678836948437959749652430394547010404750097426672555823071366378087961109817928662341181354789840798367077802611062942802765986679196821781225667091936776562289243508188020414506721978487199816516806119836990664726489001955483590268127516013494856980239364728419297816504648271918130191457005438449266323818914413933563334790536733338942346039215206399302457748584300498316047877165554482818520749338516746967496701264874403505921875745406600307573544588129013499459488411972070428544603211672526297208229228980056458989676067722720424387839004985813335683734313967938852721251171616742327722439008869570709764373300524551904551383569554094950676408648796621601496469595702361834291182176435587005948960755089870348800661151768468032619989084973120083426099987892026464795830871466120224692204445561137850843702944771725561075344143576295954380591044374352016229224015632273647938310561550237167635881028347621091630459670199966532980239489966902426117956314847324846466036138627265362165917027975815628825822498236337027842418747377161165172034845283182963707025282719469293053946470644707991817437378761941901971224459405876490497805606025612165164511413184159830491769264829405569591814944136854064373641484009041535988290244293735273676326381341110622263232597846198171122356412835941792593387444106605609869541874786489503925940337323768597504727642354042257385075598474618597050479408603508947754779597097138813677429178381538839794564420803950163939448775900720423221982704631033109589680029305244809699597995545886974658058103177912671675015085389851054989894917680792162690343028078416412529077370013074143307157233065503079572348952349343066748619365040356312616358573090514344589757129653204823523266831496756411963578672509613310466727528885046971431884889246770005782700787459484143223652346877362685183897127800197336262590920296816484867247371087459477411816627570555054330525234361277004337287841968307946729442590641729112364281752246362467486696826059423911160204993740677858741384723091213649867539393960055138616971061222074747236411505456787025818988428825406865648494275438623540526373671206308809937506794652723319269524721993727199992835308104546653102378352218220760767228365863371595282486267897956363826436048867163711594626130971293909991087202525153019998304869448166207246318440146415451802428006136437079669037160100368924244091032254225081133700854078016755678711603911315507510523702878897732557704048005219903640195409905038346970425456735208381453394133872363027196865445183646492410928362117556709969385587126273725013677574986278947757934050840527406972528120855501553039632216573060626193705114396030976358582235314867016611919693645410408510894337384706363292611371560873855088117166840110378266016140521651385723200575732381384875619087238525397412622328373196032512138941931978969330712250508996787632831882459252644441718943082695489512379287015389867941240815531941434288021263898908435960713839528685063521653161351599572209006284615456431715804271834053320116911879252819579891230395184335641024622220549159020165891422934772428031241765316287268387236561319978652968927395733741504873323492660062800424709602579402781889063411736175331417359218244452601769792609694487717417579343869637181551958281690072479101642561774699906045694645837324298831811566937422882456853704995661381719054123066740200747085069016395290295947909838684025631802720884540224733506068180650548125796205997491812357970890976604607766238286997994891340736410332064402395811131261226586912435761366135531898451402082112452632421069176915628244566547875226486921413555669505146445830880328914292680870661854206291953356413231609230648973095041440252547258682408310337996169276506143272982309103458891874476716155572450055028854556911783847763895056358215062110298550398654675875984398089576815463839019047721081158898042133930596057023940560325280174648734861253393624281660758646073543665339572611823068653534116991354559740363411828846935595713657784217244377342460235038756400723337191578963953626007387973346396442803664021418302904654285735801021514685566458661839325730905524648793558546354502947981010364307827047185436643126532968371978148665710728823425938142288251073786673128060492236326951258001838515559714908988788457075298324112657528838562008781754580645460420460935430353158758664359495034216650960682731039108890896192152124707379009246376339356725903312449850819312566590063732526189260403263661637568640773779246212844623712587358301252084598934088340817468582715374674562912732824524396839828062397174456581699422286344137625169983562477718415884899541267482659371723353386082064218831270322499358695680847379827992615055516364319360767646591769293562101369143110786021330613809923310631176183532752152400014511368952264686676416977510682143631410099778014501299019108665221592006763353681782305312179795606031179912701115823587116266806160202058032939811362524137661218238904003016055690257207124359192588601260741571238861820934266697750416203746327836375658084923191590701311420329823251941159022380391984486139017967425605820321636273254233709609546020498033732197022683096349040336483323848935096481108561521306743886828355341228447283539144038517101165350589240998840373438854154338692247876334977363526396993710960231263205657014284547697858504321114067407704079389931237780159738708281898509827883207935942178789353080322559640186535483914239952902528615078464788143996111193128174616736197672126650628338634008890785554637149475254327290064707779690434138595822491976720020175140997662589497957760577894025459717790326965478838602436989396510248827909789829540649019126974554758389290972583757507239545728924145072304290882954310075449697399709119070844220807830926365802123970505782811240547877237761358966193353477648275483134006515023252312174272598487993086528241422165173969827866883612217795876776244584812467001188174156935120196169901056568104339118140710929865522194792153850964953017456672965220028425425667181644026242181121606695531208396189792951590330929984081123314485859671701265630285623035269916833923578128125320185348846460701261450374997257714487402512762542850498111410222383768061406597819633904222102078395974713277295238841213816508679125516244252648877392592342377697227895252778450044553556942329047313240590145927218782314587072401538933889198315234915402790529901639504330247860802128197799232762094422667630976636644607199529768083099449953192720892534350073313875854624999848110022817697360319566389671444831440945031733772828593960126472919386972206156237352470364190975358573974475787615763666250509066767815156138209444247720627545411170660835288734906308793003616945145535187005101016220924442547180984120864603420967024953870529316610138309904701042018768377935572447781974694505440947893971778524808053735426089264023591695740005356835906405341105510065587763810443264903021284365776261905199008455108922155744288519761613022312785858345030490545228952594437547147524002684496422496418110602225963016331803932269231018265555743759319864109991666723124233290921653624934882380957463220351787014342992580423255119946856557309370193602703817216335452097445734531698677753675216569462841963765169305837068666245642203692500172905049337283985916534997298595844470965840777506646814589255115150858076251875391415051639331215101364660563039806236107162231313640820190350269564437016618887501748677207831597596027821386796987642790275219927886018179158925864720866391369058533128352084098055595659970362512248854281462156328551065316752239521596218611769220766313113144067952214839270092560235989949295926563732706428132232638321633300235724308905521891927322022695036308355904259234435385337009060716992140665497869267323918031414784568038592844793659626994357883447595368510221855597048377258021387703848870649180742901486779951735334464261997312672586813692408429224883119479798988351303505669038622505546854495262873639392931993852037857750788069628127543750297106024300339286986549172149217767768540792161595410105789779355904395129439910883769172154615938285433762131292045493216405447312110551462740225339324941546315033012305225132408535482436863384861908394632369180178297119836055416010747074715291688499353420058623558802241540443854014931389092380518830770431007695627551055234632308609895337957540897240597781143053059055176792953204585439269833306009280957851828837939284874562625577658299042678899118173663662395927000587181189656854620426234957208237287923352329958002345799438402497616156657079342167283615416195263277255198050047880810065863906414804583188004670760979815684420670732743458416222735028621145135930780904714915502345426761559401288969152422680587034052504794767354046031916948375944083138077285470006068806970295873389700313498795381563818969580678250681739219877595671819173339626205763522185234815435942216401676801340865934776291610666972471660038897603320020685145916247307948502045338902987216397545632533203010705838484983907480201153746460836428475196017184865299266724361198985449159204266552107714436184566352796826461396489782639290410519734305250280573458219453232672974521237038693395419610492902866321709907012749999886283969336920445381714292833153107116710944716695952771005295397425033361553843939508743147910648916700185691045935484712468373007062188106507083189289350079746283174880359870145908217807469414422926316377882127742882781710772812406499702038702697413008999019393066608628633606689044358368664335839687420821217216666117237343462518325427827566277121745070399370083537943843892482453731783834876035180698780287756904718392172027579900084998473313444298845904703101689766282904320176448350249127142985533165360297394565740567349720027953009532344075209618903511510985907301870815311299105233403388658126018457453729950630627689661446970582890186145170942394441463503920862550114408206545678050499792029459029744989495966275966838941683865013508917482883587808394993272188416100452124021013859747022172698073059392011804962762937765837629514004636348612086322231014488701488071353378485406987762489438588368022934373024812762063324296695193001470901486825265159924550257336180246009674401139293143815653319565643367610302625750236533824001241606468933327977346523432624175333559777596762070604189593848170551950018310536225956090872508144374565337612962879248571344558762557381302843666571148657742522016040589618082317375188375319638423163000734550672638813625520667757082288218786934383957618364480567363540436834753230396407589616035194198411044475806571009230107712516136702057464309908394619850825034301154804416075943425266381951556956298530865608960454178669089702342067646476892730035658707620180490158862293976432728675431834882095350402662984300284074302015076029211976674988311838788310242095046656739640014714589573991508130250507145610367460484769558914747814678522026873353596081107240926301889671445566531699388273406361599077280085521420038245693565199074142386483023575770240258814393035463232635602410127804254875766150643043649838040148846231379298876913319708759813751827769956879976994909331889125066689073979169829774391371305401401668667926201450201346464991244874450939210508887079114692703306612857834745919356954750747409099416322295051684493969774030151638761257212156464220841581096654752181242262396612991512070585778812452922195605711646172284035779398609073672419855599586333367570526745518702447094923365328225794389287484762815965286909891333435508538949469921892053854280335153302941777448331843788824701813613349383299452053626481881194383921647156063009851148352610584678512493891660963324747546633676747594128369499601422398678900297126492800576724966908028071451228009370128891080355172473914886061697056030087447096046595353501054208202923684330512716188928232151580683427380407152429333169771079402664478197010414481087254261448191765033494290984618701338742410320220461525177674860510882826319642608733024632324123179569235899124062560920622148466439778790660366410642617108524597366671729971041888301034641786861053487759123117500824078813840736222785984720419976678525266237647066629636555349901424396600060757948727449768279665364773366278954545911895554033231491274836037719015933565457982335911551772961774964819735418055130772801933374924208850057187851102552571681714825063609278142771053935659794312423532445616108237469058760081781693468873524068259549216290418162247830970691257208098270035441745268829052040166722241215291029734831069145898191745879764039329909793228685682008012140604449510528958945239002400094762936163107536812706671359960534237985217102919030737938024874761715319041564960772122439516006514864456052242857836777247396071386828828688068917954479093009153355116162677800222728255745622255374506551137706762477501868079518191873709866729730146154514293618489277355718479440854438631679846819098529372074275296566181901296805866896523466016102856432382172923113588654872568267625339284118092573552033973637829179772482508291809910241635248953337470105290982326564844135268860163940271920550180407291520250467769324483320767604714243514979087016486818935982006024169971468294675374690885270022587729868985028261369399106045245464773046272385974094657670376298332512949839333930921342484613141147678966269667812488359402071942307133194839464729051143790571859744351548074537898946542788583902122939197543122169056326527926550308347529288300317123607983718926008041459975114793852441101617534929499605321254381405115369583118603894452673572628613155071852660935624226920241059900950326505381803892540561415469863473499259666204162575930840954293314928882085597951835527606207992989905961760314296252483268294257271586625705298562749269392596029479474255933755919847617221116188234111020964668777504150518809861029663029240912915553583135157106187054875640034824221198151239915353095489398149755905282377282996645397385512796363408505606290548394757425287637048953134574482014996623037321033373395517935660320851664237231663642279264995739346278714295525636988534039634536372228441140709289036503637427837096218654350154203907491727749633159572704079631713957393260092532213070558947414398532316603469881172378174266814870925878600562885232417567451964444909168951733677085641232542055581115726560873534317486861107554982182123258648048553277911152973160280858992236065731706310413840655401151998556213634531824454612695805320935381702198820082613085677696777026437329707613329866259420792765693376435186184124162334968264814130646953891875612197595625071606530879650542311460010302015034619482994294658386285282341936744028561996760247798178581465382527812293506059310018284799770197982861631156161323080992790202198822246007520178009143323435196077664736501121505474227471717190487677983589813573719507189820764584792066343954204918991982078030445284912633759950644736140313969822261391648956975259816816516109137391058826911662205480193156354517687592912470479469600060503437678208962201270372079668719392613349722920394114761331271505863715484640685393114151405899748995119492916417839707612047246406063546513800482119710585841046617618390489640136094410292993956479120336212589650522092033733582922326628732859343894737048224606307399997520554553929203145119181668304358952635457557433331943029187613516522478485682341227186796409020968889608740685516961085955374282086943738216633028189621087770216138644410190914050632759694711773203243939118681098109796642120601093134899678029952920492912332288301705525935261989782923750125178064312868292943141153927543272706564608707961874851733137853012244847963470763427364956872767470208652686959995801094622345211154504279204409496659851562929325097132343925023977482959735505817820967546731124045414848988275395036952566603919454926269215643951971223990769598745132829993643452701065816621154887591504121718629094651813938644014300356033361529632868456195542076199178826175905082618366350556572053668338214187515999624910252868015851330826843576592475758860239733031318369080710172099745558311022553055460579762969938816759675563423793060081917760186429917983526539980042245893468224190045127780637848928634423904938430949084014893442588596020617138881924316816653418841716775199346436870408246956623040550119725723574162103361110740555409055224840655208916461617880708398738350803414257058056970363105978900053934050630383404277946290152395139286736348704377940021412236191473256827057178959354043555307630872787060425805018046866556184394110990857208861664267004763655370767585208441719251654733497384215942279384453814232331992195912958751952530953329957624190982812170741370671761107868570015854166522856824224465590806687812031601031261203453398080925103134077863664544500505704573340687690405598426972855868906400436740264697439996289800492942115883371180724164838853324847819523663074217496163139445558373738641022868422820255779001337944234346863617862950236214522308771041187044050352188476358363198930786556772690547072259447144710383014635742799559953257100204595770335366478380233781403992517321943053373238494012168945252915424107392577265159740227284961693402821718180377186732147447420226426825983357457256050838780364908988067276939402477255058067534501149406646598120998532313182605188100067486100394757911538783214588137902552381853318800948287576107871079636627746965921769655602881591326133412235375180801099028138993157654474370510150236097070907717681229329016718936292022367811102136137470598413559405756522444776348573484690458374491692471362765649139946924576343679178407025293743453788898397639610794897224508123485597266625991048829511161856694377460189218646991281068956151705594749980046055973603720033848582692572627056413188342492294361872983944224432723393544073002268300439297005782454694966574055882299140546462788689975734221170438480777058543343037220471049571112873259434860623638061106219029791839594057575096827646971315695379614125947396030554618871048423398985482028766719375845663792176597508915432703240891157272618533852888864204728593253207702405669808484005234290285958472230833790917630152345009311738696427840695404292888671138001691031858771252936728398935012016084964840864121911150325434291269094854386367800981826591384799666921219765170086387377966627197605050150150545735744299992879246919765671846840635029344979629576325900431441165528443529955429968702031923859239983631365415434489913267069831556681488573096082678037322816721314277774181571460764521746733831343881006370647970722636081201506233888368340710476863969553448300693766680125960818028079126815670749264556511319588599936862516298889634101495555467189743475915729423852436391703212085167454099046809072888196276226553143665278446102382530097440037126530212528027320879219042076398474347172733159980336141994928019527090440795152616764291776931707511990424872965992552009360901493927991199337795818413001731196717935445738687233140202252885044138376474406760668812287833613193702927938681398379010188338167285061026933813109783081822225408736100776479632696146184757246244326804680334070708521431856881952402963184109412281679547468370304638080698403206230360591979897150674383254975362606385945644855105902226899955508613959643450774281906534992160760123525715229567075437242655174289605375053669121387992895844573481636769202591134829587584231805087815704104941871871842632201295966843019446717850206643144140928364169952132737670178914557331901471698288096446458558840485008347918389153550435887820070952071572862883524793854693956008783126054627087310585248655805311682466765818597254619484005776083181179775541123540568653290593950122031895683147342667098374467008536573201665375851345697694566805705291716332799108911655888589597145364491225047791186183488521700241960107592608414452174155955016066627500468083410488725494304796212247163659833600028756155134925103533860927180635208682043706383692115685834324510002126324746016022429178216275943185500252658163040678706239631756329869957562498429069842672589696142307079288137048604626660838250406321524153202621596739448972224310992463116200204821154802628317010466733605408578462513540253738477363748472414952133374433307816677221881187355944601881409120571643795754386262313940949583891987348975759987417635480654036028201666356809341880122626791508410225074060280643230108781955142231430019226596587511056042239049598141646835906018067175055852443668705917387805472524925065730079406849365554934997770424557758637927026356870261431538047095431949183175098220068889942297763765797375091372651854178894508974627082620042458838816912335832288274481812159177029640756217189440291281070251042298040144430448343563457518892092824486698277953480560917165452263218765739907134199124328833691949206711006003442205949709216529852840447658048308160885729879628706314874419684268464998466362920446278464043041091832205348192070523383547744224621756452916956586501515564413566567640366757400963512026008297410569789327467780915277661108151611965894830166516385475626027882202651892629558412366808185149045693464853718801727673259697113781589934467775711270647180262142565293748653586406520203998713680001174497113400629034490609730305014914025741154760035979176301736547473461717842471824709657125656147948121210894858458433290481883126462424995369233343032657176345737271017540790945709118055741324275881077113608271793791409558087885322651015454976778360563613085375107801959331100414083411926048133243477806094691421283333270633704144190568890857143521906093781611627821663725777249966109657556147756035004849336853166388514570640601917456848113194372760593493063285706232628645356731651488003718787687751690724753862852650549525571220964367976886530368976613165380854567999072459799125027379994144660106499874895739927284678331399326548796857256213022260615844939252033099184390667345891260877610271415189622938473624535256566360331628558585977348572785200837273574027093910532985126856593942374099600829553986889775414612056490180295955266016941002088700076283551050979419187934598162986494666485727442282693859041760111486618001176507132369368756636939062106460247659731438488165754874426645359728214873957805219544095267017132732923420440094284727589348004648751208268471902810239582158895305036994007403373972676526193218918227570620313512397796688599127641799765118463331950757446703538818543702575401569770919280863767896720463490996997250392002407179668215739949069209742733349669131161572182030126852343957356570946671864879709233333843919894758456834718984153039864779145255231456891431679183830952834999998379449095310734428399346866085815077821899812580749645945125314927343825748493876954258050718280636738784225888239150599913058408563591418560625200048598394114419259031472788496461296329191153262756236463848178605979833063941659224244741037811740945635723188181741109658887426591875911440312369384782951380774613583415192526947283684072366657085547254246881821648702642992013042583186085240050227685690871653745613275046120566236493564472126096600183771360166459873558480404863989454326749486095857365292870510830754541581160491203573754808019568369006376072468985953774703476672737346747632131519375934154452539293064288365584632894865668807478239187523135800177231503974587845221640686603138688548447551813737233909470414374784856638262651571476842756946186968291546189747785223234218161674088225205146696380980590683389758670644867608961320714690599740129441674385260027732864797273538720690330853579576754566702628023508258139720782913241635712617344801737968327648535402243849953740469836777032949940193934526076038382006138369361655893647764684798923215936620806634127301025597506897892679852331684968441247284833714912855713941892504691561839140584692027136988284441223691479642139979592590903074273076461677756954381086059379558103799921731514279808436807847761591826786757573768631841034310965240172749959271673692858458319961829489098755545133458570516550142003186293971665720366268121845090857988482014209187846192131907724302121604546101006841347253901428412311883109037192629370467832651982250484736891484547476380452285066182368179070949873254731594855876499807803823276173801169974562086293102882830913242268443349528518649977053064506909449608460900857705777764652520680643165905394135500027851517312434098761226152473097445784482649255629373106127412177008430799431870108617901237097868044573348033791427978999448084954649220258434900216702081437375561491715185442726976517618356065422449353173276145566349909992513903281825443533661635836100090634522179037674966860636018713441912341473684660322304663926789929130216779353951620637790423227685890434322346652256667711244888679054605695718798864218613920736113400456940583512018658412065228734135852622774170374771524262732183069758642755076123247463049020170375362058139991486433224437637850955103327485022477705479972710941154714986762418725370818033682427433827833393376213123025325715871291474033015511917807272717672912211728148654203139534563265426685624241938817403434482580057876685552150315738991831690822335321766225272325655877006599539196389597840063230317871096612281431043284764648097410013016979954217633059079524451092555940511213315886269709600494369927744468441372359027965647233929882454520681383712851647694836463423012548928036410165598194309774588440733676125748448306618015635035843260605656940676362110561829934830084498179039068362925146654118048284596913636136689339835284712108508701034578519253255180290408520667188461836105494422048192974514920264721814020031927670961579939093564094640575720501798364021672641005519412557508796095154551968607552110802032259652464416569942497815387883928192080903564227384150786061833242968406300231709782025645444921027205924648461157590534079142177998647350500832490402047563633167287680628182220676136183726650826189067816019814581329372146913072356295179140935205447548205682763055061035793557090035462829662333571159357614510714260156473522247256936778519741506451413790476867063499136859927788568792413222863480552132523897767638258121122134847406584538991225591916689535461145647549447907226786244530308832567091579997060775963932032005668107966959266413311385309260635379624654817973309293745618612307140711337840123795105550587612850898003608303300845682675919062754590421865772940946345871356241044998354057405053230173293909932966895317293369149817638718169544218624248307004317828472019390933991563379637406759166890235972584809504680665431961730747684975915476594115574823933065186043704979715067775246299780353714214940042532588368807147455802303281243471585798950864563560842153307651891382911016947297499587009163812078752110879873409361600164698083995810105927696549818947914799325964713350387512963334448600987049816013991582830211205250951374618381021334555626979606285151300436952392749430432759328918890353359538232268815192513398944669119455157413044739888512587341316726088604469465081303066759306241304621624968966697780329868178340611754622583703995218703605722394792363718800246732940021271481726887381834317365306728739287270586009949061852183752624860307382754378431027190642446124418150480144867594849903029757543070555717721340674516406349913330682418854373245966534488915773555710052014831196561077385148792402478275775733886844576148556303768723130646007131959408635860120786288175545630123596395375867143186705875831952515582585258747086786924525939455389186290330983266106922040139550417071902160451414122505802417466534371797171440639356201879805299993332344187849385167247820704397324420600349980081817377271519072667487855431971612900371541960475610274028162709792687513130955376696995309283545797319938342290957113839847132977859423820892738832461148047558037665294314158643443389519477456317417382440816851070794549568813652102118936982675366695598075735960950887244371583082787702591211729004469928323564283291506738475755482751813491843763386889028623427192995904855243185379971526646078991155635974269302541396572820388321649051296067203070572397915900787911936071786031055362840792236542662035873255578735714662586860944780030843827409075538811101502055325911643479816402081068876565818646966612459405232231924489606655857993470928414189236213167161587539407468008005998522415970700461379196362958554180291156133398472118109289261480213442191234372325665607158431682209160184998740519486057824140742700419689004952489192468496312089387388874157204942455730653067388421199419002690592350711034867599433880977692246547619080597125860957623933994096273730758069786011569094218362819199225778287544751248215567200543199270581623638296979337879890762836405779839775001547651881764783550657729362701026907452891767264663621394304584533719100738425783754546261756457224733815797957031338767595766265887893230934209704606482553693125429117903192274543231519278445500697767092902629499063467532171587862483792495047520370707697189991793990341552365514578479631475853993777233589760312692036656944833453534362401995628956931613012741501847597799807364541889179353199163799064136139872224455597883283489506266168108572152833808636337035013336745746662481757618276901396527252855540357156751940247948564523917015062226425009508206764134767290319577154654300239084275747766259681975690750835841676282544870260129473365128145142581819974747151475019630738201849958729787955445868572701285955381863958515494542709947154473765464606939004317853441905140159471220788206800800417209012942833118218238616389574088517485543687299520002210535009185277768644695733348746882916864317826858965517557786184860296444162374094340720512933657760952879372078091750605847353651445068353821918276523784232648537821320887273870792182727515544538440289962079445392505330827943336610520998696896359387911739220154435159134195994505041110469687194426731227098371105826688713710277103310563039576952082311490145444345569609732357133598685178732610372189178355212115775518300810608916990516140448794441014566087524379607175603829868384475394391423046747601833596973372262406624872196550013851747733990275718636309092887024526788515948454691308348897648641367349875499628713114467222216051268202483576569751113418204402060020278032417020048024436485527128829317570202474681595544009068615535635456864067057397804649537402287871793817638444425633115737798456619912856676614395125688901499805232782818707805926173329185994736383652882039112659789138853507479226251646914147668555766009991484090362537251023984979828957149492709364391272824632884563128871302409808322378282963410702550182760716882413109534957688059999739668232801176790328570193232057933843256344229028826367538762834267986173437587568032193877134242142224182600383881773263850552377558321686173514601961718636441098158848191578966245434173868085153929400206351697776331637002353998520804767004529789439595677723664378404302049736358990641024654737883469304000704977342816699212209021489543371164668547929826508470385671174686227730258526672934993926772929223833288411307947241322728617365244373121142087455772246449124154977907657257663457906258466014134661893728051722570615938814260889650734170415695529041088090950724965807480279637592618987500445765043670175079686699348525740714513980658122885498914775667968418112872667531639421723452922867238934217684943987830124471062766738820034861084287835521825221143274962939139419444751614163796200676452953601078483233625814644053620893734607704230415875118407261236432643691890421624568712854378060181910858444871299910360609825133737839280735842952117548990092656040189987451731462104119570971774041215658411052463681249067950029231078505931642906953483762984085186367807051794790648366750078926535212234283102298880019088536502210764797401419980154938852374761618343830121640504577377053275331966196344731561258196302100477199371309680774922467219721339880723041317977288306012279459591445508146615928204892519823391945501139866601505282645596241276727189599918715669042462950194841771258344974544035736660954088943038439766898257398716491138600693116860294059210349203712927275578368625141240971020187125991887145644629436364488435074620443974753104607078653018803439810978219138056711097997745756915683134318041762638775965012650511521616957220457890730845703326052378685654508797279097271430166154431431660368929374920524666645222384880168212006479017137729989015395184550956372860374280480317200539859245176287735573071551435260733182837308940712342691868329097152614455415335521324101199772295997734261233444619954472988300598410760943989786052237320223176965452106729281325788318871111007654007368182201831849679140468780399866180216708815604859044601407466482921060696283645057457038811091253288905238070149633658338560836832368091105533868465333180029327357347843961780167220895788274193934803899755544633525647670563951693541878998097336904736207849831298518732151587452066339526279661612835777070560037196416429756785882882582866524742787951720826900756639348167709779814205857365431084741537728557000046715229100496999743515410375597225430791795556425604401405644427578158562406968440828898036992499675515680803392071564566353440123914695602383874191869544349969541462906891981395113580337248469285561689128969951704468110559720630494988320129780328449613803344885503191273430806331228364543707793293346046101137965199267968414759608421605295394113520667647708839799058112594094597615599470500942385491991699167922985515862577246774698735532025270210979281824117126374812691376779074899175020010073766673254314386633000841405613300923995816440274768676019060551900860791471304010784711706365609649790164639952205095711221341634513670446630240611873577123381468279688627466366391585246795375168817719729921535660920986909519646552463219468320548548114086429945102087815399266522403706132019963609410737780967693304408633460018748906593766013873555427265354476828667532184680259517707945842329864903359278956760175635429125366649000150186981447632450056195684303339817502323089947434273690643688312293515322124759830464554268244046695385216230556928174912632513845042779018895365830860605054685209342420541601529184604715231503828032015374730410657100101341100774864865848018651348869318775956152726070163865255476414318048566939418679071673186436145334804462004971606794723043597484246367313687762687621685174781918834462660251750008923071504688833826541985919274027016341121646451216215131545121827531070834939627484988664351721235214804441622033172247333746613809886979620011014368097137393452482596697610395541589296705610770783112450054908424009726180325083043735322204375638330168683097394754903745347056128587207119715054233695707721336799357205188694914007428643877495847655608111116247553792512363455469063351945211293506097934492978800702290531943386199848835159114074226350409563742785693922696934771698020195538429101974916517700988973127889631937050916901354410916924391890851190389895443853562538431348194298253540895635828968961059106441816444596351549196940601892526553738386296720999742896203011400279534577637860158311100800245841410862520187066827476026656443818336255251955372781346746692951801529370119054106027082436242658365016884045433420586109985397590862030919988905692054402127196339242201936958339795034633243501289599114381091452828887061876438054110985015927971491282196542348953860773806203220939191416523814113041117370109125707633789555139818509171531144219679354004633120381518332708389899232374002870292983312894304800508687611564673239988157470502106233239794208682001754116660496281048789662625658060268865973309745329292657523370894471753685260186894148321365739482898961186000590148987132140035718423717164035046143136138339166009677154424040710051739397752295466102229439318423635462540327117515128770359157496608007446412238788263898841932828537697527358575707660112247299472537329974695143886008493030828414048656080396952127530108882003255375982026738396443207355478203414370629174191516548255698702143390070882118136400370801236278478839500718418688737866892040598049845615106265616134908911528282829376712172741456628762215268012706899398619337002836446058577826120699405003017001328378132817375263542020616764442207496816752023277172183614601144757125898629699242499287046670589842492012662392894184040625378886584711499841914376673355094731545661068673650586076158343819551835199288627811167757883718342169831803579476125754837130383775795619322052193122497643571775161605661218696833666947869287388443364817665868121126701435475362376915765277344254151588329863390484644336143594566109391045160212024768876983108944726481113959827832466130335660422899592121177415668394705732196917300962141133155964211606916039303474032187190175609748002157788947672319310162676871803968720400132325478452829451887847057057146866332484523198138071940006847332549706968058777751275533106321099420859963950028842016959386795933732197080301581160393191796867452883451587172214678200292865131367233582975073896684031222970132126628537954342935243676397406378722886035471671715142924143029687907461294051467736824649045101413408965507886238584065801643007743125465427040380825364080372535242723372006027628637709888769812459320983078788890127707553307370718382153067936706444300734777559005737868915634083822803979773607854863843777892435858775467342102896354324132074758442651387733342260214423178092283645250749980820220983970463545685283510615447157387130117557710257197348071410427434510303525708287963245996849274931638902428816938822338549752767235980142450932439146372822109092872770498032672115068598724499727273693785267077156194100718274515414540195315176716636765959691597573371233711727788659167608914499955882554347647477882473878294191952892740936832747505313144800142840947776573426864821600042659455192475510874759618263157646813710282117806252739555725894752158471323859725733985491588226987090020851622412946675897873363276628284370024847672499852723570978092029704847564208666442666788552914168690294373011033781155886227178337389700480340683513510473968335365439928991853189914671700479471136932529772370310715766274025179543072467821342345526138524090491259586059653298802117150561604528827623860295141722771598072757334599818024139724966248720891440704058546722925864753391774642988794859299281249045403341767563986337233683534795364958344573889145303983261502997576205599976407214082200407035663591810010563295214022492932446581906677992453238450372085443447921938275221321660905710189898721152185694968452922334522876957026003587172979009616296155203053653172001207235857105570859776671023813100464893578459010784222701732022898252733899847785325076536293274890084466285028348262694887225190228436365583111585113407796072422945465730117051372433416843830486153943520234051347731734244668377759940832762969736006778020984758465923443932724313794038304159616008712687925568162681750034130027659413805114154376384157768508684144166607082229091593338681262060298007641480729106888755630132247018236292659707142288987698221382223769745410068792877352281133449677286043528249250729678190152406048734910545389081042271987270952390281915396454148433183795930741282951858196937769166516111569738561352577865728423684245725624371854855602771075343188602709718001063579962086051954908511338260029858532532929138093921146492046119388914387226233582933680460050036882763322409696778760141645290398557797675601016549132869078711548408273779671299713942539508659576365531071059890114381556917650577602999931646507005282963171247316002960236191296947553203499767845861234513532319364490358885622596472035067820606213524874860304957056351216598105357901644148466734262078568856299955768794669572854402128188033612910737602026481985052190494158169292165458959685577481884323653431188306167663765092131817924702696375472866566276621174438956783363988692736475547535321612200161847011482836806345195576492341050335862555189506953801984780455799562613178605546106087027392810893267075584490064710041405706593457051145008869515126369092928660804987335067060070349612544305517476521769591711009788988661040341814939615595159069429722665801372251140126412825622556102599507218730874371086163498153967526809914754339700699747514957450360246987526060098142480915441048473240923903891620608861565216554471187148571018226153756061766898228029256225904469021123801010498288106381712379651766051166272532680946004801558382675144265860345718643964427421040393190063320873948959498826504409863912666158754855510715852776351849350243172733101107111210339303112264688286846962686621846113167039844677165560901690604719355088837509184700906367483846279377159879474690461272832229328142639421620873712848049830764167725199756703488494807874059619502434487049791058804533835066473475202363529766844208706309274979848849732837971002103612438446163755271451322078231953270749686432628466323175388830217752725962810959495637956763254683303117398734634604917589758586747361050589579554509670096218700258204785063407724847281167688363404942458177249789659613954653467737288454836059631567372271269555714290165359048976185812018638910567481370203271039713265124153095419132117847496910921910364875734067565835869752263424701751102754963634844713588081392294098969024009182412017482216207160586369636831226164474824750475779145998148630724137522342404585729040047559862511794525382024990171108912954206332749507008537673119601840924840358232555572801261105123414685147399739382691917246313725666175988501450224420788016535325327275560405611653285244569913597794865653910352659431096514172252698187168109653829370476765166286047326199055224638873197948153138117341369559116998040178517614119852655432368282242019098222904717261642912406388891039799167524091367367601523732049722008513138442997995960173917327158046430373397168133693856171492359954605513612197154297543361303258962941707675870076458694055348997721211207049856080950363292397926477209126184881846126142278952871883084393482063822774716414180632976577628017580469888457220948249729259106834622658441920759642282106101351951948796240843955104194026920182599024198874628586343791692534084085510788920846659911867996537197404168842261770465876640689278966584924266445906400409692316058521579308598631515781499031027085285789045563444363401881473906302670633397809300827952731301065690647232001052468634364851404820673775905355499091778404721693102224679339107570078760541175085490841388662083615142380840984509035275453141040501033213505383965795517353872439886920792067598860465199551342552983006899093506939013347142274696987578264809736969921186952311961434211642256762168907922286470136648958702305797062617009520851745667644934130908278588224673954127611605953297097723655092668170131527757454762882734085226661783408730424855602722713272106577625858939747372246576176478519944351912756054726163045056495475933255522548235443913275137768776771026677261248377459612201634470777047927582768907003575992546479318085367689138088362376972416298736954818405599702064040331660476722374904084016956313546321178946061093336198274493178337056595154523929895740861578375663194343760932293223059417847018524147981176054579134078131267293117803879867477423044152414928298822188514232457717611812058734735180218918725977986158895866878250889576702203127882489407032585484334942006872537322982962799958331361049185835125028908711471929975956661605176649908567919228408002079878237775811336653296348530016648912282184491737741397099285593933348757739207200374367726497040668005586949631704177536260898491045579209901855572964743927572269623890073754755890784025775096268982372884353103745784611629228975011031244894404090926041226996488645635808055744683075789911835545863859512519120770311389238365359192266086868107139510189405305490705071766557053622615196601963081219329073217831261257002380684001809201872369569936732608759797409767002550631465654392435113596024128675213009195930344478978071405859982279780248714615357605786606937990792371768488191014671456956035694221756666985460056715797011785436597899834624222121648817661630118684290527787991479847044285711038076361712164999839000009901024489867858778737176648029742229432992760066135353426575090125295274282298950729120287273144974815650521001253454525553693720622370353961698622030185147761936857837434831402424890602198004611382431647404908183627605154084101918709441844032599344228382455228244442012072850731672788324947505898024230428410856324913141647960743483149477847338846391086334147145745742684868256890957289343251747552364297620663033117505140329925508588563698822627880781108628027304275205423852570663162723049350393213865768623358197986113396015487940526124417897411261496011128422736275780298604046466748399791215340860022416698412537057072768588065597109217044080842245950940856487652303991350034114677211200614961944696478366410279558805078376666023987352193971413517145709938945565023276164172120655933151486437370307951349465150607893702475198879267054778242483673680074469251254304031220874200346902696133996605300292303566502547535168322521937393518845981085828197865492521185530639197725928739218526203856503949736252182740896270361939697326771447996542199858533868163656703162857017841348308884805707858554478284676330977920601924338390954530452961918418808529371783672950600062850140850678006273477472771122314489977647443885283216936484532023716884762656723097708701073578837694757863292051962207593948879645318066808163818874006523174523787767738932314991668402516066395158811156348087433218710289252881717601454550857339279088648636143409675637688807119564127402706706928706280341775434305502242020553017842936528601369833041068650521918261663281082825731583641136005962265595704690412085749833104381617626087228780010172931347492051732968599433982903785887931491645315547165499580448243196175880923691726561398791791598113761418626365762946356035470686449262440045696365809142303242619520899531208497006934214344496960706613396519590686050427423941755244085515614315964800823903284734751418931302440099476388274270703305301259903263813023287770102786885220310332663327891808449977343931327853907886867525732509152682046620501044703196241533092903515223344797553009544000890312366932072201020620485335879238531778983641450363516437829868168438007566646492404891644733127851760120286044766860003993905268850127821346060105385116442887683477013495647390013685587316956064635532845832478626521696924996607052213718010229940551225287986094750496366654997547836051622781817542893292575648189676825719202817853170375732406832207783207300654099618448536747981448228551388880010759062518348934416240030819369888044597149168399270938252298597455648659357686213254717000908293397263217496911836663416352535620279788923564711601418449904841726658200916536075200486273143912988870702475406583366361149960509977951241168173665741617712339582113043687613425440287227081991757170985684553841360500234318723626264061089439414520189870970975068305640657215402335212236983187327282381967674901956667483072596381248858584052391571912414752487100702531905705529685895634445205915464269080787910725097601161004238413289472907421127025264318580730306057645009668549136384929388939427979322752775301147474010308310988167803779380285965519199039059408457599479086433222258142392071489164575076403233516433892207493120320734401538427533054547870504466547354597091020525123786303678553245626838444862718117979900651230655870235807114913585608714569794052579234828206282184355933634974166365618150400690301870608079978307763550923413492417774043459641689626392847567744382665349509242650030014348006255860442061585812283036530017964939042113996697582285021322787340686295340647437648642635885107820013965485160710636383142613690143427235888235407541191487433252734143199455774448709966344859300788370266243331315908910563531896831714312837783532922060314577264489861405875260585412687143513789105426021527201478763107704174804943151218469831405892101711689176621493681885736823441371618667787511819344803196569485632741533125217685656659307437159090604669255485308260669016385389028073205050346887789864668860088926490370580763205417838660918272402586976467845946604983734127956078171907351600536565667749983769994191038034745033415672867222374679043191011695601295473089820069678271376490083787464405125463372853789964398278464395597393826476185286104765052008561671457494047689782851253530133827523642852244041683990184199650138403444422617013698684259979272022734867729093608766477738363139692815087824964517684683169378216265070407047290580732966757485069056187077349326393403564000091271540813504912882984623464328756966315714120356527766892195145160254623610646051697513479932339204600874631946421248905583989258470729048368217277908404843850835741821456605312329269794106747690238670902893480651847676657743803010529155434488065356089410636037804843081152935509488091541054504856275797222431232839750974562479156927306497840059591047860845202739560749661783590849264111396660133378071391630016942554484600028014543755020086250571849284965314587725563961264505591250567896946172480831932389826688028831703193782150167840706571785796889752639795237892598688344094227473407088689268837584537549597598791331944781482155800933256887180165217767499945829954823405331296422164613874531919023990328581695263645848481118886036109262291199215403028388929140056630920581940004006255000436108504688203369048786125693035888712992209877730443176125303682717274183136436002669406430024434898149293852311796411111181727136545136209007181027798010186494053744616395646349877759946718848662665607470586964008688665552207440629913258832138825498961961696861238528471717361569554999725278674636730008232436614260480654252503094074971919965129927021526630039137565291702747409598947238602253059586563159577508788912058903804580431990230823397216210731802794962181998601607438648300844046649711652489812283464283749290666222790118027013029412842411550731261988599520407477497832397350981048912764803676644388110909075361974432975700992766263219812703954021519382277037836269364976639920790790648922324638690831220431655901400886359406322610863121926241034949717337564088110835369505154334068419614460296286006257272362032867448057261163186568560474620725508917941723143739535441899176504161113896938988309567156965633591553906572446505183092134715661839266332892228102164270532663475131723716084990497509696167919095991311523673801591160626174201548669417055946698620271505952320593462637107222213898043641766795241813194400957574111982226879075274457440464607109509072909557269770814086192019928597708528539367720743091804392902827097325267010025415926388749241331103800204578532975492509689215847716176112177866264753291662971076600022733849408383250362145380911054785479961101269553168022296346884413273802443468798283164573499969899417621760898312995255722094936112579173940447572570245277421226933246185872136328543665860681158476764825541193504783697430421784590657344458272552769940404225792877838160029171571638966889437221984366679925072214617429772096437379586934032369982170155980891257479101148054079372485057579369904891975961239101665719772815474229044518396826221848260423736778121619259019217030992481952229035295313828199187534169227504985238692626091175641576499929661969812401020353147037132137883441908668704073149374148126122272872266726470743816276905089437079577747391992899132984245547219564976610458283069703127722274790213946444973489209609019392648361581715749105609093535704984414282021801066693551885040899220638971987850157583573514435263828668358613108475332661768239841797335131900620882981731769275606193842861486824620867005259278054095683240161842510636217102004303805738483544654488159360579555079687230311004748339342546081620968461094560351844809732397313339111010048538298157854414362101343350211731435858767752805483000922064515734061289652305734874279870117081036586277497296556187987313513637040277285580450111825984339570718652279009003501607690752635086650683247647168982203288163173679835135308901296222366674476840681946061932839191892120098367106087745971192809363654676843273655927639183396924386095145207193815250389383224104424306877382767546765549564027274348454249532945325442332459616430980498769946728559660569825084213170858027893914138179279073897477892798554129276774530292475184510709003508647961053692386579089714559512493320002589992054827108569979285706023987120089703311263465081550997061291644745843104739605541661034849859364204943139060367761461646391865084078146566547804452557192045423557954620206350663985346129205578992690557413774924115846665119817857065959534217180281500069289704245880894910833081609560003517726880429922091893970419552590682266611713793041171219844209719703910363320095694794860852387449738293670187287620805353837133660858419733178888817941937995089571700814753784106440567052428659858286333014986638249529974871748458599315278177299543966437410042823638588485151908020796592619246963938460018652381860994171282343488580392524402113933338905242801157060391045731062017955289753875467710952222810417295199322447678932570288534544856144885946929622253320495170196901795427486376323889327907450187200835471021334173948642449952122352574249599022470935334308500991643219508477941082145200083201439463874111600549716883452671467004267281521632333499204103625787367860165484916478032456097823590433647250795584339161593503304731890366436729853901425267549508019117268028713602415884949412495008028882589368738471832018474852540359305172628391793832018280712653375466482146975028333586164833209590403059226431526348680580139355249288745134964124828602518035026313168899939795602450970756385918488774357107139387599245994563860904229284465164402533406334031024551550373837096201606207924483179788833070841060030129902459940419283557711648360926459911555037171180678460714525956559763122738527896328283617127819198244017740367190570736266436901478110074277336947879690468402113718416496360809789757346581697036775814922092798955839528071670400417496860067615279417673233854918403585338815059612382488729576372974200924970832208559096016709311060915078138071386005664712149190827468759595202144473497883094080154930901651467614670746734448601622936785561579546249574196799773530266031579909669999934367473292559036193262118999211217946599932103932598612229678435465487175210637154236544864647449383198821456334197460348167744772578221914056732649363530527091007348114889470911466201463899785725880898179998021376829271370408310269869271799967133486060385834055725071926089176140106302349342531804260871058037571178340012960172599830813152428957115558882790296295649820413675004334456749093142818096524721139917630428828036821803616150975390214588576708438212931403182119322710044413509130262265038258192655564659340783976981587313889190406757157811197948341467741446465622164767540132912150062145789238367351607395013233097064760896704585553948172679537351126614813587701319941267251048005774099752002270736525828415440657628409649867489660923517651880327132874191414741289829083351003985288432970497937639296037086319871447657208367585759033070572194571693212686579563174127679871278051473379752854200036263146684000175430251758690849023687286383555549575182204620562101985943452739193899589424141571706929137430141244955869853115828808690650581726726828948221000677221479395258859942245003460808737571791802845108720580095811176363335626794786005778420204883086254524454224814718955623962036761817766408862134706832716278354867011374183837927420254006750806938180936930999670629293180491942491580415794998917026062882364247542094795265994594110408063077465992615677181387615094088136783992149205618498897174635153539213630305984841629827277040859980021157456113561129709557629745086248824974105223696620180081614071438119410451384144907790174523240668446251554921992378605519593868719090807778031638429307465207405442545339437587618869978761384127644697483504208468749590497309964905323754537859916788952265904416411711337255162514164724030624006465075038605706259958872460829831553079969616144082541179396284569030127694344957994936826558320155241714008489771001892997385953851958817363603296326421003272094614377729440640608735123143165944641917172318247928435243210347805948735306241044210190729777314687730160229620508512647337846275631385397062698649776484836362648111175845639133327914074284312635316556588532186079093823713984215444978512123247835307081244080914718277157065154568117972551312790159096053371555188002844632081037155343835227198522981739389682320159863219234223574713991140040773134196437778700524553437578108008391968949087312352144048835293949259146092187346612935808090904246156131119583020961253999294644199793402326377658235633148045074109940190931659022474889607694159645511684126297357739550977105046356147881855380311556737664650273611423615165042439621022317474001603944057613396781851608079764534830695706105474561549606283315358396335673643881298662371853106238157742050673987607545417739097688255667014479209007049060024948096452772641646048607514556813277587962110761224033446271222365333435480632108646457154173316557192913262868091838486125536953952256930281267115263986645310280486043342574184161272567781285508206417723192494977268682666909232745208023855330816505475596829977007894798595761870154358019879207434389844282915494693132989466626560094339258362470345827689736836034390805338133149743796953143752701565744671893775736715620115256758483114430451662039326412944735716324712699972869501280541082804137205561087857350723093415905321046070358873167308071313882088442944255777579776652508702909315813109032918095760021916925908516052813764677157607802043883386641540363792324879009351889422233764407126367604032508694061970955910890645061994543941950571957751459431964725113879232400993752192414723127843967274914909204943661577624064883417019223700059468235069273791265679545794959184983244246189423221254231314618426205730738445695609700176977878215871115795252633462300597422090127936837248674864882132169694269148904704165286581446552188281643489709310757543090265801715532753139943362779197095870832244404232325211121744052880218980797128372485392967160557160453523624972235955381793392839658933604520667273417113870935884502548065013557480733452571292539216010657743257050468243405463250014452153783642987485631094298916875722153447624463549326573369863367835193193556444175584757265462882534180854081639410564914394471797716684786229205050388367131634366398509844482856647603409097122999823889202462965705903352053396852982170877296361058334573613245795785229828830023161648712736007148689236999483853454542119617815700875892146114049583882816203042413111446536503515678394051847393436441237018949844705185582995461639512533539120229924292406193424418118532950329012784490109558582780406481047895807216027327735805224311468843841520357797568212274348458573124069894859600411225551356480006911869592366007872789187184326063482856873292003123106718896430893583333924502354732623186154554884717821483386948783094273467676125353655941918962456157509614443003378983143773313836284118576720525807444973448506400407575789635448788663026747568941783126101470649034331828021966239020130345630686831379377069797351133374298967988174061771851712151489658680834520582113781311397447793863594750450196600372822600990072024879275063897645489289989900333084360603868174954918676374683584421940274512625528278594658872366709060713810827053001248511378607428673021621443967325744342761477832177712114821905674804066885030649441838500291478520745530264548629478738481220914023705771020277389616116434782375358085426826725809781242360030354728678958943646639501027059854107341689196636282921490929082133321109314534101544401022918471085365055727905689265676025523675142036716772710862567729983130430512684223109667784192970874894335675123890058866285450709144496227824032830492965737623342305203959450435076191255983720184628779318345172000963070386939147319134906738273958708576008399588039586635046111137822536528303321175668548097163862512052903710427571372013948763614965318856912143905160170726205485094697257423597401352811949018937564032686953624861213189712178327256688534111632855598806725886555285176734271352471158350580882856271734209947529745359895057487244464836139559515901629507822496968381704010715311599671024499809222727360431122734220366692732431560533926208088556394230289822533072589486178941074995230930156595155648460089224625887202475140232355900958044096107852893505189115225209401467679059366025588787153193529956093019086464899849118972937953845297361629631908965512333803504271656233149053051486973220714418177729997881234418192838225438630112547959113594000516192783969007171426617339394635777835741740037231336067652792686137312668625820563154076199316282224217327653864926238802753666432652658789666973162953795980993262753524117091316233197679778953755984757151766546766353249279750768416621264154174330058582350802855542110180592340809611969248453825571292248629260012732846011552333204364234086143436965091716266535653364015330518565250400320183804310910685630631639260489528412749823894381924087585154805022360866538958481489162270015815241858823411307441195185876690442401443442167447866105571014588348727670292523135171384708034356357320852689791924947194144379701104104120599324512157763889922241730116723627932885022835089606516461003813473592814583947184443560830039583673660895369590393262494499786837668494436975687376811004100983202742398817708981988440320662976231613619017594243262844986685160959790328655195265238812101181660547453563660560093049598190197271453791752775958619270415481977699154566220532900594214773910466544810897917427882818697337399536596565871295198356048484809709829217588006588683760612657519887619086913361995444878097668463283727095271268537813895638419788801152434146029328450121737621610866520266580726182022065889230012643600234669461871363920144096577475097795986294057971077408188300822360948962614502149572376868025051684818749450291475690088761652209064945977154960202609821064801979332541071752021332565880322679219124743911783716841654146115098945185602145750097744813512226511848806719826028238041720929168064962240749464246067794491117772340870463184937986738802752709354703641142461823157164663666731696576247576626694718579050386505156421287754436612955425043346712152241782543601576846942094297549177781175885148239320629637847995106608971685407327715675896471459591923291733301115256744031122124643885806080474661586223872395746062545793206010254185243589156491714119960520807256966652212978313281846532380682122801070892102252316054118279386100893439171902229713259093710960534783406209528142475938651789208434332432622864909928758008259911693856526243850017356370974332583843723120367587541527402760288343854741562084889463861134705448554832200870878262786322356881024790004656394323919501305902953497664325232194572838493972495247757785502999240138346527562662736868597776981207557471637422725261439392959772437338141250840333901209039717401283164396558887779255892125971372504893137761131395860636127859559813769121382438259658506013384832124594270359833478694309762385108276227582503449564893974780969878795743204295752296777700753877926695841879816316744401518528125839632835557854114148765691646799420747552613120518098986657860269074871872433431120567218299821306250930641007900679050913728983122581591196714821262090188851475967529579677840583984644479865125061692332026623061892957677280999685032340778607505361874690558099530211532444059324097719734793972297588056569612689828921819936806286182570482289078242066818251783080317553012817859572441452920713857238879338966960349631511827442186337411465920905833473190366666603077530679707276406164315079494927093653014226803316847494368554755563303790990256604033152975292506971383860115568223368101249898116773788418403779517609169378772393595759228233230094363758422001329051840133673220854939904990381737419373841311010820188063495230502820438298193190030305135104317923033710489305506099818291607774611480255979976845578525573997846384902317404600662641010397735030259084994376196673201371839573860079924229661720657501551682929220897732899086762906715072078011808294613708526191694155325507916683200793075761813653716061582544830595408892938341871124099118083332350240426736291083067438289722261069336762747860333382764507553148064940447511011016788413595200617016476575994150460353604854585817049359047337710629325428488930511891695215332074283471402288688034500948823110833935920939247902248890644396580441300708053838696551938098814824337904405545589668730940896555555122176492805399605171396192230122541031788457517918072592555434787817694896832470658071050621504454255695355210329548307060930833446604845417354954204209907265720639578183614163669907965041489127697916291203209374809076134299312630210377975187252236919597180764206001889372241051168280420693927116318570038194750797634744252291518951468178937845358950749979631858122436831923267203004382558846793272234374233934446485619945952340761928088583224933568653068963431579876677684116814393840423645375424465044188559669276505309512171181593152134827561420020189839928898091167121105697729292225553073378442301989823778860788852640866045910036204170408454077809989326215685786762990846135351233986652673844011567876604198635342917155603719620831217845763577362952689478160718826464343050426859441208777071684192319358208523949056537757899083504503255310928399762044151853853873482792591113068377016048843617178645672525696537396240348818599884693014154159263214743243250655113456207066940568476500800743134653998944117778151304460694245888147232857405696138087821979559759866403653981299916548886909775408560225131612001214625851896657191916014491365613218312800256925284480290464347172829146696406618864070886417171217768118349788778041073925982276117371201585965152499992949749474477261219975517958976603639800014386177429428710568865000974147141295848707846067198271813288987242706820158224598624425367315012080581948485272847464038276541641225401427106917534874847156371228309379479261544987174581054172516120976806863782070019754194058096778680779426596267828067061116159417456815888097705037393145660803810437869236682300049690656101861947228333660937197653466349465720345350650622011043524211365531845875794486052441779292077027609432025213188151346995403728399234066796711933646298948388505060985309193650493625412264203216961034160738833340916284488093794040573907805797956474063478397091031840604485996894683567250542001325099948377707467483399708980189581236334269683622105375515985771057413002044978960819717334610158357880100042727790044428130899677729891556199271470302478141554589128644737892527053405714440788446950643307064551569069915484769511609559690126018387047088157186692397162870548265488007010356972381190253885913904309478648760233911044700185661616499301011146345814344994140806005574875032983565911818547289934422578392182384270457595412368072337534138892877719060577293681716337420056046833123426614746641826754244385298344390293499747019170165414510287988830820238653089157309420824482579235756244339295374108901559144346190501070009314697279446466374079591938516990430215992927981527761370001521847763316621005619141337791789010237386192883795889445421471307276919146244022525633063596204613143667867361465274609116367805706555241713145819168497754313922574152080962121894583102830238201019995667395757395573009957047562013722285660140484063005411887670757794594884597846376789637969490052348787661503908668621597604415573980143758186772884187893414138510982967372494203241977023620887705295967588254783441024484327016384899586077850972955881822930659412966720210502546636740249768807052233324740834423139870653593359792153846566966612435880125334052637606716452264094902176080905652018161601967478985713582314913993678434435895667406552154436003504084581106535314746608242430748276869475471187482414531275734512555845311155272440357568171403328356902748429626696182548913514928806809176973488476474122999939594185241836147622224884787510921174477811348000626131184861873794682370737111465187295196779544388158895244462650010347137568786892466302810547181646255317924516526758892628650723998401411444845615595002168098096978900222037774746876960649115673397765881398420187729728501341140971715263766449450809884900153533378667578966518200252895138328727893425846925811976821147941460534082302607385990367086521988923675061582822567981279236661431975048930439345687967555312304055643893536778593008759982017179703691674827976808270449982812009397899666623068531076891006336946160828473869047500797654051832226369199313553560612763499967706033559183711687848627700132484942962611281325531785937902520086107804899827366501376592559079903054408912808503059667076453151005513950917961484600420276344194808236283979267507293079916449279915947501099853588187861333671010020712831904534500482523855204123880780210807292596937396717316488668002100316740283422906798459524238775575170369652972387171172297106164833793542434094236788145732404047154052664882971871557044263251374371733288772146551861204669288334461362230805550662776344123745092858616173606472515209119313700975436141285045276247892549758495874206048586286832407496910574386624828812360533260305025441203464577796449599998172562975117769529699231960914842646102901073712680889249027544160477718182649037319564267379950159817741133678218632662343944923297315544536590160239487463921609607744046332483623143707743619693227483286395726217867645259800521192709426465879258024197177687855753835571920451335067010105314554659605661709558229661826748220409206527616013037172097983479929658806865483868444723620800352338130319387379662565963613406917412312013155853473817075411831824912796875840942392911408650902125192594699125629525395376249641574961154839237472502673604063340696372674662940104940258679824849572698618839816812916449270205501309833846209692808352407629453303382925982629631173941359042799528463237661262953625958752018245232839157111328223045368961263725613986880475449781470614924850373554940947383135047876828743723753423100477454897400658448187104681593197476401649989593145844426141639697166047455490805679567995630222702994055708906110874837634481859689603826292186983891961689442322035075850606449819639679436959315812377333834148998908590471630295310790869713148001847886947186999298872832024243825153838533647647914175315880750961409216564634081117611055332862452833938950098547893470889776013177942586663054203888725345722499773218949916404417059343786529953189690928651971103642934140404276575958387226375320361974423645138127309739810079749248316244962163392989503396893126228722844131208752823533788212712780132386775384194562270863533210211401550478580107157154351349348201756146127855209341398887719980995096029611820040443503100887033862730098853475510501718773403442984496656918461851317701096784699664424684504294312982667253994524373914765589115667893526370302041877472586826630557581798551252538007529403375350186459723586649046605858652768175082119887048352035044090624883136397475738102923899254125561151463739595644945406262752216836427893344683630170124208800640634594417393780421325597441463863048226634838945662882143033407875903278548909588686125242060074732405669253490226722825705565088036079911470114361339704520439755936329339144017659094811366648047649627010507394695803159778364928274462474801727861331682677630020273547985116040858255464532023939184873058026000866866817381236374440825468638007270871421656413784568657781959050651638025801965635274165158402394070263342221013890340474057843759117586670083633965034852222576179329562191478032676368965706122726385415983373413451274241340685295623895932424889928517048293942271131679833044118598192708143418314977868920906231984435276481924893675595594495110825820029245177338758427386833015171358872284063895999822769791839682923186687867345436776006131554000431530597746469357980719465655458021323998220328017097662817528632025848293941234320889593224221018949955080458734154616222656092840204039311551655621959762038902589022191157523843527683746067651168308576094982814748663866155255203506190110555337980002293274882149173276906688010020710238337473375328155136686905878876936572058828273602072926155553662842373410337777352416495531199533940858401462392229528099105925532496584438717232250370957523050060773627299490793083951126541899218861157743774783771053069854050342070330943024160224827496716620497102278730341838234482174769692236519006252124836468973810262181168457902252046394450053037281296167701278948753511150175336303233915271615749465496776702143662373836526746546493945188104229914714734860264106969041445562610507037416911720282759800243536213105739554750961564912173228179778051535266428674333772228688478488635892909696097050672492441061463991905310922901528683246275782969755179959453247015839627702128173062274311003342488978815425291711006413443278124251606640215759590899123815164781624013080004573784581060674261312807801181945567310297920986491151819559568773917015160240479265736358579749703591740729824571677761661515504068413951317320063432835509873812900134472021772140004526686233628622970639809009399231428023208766067398689113066508052723722804303046574115434834022434130359260516710788495704915625578034032583084492323388128454576275139026845287678824920512813050784808282414238776671392114786137943482072614876801467117819457738056368901091259263038058645281037512933063799980861146896541744350231172851073413930579850875835122999985201041310724150358163777890799438290488602511442840513627659705070559405331797647457901091763007191592162313739572360598325754026118158224110280773274069861474852446806536755358037343621039316345676583649663938401217115540000326158548391857566635189013870151198267481490138764129628138993779394478440809025390509698915563751432549337172996526038278363235748185567779303085623837885619567039785578150137846909726343506937635896707387015592121265495535499500403461740765840765653086281249850111473166312257251868326238453413482521804154019962720722241594109341101925262671959619638580431984101147189330678794953900984501974251976189123219845338703589153782598161060883956855316462676974874769158799723717152103963201876979383426674752338190052297884473228852090307152332133791654364104418673836671853275231639659026511848075439001799351476057085601613288969840933570753715381135101519767361792286481388345019589368074744400503117342424100269479188123982659472178306507710905767484943337840588920196456249924402102240449966837121687099098115062904608409793497059039857608134877417466627775785637364924316308781470365901879717166981010817910084151779269915873334483910279383355480165945123510702708788984425969286363967210191798743576415154873520313187901227690392760444216012397979279775854281207492264614608503527584059113597524071191069165887762485417800704276419042585119305137004068439012189446465031776395024013035700672435333847047834177669420006542030386320889119122504238925857417499497013976456843527598912376534536396800267892657925875855851741602903815464806934935142841479913587743036262032443301515493038713814984171146345776073484329539385204533048197016040567262959901748073095103042186652961702086739891466939869855344196635837208973663247150411955676839876857537907580318122528130177179194949313024858890986033030966984440919767749619197308442663553782461646601920762727212081981717298903380270204743419714933448450190482096405741213812757661491172295657854645188411592447565949691166271750990106765305693801837235379717049219283433375995949754128424418636555989941919859646256480770663780330892250086684779118254292203950845580224412639675250697775285761038136745953908781415967288834719173076498256240833591057610052814786004450733467725628137795487639519577433986294735711470779503424191935557798197508528704954766953788404891307802883260931063021224497291728935303927379465059766156024540147017817816598932783669726142164438211649178893904203096655889296779956544775037883463249436989869546769703366524691997961218405635697978109520927414270725343816260280418768670696012169884081161112342274883973240018021661350630276488574656428992806734778920606698236115407390180473392088214937606070806830059920540210570777840487735732416071567272836256489359947789663117763616994339847331361252885212602567488217040931459142406719473098979209784664020833450248096371572824962937854040649158202152643061384925004084247299738055248364823278412968900544530416551532768634114366027642769424160063577300806823758223255813198748986953712463938256242846361872685997862502320363687431388631107369269598923518040508592381058826248995051908871160113586603398205144778045005971412063109377911202588843276969298166167467256343218554144387621184020295236964608793112002104274754775306081567556912471112379139878584066624867621552713549306554002742292350050542162674616972149324168536984631162799715377782913683673863756907871082746577910051990711078936639376707259524497467976813779124155003836741088873032648523468811551738132491519734890486122076426509538522141192479610105319844140969487563433723852515194940403434513378039864574030443869855461451809191286920556810080903394740956470382335544447648845407079262067473759736130050924713600755248732916585649071952697612013236495422600381757965063577088287834862013092731715981700285126906056142617282859808742415555069193633570795656139935496731873467530578641794698766578157691551651092575346942030719279337374977324391136244223958276232715410141789800048751629936730683017552034869014336813368185719506864260803222044990858427324639706941254540880277270936139427834639752868025615852625446141399041750704104767384050045388358838383699036016894391835508576415121159816539241153948588889074162416924571401648131896030774161607051041218778951563712233590650849453154679411767748546414169005603236547577075952000472527276495805502350860389037945336807599643672957903225004658605495879645118842516413480428552756521753483380489383190168004618434832727708731723142282825396632712807022690438947344845214609750597596590105300998654551943236532161331148131012613260029787132795402968239801915983505716548734787034887935623015542131653062476470336255979405837242853570950183463473072394738154176177000026191097737422654807268777232964397006726646956188634633714682795219121626750903826475945299103293279412750222856060084536703167997247687151829221170081295389894795952120622753565229475033069902963903952876198574125382418419081892740613143837176087275555452098716713546426531676784187059808036963277196266980703813003354203063251440879737163229397431220696100883487087865339072909523767807544442525345362169664580780411616690630366168757680436436635060145385685711978161147463255917564941742048896586762771102720396722951198156952950265349204872665829896874801519825002600547180214141059700137332914333706876647435612305202619222684558708616417680878139182851444152393287926570635086925191648836521176222036053944931648198345888752201145636703584817499251110421201650184785981204347970541621567367382808623098848019079600820832497691648545354812796403822368143604767963115519847682402162120359385208322184821727350211165110312521502707565822844537306883828512465957609748577598771288934609208233419693873636530035505589927284443568244145011669715594030088185579985347442904827668530567947504022743249100693826027097439558897424279481894965789002227368214770495799989388666912559723664588061738329120399553363134441609212614917948022541250652700079554749051118875991799863104217356044622350333999186176467927991030646026912255435047519593352349814508768625891974981948904661133411592166993888029939954958386591381603983589362424923591014933519511958341974117357515044642898341353264586962994075832850685870286634670301486403388023125865553795419976993466293581641515902888004008724122990064540407353024105394318251285632853786556068469126299989135419267546246216145479578800728195144823473351559099668105021602367433920322598130515035289117503837937348863878680246134807439971334345320857028836105648888273397856499976148330233130047237538653018619850501693824302867879409722312691567036735194334043886625105115389529642904532290314550381233876801214516445195967744582974971903660549842346786394651875594371767770574023893234019660880689282393984316683098211521725989833362916857271394616061223495609996833220298521663367481621673756654673208504832152248593732643899750797156227885327021402240068315042809488827975616306133691087218169950152476313068512669554398374796012691389370757405309926435157573657675836973851800214132233602044810686434333975210554335727709698770110700015008535836564530009845201003128722486749448527547416391846511660571142800448047418207609719035312595217506236241911995885057659798175275258549324177831411110349143596789486635160649118890736131749666989240764992766295744715547804924423310151140619348852605267486249724698548323477347569953730225698164305163729182348624859863184427188371696134949129043971806843557888995923734612498840772727714335361423064627828801447910187574445559644721791225354914940669254193318544315144582265120993857292662300677467930801471125374627345687096368967122167811096603227700666610254002187674304690052184548204768447900946524284534801320327122717584848205841743627700580509639308641171692920562305164502181563747292260768800447365952645818796593164578940368847484260721565699156763523679340587212761449121990294111053158760502650223219286210638691540067341897576093922189511402623294258906915822132679023107493490219459112142363606013112974814772686192301910747471739385625373406066721257575273337541823848512342381278782878048509322132752473845131847556458671747531719965417778187162916197514369295543520761553643980498771095867054248582734143867150083841519115927647806814580375539967030499342782899552521170788620582404415791321781677406550481349144200099482704668151359178995982289281745341346719179214416053497957074533256362705335294856620878504350895454353403185333475121589505748886622565052555630082634444432867230359087217042681110573472237479074197006020557593685135838795576528354521407830425893803021512706438692540961733172743122798363888053776360981050319996442546448551366351781538150692479271175423481500323622272528806552733740618955210474526677229107713082237469899635363953496158574396391766121913866420222987956497593506074971490954081972235851773437190996615192685048514425419733715524909696241237089763860369099946876753650911344807592272970662557571501174226807788420573712802437401310843873680995687260639898812969237995063581864624137391581264134624081271421105328415528785105333790485911533937590530199254387276317799602534314450285615598698438133486524653689714195042444587349197656717816903053027783824761508131131662183617151462603069676453271401832922268996601407025346804856038107482216164951728964622453702752994171921243006275063536796864783881714357179840086528843481310986615286162538199503566331690491357593333958565993476606941347958149387216176066723683159855676136803776183840872122002371359091606434270011910930143181445511020592195715454767740305609993722857511217397545064409394316174614283548366775484482547506362984917360036249637634774977341136097937809889834567428856225359584059050619705582555874194896659854090554952064341000846331515562522494767170773492491433383938117546155057660744228423323037765693920005348726607156696170892813662032880914987209404775887554906338615153987244602290478206978653957995501178249531709494655257070106984636699810231334984611093170525438937765335318958720770484505792579458849777820753579405670056055964956174247992708997460890681076875325322073326450257441001538028669530850771850692903144980849939084660310976473525525905224486039879729951146812407560890725215224243374054707574095218725152842422458943233735755992451389153768379884510335411641342326233500503291344443829873873658558216683387968972669669273196658070860820945443524244809953147163772956985100294129487928277961001751709016424409796660025399612928764414420053854291336984529505373197545408902276602090255389912947579732359996702658229644945189495212833184399335685514212141998756278616970486910635360631556604017210269456096178642554330730440329246146485721038561409026517628617458923369475654345566987281866330907037949942144264113407935265473684065955042243529332325683047634859406314144923659250448698184829762547711267185796968321993338962825219139239294585125178784654621149481800752831223793203260517592787063968290975055319456007789428312941090009055942395956232999406623085229786950070353437825795229048518323073719564769608685513027718658172799852627348846049189478233533276881928754759461133006727594252772206783778305236522570719115069205699786205326777035773530321490240111387383863729201005219346259421037552527008204494892335886710503305181658771583297864242530669705111063037497180936963752822421465397048106206129907994777843957515837597853395735190103922142280210885924315239060366347609536916855842662070644314668298174842952112243711016851451629378752752546546022151428476834879679074878459713027646586857881165289642951418322740000378840193450873209136814776221856090583227057132493289542817631892850422577542364754442388581830734382121818770498123788968224099871241270641225067628074389119636018507866058537627894238410811723396588585652093556712284074422111969101824033700156303583639172259174822417283310898997933840340417903544554127328134826616494210314549426588562653210631404452399661191547045201271800538673243948873093970092144575447759804788113111335155504717408761496164377329420220276706289307525355171482719681333662750077145981268954834302030717410043895650497820179948120887143809710925445641729579782578177327303563732710541149724140217745562587244320853123954043259534503997388176061688763225474636659778422644536254074801779536500515417565812000202009125381775078255020067492818234342650792211761288444529794770429587930883923688135883655484209837463351657450748144474868505737859584212222144188763901888379075305977919353713841715892980359721232874679174365134968898059055212490723656838000048330630231355860634523315147315100086934134888326465650615780310860722720056791201375884288730340807961067207814738349164908005552190722585706530432372524813602861695318259775350900117569557447081185175899586831912902579249113952622032789421990846831902403647086626802365506013955729557014073889323204809082263152204897910704505385548428410129774873032450077637575754316795600622426096132433176606697208122816178691572543672635982225842190631415329102333093643690248385613614083513484798698480295457831999117408232057971221398251058118577282806124188669317248643543284882942881065531250433858654121319753828120387073209878836004388864327365286387264230798512829831521852349709916127401626744712183949055525562783151284928935616470293868263004330850270042853105261691071870449827974843213692225132004239043265515555227770177927621211509821125283191489226152975335744125553906343561666081253947734663240683876080482343853800694527576493204957829549493680017349529652790954349602849108399646550654760574281559404962649456187617314321281068926988770712444585472598111705625296038200864846912787282379107958898687848315474709317472719391013756833854783854400742855642418197565473861953917463073796348778957410539080242216659519274613736075979288381278260598041309208015667477890734575280330710674426563356337699965586974886130618559977341154436994180201766464805082074360541307006223042234024095256626974833774707102757565990630502887141121115472546111706005238464163351981170201978559668908459571724924426420840951419853595769164885657925053338849726326612786536827748886317747912627711146598521865855062421674098119686697996718665405279526294402263170032933217654438174865701766103637041791125672767875829675210625024106344516280162243836997983530120225589508539983306412568490450604629455868521285239522723344514397012370609587809415349615968128657265365890433397960108430326992624762448585870015486604411856546535035200747372265044139761258529717696255106470945851402946331203799435262830457965009527033328490839237998602618486156578105800317442926442495883741266518965514278277760876925346168956769834326424876945913838200442180845783342078812595430340226538463718067929110829530942237628726777850044474136807728307984243564164322918620909400286785960025985034863391852319831446580597445622610572585067356943292889720740588151377270724977006442750324645600623856514031697845692620967291914653710652063879269952093206943877105846007171360605278673995138300464048484841780793022287075294437015242187858301015073040708196765810268516253127566857425371525126302968264573565078927750933390340679491258611639820978634064860997898931840632297361749299865736529809557618532749796458112973290863903615130439789507144137654400883528416794459192257397835719932482971199552197067783775732274259560685885355506969084324339092757634538157313215084072263061925655508347096160299620242373667738797283226198200116048808089892207974206138809618001109128660624783942180794709631810506272336395501398092245747617986840582914115111689246970715473007031540505791927031936861685748929790049876381369272065433491264089502327512132204395337233092591966209182167016949934340117940142406232045344625118972699006823101853596872807800418807624446073365362999196883418414077223899753168223140217425258052792504057471177761141567211579038387118679961022683739560884239923044325223072635636787920842943051228833967713639734979380086853434582752562420279134902572206789548250471459063192702947378854345001759408414056675750195608065735067734330853476474625894381782205083326036511996800971151691426439970501435331539910865266952219342816042468724385953189643564721382830085171746040150378337058744315270463029885028955501168069801389323164784544570113006990814075962239673078559904576258995609378691325309548878370646230165277197947542327239949788336043509054104490968377861893666472648000274563181251258909221113185835843741448997748227564230361244016088664831406777294555517720986806208383827525733641539828925172109918380819607022082071815129643693650439152985011150940360586799020812296884503841055702726195817966699390706329098858575462460604780587593405329842754999944180824770503206332449783851929865831399042643603696918288849021156652373661416530352902133487769280032584892705027278025035057322340436350951990678027430971997803069120192575967046234607906186142705898806204547459264119138659270621815886592149462864504673907256932417748299173082109011011266649386481216673887723225039969313806180412307803687657594452639556118880727605898864711653285769410936170989253374368397192265623907449886121768129304703977602345297261106873310869683897419927826645818866691795292542404415704174280332404562449040044766022927328790418361926171805969566041493288334384130595434167130464136750651509112818785092311215740643607284383625827436210516330247673633453227738394030120910042129449307230044049367473703433272654602406297271339025254260004291422991214726575606293591095314341576004761265084815765053557261792676514844945977907852726145046829430169461700646231463500157007221073560969232110564728676964387258560183722406497566995027700765580392731314961725444470008126595752062015152315339501087890275247331360747248982299459483030228622272719685531643300261016628520754281230772575865551082950323283621523044566105767951669829570647737996228615369430729207357763224590623313213514789584155975809640044992760775619442009043418113797961156397602506004164239445718447932534820162469935592384067996703992678235391425836339672680008147199467242517567488709037340142677353857348074516226693949451775577444948023701971068854891579255527174729234074763507872641878189214649867179137785244819314778795430181839606502598708834927567187222142059814685098847358472203909884163997525334084163493288768990770294382709329225490700080210577431575803328357261211322606805006847458729954700843906576645867052587484175951643179615339586193402972262313311798340971206243258713846083279720559601961770828067573681247779642452472350122068590182228472213970171326454526005301620910411386993292137857624471423195350668334482894319720304279949116054624540510861986372733304446818348770715050429194817732081441986927774893712239759819804702288170125208828064575075987292480951684960362898033364349070971564489449065344399354812587507873755700620679053967507346272987460249064107859085850858688985115903108501092428385285595166604037240731260595715973656435628969932446695102052359109216243002249592556075034695251666600056303693293208111266867473400794712157909289704800855412285967425700170538954499020046849529350254239550283865932443738390940336438720003971407967342298571731135409964056033560501792557444158201232391175239084372217308556650856588777685587652099255505958394159105914840725298945002498172903137195742798449874633087191989868126969578415124851748519151562785409580784967425790462268232775624864390495717988670310752129243126684102879047763962339732354092712982506493087311994567425116420324085814621917278829304665095816053921490093449407349610188638096474892442078933163402637564148387838957506565609209033854579512878984308782791442644444170758368818107310646471034858134956131688688711767961506196964415322264075761181184004661578502929552278333287471501543744610899201730917880456769228083032076133341888019403232482818288566020958599567653700611940182959124790507636612694365957966479034342782751569946131744228552427215311739511868379226902351911923207735435533258437206449329647412334339423510688519494561193554170147674962223563141184646481554824692963356894655606021979635535778069816692828854254409464541500947479142406276510697409739530215615947967857595892121015899031193968731782672937170080422446119629586398447013143578458108572134000128148432388199332125985412905403453732720097375556491003041669937474052215132971166562395940988262568238834329130205876729581096783632641541637350279493212482411115513699226649405125710545577872488815747178760515612305449287635696885102825598788286298788742724668317751490624002735966888008099260954611378861554079771666243229035426755769071456833036487625501103687936095354956485448277257294249089493601128283634006694763007985559151553669018220241008804850876518318693773804806883509840064755791720594216177749691855031548313787804487848288458911071724467336146833155388328784473669503486057521992990305430936961925678227577337945111837513767756356883706499434427909856168055809731555308806466426568067929157512100512199527130299098943791130276479313790754044301907391874183783292622694792802514411824740932396230879281019523936901253463793691634481309263803358056953723622211166863774444250044383540545949419716078940202773594450832691214556094175111754989287932250500615981608974638777795210348919384140405483513773943876997975636801079467529930420731165583047178192093850619256292750112322228051852843547354728681471451391762740780598087058121269208774485017239256474981962542381729041462979956367724475969904271884303620537678267279765303723379932175393398899746024744047175327363099507230106126978997115941001667955170850740354238492018876438891539256794626522401534919848786298115211465118119134122755941599018310069193745363149567402141192796927919181153901858938214716323270488599577209326910309111015031944607188218493986047131094312306229708125028734377399405770932417732143042023469390723054224148715630556804677266767513348658339975269814654080989709130088405409998704434885057852804605818477278198357620280670530457385967410280016967193420417838497619593647412685782838274304064626593171695666874173441878903768563431349235883608355767908597163367664591351311195593304720983472527851669580907179473342131952661851194697209363439827239334367965585234429546108286388097148504067467853565901878699117446320720543118209437558885923164187867722054652359778174730599198395694353383314563851833700398731306258613926945988163997871484160252006409986037277099699818408106129637677110968541714637183704247552658150787041260068777796654835057778492182207496872571457993278095227738951363376767526112723709384393550985718236077634765014547499389496294611398497653417069612470986543293421044185548243186235662800009984570239443308489267104718517870486021322372873179596569426751317844548201019806583773386654101569616561030070035967390322972383512456658686425478428002520675993432035269449175431912506716693353130014405158124399151556087365183092136679867340002145747011524374280158801306810263780398085168156399532750844346218702769525172641057060113491743262485340279185363072205484835098130829937379194574263285345110012654231104633772340333331792504223528508748546299574980004138161024805048852456533109131480812864149027339298322595017694089928390146250834555014965857805164253627348889749443072508523636002266329915747177708636879362226568344031203969757784866300399383127521050951621741705275750902055254752044036597611608022649872707964208559882924969334560507936393628338614068548859111914005375906029748854184861272430989885639743021313770671497187844995012487419029232085366310534564490360667993285418453551123215056985331243686842170416796788011079960600068896526139841353841568414110944716495705573797931359120682408142977569300006761880102173542036590311219572838412069583480852778935301478044497055728935723494382405191395540484213345192712673074229444498469703638104104514228939357160477903507162977924182233695602753216037136676915214702263693255901230416374823665961337823267411924295347221155156797808621400542440099735432993120422955005514203645613413575490993541536243554092115236271809776719675069813363458447306876730316585963485907918096665580609020475740354817611163334887132531409036385947402772319410336800550738753818673239025765434241590496079540670304758451828036958081030013614692707556007195609207451524969668070376096748452497237127861208073899530793472799988158004766921105050373180179189552346652353883150358257187915523750034616719602137260320990479917596454600710534878061927942630133115556870094166370901263416640159876985881074764872767347263048260586020516221025609219444163316017777083850899087136715907368078663780623480325156107809495260302673635306120945437805201593496844157266392439278828881003689155810502325478892176867165220450272762469108929056016496028482744837771867224991041541362129287134509881468264167669185395303504897321415136462159221902399086009554454906768506201543032476441029650270159119483570460885574000923314381993146261767532761761952340976455058825759296596664761737709313681217007742626382268416312624825816088757920241742759355678547493586309075551857671213043389181489078524279833038412605766811631753212177173107795005920858048944638780047609527797263031162597219950957055140582735508790957120678339152358314930932449339198268036940413029836173798337055295960424210559506183150990162370740446786029722029114402864965799085517455905641732944468619228736644124018708024435345492872837223805029282584366730547031543625988806239941462458868133838852477369290994898745099731636823260508494812690276985291218456610193054788349747797535004659626727157370891686576061916608295461529747025684897776913374198268713708682335662159434406975468897149996189492560792361027026737500319507636270447341771464660443435799062528138636691222259135134234154071464415173413350636788367861826113299762808955179920295835310106333995933410503982799930044653064093949134890001174062354388429243018452390989679920960803002026098293390914437007710605448209633180356550293465249778990717453189158963880007529357654254152533713731910993240342390337548780507275189689326743350009487373378618911530487410094544833280596366832933117628847489869484029507457409329117824135650201503127373640091493850284951091418495870482739060179270776435653855805144918035181500385586714145592312926354047927215885213482064251827394400564731387620800752922409486795251669691965416030980858938727149157069978733683190543552058430963234384613816094415885030027362223266048403077941089909761029430612673863838715118546360400860928173396572753293522667512516098043789031681979834568548438462570987004559972223341956537630934073834212785203982635315993900768371785952850686970263044328570704630555042415338606327693299037963496608000109229162836302204184983058727907713120672326695124152034508751183133400724010529066886934254739337434752330497840171038495118621262891552491284352849033177324033886947435455078299715432900683911271566467781042341500316920171543109131562846453042720642209841167152006202593505217274792999715235675052258266215003905782494313869556476584595734448408376850582745977606321341657777884073636285073628935146035718155510302244237728403068213428279502603380060565888464513837542757755224004994262626809649204244669971000828616488709547700022606826099574543045215692005823674975512671948837495991214358668472944456541149029022498271385765460429112942001874299560606124864261520956809919913747932750258022530100573244604496003984143438134790241888653491281677075891141699598607237481966366981231550617194539732463375817199593005861242669368712402658086034474735359406554161578052089215978351936360162650832506414878987450413270874987272556364087844856651103150696306347833068250317516263607745462094615083613324316157201043783914715565375543984569654475618780370663131754213838076966696893997466291722338742092469411816676485001504414385325407591806515559842739447699919545847570523783547815891097678509307249287966772891662330980747533460540222814410813910671587908610067810640103834872826097551228371484988595320714346015259787376711744141813059452672423959541825394781453150874137984265990848786428315092490202007918140731667582468546486019817222188517289567890427063436685403404951283343973219526614403418904366512540929482545561864960686070417579290255601208195384995918338407223062332941018877911829923892373528655225231331280046224338298410546457530004973328353324016870968736384523318460095534241482625317185510785477436154341281509723105635943168872642432201876103179569854975834153903073844875755577058569736902731133407508223005071557489235979199481020829957605298836884650638839418375997503758171049206232437550387076936311242896289925897967085669788406661082636160206429758928576659176047110474894709153138106370029494766623867317536923780362305124113875774238658304941880568535246456563062288207325525237320434502658695828280921224295791078006162371596659299618528876070141989521842919026799837640781257153031837013820501921659632967215109974722202312016951998483542523671775448065549368488016986715345187075752864569516165897820381187682495933532930795154435197339270170242048051936230669169954274779613703980707304606330164724874303521205854238654268433854380730333823213191772910027080672795702531934524328444017202167382652508134481540938306785922872194509960829637881923309497945374779587300086191715346470126027300823429421300344442537871018837974666230709441341158994931421027512542297347684897198951890219249244777966607471437054990672600552856774945923966105668664555250890200735148088896240990010682800530380110231718107698127822805642898248390295979953133823364957593255607804364699759306185099173992833061164779538700180127137020336197279503516125832043812672392707293174123173948063587794089348442878094871114255560853270106906645125675623952268828551358043627031185570284833424172672192378578191570296214988137029111466044486616598699068266060342653487452111047456638117687739500900053655996239106657948884514479792498045789808261335472778904984037356254864559868458130210748095017745423119871989346786242183242278987043170004796901013851575457401854133289946244982546861536224284198127137494315071345793472389624034060120512624547699695949859020038701308614108877222910664318110317708534565987145373519023054383635024695680523510889150972711315601570521698445060707943391242962389462433988675308473391651433923561954725467488892597021627723184845771841651395975408604664094494785886821626832294968560443078317216537441071397607324787817993933890130002975833596049323348978708888146998453550852979364102662236717304024146642050308371646704430651735402902838983392475457076963874603929897583957501916508063668453047184333841278386617389431069889087756436568252236877516775239623951424158560519289201426623768969004136293387701480417235793730764960778806062415020919337800294795679480759325664089273928279729243006735606917601764154298205619152312702948720659354794732799366989391489985560364398178335827388079270137074484432831718065159264405207099599713492102377391796831341792286978129447263572095918779525595948884025667139306122191714128521853362075873369172025081072529938917678778213493291709065551277391365251989571692700456317849951396017994068096259202084134420777060456978435181101393502382524492985788317717525788995879528980876688444183843623800783638109160071455335339637344601178556435495047157995021013759170257881706286946849507450900058219968627916374897759212983726525010228876769639585389469667699771238585240688381160545819873656915609698181643795235391846266453337103083328887151605706469962986240892019171957391401205232267831120180789246243945539055991558382271260705536434142641185814210496681391257038704856023951320903637819086295226636998118399328080976517345151282695219763468390855059761510796487143835002962208776344619546462614987672604322591854097562080293641562376299307298354334182345784250169097894894964886818557529907861750150182180645105318002846997731946371549837497516101923413807416819972754753557494897082611867288779415551284579230580220754887004427562404445534194715466011091317745825313390654475213250611437398989393318861030007759017066354735044537101650534365460342227454584308113157300795564615517216018859064985110040148370011271776516915057002996362070723479946231174783710284891490532544336193326870380848691232846246355313314023237637372892105933221362756683871096267065554962898513583090263432064852991185728009558620177413813662305588909333004376187784892712132008945507579122836427549059184459708237724693924994925308089369277300842763031865783845783819557299897164695360760668829826727825605216305662366683376831805888865672442957652476381407028795408094990885101763291749031230644692649565489157296667524804023252945533528032801706554411693807650585000207283416537443856846210770104139462308635123941024583912141848257749699856820316771459211290891145226335746785883846538085925272386731457856714242652782224737174904104319887308234384807174923260138652086937606750516574480011454423590823550856000560941651470197012069442015959056906135942589209949933592497217972678633104719789335842653206843896837806290147231593308133186057300034602378844206669182979509393243949266223182449372093832027490783882110612767902547946829585140359420358461383201449760283136985729013227337601229232620860543312687419493127349109390449609434232205722109398151545865410090870534179420766846594918557775450406179481951912420887830748230819810616983023779682268656951792142891139200896631201949692821712247268409437820364538278394070176276055735382053004057945359192651551965646738868176745279334197809702959395005451870303370564884636299419281348506394014300780661746555351765625684366119016847142634731347628818733608757857956827826582175839587184043796704998224341192469152960854894009389935747075216268393821650224382956390657435726713186025576854485690825355036199204198467183099848991232226224865161432408221897712814464026642782706154533198945007522546997796849182101243117307551716073019601320644204399125400928077456968925038212785402232151285844566996085854066010099961257662728740829165312398793566614274853706383360240573142543023646161898889560965540192267485460602496358782132123543446527996981929116918312492743278230689519703220637470206934674311181081772356802801889944341147954110431212016221722223812491028989870529425225160056361563336701044060103722364765878873084200002797006565972685865556342009355804545598681717016757692440715089209798452922772635831839260606433637483666290471140323880028663360187145669777855363487768834990684502903375848785213518663818638700737230027956629961804309551780684772420264776786833517197263347733620498471928461157157449656321311951289522950419590863707099054249077757126779475708508635268383821780367418876622228508718040831004416156573530567183086797141963609710929326054984121459430752330806413012487363272948292651850045871525854277127653148117069628670404102237577296590958408769997046646800103149040029483559520159948765363386082284751141274718224138383664686378349700060901448417976925438725456926518286129161116733197241826424996316866904513758537255114122254975481780792030074264811863622121902804012349486741708643904886241963595804062206185857816367835986098716553251524951683437723151823262614666315760075943387440157374372367931698646598272253644106975338289003207509988287415687458198974954232943896182195375577401281143243199808021263171418492608458986121593697758121135387079010011464624466459884658194486259130035725526494367366182293336375724736745652520173657860245932676912655830191105756725438776856436813360476746553805135678667992705987272875348118378808748747982199695581252938662810223604375806176135231029243820945855032262107821264948847950129683032512204954128049790838775896158892959146424886961806932492288242786397310558463998198074310316843767440269051770027796247185227864748508423336626903845844448349021420631394806554499723375063732709303193978612438209582012324733242189416622399338953082449668937368824225102390667872033129571375583257860647636191164591043928145064090900068166482101209711362441707274415075318119236801775533665800649825214539699958300003244277770665185061284911110402925485058068361362135917405311773033444936331593920467057347628852120548703845677235558404544970422371770569630279348689656010544302672762893536439603020367676460622735516454635862876438858706048351278129622375602611149159588849906501763619067118927924293715235805663378279338803265100892867405421753174919102730820902218640988140712759968082633554689720971172131773555955008045861025162942574158645110799710301428379042121516863481718876632769639694119553756700165332958407606449043863551205259269160318675038160856474151868348204171281014418382767236998680864488806499052007536521181563664990640886183332439387824987307711927482922307306407575109008701331702773593671792403524087341085305176046878732973809035622499317684689408144636391356928276458583658133738247593513011909544923544248727782465972991810359535842241068161595371667026614173920140009955685578671031161094060018713130183330123047091145941930871793157816264396782209811256716120870038956874778973309660455973640801867222704169885904023551800735592191400726672775713086172356329927725565444775553032801100487266966847558513900588862542689343079214807503199089696292651167464683968721182038009488824050306419643315895949347250823069805973527255035998240588129893815891195576622968152407493553804512714672146766779953199534186489069317355236986208277074127291537151021760444299062233432505447324923070671755324665487491833297164118903554720811028572039365441416099158093495929110833937683642794669371056142471249601860487460038058206915222186080711654596251324731531429188975172776410525120137985354357339595759166611678012166423059761825158024358656678836940700291231487104819910976367490213603026758442317577594778798896294858753458680509674129237182040748764355726876913967294188601979205334558493841145851355371273525901845724506802453523890129019911562364404387628279708331527448101943299509242328984907689635282749447447496997159468711508832682479359902830537787953382807737056135804566869792452957789702462348726610208677711618656304744302596087847056551007097399038742767728798031671421438515123243162027248540850081361850742476102886191057429251422867946439763691261236704624127065996011347392870608120391045113431169144523185652320142986017787153857574501847074338967601118505980946411027075867819080141093186670769426879280310648929033862264058946201632356155840556716459658774046798369410559917421184929881798040659581909912548525707774045569272692555425227800928851108675897786664135192059787628075747583231759470341398123191512179456834374828239411165251853518699820191235099785446352767028168248133505527033207538439851745622100626019372133258451797606050974067464356749823313250914062478497876438864055722659047613671303747833734667534244829406538926857712895093428749193236236116109843332718625127246446217506671913199668772146119311676545685823787720173972710502762216934625131870787641675534281518525524426960213870114455983385646226444898298488535331303549141972971984406214719761640769435808394282994644244635261345456855403287219945962868573085512411129711558642192318411226409325715790866093008887266824235004168358906713895148797059959952761537003486479054493236462812826567329351076026027282414173725675748700838040628173527870480368921706477528548145254487982182027210493880080541682860452083786997410145808806374549447823485984327454066050566269202609229302287237076345225585083279724805423232759841356201613463613507615438847177552728287332317560814301114163604896170719100142932933948084417899931661208320489366602292405293754011780996231955789805831641434294001302070588253743097676159179125670688610403030592976732473001550730341869331121071845688447165288802627197768104808691053950629304160882270632265294991757546155035180411855491396510757225481223279118899545195690628468606784027383809700103898514288674861054282626967145934353898378762850777903794045229959236976752515735625042082683550277908439044871518704629032649037707952169056094626127557465636677647772645463899674028699719393576084644763260481955750461284216185636495027415318201443631308079527840610463329217854522448626437236792585774534355569306136354205308366974216483369187914046550132065282100130400080420391460654548107287063456009297739968125555327080579687386352670538144075261944493703801530930077435290905479034442208540477941524901884056145090014865609403347949960306923785258805237503288796620107330691404854448246723675461437493649790716798260871860200619270507174586146895513477576435712804493848654745557175489209446783883784976117328966849603654838162980103539966150919534600451896623276464598050601523370266256193941741063006103535883553881971885677265677737950913009344533871806077224448642621945329965502309596143580352705655029523119130596756028734301385828818191047563478066897377022872672164032404299693106029041282670470426655333335223042625012437713058436605271558635350836280749857764168426475798463640207840863600119328234827305646682548908399100712236673520346111892977457051575694259757868240754421381574157257540851301716970189244468966222371434802789532872680640707403072617722143349993957717088009099706689056203669718324044557247161008547824166049521612226924371376449826089699339508478609019691381670803451163123808677758105197821352830069406921886297797346880520459713492612620501176646479095538779703480777393616231885582150195672707398696570930319298105921429645364091547487651845535107182851917959389867304478585932398924943452155631840376311183120431200785595322599518672638415596708189929982619344113864062870637574798831900869877087867524048902359410062015518050116653777246128456504525023175320626833417171399567237853086469811861129042354944077145426502713035568344873337705760507975390165180528995205886839683609835037466509744660051612249239907614878115650864792998218213731051001298378881536836668608036343196279294708637262993744299859878015412235120685811945614397772660675321880153709840509374271088752584567116999250937026929273032742273649415619608447971886281166761172820989322614231391513981781406299643118880302312140143901790973472998448603204386312711511964686468940862909615248683483834601714280304046717171806667519301831695313627253839306627451841908813505092965970145832835079989125283962161054742509910623574451483036440605210837861874282188544001124877239416614827789434794615260167929750482950862747725308599278236134430069182147876374191595263038871160869973739310089383957991074701637327753198348124100723257725196077198847638995483249637941103152775421993119576692778299108618039148806469552066360061831676031364555649651871798512286033977088111784387435746269930197251804230342490265647686349754645774547585946860365620640235396628093599449358551180770629465252112648957059128146070509551794401239774668512274367593477114102051032718205155229462744800662675793397900154545154763549339473719693079107107828258566553832700309305339856409341008988705562167040371339039691214191105682709703262356441355483671457539898050204074707352984897751328027181972905671047398356374027662019910152416553871488421451933891867834097131869323956811435257100719908664472438170977203421079058712391873946042465114747665604214107771345169672732265672606654816769688608886100260668839116191679571326149828968763965622474756857161013766086780878072460923327423872638971284278979824403935162470109398829785781458365117797029800057999942581984442414665959792298318234427646258634042185713367264500573064033441269936356654049740792932983800110362967161002254659680852123271249739843878706219171426500543613871956625776315171379386660825177078334744079904603975302949049095431729734656922612389672685181554281681652168380295838941927573752764730017555123223979501377054411056945607419463587011423291596439240922615907719382569248371202288300291645321164471580471394764119254005203758917554382509290417136469139816079176878815432214110813846441092738348926184422811718411416342183356549835530698601449885850037285868977657933590532772430232420502044255227169824663392497861062605805802559187184548614842625828019562374083427982714162342292906060103995023769314683371016933608903760516523829821027089843763998813905386832246136358011112987765980355306302500167210764886476214216192442375707173771319977167519982027855524703298539437455667161399177878288705748109768810327814683835495854051993585028738312702932228321130513101079686607247870025779509158930923244472340724231855949524756031343833670776559891993297402398090674383973797961453093484193041021456977430652391831579913004051459348197552874164203345744508002199847039288264245066806594251263792302717418378556072766105345757070462107733113459734437679972683218316921054174398208589833522146557418993368264622072853761239131732062028823239162860683827596746376327633082740217307044460221304978251120422933197122149038292372445102301060765873704306447511403458183268996991759390050014594798644659902600187439520689481060803159361351659300660171548532543316514142176974847641667312231930606482477917966966062762337953599939882153043768612920323032887912476302685982726797231353989549572915615167638377920420450858244911760735826911732134580744727618210762568816199637414739992426900421294054372152898549837610369605224127116827756906752743362166850411572156089328728847217495728864811063515944118478868336739624681399135846903777710286925067867620539876259217968499442742489028586841076763426961220250797063652834490431132021680058746591402161978137455398342564614072926416635086006575482245099690477801307581935994919016411580370359987053619705983297443359860319593027218049678274626373798113305871585952806110782797746829837852047588989173449964608101576159675401899964641982743312594647638692450697490834444655310143027120164544054878893709708579182649059632028767864636903678368197616225715733488148936932241777832310869316706223535605174119284858124053081310747592148429514916420195409902239702253954682491237410913800954146812171133436813257601362190155613673085424129958814494797660723709093526097877309369351819640111976688801571041449413725095502439430896281203682686810575170724841488455223791941908039642506958254079421980289925469762652341282476089242051950085070700727111338758575265576917050553431234802783374817797991915362240295696310374652100757093503637158974851280958576069056261754631660748118531375048391445867528398804002634855924302310662348515882807693230344667875711972648464285756066795332199302915435201952570493936802161423236691723077991718521012647604969168658122976740200640103561433660705657119311805748787852181095929330662900105080887903441443499864924815965670760469487265847185186691618224099791229480379865814063119483714391387779765073601107805338745330747765004223714665022671285322530631066933081085941266380937409506940279546139874815780530144442440615914861391425087546679495256562585158499241932760088646322610781955380308407159014345555683576752366962192802565252703927984267225373947066318648800213079267723757732206078721858609856659886880054255111628035778519114855120262838076438221591084636068761690480451031894679689947604154879342329985570612460513786164311661830800048819935246360326954765490165619456844238592317666162844462690543203719050869279194922565268329157560467651905508864090467007290095578486068991041203442899692876805460840435861415104489632651991755685038567338748018599735747101047881694497004641215636438691263477869403299744815242326559739647347965785295977806857163178284883033185058073044927088077580124975819136854127521761354996469375199793075262890556896847561056874564068838197575992488867987072225355821018401810585787248644329025341902480072722602327320687701595692115195027681084767464811196838185535507076446788662589666312611219424637064560558324489041255701763924381818391307518495597930296738325459162711772566644475085966209155972627795180720834884675224758420393292457662655949558085128671486824423511813410087560552965491167570470410357464634007988030800451044852267464529869371326679127642730911098141295992007879711037548648966744602896589738421660844666286818471768150172741602687813807197761265173755959799481692765832638913402434999581391975509303764789500001241764848756699589832518172316276873894032758095600072960994696469284304639066127475484517583317080045740058189930959162827115005816586644466281030206583988302858168575017214043092117636547371725800679355496140547890840992214524616570976505489259874017114139007594356325722518774299317122614226770407263360889987911786474413270472454389175146076897459479088074535891086909781324341680031336336956032951526336321864273233025069338902724963183143551323387386116783566155407291327804886372284214680966201404240228496790567678939239159220087065254510449153301614330607325233653962096322504884047115658800020953154063013159431677650420304271296383859647096466044047221799180283671051500525306285620348051188801617084384460450601294466083739934857007457185925043247072916888819702387957778492797648018430721240388881418086802657955459502103965072397139765744510936711743567133758001626307907657431843016757586787519996122458835489851100544934502462455790389601412440942599767048921727883743315497058647062183534122684636188299123298809417840563213217291185680015995883267929608421443560943511791073713467840909606029558953334733956481528387977305500889349568588245829654580404027489485170078378719074763094000964243369893549598211317744683011823312306250913282331718915629392167239709815365151558576821894034931152057592936500625773277452770314024613881762179993324199268007078534363279189654883925586606852051888516807079770764644721149049243015472188733477615720056626199195131359237223304977993840869280895703734622852182191831459014116552637608007601785202367698335742812401256485471434420064266409605468906109671908210277426542902748712008274484551604582323346125563042941969154840100688309733607151362590708860357206652579917344845657676475551817969195954664114556660238289568198002873917221972855374692673916973207558590333731098928558000416412291089647987093975547031593128918803083583705309707486932982276637143715684589859627402014048109134431655306891839491881243952479187730366519687301402737968192141912854479695698493582431024939360270084705159164433287598999008217058929395294941871282721640571436578791101591130998657338694088870666814329721148761249177425922760504250455872651903795121794099158656049504129766484136259059404477581645632713326151044751471851235161054546669680529027349152256086558216222989753926167046405314346182380328529884823733696382388580764217159940984324354953649838550245016309507183787076752289837656535413134778893133221248113867389691129627743630200984511844297908615342488398359964106677522915086466610511719482584474467843572093250344410022839397778590130070589851638176383760231928419959658542518011511449492326541475664621879982094662437783802984981680345433358619091314499189700144978854338930132566341145086621423400629794062060930299995820291675393638206480610998724245306862968018710383858144720839657368946658814139471593135208034022219395908290396304987620821322984873049317180702555111457264925343035035259440384654719811636992054101991641628667656854820858527735880507691333141310769086004382350289303402026599007750200086476366051721889649192190731086293557573541024293484744456044339407360506997299117208403048926280782704074669102218607975816298262269697913076981644242315926706763094720260657890377698568354839851857740892719011847217425408762726567283872040279992703332257321403064740688000698713845042806738494412878994330387925143688530867980257748795019567453912995376486776346340353452449242473892027886872400404575357314782157324223071293483432152355604999268934153483034339348873969912725962330527222551896502713971588660755679200397083405292114538904112402755491583624670530440890645102664035014181535650686472137791805938534207673724281979907686193484318301697633103161687148068954877267232830983143748532738954814552712217061057050172682087374701749391457149788859027116727025754263466250680933143673591582539481153989753844288643332561156482937857362025229620761845724492900289936583086267544638605425855907715778224902496503629202392153984741675713609390847492235798666673307404372987887694698459720642710795761074300487551820881727609288591613742996344454768157022935718370426269406224402361209902689922617259508161967393242745483941597153290017939579290225377879739195204861410157515198201578428096337687683981960913521227720906674157596018381209527237133610645463327599081338026707660847351363056378465394349292490538643042676868105584617978458288165864462604852555990636773232059371252384598785656873818979993724348641609890722168748084319289040505084710944035034484440396452009579380555964907501141904748779805064451682436333155976725350436548733310718825287725227863638772936728177101550264279308217293025774820215963947384964983712856603322914459359795985824826178998982338843595767681400836929762402710883787441630193366457409628665133019770393081794528946477084062710412128535441798651255472046729879504106157208487804995202259632766064285227274662044052922096381118763002745741516065427463764047283287998536904028329558548687651668908332929546549927010042732765207337210447594663673436079617089989481763987362708035560567021089339630133481150001152964279912404328182427000985429510904809549075158599328019961495107817223403231869724783884112603749403187658032280812676851077251025892874124304327115290915019470490663926909238184003282564385443629058098496764504039873626445387624084549925550024773235660194580313094395105871872351266995544885004696523320790722938015666042205185103427597371994999522526337886235109717492686245500708243904977192185929134683420487438045493192704049148220643803295675554640329335443224544014178478790278964127779376611209431703694938323391194727395001195680578035428952754203931859152116880509646339344781590206183195806012027278751585451775133337094522037325409607303048572607894802283094711292952482001074043509855652772829780341811780511341909200545036604225037175112700034119003929588226090011380599445582044792796538416885055224236838414320096067097978655488715440765835454895215643259649607331134926515641629070517003530684746770606600123169155398980435967466833900656037173246344025352554267355415840045454407886445099006614482550086092655560397870247707169419787183286221032440134581912364950708791612948766106202033179212668398530161623371191675354405888522452344257015212008126051016645145633978908847882282047042260141540305084446452610392305424844650670334816946604773347794126231581845702672997041926409293473762229530118167267187660577376467530929707102968427726198527675481978738769828812164065658782549679317919087959680120251171071787828659801088334214752116794792120203675909889657450153458986558788981578833021369220861896384431672975471842129634086621151155931949523864807308909416373322723958487702451204899701315022634747689958960811792876607212609287055989780537246926983724749628484055978524672973119446425361390778659180629548289531121299597600891305503414266013932975395600266053420126188965209249997231064844095064858734674292903193511429446900286574665344061323398020102656467018508550791761999393667089956340399699751508007319316378447915559345614738655261243820945855660668272512806372068958939577084554534446621244826000210809683477296258018058664309026231684267564831007716750807121536493173740688202169243252605595977488798993683279414812512910287716214779601439676054667330184760338222570826611137525887827564315065680777023170948252027476096944220772458340873639911959799421427441080923749199833230356877397610327978716548052425172359581552326405673352905126968382462031827599958938006041745013376598530726112233054386410389981269487105428495612165486431367796515922336174062635883244139711883041992906335903832736426662703837848367963898955673829149002207855917607415115053250693179248647515689092967589597599071568933815945481557273026362261290309181403243144275549647635697253066686640829564476382325812080770808186784387707185135746992997027989387051351881819661175954997375736835220438542186938091181113879795520020555627527650189306556874625895329502935274950485420266440129939972240747005829922639422588388293089633755277842477775200355693579697089961330620866867053891278183388114273397726025070664423282401821370218211583097190661634928262606466310300660982856413650036729092227467697466683518407936854302523488392937650333821087355269789936141366401791117158135801054838186466255298023516155205903846393666006944628717020924059450916418082799300761678065286069551603800998291651460639987547206911613546757093697266637664444369880281222586342984747542514360280021231014731691504062737828012653336657310601693041131174471145083120769286477196347974603503229101874331806000029104489726586102353328202546427620210396495193965882841364052689657218693281226255382872330574643794913331458725839878633801064526590216891237117566503983349740707329018509650121801989492670694685026324577438961210591953612533640362750828205716361627326717591974493537082379699241724815884904840449953967168657085422158877928756958709473919906585550689275034458856134986518722316858706066929883738586273384006023923623586900821924257759972604982696897613904849193592261799458488377534744024785301211436573661659135839131606085672783641854808260280126555098148627007700217302025366504725272916857761612735822783882473995844949871664666373605085771320668054615141044292012362885897026618978533880835878648880454314823189733809250491781260515440012044096574514338918574511186318012745658574623760055962445229037261178331991537460503659496299480668724821705737107061141725046526271366833052882123806687268975798793580869888086632146376492959523686774569845123760511725297924579769038530903326832830140648174370416000563740603408246306416178433617083779256171192806498483856912998397718187006838105267174895071761911393777061029830519515057519600538792006229497868779660103877743954185843214940329562282147307454059574549666740326066335398779299478304820954172103493345689581942807448655887992923092187632194192293473142645108316079038202379748207851561719313695328111080108726521694478277586716079311971276689441894201176552190492740562038426334853376506141989453019690019759479225106726711331142147948141606174791041932066126963489148246037153788854966551797672153130377646190529327707986352433213234160745591305104020059403725726398828263776236139485408917774995305087012438430937387387310454155487875589571563573554538878976430984093702794382580062461088243911838244368040281848981800776511509346820394387435090636195046831657890140480161619127820808585478178005065979767134984395409599181384662157553231195239778214767232978142419863814922698746338323902791923686289475276535474296972261795568170496372038084081265681280206354735235680811082150605322268502027267409461849256640549689916643575922866648233557412163845152997014862274091277283222921681735152108443729814870952862284821386343624592257724867266995566313728295856953685669916704418504547365643583607963090064918970174354627907161285557487290122334604050065357887067387121486625292612256913084502313808470818448368920583610859870701428276613090904448997832557464546628229378047277248819651422251482731643913404354970715817784190977328048011112914390582426613570641506434469319031588168682869224324142047304769294030794366662452018187232278070748883678971486966202795725639769207224899000223343051271952010928641802252911867120580815194052251447614903922565260020645508792348132740960061310017521679235607841905509591524854726358377095815434393025705932504779490530596100056978076028298861439368799769262539381189386612788698176324060551167807778181843887160413666559520064533311375524546221583141103943297727614013561522597284234575390881799741981988950359387256121754688805645053608396110660768981305396621323403464555630643544811123843793638103500781149700977821940123792679474264252170986004068620747833514848025670234428621390601330951349552923820675603635849638358237801302364822707670818350219109078710472255454839677505974053565028821708906069802619991675175620432921748815993483034631931144007693836279921334035450509438096734362169993795293846199322888949869936954474729633762008941830176071452687285198942066751381195836034581526976790775418743667891195253364871168836595367614862078245175507043562099932827268894690353780841633471581131169712074662513210879521395593313310369395832817114733015437174351978735644720321829703356175005591518141361512607553506314771283881691286780529295857157987183737820518892583349640465421348779540950921058309340545086578908750654574513510229833107624019539624691859299136207082875188132155194562424593636700382309228538166385384430959497229906026446418742800044816459742031563690676484658181916864084061549605433600708176462040226475259554238174712059274278516540796509646681815405362629417325486038071323140886879006717786018140069941306186541277575575462286693502103042412580332912287806574739802480791256961130432859148891217222102341779018665701182682333233650565247177581244923904632000404031620318572873337512788503857584759969212575131866668449635742432619690191228453928167058226536982488089438120192681024471002211692229211597480737159334229996903834080961570415469440629576632998471939998107063311096670809069733470749275084940704268881310082285753655028720405311240703409549336456336532387001464148345959713950965583487066855273828290432398357642950269107225682124993514970012883089402753171595005489776784447024765434928884129411186636510968616836133604759288706814892241385068787338573641430227547773018454620701036249290130283871227944251477398908697355068300695514729431787265423521610836446039678386210580347214907734756905724814892899967744921143240281627006218056372201866285426857843139454282155008053661350715108233739546379774892854787446399813086047224474338268903667632339851760538546571574735498298054530740641313718757007104059439386055660849648519004364841935644741442588644748028825981082962208078712082385196096373101620105706341185681424791747440428972751796759647828360952872255499176779454109706000684113446440419424524210973683303992587482621516053698406635156240294337575406191925672551790794720387758650205167204178685538856734633369681708114753007703467371583474348658606608631013756789995556601033749482375938931098618116065670144544566428133352141049102200803988568362503203477055841261400428401857015095499702504318086989748820286571897713359474045084595025740942288794317813192264335678806017605152913946255948372388656727941857602949999441190906371105989280131088402926984668094141203105275496295010128160741465714969163969328938086511577256757626668152068901445870740755542584069915058274475602986661728390341982514798533298891605686546175014896497230926949802680538411043173809182327103180477793913388747792591097898282424297399070797295820325987555420460465177120617329817097810240294501422666765736516620958826333788447337168304005519041028268007994437642567112992563003594177499350313143763785535190606207163329155255592638058525634017149743582598719788003132195100239237704936867859388463459582418477913136042274269446372509223154599340574229278430748957573025637693482622928106028078084540636176615973382127226471051414872742162625329393834799667416756729347851383180384605294411030689482847777890398928062470650615473361401885623818988552966963370305040470397580690202881165231193382172405439491686466993342798278139490684149355133336230838438444210453793842036673991012213613812698554184780994055798307126602955785110748913672634517801185269997704018746788029306589749642089443851880322832498140805296826814949139293831030483771390955600376753843888404366435631317954669619764693820512396347233473404650876331803893767536184778516895299752609386916323654110327372551407005766660639723244470427471541597456654789950805731652606362280289344006811233267710390708089471482245032771514787457596968381520016404164232822720604801388894084483468388182154205674146449594677614196083440012042951418793870945996876173192661138384582800903323207625477240200108119057007519809493687069242501600451248934102403563967489185776577203359201575237020579224310488546569199174828750970419343970548259179720378544697114660984913836214121608499931183747243800381887714203104734922570940673166824070386669022762599264992691534729720055233470622361983387141543186149261456488844612899083567897891268134620169760775252942401923066962735353705225447629616741428035894793051550585664096246473138852718868728761415583382687571899951343051455516364138811987809226120755224518790266190693580703726946946529268052266789099135800783992929174395513442701734554120075618959730573056684936237675087143222157243296700363007756455368334891524410657327932933837661430364963060595789901206408583811355748173815323192354368896078117275783608708775334720532868440121017841833736856722885574550611261551842381312024125988430802549422401715407391385218920136341869403397174529359872042092131127318019407665808634430851793679087358098515319296431433462981644182831210859088594662561131358214884679823478680415616806644358604328746022944564684216796720590115340949879099863385742252096419922373713040757643024865432728183200235357542583454954462670013342855984114686881927055114770467887597791992184008520693720147274256837916215063941566470454352961615355936354510302917151506327585358586692076717909456964482859265238706395941310899246484185396748814641409576633475877721233498090320549440617507192403853556307291730284112185120878320409176468024148774487855255800774068571563272208306216988338539816548221084278013391206986737140108789950707719114222895085445241957959708240549129005700093499085678390678046079785362975309419601357466115224372814021384823528593925997495421324640347983682749629095303952896350739767347438120293844027576872229011932773751983274973212266410116872029496648867996993782999283926280105704579198666914514267115511732173668805478302986615303830718726390001016914890408813701308609670295643919637327600873956726471748472987920900301729463214622449036284337375335059476422840563035617460782428878729103939961114461671883150109226579489604932937981030401050396906013513538615597759667763183206125276999475181832336284508014001249284449029093669367521156953681352864161733700014406085418390313557134464848032704624372157712098239195069625910891158061918321320359463882492522589274047029825264449415869225590818737196598097454270029865602199666550998096860723604570679734067106236466599216214762733568709437574168133253242528119424790901316945073999073951826734077824690103587874363073715397458767654331863587830163709501514241568744157317611446342573381514871644179079236430228311781868546452692995166320189349528459161063392048868000318406455986684315599323963852732618227173625930538508735589649252046770336803765023576287168657333444095489528108901608769308798057482263381695149687713569676786452792034212609827788433482199639001052645659760802948940360107462874550911129270071457079286126849419236856917613016701030209365501218930369819279075508973094831203933944112340788994761450076596457245212489650952320369821874321023371256442370186088349671084672716007420532131596823433257300386209147266782325824292128522212766016205027109024693350644798834629783610948085273605705554403397779475210080561124044707852769929968750974096250042778372550296640426918456088485056712861306120189573911265401401225282426599428011019038482929181919569849602701055824036986374570590941603137356017217319736037565971508185016632244720696630297755155810484869145809510781603042457693685978848782000616827198259776869565581230308813384130064600975249987248032995349835412891691057445381355755552561697240638276511660105254020153085677783327650292256715180230310761231845304910516296159722247069669891556980662985643879770663181894654132238385441867584752397378153407286717607948399454604079640062077849440785379912268105026046152621336932106946116925651949583341105819163970769057421782361189838074559515193742370169802354031472921553086626766502080507773530262246390059616157873814329153525069046050664428044630124090579935204028300716719109046856679198192608115924509024456995556771487340766809518310153719300542071239184682564101580596429139307322685186385534932306450381494594791100969059060053609786872846761908552417891172763454214304697665522947076239640403642263041522273727912859005004176693485861030134566643359548510815592232006911760162323128040675512061515126421904921463481776662755769114345270193488134281876462795717222990025648983361813319896036300079384043162486822531176258971531596558246706866554133068083240412481594600608458485009182807935428967765186771148803087438989935215625022125488366575021777527483951666905313583419115635572872840605740502242571555629269226488439068051126402883251245850867483363514190433612600016049096407263599349249300530997274343610771560070515079850169347751868076555856269841768799437303108731499584458144035610434200858776234693018030251519642741818454109905739944603861891850904503822919455276228514019345353586633733159230417635563789492468884130056057783332796070155974407551335175440606780561267339891698140392244523697312261281222675988635570571938243052594595972744745882891226860757520613757010982911810558173945416597658465124279432890343530458439654053258150523694256537441153344649280255335102799159525365185516342612838141857385435271615014025800341207028845041964376523446290743837976283888063171758002027927645577940218364198908177118306631935113349409001192811079122023385387279991729895214633105946387975987133903192933086970594047474705382734627826299716241344882111340729799161861613257819775580629275555667082425118316626975483535934318832377518801447298153959933670190687567289255178813287908866321125627486016023414192806322565473343007674890335641662527402784411192835445407521088142572817670233667064573526077212927054202625399004519266787374213842022893743525830770233831397550302272867255380583340981662194036885187346183772679993250596247676367991804733159032667705662510339499412387580013637418358620870609268065408281711220945289218270376217100945440591340305127500602575064806788615018746512084892415096360466983411732989012321192968161654535155035433511571614549077447283804000731380602754130328269949450117212882400221934987815670302124823649802784858915805474325335981346191987103559215846228848325845825192006167328427157860123710367667595825228042415848229318555256772956779931274438741046815461875452347170285586110277983871826519713073535979858644033498909498106042170137060956060486794826824824569497596943723453163516710861822599383777876667671003916232074097288870126988300565187832681071320143848792499633894487193489481085616513505939077788641786507372263452468043209346619015726114677611877504760931735835287693401750633173988972821693855661319310147288906333420072779659032374743007781426568967601111762715652803328719685758231642554417542361497081219400561172686382019797222796983122716979511188946146507389950960491765315910274946046309931624605333140057095091238708054185695714324679810202098868712440528237458091506866824391490514405291256970381484089495522676574159940124681189742494564652547691324317626293599787695860404162785680145761430444342339680930971417930155497847120215752205995900896817731190114872478159236808918874582688613205455552833988038231367362968294043457929815250558073957014187891669258547625438181654725256213137438180839399563613089026386028402972959458655361457754476166389480438512825218068289556936479615516098001281453846854025993220936880258321838011882197510318814647104162194950517665770116381459790473945974490176027719775314792046805882710116779861321222277866968296061852162783454796429089175164724293690305750103317443421477295101929285315837947329759551955922610035204746266156948018187184915823472219217414117918878155836263197738949232078090105025371188944342379187168894837739120627726858122974909141321659867278013237917669135785214183975862669445905878166606640482232877615629636524646560070375802669768579658548673131621888447654471414757254953552983877410683202967561775315256421683655685771926439385318645832022428388756573841147370642116916918956945564271001987077889295497037668172567633631064478939481549028911488854957456762315603551979328301963829468193233986515046248177705109760378252853941928041001735005444535331336672930405330925190833097556652859450989376389833877309898789737883747452782283946560328477113930640720068531406537055541941142154079443945453570974701107367522020508740127061308278460860334187056661236626174374152612571703359112151802959425907347335140621183854592362651541373140708685051188421667847202573020140679716954750860699915876685702003830495012390207007370409585939191879113817366586271638339016144832787747238668445082100924618096135619669325913648029442769748538385547369200303813002226976952831843407686817934546390267421012476169708675272973968938443393813034776758347406316400374432675687356825330226070833851168912886098646323753634215111901751800879086929483016753608203518427407947784777629954644174624239338531485139896408941449254115661064931949317062117140882608311566470352923277430954517142702684894000680094322903859295754153431348704229654671867608242540392693032662121235500324436537154049197773733763742822167296289288415853890911055534373464084247292992029233028081609332152943532757428246784823335367949580944699897109915204984474544570420605106550936652131288034770148063682362042722694415914260562266312310106444347139859175126655506584970163335531344983983760066269728052334681046920131451398041513709634756517717968298734404426946553651939492884754691364296764200754278538261303070830428016415003327101753248854917204870554722677378562597616894402837589325496816120121856507118862351931852910929767420008719621481828056379669764039602687265254229667300617742094163520634934456672223331209210276713757259337508720410651592284903806021130255347417674730405287377848302341478799178155974902029141968171201527038833468150575089259318133698341512650372480051855732030789573532110935805336041225554043838204702102730026586944545132027517888650028722800661255321121052499405086233050396907358812383682661805693349646154100594116121720843271249601956467863082751597671258305113033028406095638762150138777725784324634104865930117657323801062933628496267391808314521117432570502093303045209331511049449559795874584628692269570143660506249134172460942133784497304525651095776937362683604391825217068653984311728847388908782382958549831706186690155347488416462082480342388518392489983250290205393072497813632020890323516205502820735014645260797961275012138746483345390449618217282051938660360892933658449740718275223072376035785017004284243848236577648032475190495636056635275166277569716863263709527351563034550186019793428977543507825756574406426985622090363487395786934256275482267549020328918999760573250171616964139189863215361773450505054780251616431846269098930920605496232782765114758965646924245059704341588558445785837363508950081208510288004398960463312654842299528252225388018102841176275277234910979606858314398465186204278783734908698844648984498805400762330295307278065513077506333447654682194308321836933119984930525049119053435435844387395744336017166134797926724350416944772594506457759676349486596346654929811922470362097002354619226971855083860068898771528699125241038702495756509588497181503060041907330211940001615590470449529413361931106243075569864774542465538929241724533572322699895089943090273369663341792905928635017699937627628340141546333821604209542781152776995776672935530158735053198752866374271119994936810368684491399335643166351710723232976869708337950573523866434322371914759060496256608367231601625010737047413180591598837979304795938939117566601375869647965187864266381158629122642424658520867018264590236869128270649759253843682637664159440137490193721753422971494032916703695065200704333942787457360155890936009957421797056031345922219635428047945509250934049069691789552419260003938481480252479266580035795186428551944555190829518476067936658612663435626313163638379551599318721469919764519354819753239572800468861429150215373871399554975912726967589768373471433037475940676097390745891186819373609088812655034582565729838906288115239213808265337014983454334657257787044637889484751745746968695798846561090150705313449211805134448785012892336428448203135705439891841531974498741302591797161056177527706062153012863508694049190112172883405067334516230669904586465819787901506064655205837497459761661275467442857253882433929017178412244096347285258705539579447290099606504314383332650851621882055517009469544214237246949823271164690205789099798960465064470775231599447994438594720117933308155864286635352531252538662638165738576222003543738563625308507707549053278287437493574575388005435717989178132024578253931727221624962129299436602094838049647389120439355946137792701940670750354370775810674448823819045321402900352613504870299609593590233968076509686576549444119707491365744723228497970479443046951094552113946333993201709881460787243867090671779511535553081990276504754430298306346660620057423703260690695767535056745495053409761157651722543601414237939288450437367622986251829304962435456137591402384848791046822316437023300356295590664562899332495690838377294633182625526987174666808859273604095139629751471247341037746900780706949379749774238216367562224405094994209625518354197969293612214362729701951252277184723938095310152277076993493615784088232948790957746267208853333478812414690020935100495811371584306661852140473511741835572136888832420933561820407394999333030240291493275641828916930365027396466801475426035700059646989846876857435738719004624156754311894044084570990343165413146118462796092033168575367391108958541063228952832687053937359180196395575961559892144826418413088169779517139951649247730062249860049111933829393481633860759820276422216907278278635312089450636058221713851141418181682892698146141781402514745703069847379774181636630797003438191829265593730620084077450440447214744614103028167766564709125078808423686536987808917787216922411373226576794594473668723185273999454551419097952110904815995344670110068671025762319385550625091412502923965764823865916052588028626845600461308973306272340287189015399711596367582788580140445768890833035338661143514647346476370150643558680256501473230427160497643243457966619324790713788530393633493589800957083455966060693162267549673615927075613515882041930494830385377336334113669288478670359331236878890269509101800736741852060895033759918563700606921510050420787488482796697176346035108330329480262717293112495866318293052776897885990476785500088438509378314497494250826738410849375159325972507145441498158515007762621888693115915908582550871818201833981203036978824049430043224909782235796770469533799395461471103162160414694022237413315747427536182564356645562602106183376857727647650669983102998343785184446127978009816121187166834496036777400831877355345167470304521424246811132829625463322483451348205456620127735370278381752914221552574875000636391069787996632142193653615939102523389036592299743729251635598426381236072032193021831308124845849793970518590953917892576057018151120285074713988902878680911363475351954798738223007482663405115111955827240731696247569456510532365485167636118047153535195524052253456943437987971215096598901250201039112700631548459192249234085680749327546998677940813227532594893636755769331823718103667710783177203047972634652891275207496024347290251203900510591006375662435227350964456975967559810970500791255841572372828279343693616807670499935013047837678557250567382901710222245759594386808552494332767793746574045669039913878458023760241591324819221762375759432436799659813928867136210304491947667038967814179869176129990650357055735026347449683365846388827530316964245883462129425264050371791417169631832225781902583187356847825438259833547937910831297670650034302932727084146513042760804907280083293632554312396205298276070503678118549621977720933579851239856267423239943149377944535133015192832503084947751473007690897296805937942388520049005356896624009973651173425533151231986474914231394603118256127223487672568722994432758823687058400087565602655916899535174262581411970895887371441462098912126470427836688701626149121004944050384881117260861941021335273416353290814209406701522058506286405977053258418498678347941654759462896278284121342245629175324702204738582580369047704055910595680431194214572147295188414478591298762531987739937190181633106158589798339247786810267901200160993880279299859440898253507451114729791017738000056934766050296215052754191386842446107797821650453192446286743962107674171905323327096537266488641753960827501032716974908706422406692971030128919232606185966274829808784570700394335672475605410857026049944228371862452016862951505142466341260285962497516871530327769125100150287614805695990426159419393638839761175259492702406130727802294388095983085357807642437702329094713777454750524394158692005772289219793703186650856727709792738499403821454877705255893117332663643325837447459561462730256671588044104883508737084363530670558303944114819305726596680477647379298137067475087176855293642147607763473462403589989248103552367547376200019691845021908135330367749349133413420558019975113910779295013416035765872218251212188440246238861935265444733042426687720068149512373037464938901524541204675405411665568871604730576349150047065304857839334147398564520947301432667387210836023350140254012836436296519536272640823445089871650254980058235315246472824673360818003652291755197112059942984279746257657783092556438671472331623539391296338461604949225861123459621108388042121060507519077385800373866305993390762685577591831859592172601642484215921341715188655698440782486781476167446676125235290108090677409522742659090847782225938608757927846641026548245806834565547508857010709201952839373019491155598029459572727638668820395567026004441417455068123717251842661664555410430488398798418807126706478108000938589949632546977441237792504196246577658682995092030699188017577649730916607492553304220860970676780720478219745176555926550072194112986455934775216038143600846929397421438700992082346920647594557809201691361178707008887477253625597387952614218218777768603681007366397817577130865442429563785573473600344957685799734682840779114065611445671138154943674906759385673777659853050926770562025108099303178868229157552212871218535122312175448583168617952668366561317435750733614494778024001602892766049419311051875881223238901668254997330729371567917234740741258975588885225365152549300483448655094794111732463573717346773371652763482310684273064665622079298462945441909453459869064820476892397063843498899242969511836944806104335904902190190783308545157620469782706639960735046644779924756594294396391741970520421762518527120559004524163037222793879322292335259246288941230226766162471496157940552696513023778111976834606279509209150073687527747460615739884200727422973233005571320524491546367072559658922108769471525558365127150498682536106109375580103726209822427616408471159275215046362394973832731191740523527186922515978514777519133999249526314957423327223700433456019213130303976941990164702836173737053423492305065360138122224190874661144905280456403177084647178572869830865603055354102657240218187217991725847009402948461541283839096284129934208808383092048801228073375166563365421301107269209719357580962575362038170573902437326102869166793002213393858822207191060984337375890107726675994781065905276827841657659770334158653425076840182286140118775817729601146430843998490145474618272935842766123992947881736745652245925996869266622201478049591041168348094867820660636535573271971733111415095440887636811927758434533530549302539620772730993793523824377332165474422571581640063465118289941889547343425365789687103081384159481813989625643601478185317725750859061382933159940926337876027998666691949746074472366050481573905939264663361398454391076640962553228651028324446397500936179378865431586182173606860001291344803916444924206223092415059382695525159300547135479066532029424360283625684441224967978225017518133977252049469930648609524788722322302177148880718400215543704936813530291254920041691797769924610838678356736038072415016661637795111374198688009882535213028007499048965078524412783886507258495557800134538123781969848788531215068179358307375864707185117731895163905095916533147809778239846878603769700793418352556788187003308460778291152659042681018616271364687609370546204804831135224986003920113781945455521222458788099253347902435115860752933224864682391372353466250385257093554081449987195138638207939876805115025885958124022552028716225830508007006243595519236344797188020884305550920731516329861908530306790514329887690854674069488103243714267876132295985404061099315736022976916545405873291855971049614023473919360216424393221626163077659224342043735127672503029591409413237854604022709170170536911237469680277889337053131417375751445831417404004109267109439962831743815158124531035761189390898553365507798438599550008595118005415313183167760360588528680970487432545279320824783779419723638145802044577675049651642742164399852593385335006259975813975569129256894488278916806307343521470345977545298455115019094803224973768590381911552423526205932699501824299893238042994396665129664432017816614797870619464096000700374855288693781258630937980835734320944282436980841252567172556929786123909717268201836949789487523914027883471332136733866370533828277644222764995819841013132383392876651842408438881941740987688945839862210413378929395293451742516547021310022792111425438292891528761498190041139045915716490278646167969795374583267098330501298878756910651991386349030006864828796575090758776817723757750074215195552318943931754076612020734949203076807394637636722895589640253266374891116654117558250557543687398717753838043307357778140350435892471438467263364300673745282645304227414274840559769321422792811521320417899785476771468121564212539926237691702177756826115350764317375586226564432327337362501569787343032071347237172281943508335972285614209971938489253944780172888842588596364556703594812442542892453536114193045243326519915814352004000300289686717253628729532643791886058882444389512435472736313270004546858882074502979727481405543438166737623948728519874382405171801835422626211185203143382917050108567816609870153387552945382265322256703500941756536652902702478031229144554654883312777219887537952517302576096721640636617743999533742270465303351673691901511820889197694815577079129258846364728662361352867736380122632784066193788115902479889850907653889697131006193891862535253062011092143720481002336701681481993946465614257418659993266805949540176264585660392232085106791064606466805224102517228455024294043226848636373310798119825216329861071539957698498634367926256432576094135544859499814719478698012938150558628314974169449214444657131311182347654317617264547214848640547100102780222719129281697317989682577164407979743150725198852358526938007667883745114932225970542815010439300500279463025830873171587130511007613612733499934127553990213753205829353082477126325933434974787181053307413279936398984102606577808717416179417308907081087425862297245815504439477676145839389231276309893383677580547900883983754105788466551507619557454449602737879388513029352284873890287963372729940706120473479543030847411856009981653599202669350140913009752305765764768190632192999640757665424533108212586943411101488968582433497745261196884038172069487060659166143319169030779047020020658793560297004886119488054916963390371081579471190153793348821407692159312719832214267687324582224854192668347677055871120711682191496788051430054487574810395271789626343460884732602890090142318807864574746341690412979946426204091201854093925682211989000578129451078644715563925215700703891765235105273472418922315215855695241716701210876487808849687132840674558230568549901206957571999382388900186199589082412487612655829794171460850821894699136108823974952529851231615835568236561412569767952305141597613682108641087939895306080587003219453408089137220114934112659557855281770044410729997423841736469995813997979055332018099460786080711431441031659944780548616629269910880588260987362858756526489509705570092989414112219764829160978820642355068832861375574738019224797270467747701367868249765721385749486161957862375583720079948487696265258247548477203289092877673939670872002555544581087641831247825792210026248223812592710800838833140210335982253025423199324344467365322553323452441416998365385664310084816689412611146044995282241640477702724442207566688554585547497377700654645451033766824877158475730781782631341954173889115556419573258552040846535481603637379764625260001884985682893669043303253085944459196937428701848316955705927130924747534161170998251226562438854470118044497657502014494037556962066535554966048824162970337953136283385409267880289467618735142840568978335571031659051956383944851439453462814521705114467373932149880318266321384981594775411107531244833611103086917457874945796585546975297323023236577446511764039092429476468908398583400558970935585083466303570546583235813145083297320686712498146713393963741772322653908035766498195229649826201971721447989748034079511965630480475519942499733974914841741388373625328000798379031200791363223535546383913077020399550791401137098433526348706620245800487404742912561071408388878712069597171850514862100592359585371269769970155921129423118544644203672823498541345507114429461633239911477313250288848831550409707600616925363498938502730381639623700278763156138722216696177224494511038157452959391781491265450558056490448874326337967759719765443060377934133118907980331177025056146235816928823366448490988819136502523887175139537026124721466111242301512290462714460281130939385862858428056172536413610547008606040270968754255305399380106008791402835054423883164196300722550031343592667858669410293122937442321264019780529481327815886384997613358527874251325211784353990885721702562239771762862509620992319869095695916966199684035507420627839223447769851756781704949929170449035917899561709758899984643680773439414755185616014286618427991498733546168231765504398870124571073366029073737872997678241438520283392397238870728770402746367702754204465260810424188049533185310061094257476157592991336489040693411391055505755864042828587270268364979415261711518997966971038626886427929615521601164536396294660337189958168386913779113576762860421167381066828598523827211585879435003131939599118468361711962930559031966959814427597080211916715251004376633385826130478319480961011040887140463946877698777659275023816751866382202783808222732774044602936361338250629563064079266439441263160200460121855115962440759529551698430202916787789047572930782239857412686746181957705285002305697802500809957263784426812057591092951285997432982084995860864466100629473201037420817557950998188800177869342211277079547724255712993290637775880483476923911295054847399927662339396552763120814119881656047505388886679659146516311064278043597094941777451229120640021313577932155342143989826113838272204632389747450304010360570193334712216375222588397297117737817050442988459551495899295303043479382406469558396932461356582447837956280204792607706161735905489495872830807501664008916852052511676218442447884754212547238349121594952253726014476467190538391748800923557815733424714404083890218289238030938629083914879779858163737196350144454414100275021983954783983197203995765382792381747419965149176520502897240723036823748625971305381394773741160328741909919838585927304158463343316534199114456340536626577123186027054130158275867278759725039000313123163012062885699011179337583403046462087478370940262449614313519924577233794773562690037073351070537447178355466736577591946625113492114171127273538227051579593708832185915923703188052483285813811523377633427149727218146226276953049420461480620435930896694034915898107732777563103195949568672455594791002563363817656875948254137107989448638831915649561249905601204331625947855231863254142248666394001108897921116706242478929765586508875548645671259749402306972494358103949010242327951349325080920050091124933576272304951491169002651043337796259592172610926700312725037561204541734177655655944423640524864176399844938781324164736998405557133522261334011607990052310791792043620140981308194518954442617203473385110776086315877692683382533489952262061185176996526216701556840090403311604067145867590924780394783370051906916169976117114805487882631713550419346400482367816806690839533539635571383949428670591874189718986913862236061718105689654709082118713848103054100502448818047503761520306531087826392528379961894420706485409827952920205454053257806553698270399477935594502225676091471717978619834375868460713998922247670828542625212865577221618257070206372641243585618566912158410638013990681884218955533199807833019859425703662514539220667029546586996529847920003861605546160971279938934748678024012405920076645425742045202148885729000782717806991865073360991746149072969263016456298593015121627792014374509040092926027950891889183675174903461156137906620442581701143869730068279820682679950593858158224527955490926827600156975407569039137548201849802900853121142190093423295071261484712605280628447418057131630624688124446908470878324739133739927335812202119061794311965414864428099693616020080382570609223815199334352474420867592062296234881129352970288882686536239644406049643761749275853629412877598086871391117442080662963779644158904117568519307341715379779966357779819436920570437689266218726848467467965870185108333497864019157832075353520631688688485190831368120899184245689524113745836481042267984017467632288376974280890447663617094870467073276746202726340576028560813340516139880000759685009024226585480619564588529864563017789862387059550143069766083043111105049597745326302266815560270523012746773197733578564198132125014707819941592861524997755830049340083985414473704640117726475453974347149326796925977667913046374487630701375363176124002951721889778724579046962654063402364366217393904669810819583006978425627594445332196345884089014290129468502501557765179133366110838396719394879745190853081421985966555558086355839421731841379981372782566172017098530198760313346030287452706734558026704184096975053293301356401346741646562506479269135343732253149850426268713203349658928987948957651649687075187963576635879327175881584408550159866540821958254065702339707079736596519804636057416700125836583507400501825387531929173525040944389907242130989329703485255110654912604175692767516028248470557704734475342050948645196147727586310662988796378328338869366715933696421928227860262172454386857187912932229680508705759058610005763400555923872937405799444497428526711115404484266036506325880209544058527566222874954883552882932113142149429304145985848647652386302421766177682273416221538368287115544119327189271197500674032461019011748668322168485777099283833706527317722586112727084769841610563774960442856188556712095769648319147724683192027221013187282311532776433414062616728683122980830796214128001468586668462693649533705663802712133059124602243090421959902445105586937336134766296448150899324586985826005159695878354441362250227986856133502806287337743352548105594336624340939018335143631560211832971307786700137940688119955460347468795831436885612838153076839213339094904211764890646214874036160551467426098027474898641016413498794725231894871238714117963840350797720618076233947086608313341586792995421633553965229466991480997126470917932915460814827078154155895918345431306662041638094182919656890602189939527358021161795468561002720341962939759408453239207901864435915951179035018997309409657649702421431949803584467504944008536560926644786760159193008252117961102932261390326400253544578320812909626226429972311361764046982780995425083933050730858684527545395231729543030395364660376181360718036268330130610612484203159965195117435297860924174295991693444530924350237428443421205090009070534543558668977538132690929176983883976891824713239269118959056690662672827709921770475386780456863366512266717463490571061554032529833869188463061713031354105374401312235063606706331788947358162855811670844664244508716557613356481939688828544306335711607184753199571389912170227825052077378435971415410391433261240514781985928718169439242412131659081276376758470291175847919904445755346174473478484274175975961071624804655138577490941977516931626868584787554965712524969687157540352254446202496631965360509338592661889282303632504680631588523283876833659934033121484367383245244857231211106101403837286635599882895759925891406465913310353183331427519849736768085364423854343771033896640834615434928763893238898827781985624185095484799991341281373667643063415213715980174839669331298167837578931421610960131070926559802474819977823966691641769916650659970659872384490917634710685927549155273718796373610122037565496665160398056242373220804877222435550331567784521082430764439886674671253420250090669252852154951865097999418538003626948546713122129820735966785095404215074036807313889148478306809919196786397401719535402942242284722304018164224473210940272988289574502107711198779175384289264234870420718859621355322843419957664007457533677004794548607441046672105903739492600285380099459559951658941440292753365645892146895474422755014605691199219108601767785315180061926237086431062905356199855558423132680673383387106245678578466709457487186410940129310827682544508745305512790568254240006973072453752954683847251783752948709287836235135004219692062764097394851194229206251529560903306508128478541003997383325835202996636519697715299877932201021995646822714270476399090653372733920769256664364674848249611084902977478629622804927735372565189411987610980205354547197153340497779646962350039824650792466684022695150369514303081936085248728381687544148990312303092117853378619705116489848155448050371494544729166801949769221884130452511279035889936748681771491931565607348890002303257745393093087318463412332319164313719049951567350621696799860717109290194979131658855940521706507872176780061577234243314433749189841590996099955735445172973350408503605196902607857941966653294213008766544596779589328717653266358633215899190558317027770927727952961123068609123001573804247691866524767735112034910347492079347605568939359720010525439148267806639167403559237076298937583116942289364593338897490173986740581025534173968534139989591499925377328001601082650706000062097771596254732895502397666618378386568965580266889803020228735577740252124302574218582949832836048746226235332514061636679254916346093824242899649176758299259210906549514068017229308069290572200625359569953271518823636851531727726925031682655361930553820954049156416494836583292434569862918631988393774536315443812877311438482292872097098936889141070763042819678314668339643161126638010372725100681621835429230063653975301574373937963672408532095795619233807775321830109852783001897287233839767919065455294590584451192247082697828235946212800150176424408865773909526314798346817294097770438355078126628744240574394715393570431400036697685522515519079482836497764016165880412409720835306530799182397447893920299864528539731781224634049285180242939674827383008090204529026985000876051568261079510564159827631816217679665570071689237108668648685473015682322206463877411613759535608708228378588454811345209012155091932348506806397964692280534271368857987491243984762211837461688261362472936947566991374156529172784484013400862779231348443641887576712732593429959459832131309874274737793273570648438357890690587809929410199207809991098493222200824232875420545230918215458998245310314072810442266406038508803584633187161746455132249045103398805870128243443786908059227668642410957097424571411104422348290946753533075649227387131607919274048705790259044411823395484240993875174746164278244084484858386409362228386654543854819417130170172473399794218699451337226427601497157796658425560477908632234553739740978817263494974287922157087930378367503625695342328873983069092158498821010405568063734172132245193456777553849031784860711877381455451399441102078690655684843947913118939251949567233461226168072543858803782675721324428772466195498065136436804821711733742588565170413213716469766949209587181922931100499511086111842857219527380716000014395325641395524614044391438852076660789342493822257673930578933451011769664682524087403954730591719549446423619689646576647744985644003197166086867004682180192854935888625575630725487510683152866780613479926714258730415757118496604491784984929188462578103936752661214274990221887380412542794953937639054943572256873012482704670642249025917230022475286101805832748225848125282187633111765779907515817861081241706351326001960209042290136768686822404220649482572979833230934508375759704425763620715920754180187346954403449401369927347442104035636210714229837763235742927609534731092303089205965146153310914240771157703800522598168049727946811693761275787591988085674501229413700274543098774941787073822437676045920101717207019744757603413079032581247656419805160813545838243988687676557791533339076460574055967178367245330458542718965675026003785406578038993420637153040302434951542669698526024655645836985215044592295347125277220154149150508679611346733639574838824079004103261714024162055829119450233631938517561579991751742271796649738597854067892058687972659670886161437065999970063494721042379932826683673585915764030102304730191338207311369403399397240573849903675579265910373877354226927885882256529123216729262747430659074945722155975094746077946430824962218472604404326097069920998082024432800707328680232147688760476902640678939487916048680760406017399520770617922587716863973877288522853236947958108682845541053161489822847636594713913504991550586842074652847524820720326575956895332020104997187205779279512412028319775585747512370623778636082877698956606848666099526704974134145833541634172867723754204653396408704085998361148148189212687018206089390303098722567459840104970896445513123323395391712038920122647061477894216742529320678127526091672448163396164985058166371765907242473768682994576498669692475614962987431330828919108957669963626866413659100489111047790257273647026821409383459495875367173243867764387018574839986661547624012262702782560375869308152429484889594198601727496796600540349582148850062440411938972422728642595721650224810265891117193554550935126233533209100271094171857588331993913720049214560983427080665433972040629972507440731211143042802784843812433531770581763956081747959019746734489054009885825320387143095714629943771488102448879954124242997631357848676928798180671950422065524471415306640215204072100285179281373347245570973279339897538307049230381598667222213027239794037472705524669137563666819312674550597691703240152234039374621387059494662224665528953541399589488600513997171729742149028261448791973248989017358257643862431692309640554203775277344864902353419930564031167525417736558475417827842254216704861601661553457738235081076353780761329439095341358450730225645452803527735029330535839829180166193937679502328409413562455002822565399074674188220784023344914469711349004981586520704169741464514452891622317192284842541170725226031698726877869135621276471094534997219825854333428141134198993566242219398897493194809396001937695696729563706370289262803950071277344308858253926850329641673431489594186009581859953256084498030024117101618482766567616401481632801940642062235485383778240220200667409796582423035734917542553248170795499376024318469305753743297910927629366411422822651235386866952261721197176543187397275331022315841326613592565497044878138945814602791133801081752678909406242868307174499538003423753863944631070492866458059226042836257780015703070040409776999370197018740708401870460657040847834870920286206880288142115566066009162045812951015380972193130858663301997949421302251636486294287343253306341745589252439903467906144520077246000505674392577319802785393885779383980299964866471524449282304176909434098088472058420312034455366235141091251063771012753353600355046962612560764575809488850944957823457312299980428363740318111673231650427778566911341276929397569286033788651669718078784533828444969629565400700030764277500319552287059608260716832165733835596014096762573931560632762523368394367847738786102899994714031838237679713399986904469847785828172826178096822708409070715653284530798537447791762437895541576877922883355476501390159347393925280581156450079084082576325134136333595898301896757852499295346963698417637419259113674955668653648130119953554466820830837839105453049595672679271394061615437744886051616497210428817135080202701631274760903813363950727318471597174465942625886010192114110111509011271252175940046035796188214823234778485515135038503383566648024699575075010980645949226224755826863073478355673662759001782860735564705812922269301091089568381306584601277898861070127384783081598717122552812000250833308439448089586583904288187771891886526235738003893307654144791367051823105107383519909275787873337237749716129679892019511611808732277888211523239710923230437894373174795474026951326384056797858751961389026938336848961585112376084621381293480262181077483716783985745722864135760824393948222021379563614761285738965526967494495482411077589625588808807906671339284139408687162479615621308624684905100711094896680131294008454363874289379687115669449707833930251379427685757730861557558735336390936628660673289182379998342884302468853241362656347322533456971269258429282898868039635807701020963955794542616356541269853493758516982285421000782824815867223307338820126373307736456661274879112225235168306296149801250989347176048671477944660555723852869433482660910860548967086445317647900155523363120584070335586285183186800463281412759469669272914343884876582138901306551000750391609973448370900811592831473188927341717568495993670221336231964126012776638423780649973585649090119813381647046015079711076390417182049573293263126233736812557865200680925335253206300410255210009904958444778865220229406643895370792156848022449244054281527159922723842436853007248835364688015424104943719324366672484193997906768522617931095277313955809121635245909647857744247564276447630288812992422352347020488952296155616260702440084715401139878700357062421066498099845870096440001086402737037506825691193683991329218807607404543983456845185422705383580334821890022331113124782783398332548250425547772304895910320046606601858691105543884912348317685442600635633738534145853310966303542948073479266812082138436255583323303596772119573849502076645244702486737041808677496730712707728376026373772297409101517405300777354828679788096259162569227379444372837337538721100925801083903840138046785100574281629791295151452918544333278951092313513114701056294895866204409678595026434267244109588686351557220953203008663420295496096905798313631970384801918367085293530495196272786308892691461575156076822039986504745511733600392400447168995589328992578638548999057011941482952205095298994567211043343412239373118991043261267445768039917494954580843951561808142392702310764015253571179652894237764576581304486613000505910587794869395850532700681408920776530249552903334422039645396888480765608584090363081871454626286761320829043499347624579323762119829186582716640799327102805715494747716152899415126590973124219180491509927683670924608303302282895332705973709484760675959968808343458424476479732946420455401865552927565611551627686443384967640012628722245046779677312340440860327415566883144841815384442486119659369715007690226720607110320364364002286286396338552745657316818330087846003301523536767792224386934922315678464714845425994076012951394956992279332309845011749124630552105597562332928318366746800178097454919991023842111365526494329102216734716947369342193130688686530887631609910696236021405477017268370442234481452389934740586094705609058800906662814605773154372293197087325502212060774486511632542920300599911399075966909005572183742869746062063384078337043883994261313260308986795212769405160230055604082636513626233102403008892638619235046640071874032145450098663547511155842431170747941748778968123866957940318780550324893128008145692217593052238334702269450197995877215982887308021402639025067747685339761640827812539315423159715547097945676953160985980057918065867030650697557415257668291807005616836135864870206920670461078104913581590840155784232121288773711885172242458922766177330388376994476622050483617174076164528988485707822944641136571334663205332596089480258636490167049981087978106214945822554507412389395771540321312782747037616483324279153011895275124318371370380491105698169729933719088052696880525938433751999439628315028006435219130001179188433995095492809638491157999199940773130434942243674570593346957536206279470529250890741236021581913408435807695038279610718030944496333380510247230949794535804869169178505473061453043530838747496499290647610214687425540157805871526697060273292265773426130954178088232266009552078946941533473844221764369055219480411417201513342928959911265195771562120636485355135043015216799982247186241722081015092551554551737865777444733136839010840994093325637831779835336801550279511040554104129810911096696266721077713448802008791708754083351533179564957641988060614702661760132852877560253372270894011151281645352203982041531094646783189716617136238304454791505972523103189621021745068830153963679831678494402292790849138078922063869259690393640543269038929820102301699401795303386394894448601934573020776789201378493848876893124731123310769819890378581656032872376585073599221853903431803118542648100608085728112951549835496197491859562038644863713707571174065602242089287406250618744765779655798791903832492930721229624032066158913376295950905222669086694758342316852169823317531555989285055213916466356783258176376565703990737085198274495412344180326995485291418870900680249460424944135525009603795970467289805106393066624718946823177083474698649610140119122070111075472772114747293912341691635119358634428280760907556842253734702928484067009501529321706399193008198878367882356556438632416397674669063039445975670650955013781867228702993019893607333880115848703859819428280291162761480724678739751573006076878500213085430754176053247859917564436981546613144528157427786657251545302243735554108751137665432233712729865829702217764592404063081986215577823359982911274690291733321067711812020667965145432815253163485718696996278646712860502908480365841483598144515649143469256629163377805381674320401946847928887154307626769502094956490184761472125677417374617108301590143660821960650445224658851894496178804290284482829065959422664819448946779688961881135846852164163287799238822774155083042343932365974610028713269129842311248695342807812197378090921311141764774129083277085555558096081619510875585626226726764031120628659473295500144045434982812559430990337598603746547132813828195299154320598155536800238461983255081905750370309162928869501117244134378168489942610691514114975548032090122787268566778029538306938154193841014748496113848858994943344685303557003053658499214305268383027745719257148198166319039763579792060746901705545977911084222918877873751256844127754754755081128286526259795877937614706367184796393590539518529910556312824079008492258746832018385214538198644540132112540483854224998077387623966298235019514388302060436323038338906654466451205423342735456122020502937273971386606448109568165553641815157551307087148695335689570972367282556257652622601842136081424262031465310653655295489711847034594491762335295147576569387957911913060467794395007910142249747735879843007080146452568256397453211084217798102881732450097254677811355292216581003023253613078145387013836352304843386478690504916523891844486461726959700437968498282765938948111635071043153419925441588556844734533270942220199666747018067474894998499893118572554476166229579696862112569274809812803896780728921994416527644843109840218920156062858477276442014080157636813332657490947519302550922796862458854480342952030049980364314179065690039614911522923828762733395038971610116838791379869338541530119617232630079937510019210275313920331306336296356052683433632565532161646590228518813568572958200685253005063400553694189281899821721392226709960470493473556761219034250444130588272024570639966325813514384270503265453432217649726185475571971565324819323909739424111638738463397602115345251451455198842337096305377494512220369416112771322397756253508462062781820338005624483829369987045022176047056713268582935164278729744402815019126978357147468402863180357933290615961001879761109106972427560598537490262332194776306898464184945705465778337632323080053034195113501491427630438332415553276123177399528572709347755930540166953428564500549495878715161882528254674080005026663909702374282344661548398447027367327557217189128508241454506557721902878210558215531775565161278182264373269833649715886601733205139629423364974597792006051755324365233853071177003316058352819609814860439841825595173203786438719409948412108227437032065353653165509297101882601203991060886309493167489767621981668240476502674969374031348454598228019226976630790649698166126397732861071389953867336570435364253016634894835170269483518764401260704379413173128375967366233949886487421035121881627872089061047614550387610315754761700605617758885803131919600082069686905981162354506685595508213300730007652120637394493835254032970343439525736233165189207583543831681690224503894777814574015429974930609575440777124485513167043563936666071838142949164237795795533754651531909415863669383758825694580677671860511854055830103234604979375646110866584877827792108968058608821996051532563933836148813960067679427386199569629715960403938200669135287516014525695350784034891558536719817588835436507042233561925005670940395071027325111759179940115041392127414396269383327516797428450798537587306543899911697486918776088590694136584322474921030141075285033747432221319759162849172557779787614064641543933821499328093633129872763698522569437764189179994930826178209033484567619527152431053059290727393960633800310647482333576267632555254044542850776319533103062172960534359888311270220335038544848464861404548152385394617199500874951415077908067360437204883531603590914307689730394637691787194473549528058395508963560859599322714950823272015618037495227025417808577801650439920538845968984293531923043241582459617860470895298987857906615527608391009965582256722147804436430704473163589468317132034757389608829738235151693244430350602047779198042978336107013886065420418315829513975245119931793711715731965979277764533724408123275626110939434916424104566286308747298212670717636622309920145090840899939103244819951996492388023226325008764330562071210039001355542777154157420514343613747072994937982901883686135599287928409419518472503868610627101431286569403180862404392997490988371027880661918722676950288447562527418933245539171984479740811275371168448415058922985190012823799706974505857781440800526062395735704226136043035306204394580093321535650230430315231386291003215419065313534598133172158264308137396602204850298344239105091501030048729043209868087723612671624533280113747694054808579433486812348492421925457708039845585724444499542607540016128163635966642532645246571830681239593027477052545602464157450790099013467878352183981612511935736305236471204066713049127339102137395699097044002386634169118025023040546575824404753087946019532828931123546756621028393975748132005995289633417367989637913221388198550224823744161480842951546493314699322778959427754746027237905657627729197365376099747655682491817648573846731255964963465839321410812468689178234952053509967512702484024248795967924102054964946322800782682560239720596807010031621686252181387822161266187085596465078879669964019356791292705444083252623106681312448402724323798771338578741754406939214993498264728655324850094379381607127728852691226312981303281809990057231915244124782123378788469704099382386670071836214525348056284080799927482358456670563664352289125656679320880381850677426014246772815848531818820159996063186942862093583346965568845534271880637962479277802399203788374549852632320143983978548046421608296682791656525452719745914658009986199673372224696546640739842636117538627980769568329233235610987789102222767509687833205311016948766851596639296529679550561555820252935396518880397370006257048646480650340076427493181212512360878096111374784310526153901422313473091465477032975646771170225145379024303307293149156077887386298232331029531882251375199317683169195844392729415765967859463275692607736114581721940633704715998991496513855141255237599471355228223340349345353844623024103945297473099195522086402556537427927712392354980614654394030760571446935543662025175523567396177714458120880182275075248048615037683889182511034319382974945159076386337894738806354058386991088306905446151912776880735364079830154602297101618487810679471968943726203945504450280754283526106442773737008714734512060651856864090757757743263650287714971374174895077218323287308235343122129945824108910844023401785445236976978035056582727087040665766798510292263729734330501748562381477301343205504893610144641148717910342696969772838647452632124380266610107504483095436187138114985826094628561850695590507555748583792169611166697791969830448533133307723953754520765646497201574780183434184007636130832904789185525959171776535511852539671176506846838635135038662929677425343578512766827657516665929806341871905188151991078902900019713891900685925137626386687218481095035003324602762643552450824619703938507910697641672784452519834168183193913446717111748810564435123336102814964632918067160434497800008845131061293130721441860504716019700234356714916469369127995793498291020476567155983901229124513060603835097132410761914278753936146526271456064563980204158227692875672269292990495475727365212439451272182852472653740387079985245025289443319407782263994149845816601347575133735084250015192673555066833339268461006224103966157797812033571039300510846052683872922592854714441452022520057444531517800046907815265417321631499503236546430363632039306537230411882129680234479012673355019368296667423625218035708731142376287102633676984237521716613585096973765153651499889290752051400353258830066112660958143671200815887860567761769464463313819699860173486171098451589991523303191379129511537724149305526911155573076205497627537793090596348441526090800896769386689916375936757305303448971290172579403095773148644975315802380897804792636991310830547660153873051363446483335673344328702357385138303365488872271937076043362466917659130758237364637700835048686351270800354071655389948222792459198772575582527494852257952102634095788905215216375386850062348489428932908967227696084433176680552170755672787722255200135234312531195812463402590801243272959449342831106592134492807317318780522037589866205697749406092683552508654015396883184687207211619322294602751597835988571305950003889970570836972129069083461723143473581237472000301283227932793512001944918288081557953934403928039062276280014792660232749398023126153055607657985865858906431163976455686424179466174266635377826307469754712422491711383705372233106842208128650077158824823837792859877628663865646411506269300601866400921288605078582346071658904282476427932441831519967012897759184027599135399765525198677593794437782495749732721227918403517415062360274698307199371205888592707767086099160500587709652220945526648737710943031070006427218877026631375762387291487522610866409573134173156983735596106973571241766287732026149643215266070064562128329501667122398306103751174240966560222052203095306721899033388747702937186655132419314815335979297731767108426744931009599491440543801419614704817831169914873160356611968062629577442385951895420515835758647321851266032254968550467857856507395973609203499801567672682829765232503885543210458359226691903054472301363385784883606009684859907376584521513640822769758724846488144909651497399387933608903690036974042404279572841618297311030669131654890134750368083671040891534129526295574024168614673575793791695625372181499023126001936649502478990055010803681574113994822133435218856025943183697633882714638631264423614272843886772750398184181059616548511459690112953813613976353309664056724677628842303349045441211489849279022875137098482564900361688099953734582949587526014074967950290312246098055754779817933824141540911057556115802703438469329146799914225883613434382823309229430693994004166359515662241297709623658533876477606322370687173020590883559697968443831528345661504578304423033779372733881807853335087302376067363106477121917594085655410069466849822333402594734934661201010613587631832468988490752656655310715328159446411214828417794680491780838240327615778619397469963047450583353873778604900120060131970778129272502926463557198856413902982087455957427782103120905805914417166065862901892554179033951413523690747350890483967916459026227454535153259001913799398265128857025602112073922622274566151676654052515189581133381900839052249277946756515119829536690016588133818573428915458278657681125857465421883123462440376009336812288856429648110635778646080823904165299226385398012559794534471305571245521264144668323913697521297366561086566794942303097341343725655945680335492562454162806701993652859294173272122372826719777555271269796352089333909544580391267985805867639361301635767688397588700025424779928200808709660780552727212049104189026163064879699991933666614210714543063574860028248639735337273850220287208159831144661836127895380715360503419866525512240210588089733285924114372150593346043995436559030686091292891939434584608850846348521941136443540424179597385342706948228640043370255340070875521218117952408707924448181450240142252829108803237446002292566784494730738274360711985900138589130882381104261296152262851865406119497981763075504927481493128180316185410577536423576174162711790411030391133943598852923078726484526145864484122873805021060315948821270304113049768497077370012842316065247823283110664947004047973358325944489282332738605743504717350261143571693916040295158253116253184512003106531776214927622306189217779282994738560929696671791814153155560434555503395496011186389075557828294804739216963950528706291126278579387065847221252347970549488298936380410315449376606567948188482851211723960057704724226875422347186598385995592877708173276300279091840352385339314467623538469016629898673878043872639419335366267249105341505187940157955712607638558071966536415857110173147318795781038291642998306865908576187241153832975548004320058593448665023233440194306407390196870062092786157166855973967694872424344620263455099677867090511748023009713458473098615988271131720238279840829865521647595836858605004883753693202012016835525367684075354228032149883680543572098029995167139576109633373648277715379295045668956534529233665051538303453336745582109716877260072258877491670778386507337570513558737809914687510098772752140280091180213977152200984099110350100463709949304222389345349460414462059382509122221883460083527934178726206598149321622526352752887237461365016196267731546051169330006418467104427240392376495514564578855645399642960848769216599391757784003376667171863382553483401452113288234907068001066639292175486540427791913191141526748045546847947640232818061446495829927227428760576691941289585107644568347879280951171764816048627860087782855123952701587294424327737762736924296676778921725782673236371408177578327773143275707716665145947210788676541058793244738735760349785254247911006522882982652776624595111930370579758359854922554478668428913987578668254489348031027026927858037910900893197574894756149551184096162906667140333834349397199824303074377995442512715933351338621604304246845930823454972517500284719152189135586585014405074197347092116220482782988476721916174438911209464622216949522295027132987922672003486068853627383952686012263270460362266440411156301724354225313939265244775742212445917953380023187580149309047486672154985911859035796532800758660846982966528225475094490307996031553684248690163655797435239730555071604569829236373825200568656369810908411146375568884619086858891122751125362397630269081654906764786525169906094969427319565567205777241311856468099167158784152524298376984001186414731684997702696534463141763281142680924696036392595946191480811458130872040919504634690454884382937701695599020496610149760001064635734710664210195360738991657521925281167610795332386353875280427971718587028432166365856534692672648121000171894991137235055689868781277079167827638032050577594602122518062607600040507142378550004684801466638677695029586979580031956395500732489038541596109297426367239303380337538363269697400875593539069458633004764840681342651465619985698095647731663582661883715006283205626725373675436946700945060863921372571529078925883448469416087092651855563240835258684600014450759072828243243323124705638467148398154534730609555435789636451043520721437173338676739787097534154956531673629131321694062342547734730589128199517096372840591364290820729832753197338776799958324159180552063527820850267443556105131975257716063674722852716087070818817547052244327837516203104668526801161157512705368929565812991395148973693618147272012875011475455153095878252247281510184433082955670380251285872280555247093396602083936326089668234232057098581301175496445479236527340388270086066830070993102279098225452880708463510487152009708786510696014834779327284939548245883805565725084905467624680249403689577858390131483519378900217028973235769108324865679148641050954069722946858969382953076500216076389250458444186537246033764379513856018264482061337012003814142263019400175954957515046818974255557087589417818419123428080576280842096942929910358564219290306162604422469535113443215602109141154326720198658395512104531942955542239333243862411929770403406775617324990484798605642893225112067336764178891212120288148293624951256604925860956051569531752299951858169432964099699829458396714539355218893318369301982823895267718801575915805332592082676130396010229358514469218375939053882664734580141337180273491970040317854494364734722966807222658250139563566156126008173950620460397025079660571365516406492639194113346291771392141610606160163257859171801869034059684999781773973975660622560359863541518994756404455396536747242161181238943229024452680337157250606257630081660437370542725814610544455919420773336171116564706234564994540817727276346948400951105744115012471044809302299356208548790517441654839592609615798109619986650638178769667674967863726663482909940775142326155027367771347421385376326052694974153163945740082927311398383928313792923816123046255554306127659472865951837214181878357181325293329805239526264191449371782900753795322969405928656919049695364165357807735779227645001264627506446631589430734882618966661376555542755109593475467607657484838883337239967120238443316767657611491408411049939887459784508887154279485909252005197501056489433183986042230873360129403976775333659185585798202226050016749059939851731997019875853589204050667800148567330265850473490036681515295446446382260868907180624349452920618847978983801604752362014919776923683594091081822040310327960610989691682769151214133792806640484975323368780547363724420632901607115790702905979613100634070231586662934930858784765754943493863196068193173909232010850420912718840127741834686606584175275578007623867004760181561300455102486316224872877005657873927933444693103904482787750134867634852904271898806455852237783638644120392009241749216182397829448006127309288882524782959781561551932651593677233066190560644527422046582728160055940977972924919096058123904749936281391291211424686911569513767902570400819835420805456977225716146019606073679029405705030190865140939654185707931641409805116340867124829384839628464279538543553584000855216355116409821043346983428643888373186404893888427066707316961083404335463130234844816592469645652744050839083489296517624798285058008265331748648737631214786267300698127286818963321136410930698665528193443928522950825027632470732142431997182057041624688412062959281549141471450857083891051710098577003986968321357222296892773455175057011453784933049672019525292917938054728215452939263385645007906025249401489918249703365684566682390379594154281671911403184186750839328694098708779081291363166824318732111865268168714793476182350785172775251484773525271555407553399851671266083127664132706819101482649774383809403864417788764832053349935064881122435575615218552654969843976355022448309525289179582042431863667921956345978704735442731949617353935801317559828432154985859756081796008889908988237133423898224952314198777022851087653404623862800813993334830653943275498733075624193013221618841539983730535418627268886743512345026938207427419598379325271006476634247032091583005531923629695959304928988524797320158119072640833027430270826463883407126860060575360083708669351899243673473746325696260195950399745271036920845063453840822805978305885367963519892319701250359145788663224944051755833399726359899266636942533706825015010124783828069147736987491972134452833621058212154714545314089448136319068704409281033544133181528158067086094338888356710162729459186124358363090834651836085673169200646242866220436679897553820063455733768454883186003797043471498295987249567211452778312905553963894592636706898758313699510735042296744819182088724284932033783662966587298708233322119612775700969671600098688677286982012426044966296486642598245133293354775684402708334062114787391176872578260681599319838974658442352524439391854492137047095018264850160131382601081142304216233115612849968365787912313432648723984612658323152750655633597856260731184712621695565906344447571817456475800908379721312146608427944074238230075175414950515682359552244076010837878819632795863604982796986028844137589001691011983556071542676633282402799776201979251330090633486581217080439027856566930566340348901576790030624647473556793464199794328548290803552132080904948714982831676601827711810908232788853048254658311584910077580785710609935741480153099409088354714035370427343811314712529869719052202858260016967426119921377646479538813579603804297833276000925235465036745449536418685340171048846486910330871965345050955999800736546797741050172231081013880189017263791533064632094141737864133485474624105299243885844269567526994992634234479051887221916696533919543784703996150620795140020325049710315628363778562589231159752846693595983049547200084629825749541512055572598170800617393034638543742487923831360568756821169214507309324923900013466183656402857493446113552753371216784119673334766164151029847689285803243551271534712442224936145315811166315859224766307768590789370479524183809007657310495188427053506762669930052727701026943045125136098113612407638474131931156415820555127184659832761695904928414110663273289901243876607660979578799934593816547308246226100758406255429791823926561159520383260623689403006455301138007804867484387944060358902901163761389015149518686104862369883197201822167466880259148693821109489145115838141641637462959653094527380021493236740785052082103422973045406020307175131535588865674921609837324180028352120335394050761796969962850666505882323301636765388478592461112776476631498488894186688182188310577926288012907788481153212339500515393168855035487203967589703217155115149968797971889209329736507607384128135764329539980132615221397607436892307523304896137400544897081599500654326574095452644766810720362056835824245531079159045298438131767016858400381086658563730429674886266362456469158418979354240844978272684486200099122477886136677977482871012549885477500005684300810046247059113068323339397579624282649073440514555619147833524423863889599300940293264611298265602761885610208435684460814521847563623076096039922704007451102585474329176926463981315716781828613651624964630308601577140975541176745308303418234692657481089478890965593622689178643482167149618379677815872961320885724151922517748575679705185502291212045045059494499502519123661323914116448500735525189501919630891094836822976340278275752492266662486283146062682381212153464148427321260200739426980757041569330083484006653698375787744823169661658352869037231898165894526700514022413350728749814230912773279517603431992810353933716980605710102590609017210031808251431114333789548140101217691034670243185243637154346296603918755766193477435080728586573955484526208007739514879756757936054937661631803080177487822344428402251540641864795892897937638567475799057594280462391401288613040421754907061625470924684482108012763590332442001896995051960663714274579161121194478924427586423050077815910388867474484066983799428696376179644718870837876110299923121312435744823350511995941506731932914130680566301398146089330517908038581202480215800683110773238385343628039298208929448304163027470559030779279433695541310172303436336619805528686957371701395031248630178848381394824324084803609654116427128523059289064299259529739195391936550704028201437710401515059785310920927092283365270679559577260121479228757601074777827177408697363933595109730668270156371659314436734643593150532323139878757121259735418650429193454050327702364755621093534091975026983742865600297775089344788236349342140598842880288977834540524824171763648203953933187262861903128001308826734030636603642316552367926151514675153588586999004749608661844275523906820412883364623294861797770762235085747212301240068967379132980959301392728256956175347854182588931998936233025699663943067687320236240164010999334313007411359582936129208072524293794515977560182531334618296216663642044917519085954618929993010653363401139776640324747718877277613104585371998917247854990995990944686667928723584915826979637099756838189346527582295032635236203579002028311954131565294761251859188896369763658636708115489755169921605142105693449591262783354120328781637030421222109749332119049435034599748515127565394397487619741843219408373638734912210013651413977396872169092921857170685358849729828317191011499289058956276033038692304006327611657154858247573349495363644728094514496939236586981037213454881530284921170616715568021930425542627920337895123886784261800524440199235454102615056400183276731001021432328376181344639990832998926477016993067992753357546661212884863679298001660850785737146821136940848274588327181168208334417366170512605841201070016381557911531437834000796809940520358031435136766642595687771403367839455710795331733413665619706379183748900495648819087708518616741929470043088965727371842906116568252878972009461080821090436620076629827747667948911270966499099810793344630065795661854952042156766784102294852524464314578512134260388659494185770332382196375695670660523367038871847086767790467692658594780083415729367399803208550542174242415657823697712615399011327825450144140900628537663047431102114204937389204803403112413649851477764423052069443013439361355628809407044826804183282807950694143640222323475036958306513523180729488537569074359254950249870406060086634268698216062209463225925853198530927838381415890188303377049899180973257998864487258064356518980257632362830864014851521802039014219454448595695795889071721946212466018610810128855893355312355312381551347128632885176020891708334118443258451350731924086775714331322265207953206951069701845901592475199318171310235672620404909706775019717381184270410934969151157943626496622528793594560642071757447486495496393400346726542179986887538888502112082374714430599728345053528480689492697136554781178763333694028124600408751188275043926100740365270145967916236811854166293011707482179535184737800578790535751932000966839223106996910072110206374386131222233200410751454518864816606133635566594514971318701258907441867971137399554570430731245185541221774890525674649363028783919785587173960558914088947415351307950524022554860610530785285548307155832498428436736429026136988722616619394389869581006814559820592949307397566337399756893798935787760913050771991146038781767420236334553867129605767193791309829325073534908052796826224113438291962456903125096543304527503329119551150567484792115416230474142010670687221407441539689349839865750145537580868129313838697963993874564323399074775820746157028029719567746164013264178673865276731880325771182837140704193693133173197607816984445524153350752434336768492394908187660647112015582501514277880776653113057867844767071078939044593221739280075612951276439737218339071692044370725921138907064583321335090386036469172067416047777057708457336054178387463021242747652885916661440307639313315008382843630610496934095557575503352182048726807595298515820670314748172962791183053714571653917962920456945775974395694957746443176612756733272564676501573305360865051145665142994962292667600894542357762573914657747301480252243764537411842789713157598051622605262930667209321558794846097782853448247269886461621847462055018123230938332297197073976159901268908345167629650388504177815456751818323131383172195264234051143865724887934308752256296780314444525999315714234335663332789043082974234799073249633226647725351345110636970959627525654500426185341646900232785028218662875988739150900543985848578629804905288760388717368800039417269501448527642434998576596463055140354545378359090418117996753541871658915994617254891115906962938169849011819871091355535353813224804128762782125714273129673892071036386382063809235473810322082965321886560547346490574051761181246019966427846732926073700422259414111524813606375713997522469625564082736656346331566147842634975595586205911106324617076762314718443835166467927877149186887275781052987356207899605362012176250108801590686580409778858906455331381733123767631997439051373326942408703877539544525342602257062625606984722086094895091850455199740456581654403957389738165073859978967412422578265373997646846395102173525268552369332826399377971245457903139523701146844540779162189669570628651010894636842189600220441102898155001602042808807969588439889490123390051105846580363934891571129120685110579049838786216524035118511681674447556728989557345312495591860120348669701443902816537318595063885450669189506453357867990492274515317123256855751620623786784023504287933281754880097456472524117132576489849655958188895763246953121814789220894435256156339796456203341861033425421625669653663534641271015794146447853110642318881832270560670772582337292771214469207420038671627086871673410935824064158088646944871848812646324771358445811788041786844507104648600666766124802937151043966619308591287808086571157902215615401554706663179359540728637867259445539589492743333588056967882968070994705005280175917593752431361016107803640392020986589911188839563090772310906694755967991233345907154487715713656199959469978049686049006954983997018273896355164390501326670272269859958134531817052925453344190162799010917909015081582511697615693914116111273900554467230188913327983987348372194902138773861478201942134946445301808031946599616565333777925134753819021511355276766825187358644980606482261412566121919926081559405113466492633369748346470721438049316211195755673493107753017205851863324301678867265908190819811514394084703007080750055381625740637400576549922210350575607544316900035541165167228075304729103844630743176166131178838663501811573456024690987711231184570333329455129832240349339316256035999557749297662709141578893255966061928947717479997095324763945128819504025157802741525684134870095931400050254029168338081671339009218592495370325312236560321058777118039796636410744257310242163781319888092494510182241754139208075434762519134522582336483712751263790133680482502415494525595153592865150715441759896317767821771174082116074177553234688928954991140679803956791642646832732197954665440926618629616337709056990860077918159632410247649263147523533004482033097154028452051814969711181663031706298639153696759119811942022195641687592013206568068854298374667902599338055502137667037635271969185176713868716047927192108642943921727793547360272060872368373947351360200278090058540952854393055155502338010493671087951873879654023656755178786361221510252089808708380577122574584764879623373387255824917940843036519276167265991590278003595009003322170548353509627262389922087845101543761955564362150891388726856572401825467333129437381615472104047866230456160717074812932822136509882946946319032624001777465183628844884852561734620152663017747125425138751340752177344270700084385564482755272096149559209718195110974115741983377088155561354764014672220791363204679825876593147609349529420266610302886906680734404793728834263586963181107438742038751766073209345346563481178572556429075806212066037716676533237548880662246118962978526073749256732049461981253425710695366105231500707239737031352777651841947668020922540846505135128765423448380194755453089073437260730625199427201072484273699837082361877042319777671131418434554948953832726748458070633741596395912467179957218556726170880943908377090768053551390578211826150166286500080228666508222840615759484092937242520987839802127243660448788726608617800002124020744862844517379095354749449838001448879609613973315560055403346232248225812928784255404884588076076414614574260164787061421596531945605645402166403736029216185470274342281156976034307293503789740187939455828842199650747892528290448637770523799316837433847009967056070265093710830107428286890499643484720113739223591914675578516907711638776876235127659920812809486373411149493367357940752924923105522378045642808783747959517547938494145228640304730971938923168221798245215353130606142521721335699172256722818870899599882208892078267811508005996394519329512849906741055180035803979901187459441908998150615475490077043032801023512419121468410447282152089488160734144610480640806330033638744018452245748933207579742036853809865320619302297579566058329585066341913198778513358731983428577271175079027939816861932681281879751436503953622359006103040359674718587994413684770735037236628230041966643229734910788844341842229351572731659486531265804821202338385789585577483040041883697124493764936880964069525592582954318345612669698391287787584121741854097513202915716840586404736733693133175423014562013877228370329705260148913019294270689883606308007957892971283740487817302853641510020836464034842090432239670989744902547469255455913965170020007979523021354234378986716589729905690679066471442804636080578141109379522533012230909869579127370938415024491875949506642842145426245686342708917843606651537617894645050504170294318320536322561778729533670231452270479081452605283429842249620797547459951702971669065499909131408599054769280620454172040050378779116561121118462274880381420647871172619993433942617860088607353459757854776164308758899877317037642866224976544615439329753009534839957255910082053438923870423165450433174180184872882085379693586547344289632907261448579457206917154451449711789294894072504748651824156527094379304281004348113944694593687781695415354167309583555855180795806299494850163583039709959717480072952810875663246466004709306087752674313635785150388923952860293971338000947987602097947303647999868977196682572482170920976744738315723931330867427333273056243882939525017198056367806864449178565696413659860240899279272694770146054274702057063970313866033980907870166874690618057571929006927237113346756702537000662274526527022869198104241337901272601325839984334401464775020220816398085136250384557631145654186975090128463860327806350598368229668173663601231595708587473390924817581044677712572952743711377068554838102386925843514770882073444950640396054547788301459348408221869419033008709815181345176181440110180191455649415405247799859031806180086855451949388451153853579796835764600214118112593899695816115422351712115987782642736564196887200704240295742663844059888643571180551490818595135456304904359248247918245941884138543392007252045904975639275059264549908626928882153847804337102980715659560888665413074583632414784437053996840969560805102997684966782916053115063921349419921949666339885418609576891107187719127209170840176988245326290846294241618217542606029214740126693178544566638596440494912815881767496851749309646601167800188577845825165502008887558629739157781554245675648587348615130268856298373419619953562209456819336113924349469777279227017378718990553869425574683450438270640853211440798746097957030789814974129709994423149790703811155650960637584152260950066093031379313091226076467809632589665669720155491500315037432742866505713676081092172037051480091341589555118347050563630091058702149531921958923932345575648423686741864086385157756336496178236882007795659565681612996946421842231641263208848868784659099278063387728451761453609693329579047768636955453787352508757002227224449566265120650510028935183277263138810529486065360136676470065041133018192889454009315757693710780848204946838339771425209935163645740503441007102304109524993045530764659313099061555307121691626208295833790211316393668708845823217783546865583024343729590626608221368168742496709908335209726365263587568323798313500083891225556097295074896249543983200873492516282585255830885002861545947641305494794515512362824145896724611294161392611934006293628468650199846547660936139534152421207114093795644860281280276789757320883407711118859544550655551221408232245250829219968911589591422168734202984553311770343698342558172186125262139398775202643216112360944219776058857443720190876183655459518993914677630748260437352586751848698193636291747404130451918523037640791970502494918221522084551958591811581688013854776853223413496309401083138104072907843986448195670028159124309141209673635795483210876431257701295461402055957361650318123674023721020136707387451856842026867615629345432214368940042369874111807962323539286718523305553572225896485293125813093344742523094164137504795402731029631149735057981843149145085416790623606399491454872132053812336138689562549401852502988210399216877429386267940215277041764363114303714305635032232800357135369232437835829959985515263245306526398344417587423111275404719421201161539332773422472351063018942501078407511770775645035975506076309196071088214967729528092952408862173815194353141965765095136783583657033139167142287708746018167992414227024396615054630345928088370145891080802198676187621588593295054123821895651196414757336221397300889373566692411785127341260748369477582632784918011184902406827050849444946393154116248781572553503780906250996360254337688566705153433893582761530031054970048456228612609536965595640080102871343760524694962136614789998588890889458227244782896187965909219984688891169266060192064974495817980729877674848357219145557717113145577792905557603637576869166295656502401392477355800118141341609319181416271933374412317877939195541267426983648624899228132957489605760106880641556160652798728890767799269550315084087646060827106807456679886576059716840516580412101414036720900217877956067341990839126690470746096400463415926707803175559966711125119963601159229351063014934244841857795994679205104582564494826232294706465815571106183159931759793118707849944803743650197708888691050760793338611977474797604812752351866355709779048580495212835061165102330601065018722244924016490698147227027770602614710942221401280400439476837056118843846558033281001897273700778751782762598629645071595199038401062159599014170572466272467031428708729285269827858554051274079574368115986721977831667103818265657536425968909113215381489355081949505944838237383110089465549507610381132717249419143901761560476343542701713362465510638855108959672208324465428732990637483997443457643896303245607666186022967465724883447972796252121384814453709314254103136569511674362519592387537444626708800923323041824268022804095963279133961808427158251183072489446348858776965905617894497024613466793627769093289345850940611544500309653666595565372255268424544187584749972151050960194663013654130351435373841140075810351296283642647557087840794997663584463847484567876860323065731208075238976785409639210144804562168691094741939381181819263933149983566665450501980249426540264258968673218500361710332747153689423491329972610124874421204729583034969378610859379612984316019945627023229659889610522735300566562557584846804999545173676731491678413277296304928931806736771542605673411946463905189814743611652408272069089982415652763040379844968045696272165891903256561492560044259422647278010420688477048324330613225080166506465788067525559601593381661260683335065553984235053850784581093018888341681862200227193948040349553069871486813302126225481234843634095433243834720885981686987568591028942889171080499888909697144250505148151391898860146693696451295928971265992672674133367954722828077795866096010349521939493422136560392234037759848560931376969212630958237591275998849024519946045743758873190874906333184831384591960503948024063003037900352248807657125817620766927389055168596881783561702439292009441082812896957302479504222502201781344559006723284741023597265868768999618493130685434583231264976714643913005975651408383463247251974588380850583914332838274215995156461925481644993253378255177550879152165436784481098311045558295300971325039705808412396463650912373515327536047126330017421858340218762882783481821591214328832950737538656660129798727588310114911016770810289748970225599173492983951529352466726720197704750868668655456339861478183652973499213657929033311520456100101352449236719008943802266799120089047963419264634169264462834159198442935643743024647688378001709418660873831793061353307124962693097014524538101777491260093678505230299668022470167662581517336797032808612934209435445982720482072792927722310558065640581926795608194347940986540809198516381957289034326482791097780081890111901558655142007951597129544054451966251845410748308179676031812987383641809160749451932587064928617786347996728269416470306796598063240568840342383204795694326817099918522131631190288360817870413897219565580774149301072303409843269688076252154619076605445643156033565711072699078286842171571981150841107914120097850170689449468417097984738047766328532506827891188606552860508351676402178723552667724248547724299542664334602504411703927947297628919623131873102685527107099857007087283821254289653022121264517088942075423738435955696730317328790456606194990902684116607339352666900678902421967827604950428696173716883967923532192440378375782730700554984303041944003338681937599861182007920975152896094984621277306451813072018246054880146394277990668778530285587422832966287337367675102764095108662916406387577477233859802939021616145136891124723002390642513638298154117023609976744077391811064883334799894059149588158897547059485211683558399679722756906160204610283683381933188651112795379983771321481438265171007842640499011429150693860704939635960108450265207942013277425264898995598245811198768745700250423235052669707701643693565750238671507324895247771316884591301857592380179335220217698012302854880889305615874350051253044934343551077759414368519204737118511764672589496333760531789715578390334589248437926370205491225733897043807951085869535243442881251970430493281922977713211028231259512151152504308226574577419714137931550619560377984082549781270114826225206681971145557994785624220865906555903412597039238991942671291797397743422640862812600172956646516871144888198771426089981588370186618725769148755230958657500751291140519679155930850344449184640744853967415090876522382012555805256720654076472350830132344560825545748677789837864855548096257536179461337227103247600063969660668276147409976466968364303518343484477105375084146125339430998626352435137625857486993652262748527174039381093512134469406992062095405642486172110233451464782885894596203131950319118606492209246878334930656496505827100881607020125066370904163362234871718726485686423744862740366839755100439723145402457972963460623466308738427897435666777026431577999148295574551788509191221104098299727131908747272739120281585278578003316180901157995799144879761201247736506614949984440920182252816969234967780086622583605628531074403844734405228238476286122381873044839692059044579326092633577979032855729457301635998309824753247049324018447295323566135546225039452194139882151062993457109740979099417934278385089568077327142144092332146244540865688496665515073299665259180362320656295018643228204729674955181698642898508318315712305666191870937963935674080638401825994405875136331319589780271454893956028729605452123000461521118107153263295237326591285045777855999475500658548156528982880499264975288945135486659580164725034660832745458162452934393495258352220014581027290539628592561494178531676726489881427776964100810805906371940979528318677802582002209153322893322337252537100259651994333040909921480954701246004170587025852186716860115020158428636868017711918014730948314003467392663891859654701274625666770678703341512588571445609489731053111636919489786115335057272419027765908063069755393174522543766129820425362591781348201498142605537639742383685872312242464644712319478749826981628642988467694131731888164190872378705528784285687514280926354276873563326433648799099510974466418823958871335077907167464757405766935105601571215191583706973551882604820568185813807497580498139305392350238733472690854698389963735451181442508426191884946877689152569835783223618477236392703383366128260116945928967620675279638717761159326250356247660389389093883853282317659970725450770184264302298604063506959561956893600689762898106861728189963141482256411806997666336890680307802091699812066851351220395854137708279134983337067780230542905184696744028738895878864526962572047276308349082592560358123339884633227753515175151844239511871671239464939510309469843194769579820302656381628529311792625391484387565462708540652761291668134241731329727800017376600445844617933281254809438971063379041121216563976262686973237479481767057754827281293364759989477075161715860517334911191226532131913480590586589894257842092075574980066241534055032635263134594793946686925084372740128571341587956212253857809235197224588951764913557173754913380278689137517162691388964954605669513395265416162464994578465729296804557277375512805426324892998423603360847341150697583042793436841990078272876749134955399565198119119232147594126632975513311198508159599957868983827041195423941700884531218569214303385009556329325586351159028589562764108485723211038725708374224473265817728109472221591212967397965409120964190516844115206671007200864418273970566162036174056549069901606612344365545976793082235673152943097576980488464552305003700763063496128831133782478348965357133236139898875479078336609166098561148750285617609736444398815075993358796999081719121264697588214705485899075745616909558472526305995439209225125898979541630164364990641609397032527346854674495998555214920051784021114065273758572913501573708335170473637197473397108062563923516717451968346435532510170954031382917541110211007470288678650008839963921633432146003301554345605625963468713576898030873117013381376385102813863569668925609723970702231821748140495496990795551806431092098899101060033538504675270290751052717527261508625899827771019250363368781164452591873822568731852633616735229603813095298767489023531049194334922897982530752683673575330683998723878921950347371719411284887318829794420953747173893470338379482549244209036412725451538704013451954961943546970674249594797317767249494744613208390704463625963913699317262373892731048074041132784834014606180404981135347959461585440665584826593479795182856905615514978867464850377978382678860583309400960319486752049549157539662800232892936959987830851716559055217572701326220429414639886112825829095855560570488957130729413458193798566354474818200301300927150160263132822081058816669288564562332690934424093505661021557629956151151796194540159981969088299667600681049120872295954885076718478941901069435622020859830536031147338952171709149110183921017160081081840174392044537002861032564137222162414213311682866014578423064825544289707086330011395915721398622756914988357595613588306759609040677640936666283890387065954685138302415962761007210877926489000582791200174252112451764961139925411028667913272212001444320191191769317731828500943291203836468659421185728468651791753348484547348441125138463925413040355499113205335957954342400511116134497134673441746728600831545022643910317079600702925258316085362535310175928206530486536469940975081423470072935419196438215570018516901724909324461556748756853958370446353400747581432018021165966174976884356433607397066621177952363694640281230702132308703655086545231920978934208381070164823104719557253844620544024737696466354520153894794474773601968708024897575433312182644270643288936368227023929087662257495397240199004605076497867769884671181076222710379694576459489783541609914932458419414963301130259766589652281277107920920520739675629041670752935383842859323510328556065116545594667373434357972474231174295118045328300651182844200674413314733421853565393425906008633752005426121994015291595375904688677185404195099544453025860448621438667111037778174989505334136529065449311896396110500747605694568663382744932968849913393272854525700424043322002945707106557949795790970038751163672915128157331522918585857695454495357414169599894597669232807052561321789665628770410120220499500859862933105298859837445949366055069484006717453226307769313153962314199418422893481911885891060926253431810103277779505751040452787376915516054415500405968964516328149988212948831669829859738543581119693533458671185483328579359049362854854454994381321852177172264407644276042291061620215901812484672080333437537350462907569195324933548779895757868375602535990614093417839694564846888799307121619475533367673333540908169016288536194489360201977412320562143123039514430054056888809967568025980603727681071660881215637189256520820595507823520017368655119089058364236700322720051619219309906232346940159813162560246264425789980397531946011513441527409292712102203490364216774884617596362875661489461430665947064072863425312691718262731083049318587771779391689739986366545775838320102415095394336130439401698961708246275020618301736842461107837176476878996895527517815315746767709659671773349663048750467287270092448330203115562354169536082412982629702164058719535912166076177484780248779844464530060158199453447608522714107903582026632959415501132186092887901538226228626048172280325792641555144405897934171750136150729024301181481574749710184143211670658566530124566178736442869604427408363046812286164022604854632280342449206184680709385694083818539227535056312190181365682193346595828842995356953822632663965884162495979886103201190454180479866711090524211070581994713823991389782592286059116276479921268877369602199869680661200664876402093523588786955047928261617717423862708119328692781857838965001429339802651778453472983937576691908188622143698019434554587475315406052719303445771333473628125486890919365168338044571886903494936830682612324748411258960741904098754499985482368645497859338899953028322165642197053481450380341531083823952339367135006313283541782775349381558962815765535952790567532331091966128150375127298658038781101488156176761478378232807965471285351937786619570933555721969502095465429046690510450036235301203983981710573105020465816873733270944374209299042322801856000735557676855284332585834605013926779391670555544134742931183127303775020461438697429034808905106130203947252211725330735767850796699021285861404265375966631772850668990895979302064452493175993494186208626083883319047893595603560004181274840303055089836703758193304653672052472917020202766947981205034283119757945542768187244122839421557665346990907065541905048582890624995480348877255188012621583898618356812204742374768736573454363556977242820370307711579250723684945276008693852216668105934544053472908918342199959058044332966729767791762236404349577766585428291292741581201904852049877049166063379622276026922049562552672671432974614719060593664620267640102646062042248554234599325619253660520534849070041876362479305531629100116610227302486117468628610300503618940714144182682314271905054707201588907366752361638878345165649003930173131469719776048253792916576798914447404690489081310082054328722886310362442274353657529228956005143229400912631211112273893616944217057419221754899391499529727685414646431708389431163678731588004171650737090586438574175936552783157006832523989757809974900885782034876679141876651857754249230188658711553812949550773516561432007570522757375016214077844004133342328211733834530718341308956738398075062065904118351546855323418522376263111764748155284974666720130002078072907210730716040725823385993729974560487281641655795592074501059664936967621422071892668762490998197137805715447228277978596337518642900388424150349490562449171356544484485481916586156475965462055227889603076105127502287351955580995229751143995622922703717535365698611964691753060888730518753279729636501150938738759642265592065808782296831165030794674912071598086592411063603387322609907463024287225781309498800447484031360513820505261358382287408352090941151465174832931570024960680193231838281917023973749714262123098959616902444413151499664168462343499380396620625571069975293413689424910317151748360203978039629514682927849647886575411147219774348368884097399286637994610082688082969748874692794298438616191041255746938694752747758211787834720179542335535871449972053317151966325955768857384516267659881451685794926154484343417569483295075313536091813354547801654424037285016621199964666463947642175094319126757427144277612874694440871295242422234697978623712113962111798248390150359859059306086175845226344560917250632930961083552346225255374190075815250150190585966251350642918986237721363569240850975055967376567008833146587726104939124402676739791654331063988029307984119270842629720141157220161899379136964480308432814992791051490013346217259868625335586125148869065419996298905686796242794071387827401542011170391439328137039013907116588752000295841161916561731840451253697061491986711342696984569703049093514691719692162739336432531606847805643479774258316480803634387992838697390247361514997635928260637389558947287987652321199149708943167672319433741158965277062021437539964480026230660147480529291017192799031768651980496658362313507465882836306805188171499695317615888062931670817682974716684296704761745044836202551249211008296866938311965383675648560268653202833846748454731853289099041336931817075596958615870359070871903277581140512173877994038771414644435996694699706804743254548222224862530409596122506192190969438383578093755420590608007296780470761080054957903454367607927825461660969542762601298156140399360133825119184378370691770648493271494121774156379274803373041365372738666126390918387850215811031280356595931976265279279658510987045192482197942446075902698492244649728300424525643367544350189515152609480407054643407124963922732333493404801132806934927081410333516283066038464558394690288339475306731878435381613468274219391413879117166007554178165174577356598871550780168121693633745028275905250269491444617421906161175485782358879588839296731452288601407747845022496073699053233093224974536547952163342090697466722220924273310443402098633315654175843874783167258029505763159156867900814039244378917272825157774164908133533441814964608440800445081401283000880540717570995877416541148231854901532733991325675742971143412789695463567226427870748033555297910073005597080310222711992282972836185062341747628498524807045666835725777194777471727184104510212957341172521255558830983426182892231095592419950873427323464999153149189142503022487286152555853316953540905724827106023958464934854466313041194584060710625919633580210531045321994020145275180051595724523800473491684814327152219961180405707667003910065369496915288935509049364091883845345067747660162871786310642948113104124211220039419861062773637222304817740732642307698382620118783291232918199746792076989903852577230306369923747449656811929055539216562912494267250079766924124946822611368312873143382672020186068356148239919350123327466322971342726633212995008391030636801710620540824501384209962979410882760391842438953532321876050614488168505712734282125190167903805394838556022121954387397647380936611353306218988344282100484902775178196329508804373446950304690239941851467591850349810407816998484152556882149076254570306304061517350556736900809235037008624815362731059995465850527833535961094156365362352057878061544869546074660661972127950197770491477090854594823358126676867624454976333325781309518409117661033414489537781127284742759566523492757973472182329392291082867448266813556546301237934650029218539327858411188418314484444165087384979064204313409976329512359780725326341133587743286623713648023072185454883335820688856527123686069907084859140159279995308440242355744425788961736335066994180903901605722618682670986803222977371534047278606169130613255853892010199239094619067240115003764353988780283538482094187354070762631358302357814374033766473013552172399190061096548684014416216241109054857855097621194118591728632250481999433104770347185372661036903802837382590126213250598483388681127426409693801490998009447500804948228713253893948174767446442567078556910267144997721563580017404113254126155908802684667318285177994720551491868518311252207921002225055696292837783547036218311355224574746249613936231743221013791270269890205859655577014623199897571753680937868418346174006244069656315477430195176889975726407647420596462423180211962209523362080141557130722897882833027171331168906501671479011263429887614557794540225389329442102479910620549437694850865568001301312689281781121150909940413807250447082656088961111112006566701044681354307658412089873845098036545825775013829384287844850151732429887765318629391717049989253238443162145783454797904671247708188483284478414869084068262946195106548827301567096258364794887736369937240240044716998510990464117986782122043898743870260485182190704776403603681431311554510131729344086531947237151687186856083175764187041175641470626255811750126215797744423789722953604465733989594486652237311845792809604419296726375386230684716641203252904205185265899052049986935987557166066871368646671448322366984208674686754934331354128745851597414041135892261788932143861354904445272154567316317247958933436032938039066548425791779290163339837793844994384553272276812817914437292754795102659244751083597356631338135573062651708737585987628395003665076968406243534322040469921899805544851486461428732598300944973988211761774465340302933206104621370803994229733260472906814657326871763878540456309405751643800671488817494303760042226250042547125337077433434984041050516786430130491851156083756863570435277444062658227646327881914891130655237257049884360547438781886639060150935670979239531545323817428520006839691404113717527242195509067028143444611132820707856767032165314809747611613199739217474989257420631351782994691393165616688586503405476987497450753008191336917104319466105911209694932650669464424033341383839140264817083393242721429022950975585546786362878411974226270810221628686333528149900215825116817264824766470523256334433779134113043916741853871318591078936660352660867688600319273248487977788545876832075369498058177769716605039630892179878974733052818872927441468096804726694170676565280937922896994847899445220062210385311497080661752684543209204406665420276292102405455964719304110413064188761956781566096350597836280537412647197772098992363881894726146262732211159774072148059754700012036883476254326538089298023301209447839814761895400226615347464654343563701057794830619339828167695329448071666627974306454117773225328928307599423717977781904143111454353041306849672486233431419010471779512582856402775535818031828333890584446371002819898200759490300349557816600467295812782070862249111160719608101961099640487856197334874325913178492369979307547745888961946023519646444482753418818747733628578594864929008122783893189713326926628033280954688755231666191040509017446877690226707680119881896310357274459604355582227524530648642788991838793501137137362759926243864791445508791910482133178269454927729351769487060162809032059719837270263951732431814391947055245974073945988078150729566339199403066542068719622678128353665951293694887558613248827613553308499763975658286314238665846892068852767422187760341542842173185861969237518610257090469163477239662221395254946318384763276516308284155669375245227951211585699025585947387480754774465613303197036692849955682223379036519022072520930264313225592588972422641452794898961490843480983772408569932983582469575676849980250737224027792881367572793760365821259241469756952495946579789446630000079492633284820762701209219964362045641168754286755630906180932792711347851784971984547788403336068947166133182705170685032572953666204037483081495815886864363199622420048474055546821849734040720703529176234480769149198099621042095927628466543631160457652923983456950532631225803790867984749393427145824004854882542763473128350514849351464222597283784107634996230597065163850835142294807376981172572729047003012262142508817104103414310698412173256404283906797936279976763710495114250905614613777605824045944327240789746860763224259683054762421388997828317456971879543516365661083082477830496025690328106198940368261959672351885376369987403386031393727461594924795189753988886843514116508661767385737866597630264829243290641662622076549886518011689247341233856940511630399271790836018860844444153861497657349013578026281138046866950596102745598011727822793095336672180698230593754184601740525782064169407547933459615706420094540740461103675743551695484462901570330877313030055272352411697297978450238465703605613697068511543538452930911133298543226358963010611014076619078838330135434380763974841394425205045984555930278097499881319605415968101515919081802967799953750740340469217641841065619327699468298392331536669476406594049100970290984709700601503698601384975540906275110011106286807423476134049942377031470867300589613739274597837422284269442925681725691548288694505809614579377101338739264360874574292364837441716898344433005926909153081123681325791005939861919024996304642636730838458075557492801556075875486438882414225963273735250540902969088754299077142791513467594488875073141114427197675064553474712005069634175098937847376808740433332980754694122374060243856298119568013420429527533956905326332657392632136351718446779004611444990433888641762920792361932149991593688708741962947741346222094583464359574983270728601415161012123403777345590658059685334728857876632980159042203262125820806015041049434475513362626667696680262206712981595733428080986835537215408645446829306392641352920526649333351601042653630065724000206366436829000594224871116912038304285838640830745095063331487367292712482665697689947194347870588007855054641545477791458072968640088446173597438689423618911210443446243066293083974737188886918101447529801855314083959273395891076223693931286722101471177446642087958820727495971145829041723376827816493179964492526443196866375884883513935057277279551982157193299371065261977605571906496134816110848428020268475563756990595958311936272513334587458328395709242789417875218775730152418014839643236485509283096260048664312936275043426266355435983674452084810125679698426161581760253702997677189892283508455313974862554228162881239535502058681142285083080263062672912580909222775038713433438003120032343807081854723787071272223917705213542469830537259463390611013407176435527467424368150706593640414579076316017889454116851095572079146732912504240270325718642965316006201062196949437254861456056924195166345903690925756274728772194964595610192474828379949361973520982699328671257219649418898548400122464877872607366002572506070255479487817681613487483221200551032209237938506821525030990602504816151385658139751898338365537997862553242967335641519204259223078746939079176332255487118302692327852045451137187577685217417219071947932946938684483485248267521260577685695431843499363153263292332759842598380947885292575566126762952934203563101454722116943384251403884842327708275990927493434305779261715668526453607943777162750233856198792936807028963302947329584430497611472514747270385756038855242849628118001463156949797094397099256701674936177895282838258002805026953299139871378728365655642985183303511710489352099589273799455857479575539558139665796983884966289774862424482084111792046827418877277339626180191690641609430048950945103984449645944256062150850592321807485943650122392346371607976364901862367022314669876007846415686180606142953728118419862122878688773103666512703526686737682848618080718815979741488056277015676025642825827298504914236564027999898648327054266231986937904347643139542186784236041880330254016004897618572967884896403832026338986774495726933758046223412461285197823185796923930136685444631696879661481416259158296361231138631677061825374985634846743471227945582912011791799820407812563282086968563821873543730869329578865081533463717906154982644249208780730979594263357183083770575985509373447489019831343406570464342958337561321113495773384278551949388103654739987558922061687895538789267987291513106714114918008695595746091759269029128241533443869330915947864677499837303286942986936643025396033940321976805438232551264326499325851540451651050546754868862470652787346526441156300890679426609718960627329572115357268589162260882077107977319158269390433405074115197300600609132362484430740804291379707928458332406528389348745440244890151859004812863957845245362735526415563179588063030301633609548690551706897887542706833235351965502614475624987291530171270983120714689903254957384773261705912044471057208622800418363750159123137107258909872786766380496434941277158190202387703835674990304945602311328517160350122763571406282799430130769356182527592869460375525954355885165668851943244691951949540111318422360981829986573035716443778028636213865267029812013915679072426384693864027644069549177047999866834668254392430926080006322306204835593027000080533871638251088485814617453391509681988014747405768454018859460626298016376058751132261855954276043947118334119670324629345384550199642454103320672378690054381342957252634565713855611595863127258899567616234355317903071836290740809693257603826675829748226019872170837983822916234812968105840084836910127479641460379250088790380460927818946615871084887285136357997041944837093867072835932490852044866252417851335848213582054332112745777503909934230171987604460513078411132312983967694144060735725770054812895944185936467881161583434242613537299756042015140428285693972248913191660909822776755352107226967376742866226128104831737089898353070917384386964510413240184335922414337877879282347709166132818048444933418110681186628326054582966540159515381508936899260873230853855036532345009693589793278101575189373535968317694232942966307047296891217135124453105779094116432455359655042956629814876116115980425692075847836415617308794627745622323649564875484063275891763632650617466651631221128848170287098554825196584150676182543534560709401295470041806468313617859814104697621580611355128725598702621120752311229085262850397067771070181967319106333093089772974018269524896453432415399804456458930183472910239323125142054492075702884235589884861653650951817534905365158975794573671941233945888366100076170664745993660503664736193531439249009564611384724740692092621359297144120084332311542739066742904862251469311767869065892363489942182762136650614225370563899723857992820854456759733115287481170190905073340377875516336300918791867304943353310487013131593094596195643226145932761521958077457986538410207531952887685558710396665866322290632389429410549085944192653887982280534729896965863193448740450997036229809470622746765411446632050010713073656813587609211774072625936715247188895855022998189991545183455682102831507183862149368855962832948667804792169285989392067373885978769653629039435412838901879031741405868011499023848235468646788784726086027699643180493576836797385820163132261622250534535012120387714241678703388622092428542341327337673170032837593974211003500005004574172598931275511178749791313775453096523967752043192412446173852412234240109063028728254989097709362104832438168234429797979587179828023266319424985458819349868609579799097292971009743521670780550520318503312751765226939053974541480461282995780757522902715817915452621787937614788195916374565432544196471832682402009243291924204385540790915350163256868905104709232077019605473699619699644320542292818445099784435133935432130755292422073375299668405156601369710222713642661345604733496124525462254130651031449847659584458447047585583512518355687517622009168957956203539083464890405777426420053323484889616891738931416095118937162576152041589381767798367368065325242357772574597386651893250599833473033241009945437306757944657228754641679988508849232769098281755189974579539013746371972986094040975074541982555340949852030266007618042297436013793307752294591214737057346499318857398644596418537276383981389287090114526185235069542404776723669242940620769691675313484043018382543972655305936597560003157569368517594520708894937658788914739613292010239831087687794486181282306787609708300769928621083770233579213117438261616227699159669857049848787418761326843572640248614367259145639770177566990329228095485506404172358760623344093614954558152084155188754306728157081522560343747127402572245073540151012729395704855137469658256162129039007059138714124633913798276660805032826469507577255854747231808001921384845628456847195543131561879830362167126355065760456392566513854579894482503760241600926837906341076389955361427145174960468688538805994404539773241321887661797860611300436281004200295939212274871789342385854520888481455190156821098977453478925484182188874186533263659474599297443510124006337575017560816822452078952048509927986114145714399602885249655636127996849754459139853147699178264821439412181443185796304968356354358119131873429714847582935437015438913348458106321054011282810230139942481506991959551565848828199085478431233378439973783749616783220591464415119181161128744159249085106016819101415394187145868939712608342872611397068302750917703386341897323870053984152234923961740872957559494809136602211847703106191250569466050140254269199264006488865043396694037133037689115785031760414877244809749208211995358614287442359571877976469060680622699827532778803414853801335501752315077327243206953875673569458178677989955609162847540911724601411137178346600548919769646844020079179090484061883329680101835454324340339499795257687983126883293376942015433445566699333931313831694713970043879660534117453100678508101476580967213628641546834317054044290193713937014692118777473621803173136029123844456536405214130055297233892444587526300138889903839076960104211859208493435744014339586410853474569726801605178444309752564385229440356242367963010439500971960507342114230778012416121215638133557490558159580286963041329053269440994987030859671227483770362880520547693662896744061601406573679846847978252872853379458507332460004088221138140844100500188229728655402073290750224059975496210223655854691926753208523098397688919750588632782663826502520490007472173005523675288023309423878235364592318827020409723204008925509523840308075287559807644945912593687757038740883707937787097960659525289966908101429253758086145777505732590308235333511199812695873928989353330585178571579082705743711470233513728483642736549209486269850923834060755046797513340999794806240868708325723198730486077380653775197137062158352845652804055600378075852392576436836801691750109386909172442516864518060651899804963294442332882184147719986252002607976579811031619174680424832172296709779926465491306873378743683036704300533716667363200817649171935733865160278996655385310961060836006289682136602257044958994050862603827651587712397771471896012715294801770830427855645882897933334874626557521258123623827191702366115426536689035171046460889863517135735985278485896758861384906335032668293430889255592643775818002769411418839527779273529353648940709382050907552929821288374042965960090879132642119595605455204278790604813137555372536418564349589357001339454204225798146292868760037296488485138752293391286218948591001641076669119669786819216895271234434210536887817854662703471748661513337614684449997133701272746661983875731903729178112767195628848485686996395088364169813193048143886071612976206849856171906499370416783723010190167911831396762920747405043569131409184621167594222977585723189135501651719013291444449894223691937065618536824896207032111798343920289942989459638449673424839932754484869076730789392989457993481700575770734710187012836983298586787363348835733618599171249545367692603336469030494163720794419520641243778565621464215133444016958664445167863956577248437961869693274236256643481289940164174023302808662259074872847254728443356856743355522626744123867179275931905425299996006044491323437755926584008688416483515410228566790622576798592345660899615081044347159523172953909020132931067662111564006734965718643133144222032341393788746067720374572796725141853226015831769417953555828045065117688851019620368110256821018738132129117319036296491852091899813734141682482355615349085523721271264717758605086612585154782020418088593762498376773324975904891505282620912947508142768124547507620506620938643392495447442782013978621837140739993650421804309183010172452459998798467981928558203233737943853724464360859751141858581670793379209215488246432919966505378080015299972726177722608955033132779731073273073290184475171428253154325423353957290594892851769635739111822864920669402928670458647888441626467055396987306222721462171233900692494894769869528505633679591098264010188742753245228227595101367054686292016695597799353286882187315890257013704959303797828829696232385318363524962262017302526469788124092645331153969550783441880893713387546930403657539740714509300339338712192727628903205923991136573963171893935248631445258652309138263560689784000265773561644818643146398254274550079838744544863181963887897811988494763585159381169566223124725901083806037654112178486009727815629908453047195750038052371855768348057656859611947948815150722926838507821467186144154765402581562512822601323325046100885679912805104553720959744617119216879355118424549632074620400650916658704321408216319303557560528522138492730666495449248207974297582849964227436257385765031127259060708251443426231180955267086546222206116954016025723864058703488804479990242642828170798299628266450882452074070079975867047124864193030321541904375100843600348352413669309130198012463868057468066300379874680699829012810579090795152736684236494129596028787843745781941973985590326500351325643132759442136676308130263433816569519370784436485680712845783339195792105219454739541135159074261443651203174490878284085413826732860354529622383644528564714091818709186539165784847126675179462950036025700690682180624522390573847135729255971522594328228440765172040436867132025046931518967063202427330827664962529334916923764199573191210408162364440385845756586288512193090564669806875222358012368248242634117521968936438368764620663436600941247028043062194563054893888182290911891530224360858487818129272126068237484380131497690977302978999225610405711074286961571622330355571372917613818716477506035443312239647976203964596204396240185925998170310388871792809128366078744907513059000158721978834375451680512701990149545515571758030787070487869731646263434396974663984712657127365516477591118866152125102405852255999409487279508391332656794030606451688936662332364978069780342549149804633231672638382936005221858663277143865580166588745921237112089163909598693810230691628854301528920821268824491894946933867447514651277477612559260199135918964901557633139090715396214474774238923077804674304634079148037298448004840163019912259442397306985218930145697839308714729698153367241586129953091463216120277674671352792743859194742491464379589645238046680647229443184275070452095141164950133870908385999056600207922722260879153539955649247628200517842627212394595745905485226373358989599736998063991991681319513109807747025589252645679727100363988646750084345048983651846821814838911154929492929062712965840803321540829811891296622059315362657571853636493222677687368756528971568627842499755923422066875204426971462951969672690682713736674843468403853103511585229646982471022111644377996368910685667417027602486048430991428896492957304282929924844429822065893164591336839279898573188591447493839167337132731488093681217256702235165164835096639782383097773931662518151619872370778188004624203452252151794889494792867540307880884031394335706247393312613434580298454916960638560730539529791824166414823673973985153361344233584497744546548930118225889420419533228616629566818909380829030770497955877223925155098317377351195219051602700850784330347608862870830260302054665773769561446229253127762026664052403668139932679094885405658292945093096203893385186780997316134859186444229899723963777499899951583880810987629737357406584054700419641370546003723810740799244842040433340168001724561556193154574863874088419520597198111151143796122175232619317119228675005006734702397824489790571568161820408338555639916128565791634357751777644265834982211894757695594091921801177641074149768547954412254490136020425179841663918454173463082265127257791266185177684972799827767511028140564402584142833116338428110288005970427160102470543257101289310072978551673007511370034602026806520692147245324306337424444115002125839257698109937401246174957556477708216995415064796443518973208745627044272149265652214391958133373383401136283425037276322730462392908016419126538043427027903307993656802884148739521693719506143304023529302772228120327358792342119265633289802283986605201097872738788214310731951095866962193971696627907598005583699205453179052729440184658984897246530670003445980488566854500918331143637643919183745417079597452253314326118464618861934864200829600956075752018954552284834628878123221289764863867460599351695297291910048900202889935174433783938875220568698232838586667370863284443206527523613088718227462296099467041187611522776628104391888326971741807256993438095389124107829842194280080660504816404910786544236674720033250635241989264658297736794512804413951433158004508533547985761235857554584924548281033959733189225459779027200397068424251773889056202263291194667906578314801239201063646757408898921052493883564450747895877203236639521790998123611878968135588006662176964382139749601901819488691548939367385325068005824666448229574385404532847834995909131565898269207490071972795897953350677281414829800229844656638368361241717451930478953626246200983304643954486462985920592151110169938447921559774008137502453899258832677880059057364523991458077848077474705000707258311784200238572423197782759115058131240887920521519626192758378859950256368954075998200917302696000111729542416096232152967129284611536133250248163742682414332567919777407544012849472103025287456521765542303460766005517131642522420065624793399136530290035740284023446063730905169884261933661559334644291859743576296396011040962578186806041783504091818040499875646258609797226844655188567808575102016551798917765527007052458802353722263842893204050446015481156508408338742299360316968824377654610601888866758143488810374294401474080067284163759170648397621055304385843622010198970272210723027895701671054513413228686845714515007156578133518991026222126508636872061965252514761042960870349271074296616529169107809173480085074624485635245494832857531850643596451051575422764005355235887678295804385107488362971589162356520093523397312807887203877495101816414597152530192075272506200741741635440666691991866731937442611654563133318240327974805607242544805208633321490615225101496050608887892347272896495112377778551791602858728997717927641620909752529953073767300747171359435852413300017953013422920648681270931092782466770588071249997459016610894199753796330912396272457742962491363977835459968111148590734775016594990721474524484801445405056400341367458149938521017610049490386758676892921251826438756864403165553931814199121340000037159498623446855907472464324516041556728027170541814692586539341326164064402104988649644467362530732649392067074620089833325129334033893303964458045327679164666591012037860777827577691862431839439773483807317579117516654166447020367299641770156475385312414596147801075395923605666730633813849592209001699293608442396665078685333231810250265034928881468486282291154550238389336885516453243454829913201098232729273906882695837832113502295418819309252702915017212885243762838731321478063796153960853046406500929587138060324910906098141137970857191474455256882427390976508687511473140051984092553905898669690648058827628641409345095397998869699571810344171225742891774998846853390195312461355474568006987314713858666597260297659245319209367552974635071684673116195142884942360535548921557254367802244057676819806790638701574902662812702439506068094970183936008370683905839297782629037556575992152219737212019396318600616395356347997051440552624813718715866036281533485815941070337774691535329034903124853691331091357815010471799281957652090636438750997170110263086169480624980350782879849875807584673682906682485837657722248248620586958053258983569439623890949975494642469507180782879167984174465227440290118005148037942568498760201180081773496452887547510618953091250645483886602982275517815422330473367036811129974062029208774195292304656065178215745992308970365144111876792485786795324294542144361731540639471041613392274750377261645178061845997097153411227637784247134895627190918612270450432355594064523454949579505924609180552837689256016785193628485276611952783810795020590198679888249228278841568611765225310568408594602348822104807974787878251935119964257218762235995744223758193992373772856040350537332889145613043681224359540959483318150834825187003142744978884386216522135250718159735739773844544192463368568982990390441490548887865557575169572613930930462204897233566653730895967726645598537820869409067159735692435986900248645021398961739328549710713403023169892000341101668452563072759933062357276437044159020364388598364634173504379936682297727899304737672040935733989607379553425645919197087730768349988992450956023979634758000463231948710837394831538051540007717346449843573534062067869782272947810563234113217469182062027254342159166140270281477909603435527439810990091193524685108415487144830488416343885648179983082896780382725779009209642017393276503233520285381423480390633292991091678820968772400710370072049923309853682798565194386118031055623730920084047105618394467875381071919755739101976604872244157697454976150496221715876280002751508679651003769842915787501791917687463772719914861557546207245384409188711883314208727864960099077421292233698422345146031059866956015008396207856301169642418081840675523116769828678426914870107671600954134646198863209435090211393754592496601751327249213105285935062104660958067356321952385982394257952327228469331290053162297377796933888634045745548923487702681930648695374599859623162530754314016752765365643086644761040537403721182141393444182886157988437981975223656401581153828530253116214137704444186445371609808441292128555424130808746704838971624359094234091325704366968733103042348241832283823650228003024754162886955665348592660680863308947962160762902448650231477436869099713379386928464300078037214261128993897683725686668905741325727387687043174278732224341317687102153646629210625163443471091262304817279737425144832031789927639405125457124199164353961525747942540676512061389776228559954793902091816580841102719186957635995243536340764623259983208208726601294411493156765215034374060888628201243252497101941719410189114462624306013563551028361583965461350152449894256481063874114979191742411181875802541351218287019764801104413122412271974842025337577670305648249099207112161076448100199432086401023291152171042960192198294827974844400061705682916022901695853806167789358596258602816338867070035177874867466173928635949182574803146662088376698518035803374815549491862350557718315225477317982662593490314756363106707570649937314134485176218723462440506486047508274021682557364178946304261805258666161354767507985482029812491393823352057205115287982429724269349916643043163292293524309738180146515878629917783372608607780780389658269187930966618813528053386726625758899789028436118367214610806144966201415915156242943047320820915867740280695614573974207526787496661253245643672332710799201610839680242328284800983004812241282840519582283173808321746302664857886834697728867375452301458401007496923326028724231475440418674084662709806123849301711100461418552657364768650138832130962735823937196760642921462824754431921076473201541213919810677704418927943145298019627697702276875789061517685342764427143774181103590994790752511375997713991387340119967403474670631284025864357407963877363745827712961255861639575786218075302363217880040626178819971599353712243942214357978612378822378511363252663120692926045762966763452629407955782405010450514211537150406235364062236309538734713138619398465112542572662777850136285556464842246533294498516025525261614315989258788450359932837477876602154960784583522600181446988440229012816722743097441883188213025118385140493255275823407138771779232317311149565455492435342449661788372876353614819781921186023448026468490381789511571611222407277472727493998364798421563563555651197892693879320427886273128890574797711704669173992627591649294231920912616940673281515202572476207362761310695187196966878634712622807828842278760018885299536571016450740582179645478000927853919515504811469597689985603047567893100630399293393552606492446120206695967435076836682920118956484433896098291216149453305439370735673515742189872054685986091252939105799710972369841556797297390288392448215377164570126555482927667047729190498752693859430092780323830077373498469479813213652310503888012458497614358374673485319942857246674245312191338215354334722804889855187658065596213724573713750157224581879947794820949709175477373847955466059313031605948606000132801521460438110517638719326145441732884889392356015290033302764853825292348670811849524289300878627297546856480514042206374509478525165255712185852605754115046082947249189293746158048465521590478665019122450353095438612219136351993581031951429102277742261042646112016033900732407725296934244345919153993444951968790077999149200333120479494485745700880835898093268021899580571079356806014342167621371255627684199135541358423050615082995804334546473344182809222987113194045840821453860013512590642528498854546057946333361610510623059396697463197643860678350894537046458044286092406947810572154186576755151997912331233765830164884436348327240472520448204182532519831665658567319514368226428891765691957654623248984422856076689666571700223486259324882199421756962325323984126945198198074964508729496302526820999768480241283403395086089573060449839980017969456019517097649360880574098427999180095916905321674730985546664773046845499595112445311150915583468451926122589486100219742581333217402035798207541394312166616127918171240804226748749089660146686373073027944380603514667311385726953673683091630988896791671178626789712908206019215374960772266108074454664602072487907512695544019846438149277045266510089618468863472211104746046454445121783911341997957639444639348252851128462466154660987926845244341007775461481078497349032301104628015053765240461782841393359485859590460115212498333586318105571429069761788789405267904851146424193361954119971194325391499109026636781394599520514196619824971481564874441568873845565505856769892849072828502308014179120671049279252142128699831868995054164904431023665150636653350823866336708796710008853261240019802744246857477567859276585034689708921272989518551882882168426246704622702451778799065754541660036832548638640196032658838078817657623493469046852867304525924280827827480543659049536697700758441618710847752833902138786324328910547995503525026034752039962344387946148207224211978203930772630057705764342634073121022354569341591720732732879201387935371579112301628572613405477650716675267379348868370898150349404041677841266513484528920413240320966080742416755974408501092537327906686689827522016092162387243954005004475852267539517316271510082622814521547343290284727372635522715334045059231261172197340130636015492483208870527021959339236792159216230713773001824072505356299538796838177832707906057060558681883089165393209605962502860967240588684681156446489722488531285033473864764741851221615264723786601057886066434520544105669894530592096646959124330141264842865920674317483023552526740608244644373854028445570631944736012983782015128308136514530078036239758057427203575685079339416222354784595430423483636248869718957523095232178021102960569159970311850623899122073292936115951590278166806389079419752185043850701930213085348047142910252031142169342224597279096063352842584226364622273503191098716067015329734002737702792448110130592941758060599371028122533575507268585422950683648762765716206774267512709593158611741385216923209755850660123063397051740228137885440058687740772909812168262283652522411911346536203016804688811874188971620522915960365589006474608979242684734278673589091950205213096717144603868456727986638542415860231503542583079327711420167659393677313063831324434901966697533003502595803360461419166545208837523098905919847359131086826006836151132106441084485491788848538051667220123173544745979666057048097842603989962235562282436240108907559935117668659066208130096836906022385383490014526075508982638382724790102889064066457118986073254295411970604376231191181996379659196659714078568885431653327891159590612808933940085089936357824208988140111312520634629344452535686199698753203307355635491920371833613564899709203344307490432294823664277858936842281549882498124269237006122093593343370317633461713354366854050893161321321645050575955517787027711737100145974002851625929275754428379450409868484521042303925205938873135345069940956016452024786641848814043202227807413508494505115332554449261840064166366843224039255632889680221227344910847525409073386893995653185295870037053712840763840355255762861903635632420963223369652224047831403304257727908625591994117007704769625862386396289593745488961288735428261001523670620364667804581501158908971418231399200729150883834582286398381021688818783191413643039378739261241319227366088844592768365020714517648898803890926394941513405565797678023129174854195974286829738910628407183687696683466996696600609620476609145862352300285545172799077805176377637428810078291213669838791087333805509242515733964431741271225394748780931221070471625170834573686665428478479059742462569454303342097557187720201098294138842612199298754876343604417730599293111792047775112502240434490334390325365935512056176309698084176790117602265370509061858326899566029561874841206852063992398792979428406858845515559184628806073846450127176572139432892241048450270630266569699887223128388750981416363182421980952372086691317662786518357181415797743335219608983992361760630548846004202007071967388607891955678130208966960850887527606517842712351142904068547376633107327430634446090875251151538298688999646804233923686742707303592195059153523360634399080105924655004885584070768771505696647551753063970288203217654680406697518676464731919037231330340614292898577105492944185111957532474215760946100527049312550284814436923815710548716536510472797995761910183942609512340174046843851931125299892288364471768540865795735272572109246533011673328732278976101596612101079969811239110101111515796899693764526460125587615565746318146658631630375435699316669775004762513323886934677365632099045097421674750540812849840391640831078896149430119502655197553254107883127084552870701236848441166667837106099378646572490082872912922844419289261795591711650656933221987180817480057023254854978213031503905707654827458378187606767255421100256410508576626578522286907985879774113711608776661902324403131811149245126137303053214900986807177938378392748988540682315829826995681633107213096279453017694742405032978524123082067538153834670740633483690207509648374087799852387107891836754209891910542870470801376192368422247918975687197745313619737578356443490608695630231749677431802509248911181969893614895351893788168110473579281436869227884677442718283981243300103165102042514342415023391051448829216800922014797417479944490545693791865052889606953678053282570129630826538343464305715145695759951415484188805261749801049948365683727787145509048971502737010963056757191664024240729010781094108644553398589783391683623991874437851770819088752993872610757294035211752201814209060461296523019270363816584290180677839054853115705338284652775849255258404345183201229863989515703913722950968615618730685780599973780390015388524056771354393697714176942397009641006997216323938974422384093739663441649886456376236891427230181144620238691395272622806817657420727654574421886693929102779444803556969951445887171999437626936598367576243591284979405887836095955059965698025716488316696697587671512254009737165231313532806174531016894099231692963654974237474267865738834150005206989174601234082316695335877678848004755841673144965130121462848588834758853228922090343919718241155444722959372621524059505021423853114885028236999860726808161477330905246560444401369988816322718369048604930180728105901014420970766339374900795545783322149978804469523434666634787201080440222931803293077621382590299906458722862912789755542864360747239938659977776523923448931462047562636889899066992450202676397697389538824281085199704805292853039472871950886274863732555578683245419626765661359830532833105978949522740796254515531611830070099088296224496394363641374040051894484026072162840392898601247632957331463419986663027640724164582683430634536079281780464772388672280978110469265743765050932420952062177337709009803249460294873736868548098047378762925938106045085846902073263129014751774415647498365569088181408621559747953514089537143389061426844044747452986008252478341417548879604575892245897443110750463447395210337777913060100170661181724163090955016233191922261325492452089422676762350035960389857225804997624950054577717627628942937430370056920378952488656242910029591517271610629847107407502649747157760629210381026644572749158532426654063782392496394814496219487486213816334931854738295404660577497661740800912671369392984484070873412700191913295591643128149508267389870603162744349135768598491540769409911740715258755084142809840730464203639563993126649763203309598489136872089133298123790190712416168677938878558300892178421989211770587760705045922541805632992857926093059959354289708912375350875176152237560615745897322971535508765360701493149782054717196483740327823682879713849145959301993424674353095308563904564911029717385074218788843288151147876713895516212622938909546884040643245970767332303748279545891610312232026384326554962875578405566322311649027264397911436484530632234170338466616230237335083672998183914817603880177527177562926626190121495202689778888180863324620677815366665846981555235092301878669918943781324845006673738520906605825143311502431613662708516800855390684491192712462876333696046668568168623072768771531298546195322877334027021454951744303768753149079077991320108983223406785878921148846243049922697296859283514779761717264598047683828687577818179017832093603521493685471633108486886392433227145214364395237156903389812438499201423021821931502087139321978701921184903450391114181965596201878507831016345732033800230633994896408440595254681392917600917351852849444872723273690483958362015778280553179357452256119586564438459120971258463531199601423308483866869317841282684383548904681745334762170220723007088331776715094754420067537648571090353417070083551811104041073788518852586146168058379085029080394583269029362899598361541346609163389315789794620750084101400963221973737627051338687987458138207756350641082859276064515228493048682335493503924933220800827191015356439905448081927743042359956268484254520543271896978607146422888196745151762519831006483110322051801875771977165976318342327478167726579697647975115909481531764904008876488460045336913423020817899629908914760723400974661196994064253434343892862125947010655045856822953686160204131963392141014863743268513901248910835972097119472480974238590036678391359375369818895058692833084890643113754883253475921433733874903010260253868608684503144330742563958157562483772744454616257729130835794182933971922043929842371269099820046605545342516927542435351304304405729946209354488291016954218034205084538755155173148845759042950428247604248425326409566955701549228570312174128252402376171329870145183745600520550125513891966323261076635568962578392460704525287532129295765802793382380032703508450052014560690643569265186740720176259015110697263864931952810478737926280893564217790312501442457063192809959986798222845923569703916248623016942949781483047207982422142522702252892106176123110433139389915384257163346796186441314307614510655352028538757551137473246460411564859818906457860556342158076251679416793904468091411726650187697519241030339098136397816339923287243669764558704735877522712773432629813971649234985205592757194021720129768873966425671793039022673263458889501612166456772431412622743867319901910341086483862746812871709406748893025125639350068806432626683516878152024813810698599707344420423598830890339533592993597379817861387306836685114644392223870647026104633463998458822517534093824128198581555614339112254982472010123828533065140292030328138749682644490472728688431154099254313337770032570865566205062242336434073159994405003035393245905449705711091524333550192343510112867198346761741581782566536050024902337765919826466751734559818229235655967640837959271589753971425620992234077371976309949405229844408471770662128066782965273495270108419989333247262684311010001629605338568958429543802230455896873137022334702176437226022419060876231882134359641412419981749247097137413477857567200381203222138596565356617241405141735796073446594304346600371407222594979246001155643896764451600400123654350298697031334072898939551863455266255945417199968307319544394160731982946495121357129067025328094054747814563638087480694974035941631945477778857894006899958788915528492718001721491796223368952557982289714437920897681971069299740866325056688181907125088426565892135098681712637254734581579504484889386229677757484995988096016970987658884616381370906377208855611535570477550617822042842554324868604316500023675886849603987680854911598836049164033938631382536758425984231618362532831918897701745853854100953615047691344901357410212469761153345179963587803766154809862226832804539698801662245088555785822970393277029353246852045268231106315120921529839840987321495209597441608868276695551580489874705308634443179416043975335582801838992510817072299703845399966250283535120030869940684741353526353393620364433187069630153929007795748073420443018452840935854937501991286179943314847899523750988503124536583715030528939309313100996167940580131530797962754126445872426383879179276780766790012596220347775122400640362905526712498918821771043512660812503870767603540033492535532595161773137851076706297885028125447557201298259637672550820537042294287957732886875293793157499807389472306212100036810884134187544931369321794542616155557631033259639787241763331134207121417327790867927487213596227548968628400826624967943078172778919660578257535524582840183469585487087669005842039359551319965939009792031214319656490936384447027941349692797712235704528030934249515191487769938035535669368610708280742261926307442267658114026672294791102375363006456372136892339562210803937529148671263360187377611746564113941586016180317579560352921795327199230783204504196484601263596127491161915107085411642659361270598206510961096445252385359867180877040052193950550150256848730042326197661896057930025100868266196752320975984387139338948528626530593803975062672961990285063766310911234943276162736617824931085824246774665162881137935586510567425974055646438536970547349167487203967182134286989822756932125036659657361469856809748738386735457198461616505783680805815611697346867967134403705443556334547822718056576749428109412815321108047495528609469764022854533557780150656040526776837355002943985987526362361950511347038497135331118008965416831099686383815251455186101915276015230875778346000351870577016651760627907702845044989848337063739909685558020810409280651037881065254763055834776667899841491444876947071100533896648027678115693769737898522219415719338983041589407902659429760348314992465690594919466190066170507723790943584716503602501169934713600429862899900902214236012409471282258072982148406557216695375128088236194373862390052646328242357874637813570758620267309560914434247617634295044076669780644146368145893906853232134998574868189054660435073699426702791467578008087962306460780806485433628873467760971873334058590246004617794095540072257541735442181502188391722613610055664893100753443723104892726286385345598061770228442144420375739999144344492966272363308387584153870141825028597551129791746531037095631134108649251807720430733877851573193192287721518379820904276987644635334700891856138800931264005272548659074476420058992420500107496038245990738360578998284910904668054393349307708769285539370926552257543046822146265695317233781907719958140220511826079860125684218133791119888301168116843002970763539246876990990903935655391086551655426829812747243221635158436037477956744913238989917293395086117817957297782947757731811521568235339509760941289759017563371326398030120911991997189058051229894325785590326963011228398889979459112591064497331996506409476503623084707024345781665343773977638250530918170632145201869079123258133424524564231219109289457508374726940580836841007531560803670285360142579668973773033216145594264932187063730990979658714635077590338370529611188548023261882822694118787386251902244653593562060878688487127290434437509584008076945876436857619354450036829870602960181308908710727614953921922930517101763633269882679206898490482807484958371959656180814366895164944650599947378579735159191092906977675832375760591835064956447231447602844078002288494467737609435884803216866988322749704130676816864441080862529860948497285064466915404239270029752202485996356500740269702354037091524583791288004231228380678521587396866998842893512524935705219450112017602165274670680475377683765444537433354801117519998154862191146004721215307754803949573260362699380782031591846230466456673564640967279163184450925545978936844263031030746756480481412143970464022480002180212970406046783566998945546995081256551630861879381798217037029758160999440514358324311665931732589432322123089963643145301514502529401501670156499592462108709186433778083737078082060484282494245469675610084354290443513208440690105013572609387432701920958059866128297415434854672463131737034367024032271645855044389520906924521698303105064159832093652332456839888905261553312025262174200949094417103912458514932927360693727274324224154303140578579740857417570716409822325652651070522918860561230564319067546979476765255681048630534620673978178835338115275142156975170295875720164535293264210948103849003655026550458345793476894949752875406418379279545667596369048039722862642208754777262342677319616120351912167641954538469155938174298755886642644619475155996696922133571784910210031547002676897369197155492946383889446989473945864071181695116156888556265652428765031206665679493013608875820114932568416879193806449132251105690841052500813830833867087506213908198901165349506084572876179038471942216250244165488899956622863800567833857509355064230826123460089710407567713286626961021119454666035023481463133784511532906309406168778882962798592630996708846688316840142617661773617885236337418614130052176305984471678184248399584838716756081192579346540096680448056364125155775200374942162506986032400195845665055116931747462912735231959642849178686591903241075586108591608875316549433557570903658885599264657924227057484817802643332361687209275927447993435057343566508700487033582383991088146368504984929215532242860655474387368889471777591921314394080871658500975094058659541430405036555762255244501621689668017867158420761942083216696626272576139871789047153310116402381880964727807930803634995502505386343050187210511485350194824053152439857065660094350502500804572368063272177478790961766951156477281460539761071210631332346152296204675963492677268799053174900904746622410491770827359425774556406078904130118380350123175011342616417968836007911841821223618065536453574041152175770970382463058767366549090070209546941515418563369044798294802826726190807723310957768489279284843059538941389608153022844304994272888525619542964664702694552255807540714756769967800661109460947802530727984620541317581541558012353309318044132579616286778131672108959274307179423492739042185531295859781845198863600549645872484218121355973755731222710955287552327979951219494795999302612642056932378377885859721387780835397193728685681483844654119698551598376242117542871803260971650198998866960969036325185425827881186632790664620432842477928446138551949405447387221453629720195701776157433601578525151018142731003429428728985383116967383593130713778742057697785053637304277793103735199864457108310240753285014931281451178066267390230866429479392480111009229169926044295282071716017964806260727474330034472879982171725875482478724720514826915496731205183219017466285688402216865061877661398088517638177031229091943077181406880418352551470059010757458444861169978600448265090156422181193571296934072052436765999358450811692504925948853192791964340457621107778567275078223724520641452170868644916371021640198514296366598218182159314069732731410578847344439707626593109154354651475356749861119160553695655053234678010321092868694526817503023282817274777150979659882400748849089849446602447910374033100617919961106546454315185196385995662499133134586421641277009647018150036236149664622789349809207740668274334881310361474374927471304968362070174330741238917149393548345340671607192656652523380407674469769665759204191410246883432639800676010928807006683292595947653668727290397180948430210746592099314383101748162429938190621836054665855963626447449248106481937537861782023588094870212982572502606767440351926161459506860894447319132952113894340404515087641260439599318682969696199839024094567525640571964058256219680184439995530263831948655532946323889488302014217810727791459448340192760672097347942012660976150600707237360230253824267661647855443150252223784476669135807532996555757708832176812587431190826680687581989247950272157797197048398772779617569662096875353185121958841215715384173673264970249194011605459749477362492033429895464233038673787851204638997582468515395669274175358446005959628766614772770984804550307916834388064741252668476014989909178296549073275526924941476856241802274297563430220381282710562426655256894866590710203889847230856547529258331092566358058102638737140158528729308609537653944108344087042050089411877032856786982385974186292219178954133216767173808689500398213061919762838226658337117964893446201535457421094634292501619713098829528732598260849764839693745787006671559548022059865663319618283758965169246856774616906071176697140703211115200222356063119137455633828955609853592660226930151509255833330341750920607678761188604241409956229371463905451176715202546834397402668282086082897965196044341433249446144173024701511526786940602974854116534984931448742778045896224537001338827975727242863445602011998429238131463989953854896648688587375317929556961896652275543450058535264336250350064776605435347638243113158272214258771077795499544177545873696447255335715786373622305113178639186742833209022473539720590795419670901308567153902845384926211606699551383233015276179153187588182593256735492585680351852524125384661065493828149373503367123774948439890631000484248141262001653715715174722521151423872384248371235668625585641511682839973657193084962698900026245283427253880360550485713015508606399126580883884571552090761632316536657457695999953460651428077415326768512624579803066149473898665456989227100834560692488832799100974187087779894653428585567406745031721845210777046061113469480052011494617361226057078590588870076546067803087140065156546544463207101376408472458547089603750056331107715503008560467005076482289072831311611657351724782073184614853468870749526784249387994818668256205023783351267827299445669125616483070897170712067491289834416578220775579268006615419289826984949153592359920669730082507190109177606271853936495811674203663911617618815991323713399641456469684779046230158767219686098880018218337308713049686853515977121601132864082900556498045062799449228663778700905551099868397898431183925278339321191283634523523348364247923488404854034062168243186123333893885200104727216495131969190536430844942022929579953421660294272306825681047613025825453338230024077856440655709499827480851236782822543415399166461609873196971256114100321092653199147861781813622530889726853350487246381026849778334401164376837522848980549801689820290400674592635655617483595711256112688241582541984034635955005163566009148666067969717478115794464809525637489113489720508086243643809102128793929880025835440518471255530057209461537492383487439515757445499690895313007988849657357879471484138106818238526843721687947708319799325956246006626401400368827108490585041850001202660089642236046619170288599766314461968340093868719035706553292612220966953622183341708095809557982462467800703407077601685674589345745397490658434440847196224015404303608469258761376927746796001612549583900175245300836855122983924215464363696280004409461467692808049343533125309378506117735134702806869076424175742481217823725928740239005396085032054575000559818032437225290349782881328815743939873243856189789153929723517342462825354558998840914790575126470531563082014275002764046741798121483321360755263579483892868975452285326755850944090250825623454496547250013128264200316667165782562886702444724342750320328448132318103569761254135893780682755965536777921628262973359173410486789016219984785689753195423460323508915426844666117742333457238596525792478558319654795150083565204256626400058127909203620547389309525500485142738474997384453303002224868460951779959382663781024553446066413790138566761979963878257774560540456727211599149440787462136108864032920002511265195398833209409008300069535211999846229880062957342312937040215455700692022813916732172022824909000437683816043976834977233690010884816769984446732665754451357342885537055400031607649111782275075017660810453578345087950383421330554653392326267736461027484146673728227696858959708025378703034427528914829970358314043215528078823150232963599396436464496542028929126509231799768533453855822094133455372655176797566879935446240528935364869800043278049649934715588227440247266344610712004297826618038794001476393484642913627780173087029010428916647391715693573185736756388152810297539253315178319340289668080388680507246390701321431663320357013034969826386570484743607337016825968208810274808234757053267564416042204052930221798022972673915988455995644730013971579480756281730375724896084422529873218855151684071603350812390279300092266929422352589420040336235038302608272879387549447765556377624800846198233509063356387099829023006605367570075568736771494207061538546441322336441236833933987918104107360928070302971313560143957023301258361650605228527483555467250888914249156412451542710025453119851046162948898098002771765282134363696737297225790498226615172525676952380373872130204227212456175544802225701632127701400233103097087976668615111849449249705702808533048079728750871136670832022807824636486088203188112815246029248402726423029227103207502071717466696228121808030864399142712857880081553492716413177977447613595047092896577043431694651582405520579031521746718019627011619745115862746918058403808950482436553079292357693949323214975673576701787979817682153275339551526336766173342534994694926886896611648965146054173844341145940209047750232114764436211033478884576597744509883650069969596090153200028911583866070340695553034086079427341760918953877608252555054645348790585579052717237782197429690613214959140862280197157211103666340340267517270896293167731781319138288503764527749105632743963532516654906081682627016795594297933437739276338389099461223358856617434378991349633440090479791309144045817419868811293747911644265821299855685161778433120614809210950389107783823037447484423155573913499808013466657236291248083682203774847058127656925924883744813353506735368393070822308934178090913180660150930181326908217791878205315685452334493881677756937845233855857434737675075641008928846885662515107225177567197375150761234321467351868109757207302730289563639764174201891394293363398160034136688327961832027038245003593255924381547529606453143975380196122382881467630380275734617520952991125441671725665927021443965599884576219031890753436164334336041668495861015958364050992647373965644377428228887525733768750065706711441952782547111137017349379305739821876416658273454557393794751697777421844261929015125863102717616575266961166300240082945081062803051194180012298761839381893670026041926142653217432415800209904300047534099163717014190103930729928344764396159560742845381972486064292027944666680183288471243817829292372372159473557003187083160700509411911200283559884622667312845412373721652728892937468004850730009131949988945884915691209269340149128998548671110705500670959818980884956569501738747176501961420842739739189788315981805740855072911049656214678290553892019429993815371524248071249310823220152005270904906402692881928657103328233232586822433056400839507918467274052907853571132998048042506481759677340357998294803717419287034707513497735859403691758696674246103943098717916345605671594184801629940404580944398523316167433180381504118884671536623669792268636466879766798354112956858105220059636905028958819961929729146145916759811567674812684576348940037662188409869554952555392355584655141222848627911245052892591322197333112284882187643467155114884697945731042799531707257779187276119287131359604617474155912276766332807481181003776550589604678440753848567844161416346103523700167992037962954404185023475467447747998366848094581593829513115259654037654730207540542890936527482184577305904629681733220285155953274340163899051276552153457993676829259179199421221973212941430538696511824700571255889371331845744469058136800929546388675453264856432842005815726197592550686866977315362881259476106255108695172926684637984955626811178019040224808022707650208745798412492255176553997092881230763453114959515152476194995989921817698334804564513214801145482640859194533473720352666948043121499028174599399697198127087966250973516262038426987483912202710002623616545870237796070237441395468709931937735383979827210973851769139320949953176932601954745158671565546343531516403651393864444889320907550890933811970315524951426324781104804500333695493447918243846429255011263309521210794267835308268789235863841535914341321447138418658647904164087092927327526067785588287601266545787713291163665576079784469069242404875580309135704560582910066295126139869527711340915107079938321195571611497538493485111418224031333828354137149894368992797316604057159488847655590234718716611090867010510075763834659467820862995529281118154145641630380949449063885951872470525245264305750630378220602896103152040412494381126944402655306087710009763675903167421235576406906356373904238020308428980080380060225583049775892575161613604403645047569549987008146615685152550737684919462849388759747459189153561489545137912648412787915955260566115677090777079403315490048136655748262946224435317591939074869052116798117052977079953244031469638856921071985210321224097123430101330445927510938635632459236168946432175042388979048457910760591346900815754962833667293760949618713015384554337264569205764312430259114058075923077245206525472795314593013191750305506607520008938583501288438860828227888455700014516870638966461893703422300803484003588768311452303786458348937916733387764474902367700949546653101580571785688140645022463066680272692859767900112715240423992747063333548462727640606683938230780224433483007194953266978002389438508403393067662400070518557974392204871842160504096425749441492149434877794349228061500156672409726249352357857685570936541897667406169654075874512047275383022156538627944247095190858949661139054622874576966854713228104501824800301860833007483329962002170652679934888692696043063283994262703556099296487215847862784741780196289733449267098928988604347252089862133273153868884338436392401122649015449510156181217927889934374820468825474105722363002403480876067945186067096246997344775146712894747588700480683678510312978352870269930145917313302839940704995950205754555024040926633148518902236709114063549917258743848771531486597940817919915348818820368842260668440326407747534287848718039250939259895730993343601075191818586579307677681626458387607428099876018861813650500051500197599266001332160611062710613810496591460276406594935793465881644551829863465165618405664010091211444945545778694772466417680480969989220445709575071246185890555165818829528618188547985655213054794406988275362035002476166774400292529362347767277376624637579333650489940524803553312471697394480843517109428583351225309843095021326941580736790743013639320348947778316418030285457860362186236168289710077896173027655130339784560604705373464061330061306792080627245046726025066923485199988790599195343248600853684926286743199425081672895124101456503398325850826629500652149960525649624111268851384668387952297523406368404795002086734397436230133511525559335928911659948543066822547249664232971978482165685990148543289195527392078034909729114486811004731656689708396839892705147162536911124505881405776500604746514378852347264727360160860369720519347644711923978482977115566355423709543240153554815659837707823780823054590154839208202070591935314836412724040815355856925378196522554334337344471941104064758383148044587025965065622228137702073611043675957692964389702594312027868738532053441403580769009921726864165426971619036212409686528110110647892768503304435644318765130027251669024010511854046826703157471290303907498017795674871660340897078331655771485976308772488145673475113208747396040508159447275335135944165113265784977006864074220475093166985190588312383343947777689402285111802099552138853566516534937552412902239754317061059095834203009117346769513683224026412256760318598714245071315477321284152320261388492831273420656877609062816807491582139631106742320564953677773432734326769223094645144915477889779414844092731177709141370675674181453767099645579440008860801977592417911589078107333482336237417628180077508673577655336099396200696038734965548352166932965100856616904443624307808572450998583761642756863266292413446733201550902716562521886210228623023746351270902775997046485899351954613973534408177150037329309517039644191959812232201091251199156999040186857638024575223772576454321957540639346734084239747610004595023437398110718255130442899179106646296314985320629450885096386440589235041684681600461093681432957936039529499864398965688420902910152985799853487014526893100419332448789492439225750329480768728298865240684180664754426786758091345315577750003622255663829736836583850658194761545547721751587981113928999778444953978848647440995829725515280807590705154171241507246780087323067763382659817866255503105765379017240184545232001401010729503799605887908578237508509867869759641939652493262263154454569355136446982045371391450956566278717942649762935092285840903872784179617130905979104395472069011120149846490244753765550879255842590302217487483032874872122045582417103254232239320716255356603866871869264507072411161212458990105859383828326123760603429726070720983346222704309390567232158775624392975512963117164807690744806895058194725224205677624681116020579527889654746297035327210013184906229180951628488164938138546102915676412845991841794992181325067313361483406095358692456884912120027378323679571843506570330494960588799199434811516242127273539866012708079215854655450808931507487647501232096645146302385235739070779693426987736841629726012511291411938428505577024886957620095013683379034645230456247571937037550072871661259631279107562955760700392337668976009711294647586585896384587361527111861132897051630320989151204447962754176283146956600261115728304317165393425995367860419350512813197638450038879138735195492859963543224046324059370658761194290577289242399628764549333742835425391361520040003734127683054759585127276151588345601226774869772726919204844955617513025648542535022353059806727771937971857227839178990609490187870476708415066670324787113278638675537716682906236124685598235538833378530250655442797833553357199461071259743020592892185822576681882295156055140166061536982176093992843456166642202417061157717537672307868107973646788987558420011772554876882112211983646983602149014219992973017574316187540149868091034804386051618311610078858664888554349100455028795813481870081539515972464904912111695508572074544250322419053127035613118102040625840240958000431137798213254725426577656981301039561279390056540780905232220391144570404041792468194061951185165058373752088517371089593692096656378563688615206992932856511175901120461914929034774546426638192966819205334041897944403492161576560237224192439637158306869054543283032416980761622197465803639581315222398041254643453509096776718168400639865536388703552515142706363902831549611937557101652995671503187019085830052065694309313139839281937091400585725852238792223628945454169886683785578439426421075096912504578002477738766971065389991870042957206042132305464000674411070033275188879701231528429352892993614626234773238076539350141416846580204817971937517856447646435618750693715683507584842247159581412108381900353709175845424562357466032284820362239994457366815008671090484926303729234442022396461444027664238242297499923710186466378617098104509888518437012111969617227874313527757600340831622733095859023528606910168231138724541581069648526730064322433234040169852484574432212285245795672047574235176175334282950415721884450479679700471566677571901315007649549776042112745018183014597280164803982029622077811098457102141644808015668699238656712554847308696640767755831014980078120840950983239125493829002028733297291354657066863884151252263042363762379669824619660473011951980236090440732711090133529067449270891882667696455371755767480700028601715744008264235119348628048264100325384475000342902885252744694326487832095323194657595866098525293546061470344394830381424860920250521219227630085165711551886415202175002505406062088597234630593748336014575884293426721986925977962029739459877522000594621433978084563526631490784185457073700563818158428058585179472178011638434622830896140560942343341803990522154167277252858556862913008444669758352018714247756607811292538011243636248196227595956636275173465441251702124985218619467011400458891717827784855737135005028615585467307317075968193175893808280368138103395404596774285895075422150209942546611242400591383916632325250942549865967915073696581954361593079773387048151678658163117629058341158856722837843815457808874661976250432734944330146854089196228498921046992974994724096892940705051415697006202672258977252010302277481754016887010719793998916456056458513864647684425724501296004485227957454630353807383931989391956279135611692406910707582459329309082081240328148463248650797347098203210107253330445847406617526145829571748083642582542108759453219052759889344966167762730709164071871801867387664012358108993259776193306445462503588497643512701903662062429718397715597732828797356321748875634626415975625522223811425320154642521021719753950597751495918466616731495935403305005778122924102034603228346415112977603786451112082293381470936155986915979203515584959909351676686783898834915715227055088335703295704632238433343376713257225833089624503282853601791926699358038921896808495509059594003613778142926380634361965156294165938020929988493634114146546531347069680089824089285765178022195460377365066381808422977634590174284373319318787686193696661031057256909033994641295769607673988078947246710100240697109633706671611275055582100280267072260257897332671110478609512439863835407105515625389142534725610858192626371858349353428645061854938662612071014472673438691856692129661900717528722309014890530823913026751449424998346356082565066070801413793200008723817086686411755311932834872211642937988257371020164674148448801271142642067212398292703047126778341838049372800437821587926083601380536052850410474139570158002727102361053211088424079629402272872774096561139630718063343445394411792209562436098543027681852455363662564493628881860309716744712324070095721045525532849620626433597552969038300541591137911127570494554378273200993391943658736364930830624354454413136692480988601723085975658069445082772756794777888243531864472221107719725403388909193946671804223428519830476772485462091315094051234511544533937349870702061403621983732300651833817207808388567622914629999913920863487738691708607103926970315442267927031389673475487827396136281300273173111152615866599863493977392181123429990110009233492852190030785934574946915544268949703064877981041653837337186021017598062326934163637536247158367108372390840590551677356949966694973249447885004036753855023382027798164210350608841767220541504279282778495747532011677881230625200656008111460878410077642401958730505248124273961221914073462265753266386821301740141880348532489434974649994385477040828696440860825570116649653985999013320719542294609940309681303537349665950228778784115442572103297025303863988795227987300803721947007471996727761638460228743156377338645084346693297383212395126150777561344907836476751496809493930218051556674132749534693728723954985154918303761800252191616223409129226478432727564201214336910153225777285938493323126328386418915513464903329451993407237595632627693995996461326857567193581995235416814608316246207726797729269802857634950810727670855943203735706468229031391955083831802095849759296394654728505079069178988716250733143542269762347376026165707154652592011034569912696920905341202034092435855330045242515644777720140269837301289450475047523813794378387435923699455966111593816763472767106586644252051957750796886999024526643483368048700903937099914621186303715859046398040213174642274247474699388794474959846043916659057565123665442982629939346328035194934440144373523634429620020377991164302437668915998175958933981015816109639575236634549913638368228624146471017002452120353976103814476956943753967329752868612223482595380459157617972596648153632107710692630107394524288575453311983336719394837667445387076506263652960979692626013567364042455097044120024741023021119664116911998467817629803067135755297469190106670751344132730355578320359559278779217551353987995937646862588089226977549830037178643788438691945423647301622933701327803726535079662789332905014905889444264962583095885080424329929085363639473509773837624262905591027543803201775300613753358259037567253670499530377732518844075736256691110572662923737480530433969804344131240883972350190910716068063483311088887612627101090668349328668292647229795587059246396078213981861307421263119826768580053026133234732393611861349545679944414675147076348420022984970310989357693981845224424625892295111550420243667880204179646856346717898782710118067895915004091282159006192429236610788730955823767437145802640277819716813044929339543934533432207705910381454976666627181922575262940524894785464504257397320374449611189694942191035222000175529648968587502910970701821562917632597765501097750758010771691182090874169190074292723429469356353600638320203149706171207816232347705190665280613780102453092194132520782511506921286305738424146614929589474690822404792842055999834256280409087272488339444191025337413930589444937899651646644583445035659658369902600433694909478844076876931756658879064651093624010988957981644311064017252504218270865285018358524817899421362872249611120598867616553857276743940534561906491727689402262517035246953173254942251158202366602500602203424655151750729739478035929192260673797688936891839654679379910472207025512960554778198897753953063031252137010808696845666124659997674230309802520399165101735862258023196171405365356275321112604786921790309998511785632954560723623690885899646688086440143122640758505270241592676068980980861112866780928234199131514483116058929098687227425333742786629365477611085114754385962425502299375769096282143209587499114457726476081145006021178800394082785527184357288415842724889434095961382506022426493084083046920294492576036154870180982117719599864701629087762950378762090575229973482065727008372583285948378116532834386248744246494156405375850621407501619086632820071936732854482712035431390616253085503040454865589582373951628825253866818641238249916592462122855706248781956382786313345256730792714470814712528862942064955540897383204409090488407600343308411267249043419701554281061849113333020220833254944685418264744878716517125051973461321520743033297980445077323120891413808429535890553762476917903897934096454164116833456787484848126689004108182169004764629114789389142762085958817361175036919095372328711269265701358391135439496124944700180757889653590598026754159284267073650257075555884264340943381750596724459137293057596769280720514395199794793270489950803067721000311922725165186360900797822097266254297752490198324093995881711477594041429415544300093650525518908732551212455832931762613316418075501892065009318505133134949260753674075111982138159682228673330449274551893875068878918904024835971806704296789536145442163561781970938610754806731525093617192118657069117088734731000656249391922453445915701690860500387629608591750851117193000575280017872590199749493964289009524991520255381608226206878827720601513571131020569407134416227682522871254000982796088730191973319326639629331872632360261795299114172650537064094369262513917398325540042857414974390926292975277463843077589378177645593354609756446762752442765399198200720038260859921922267678944971410209183228360705464002672557118236983797195308107793604589000137902167566870216485370478182937778731768062667069922174764707272181799865015876848620610240290022856922209439330181283409153199227214887864378337209325720803064349526307900593183937535074377660656492693329597914331557130910303841363421448605527833554997016976290606678434194086282012804329610537214842918354961789065206564488133188551850382362650203675970167194360954373177682632315538352628101849592233593125118442619396179384542522668366652370695188077222143733244057792852870624939845774002750010947833995752220614729520326608633794362804799783388106502759633226470192178756830062187465430849900357613942471013832233354515850980474441690102647356401458254807857264431028005084084519611505313167555417984535121606170687416178678139001459139967318076556850828897596175243082577190863839106468440297955155302996251986906984051967461140835101824472186179431006548217576305925361136490306569872566912721500622923572892170610567587280910862739672017201083877327187386089562526765990532426396077338462238613661694037283960152483870598066392270213465422022176530452576445585935331350293995320531953141877982325152918941129542474060194955569113432058323745663322979767335831339783337692698718069294276273399608349959250134850904576279972953772781773338561712809511969667214545071042432647768441060389407279309169730704755423665094466205695529379899900026023430432421676833860950166129652666619828348330628462665214419189956001383514402498129732210369027681488466769856638236997598884269524576000227767725676623506110572820991538809883658772373854870208805563419967569504899840945456116706248265960695365850364401122495411009904678303234218785226183742325312610928638532548739760275071581112429023984520159202741708055391508150515396763452622131748334953406488928617392977919942794381167250691680548810588953648299075722159193740478585049504500473609945242729092002659361822114964954525953866931683217138490415225452131874389880037992991530236940720137300850421666949077920559820219944893227618757415002387642540818593766267279213217563317667361053965262896525675796840014488849175273240895595708138980639644583771825714929168850852475498346129415345404154205359460974861039329909214881436767234593149580176251849909364067873107650710420575685064601902688056573062292150321373179264912112857933995462629435259141349109036713350149599265791702521813729235181959266372570904602343713463079355031543086202980173370026155825042765468337565444492465614397984834018557686169862924144944675668612784005458786929846557588977961702728032448714502880124351560058566291907372116890565754736918764365914476167121613314111377502889436102345712090062884155886276005622671981208081574666076985682462203598252213551731929763157828587325448396382294841104986884514896009107160568911242325782342369345822360789482096328737111528837891794209933136429947972494528591990430099300089392767519694111130139680800876524774399211731538035774581307480580121698453501080313091359187385752895086912003732657587471920717298641912908371147417810128777091969577448471584210512097553793195882020463354154443705680460338517871902930413976560820735699309841870390825301357301139033673524660464352718146953843057820149388236555363597666982039735269860619538807206367190307360665783594756776160812848743614307518168905035384496133152111012902309886815899327042602329256110179142955359757524694481143010269889440452562112138575178115959034491725925939669712036201752294299841119975862720324076744185985143988879560679387990042989313274905726893781902035654049488738568619356359640218885146968681814545767133540053895107186560938395499060174233851324685966434715161100301278738282213103673733687830057625791670944561381758528949404146410607554295641354424429679756814853165032404093508175343310212567292279348069209878540880331882995210538765263807634136998336856673991815480689461315385253374571905722846316836040337766329178846233950091982534498632795765676925396712739263782023843200348716612722487549500073825052472766021905549777825094909165552468003986100309055658504138585379881678835556840125260709718150721363600523542221968967101201533387061785009275478224585916193591658369476945284942514323859621497075394562743562031130690175772807864754267771644725285246749055044965132943688714127219333798226904414958637581080015013377943764518468419558447115837003681754276260534676571679241475090675139948042357138596381128707055257762568911705846930416006768325157837803821346043038020957176464309378550727864677348324878922609515064662982318428618638553521730492677805841193760232701457413183065859080412039534412483021503965054845958536795200369393071366996023159262147940668388672209002786190867252300619122524610171652194820762304286538198324332434184057139808462970758818327604517346468133679862664103587047004896927169043325490918855109781980664345268083570293980990498228451257953608134794004984357973711817688434573580908277684391835267810808746830841014795168572652200436001961456501890296369289775201180726230372230986664486317060797866704464892048129670532342995806638765646847722069182170557857122775680744331741379048454711684397066008946470991550264062496652036508670683258951594573296312189411785886279651493855187967301865283819944676382982986696847859373129838124307871393220565586026319370473188340185023933738227574434617285453825401137984848786925873853927373346047649445930433028644098994073476888738778825924326272877202117388516457617835917513983326612245236230413970115347957378957671981976867253338626224827442165580347615999833534564134489606035872690267575358243568700920313659651368518413752964770031711411234165548752225441297907925616040270440221929077170616896749890082180038847741900916746957914352595214013571719762240456658617054866811502824270115764938105983304942792674288646919112583451948105036839014972337416710322245907040783389538020677468853782371671408347863292619770020195310105878127748594936925140059246022837731040845006877329110762516578973213138779870397301119467570887813095223716274651707255924871682128942944300416312095489048895642836300690506356857293385039746817544096069681875142160026562687132916118510812781039933695751564805326162399342260390402948590595036482011983383490494068490800175702076379875296838765151488280678964280085847536206176512562092492332029928454203912631202303949755000788671127032735180522657870016742695779297820202068792330634440586631105811529992279000387674814672803916031117839714377770021965942248440666044517550084681834792399343495917186507140306941346845980050529345644112309416443541166518643386582691770933302228746140380175582979863497360084920923914738732348889972977195701509355648892407597563615274573914321994176612004491251085981637701699284190026621559249677379239090998815400995432421352740401986889579792485271313572300931024798383407031861153251981552367824365549819325170134453838956489250118380804541620292393720992361685075520330217159855233603040912776211620268362582680840829998514284684649732858561864291822352438646199528269659738444909642256928128936616465131013753046048035059483346613762078838164497605246939178231383634857423969690862061145060545678562286518883312328789931869158315411088686563002183568413117214632139925649867609675893954592471523249291348280690159553572067157146987512509344174401851046820703507360407613945214640652821513707973543950107100751602712871009427898262851458059723582849785160910294781274274612537652088967471151872179755125142456325854778973422569283361198314096515439124271752727742018673856129337903760933518112997512956968945940964945406480808569875088332295568184116832768371404020499050334299247397556461419527169965567048010642969119348801377299729401546933365553029309106798652338847165851515467642231259172472220525078794619986879356664173539942296781825807373461512196834756152012177622409279130711515556906447339373394590278004463545415996933710396257115028199282360110758217649018237346908458669242363514211996445067179598096240685689877371996268839493319091788442342338591009483358868564214401097197716395025119003739096056608473024016534273050286087055610457659706125096961225240825448521474264756424569487617015299037242995891817286011422045726164041354595382384679162039233159419754659357806369610935722783418080991089001909801035457899813901432908024087312484662336820936692065180516074559251414591217190083024279352114985134602386909900822367395920492915166446038617434311043409720081536004067382893858263073907242720847276739816756471856011634089273829500658608125189644644880810460332172233716753412060883929428297824777172307060732953597026476595878211050973257957291824637437628426606104855779778863203925319547023455450742795345535100458861942266207308808617967258585291390290662468505209079997943837407313852755135275279767240708262822302140462000046984672143357306116807745313859722887609253540299698066744760461383725422500763293670926608026895294141242928617459086190581590547309144406188433942596245607928900652445342035766283269290367252055487286287553015107110725427570609984926523260444912966090958124406109480988963255243870033846568286890251558563118615391761975550354867873691614659598468779066140460570343653193667248428467059491814300313438197461902437622961321839289360170191920530676779939841014418421537648148140008006439717751734058774880142273021643198142242707415918165960835213005064739015967061458480168082690861679872942030752975238419646314572629405138054297969733510440141076861242967241877804876420275111806109645297794344528500754670964960917599898081477554542750650565527831972136424560132254066875121907711476361093518046273525780078353633280125637421829031604861809783865967571912208453385154591216271904213036699474311336958907577420675954692109345799352719346134609346146999419782362773260366514998138885684747556998238393801752890680286431552650628938583574901674941492772205332765047793112798457060365781044061590070039418772863458516644349543483391776230528551988824121899835090648051984581267619957357286113000040518682969651278671445918547738736480158688505821793989836427902210825409377707014675642913623173157766189536226174775569991423433929982314645688777731488932069489965768572368946791752656659933945999007913575672306047212176756898534373633122408801031382111849246473550747053091510272299244060620229306955309242406042232389861665407551043181130352127642061165963020210261926611451535039251147489457704972238003478823897348953105626978145695084462597037159520678241245454281072452503599637426392503509841100624885468673694575408482217787876479847904673494811700934774954070425473641328071436646030734405074005719563603231518200655879666504682147141674706803840732706747632110628489666586110260722227728731793171816075682538774729170887930358438211044410735196195144540141221037233421057280857969868007745059792210359338991620192128541190289267324931814670890600292876867280079442883911035385233157312050904761443746137648988211480411650800493844036355189341471488775011890831583400743420715569810511257841189862156572248243212706071062563917170700116496510879279028510833760561005945209769122103815949078782751740494186844392339789235305590709417113314406005572585636538751423485890865417034491078678674464023685538323743510350357752309523638696567566989089600002663520928562363517020867537269173257686502196007481310550778038562925980919747178623620447245321764297437411799499691523629485345707810063421790913555767243595140505951859810223611397217107518516607851150511573746530002673774351094146262851536324929683921918618657965304790673444512681455100291532035225151645926088636544839149625163977672116796635409807708138705451359166794725433619638902122757936716291088434391357867330961570670223476454947561211425105708497752024978920530317059153022886426078398754210374804366610861327449179588579322066830675604130745711970936872326469089607033262856402616505750965529291707767950590257121667711846466296768632050691245872626996914703679235860658555081262108113047567290400440769203574049490707881030545897709170255407520400967056177001618593142186301944948689865861550765340967387251172175982865491310351088428907421257880424652364251290452128604302230417961767662755106481474753777501326120982999592582419330437718853637293763186666526502633460083497558242571447212643682695159087166468924312961654431714277193329076974881141814292787323674759897433827981540316890147428129725339921074521359811349587425178599130268913172126473197125999622405124867107635281588271621180493471920306103779677657254135127156087252059758948677701350983667471953129324618500682655040292318878023308924003542739054014574830242744070630609802081507066915779603193580851034081026660261069514073748317007822728572084534706590773302399567528743946264429898304237993594801373974749438205986674959717459454197963759645537165538207843873050492676439109462467360018440656803889957130595368535351539135852826696047456541798768049383509780327112858625496030126662697663329173213540808558846164201146992433525808797238524375091766122754151790652659363224985951797161139022998806267216704552216806265686458692658339263399736219261664142199503554140871210808875767224377921114094133612763868548115345059881437780759918554011273875362581109832489119206423863645696986663181596659416288911497013482072160905159662799482186569817663188252499980035546532100697594650045206835331879666784029576307714214123839429621634314204513216532241827293824977355213607420322562613510473631214799162369917018046895642036696206463557119210995291225894839296800700128368879832834488700436796370591398155879469844121300710293567019629425322274164852726312982950050679969220705378680647686221764363938683059969309316153062076625994504238664983966505169884138523050358762957669738913160717887981876619056769900335259547241671400813623382744449984999040784703332995807516599913553215671325843252941495369606091754562570826254576257774177381465261070549245479397859682365392445701159316956170241517281759063863489207740583960459853759151307221784047712115935111831305983644216345807275946748476965514384092767922376837775885032801752084566392262309084195378184209825628718220166906105945347752523409993638517443799752728230836339004287243193927483131904757248578803082993379223097905432902792335631004354644727331907986709520437863145192890249168530048242298478002496867209719824004310622020095971151543542428770994187907138715925328367612264134412349559451416695586365585944588449962837727948005570769300520349456644303997467806812120211046733612284763938516361685486833920741496739120551920025135666431632508780620676566163642000592467775428063956405680682878560483206587796227522103331877684772137872181673917908706395082092062084372654767968820863195831960010806146598027704547077747400280231141003066373201838938978614504824883068458444327219995704310686038751095291012569179183788889659174742512288186708576043988921781750963189895886434335951563700920013338136134279000866021684785302807785640619406137408317580662841742001630488938988766292616940825822860354180114377212616936402773465459407293483024465641454697103253981286138571300274987191732095633200772939189858382946444678815835566842336905587383253989657443073065135174666251717960774775731911485592564591696982475478028005909530329580641064758891157025333063020208755130557534630406332637008329246719971901665454683688165058026549910743512220318089886114835868473223482954214561694842616424883355429115197318554830122937635283863039655814803219804140795490558785446009784189266038086928837423490582190278113397331494048854785461426560184895106722034471566842101651501783932323264508650314263855960925266687837879263751047328324349326800296930799687000367629092793647393878649590819060171259511698242461462037522213755099695912407182360553561671276602683873139517819238094774068790871410583180978225468877922932242032661910849114190744770314706845839334346150590996884470746251385693514325147979632560594044761397415075606655006075870402091790382338446183557583097742189295576322581846001563811194976194752296440685386925132581855112506070511330965075985929860322944061386533885364117504006437697497019466991106682029157469629082880880327848176948017752293528403231338738108875475340823342655381884608968578526923522595875764940869247305584385208924424520400460377662655900244505749788774023223573541056331053108673992916993823066714413335632369156598349751264272573163256683892250798857831362874809920862250002439339330820131456115254008827372402659588245088734214594189609140380369898724519098636923526357374623571821097905476497692811600389076661561210669421524746293694597941189982017627112790913774914794537962872011777206821034368484348158137776094795295088045648022425702665911411597198896532248847778806391001473849823473179058827782341284596375448360732070644481681322921314997733596433850907771303948589471170525472449773296153947775715300642219927283182629001755158765305436976142720220352244246064973965223365630432767252725707167986320903752025516579602008327256473847851378428675388141877883078417514992248569505559512293204286263146455912429126468590993064830504870996449057955529008605742151998139527888992311171366903469522198373163433468319152332576782631154677172268400968344932344923003953134981930238361986613377113572549365824804341870732341645635682602891297294408651647351035832209867996319491655651402255604674725456019805342357281777696698038893498448736970807753192554605869544977770484074155906986023176084812234228538253126429322301791040594006913072061706330763287946988359634209622571418534903242035296738193247890313125537920933429215884406581807116189665906909920770801557305812983280179180809246201403160189293336610492859981820648071622647810078402338063206795354797499417016728898276844483072109764372577753046509669503134520321802959877511854938934698053315660310166442626125641766154070696508743265044394873674645989565410834874904637530518714019238413396592734540773739170580492815156991143030211746236045027037684775249456664715186230915457181593552851111907578754161218127441087494161116757580077600247866900659418575378868024382336389087599643195890702020004839860563980914583270880751676572561848213014153534137586812605669310296170583779408358356005892265238850688224770126104871428477343362436415156422579039442255223262953912126501108359555235737934105488133804050026048648835867741163956369915579506802483049410388485613821741889301965262909632482534556142786057045795672405787532099154072421201896667675059061799684863020673322050570442240346065787906628596511876966619466720490300175942408054035147406921715347230417094111036064365162487701862348217854464150216884381035633054589178801241331312544962870160533512693468372170867158622699296508262291204343956862566175287402977779827986946125386797381140147096953386309683174405333846019188508699052959097007203310347309742244404607752005348930845676348413253447614128713938214224377788964601040056743589506591203481733148373637025777874193286955443671511779105877696196738911934642075741436311950315852580921386882375107313298111326896541314799388796625071194039087243608368331091332424008708963038500848602778255234294820954708005854312122625388186379026438742611721882346830589189913338870026255676063803490098926806135453855509983708053508073586507099457801294046073298041838572246107180607460398788670084125498026049156461627201882594774404650251823031991819691275388740382625555539165508062349850228231626866580751250653488269607400728879730663159916638865175408864816289135577766877884037080545123537875539636511950729696428191924883649868557693098135205334556375903962068652994103052909217008387610803143542277176056184617194225019021322758249056396454441837864948477542148391171298972254584617957449251581392148057637646522116678847096210198559385645292260119803266786201069432219777743576217216122005938288879099091062908221952783600055470898621114315130920009684894224316165587681596138070937328648033536250446328302478722927857177462314952047256925522950083471755294134054966881200537878437086391904334101803521056112351172306803660879131871361270211364472546333753379393450184853721479815067197661434449491030795741731454097364007887102402020464855410504900904626175451219980535355958074388358710615348868075317081603938516387344282069016447768106203740172160202384604592093199654678403567567904266505718887081662756990652905700291269834869052576848075962012227536734276080342540499173459194712427123501457888497165469133360685957128884072766902458866636646562162250614335207895797200000416430759223717610817158565114680731330942193727777095421243972994086240726886592724322482177711406673079325167418514955308386344110838766025109110371589881156185297806913986654011459968541617099577740124094563969000293215732316307672774390954992818037324835624325163546263527314983718895463573330154708855727738795344187797395913791593874838543515404754952884335746149650892602571550208172003730820996502695648702805558070703277802903120547509979064155655416508240245491383851495479694646813736703477410926526500203218474520144635593789763333726180520507986721429745691339819612295300870067860490178096430893247615280322125106135688230520978518755894632580795663249790314105869996576259492085519616672814834433107882026368553566472623431271310921542099128529723425476910266934551489608382682511357790849878436840697434929106567380924421303235394692154831921262001782046587174119744581084204205137315958165614718767882109630140344822852055201985531552092635064911663003117992012374610950043281237539792662219621855010670432152477768191655682424917101401289666562362059739640448681665828732281014580606315525321819230935911028835887085358088003190333938323176182139366231512997757774393749623018210727207548662986363170454267617650253835501533416986375410795580763563353323917841465117656837878424405811660311369571242043990552812749595576494796163291963616788528724445671188865451141812219951158766732278816221061260408393591540061997051474855276182640771275158587474651529103988175565720592459154164428728319971424609518912085381304642376870724595026769178655785078646432085143901297159339925697802484570091197747008532384785164205660004164638199799326200041488467122703333760022012577173740854603203292660533711400954521477305807556427969264540259960622808250811075745547020895571471433470653288997577232632615556966334453298586668067700223854174927263595395527996974112772135429840132253097874619039054259586689478414394038419687542908781194786075578360220632618361382876468585111577015293481345639814931119833696847807484362654981646540790137724663723688550767548365828931077663819116627041702241970495228862067615012841297799518482228529816027872369573652414459508406094802664867533321186445234482133065424750828924348902798584732749027807258103004113712383760274779542414069347258541320369087518618495304017087851220089715819702874938781804784658879113007536770512095535033190832351749315701675182437980904622836169811666674772281283350075019990730514431407705491053987197456142771642248769209967916358235277379309915191604684564939323905118547290439088090150979736816966359385735179961189634559591924837240712898581232016712231795300844832178852787101087723826219682344716693640107383581225912743604680806467019322517752203870625630571409211005486507786820827178271033346454273298132095552210175183816937974683857498260622716478724669635613639226984407414073798279151679963226548856315049172475125264768349890236040555986583401621290022809420883058789362183771641482745511064978642099270873392290068791911190104802251438474156409463571370058362194415622054035887564636873635093735785373340721140806985339073978824133133313395080558597812403344385952611116795938295214872083849320604560769808363389609027838803945812357935723169717517295816939487874499640790470350011709199422118167165805043671880796224133108493680288637878883096923680090156200563189741691010377189329413069204019622191378393039960257525694137487409900690643227251419415438147393170173409310546255713617278711798762308633284265025625911199064606696751358476053899232394095221943304959984132044257201605991578793242857725672418111020880488881899043093483411342808806554857052904355784056331143936181274772220340558843541927618639082035057299615986052757473487466365118678128884507819153798275167101542012219325352744733110652611989769248914779817597343488381488781519372032259992387871809605754020906106568239222679821183741932493385795461915250827013351421438585828678706476953847264957908340161299151138091202264027569785079375053731920760378356511051241341716910821231706981810173279390152874844475572804312262052782266331424234419662072534781845840333114768986077870575424555099062443536674788516409424510293272206440483480610356757264625299798098274006583640345731021743523013045624902447839660810391294142621234826693007304399845927703093407658406471227057930974154308236404694478780689412950823330203123325269430799453201559544487428678398796316135681672036299662977170534838268142530259231878983710960473674063116221052480446057488896839311938391985540476609731863880132250241758668482087438839988703944593150648386374504567884567834292330267745381320116095366834265458559846441848637485174629665308762103612527449287180916842652773624840900481285381162157002216737500790802777994502017543136100659241878617449913538707862264855476423503157257426983356345017951512899673936406367491398189831304392711560558327831696680290866917519472222093937059206990540646327429344573667530203702183407168594706732215847955825082998950010760124117512144250251207575132193863353817615244038847198421789257960757313661819943596791950198035865873710158266019264970759699314912835837818211582716851671322816345597758313354654228624911038807418988207799066309705769974010279985413190106393634878944317009462762219532660121939739464469625167307735407087508083693892774814612349575892232489286051873256281367249612838203354368122190021340714076750125086283993090362729935224382300327636244866076037540253125008290513297274264770544348993161023452407219944641133194469117581508980938692362487780549947236167037841771987529916317634069677310369502549459010286287352608137008451394077617694239108244556304973566626306503569108663687792026021859038969340108297104568937712622376506064223985194240189751569083275861132796117220937488081108664477446265808725091256011616173251444330148551924175795888419730910139489111985179611748015343803711519438756898582129107485951791800773672165596614893930205215174185045966682173664544252437872124367187937492896241464264569502834012858095644909484278283048767385038481792331618605888134807913498376479366917657261619255515785857148561367968529291675995670987860881973561181965432065213115602325222730916665005858307179083408265199964744052093986809219379594900683144043384391517579243020971860014471589562772358594896728249488800874709760324626074946866372620687698967231172480493211218653286134405011597712995727412647909655959824367728522980907277614477786368297964650614058226725122074012998282077411584712454727645028876360157825147603157930161123159558386404045046101866799620311463854895868006915200338553438989186414006306881672158951948122923632401295651281522907676405459369760818994997676041258683545906269918301332575039723746228488564728675977677098515819265962202051657904502184405656766509546049335381342250279492219560672988706358597704773719563924369519800132012024210388514244427917849428400864097078673061080217969755574860537895950427328218005290688320688666899339203033057094738540960706865930638757585463028794112677906681502567576994110007318291703155509280946068749252582315555952648095486185004861961817896152825999078632589162091917137659106131709239155067099491902931159289665323827277777455907378522396916395462534498852215328751846591242322785714771490008042552010793765940203964367087988444293303557852941438029996913879142028783709103046080238559744910083547973148000572859842558071136208162936216397312070600581085605888896359051358926246906996380189497166715477809512021674841998060363628236402541278760594321366514823138481551082353418887511590988949582695617438968904721194735537510129446247592827806444403363150742849790289509328622073207419990892723370584142107557002074656861153151763757460847178190373391905076199647856483300331379944998118371244204258186511327335118931390058481897271591779047128820959706879929663259601354774491853187967923780282242230588709309910994439599290436073875299631090052422732706781338773499892058529598253760278737829117381163649766779606679228808998408075718566825633197758179239806983574973691505962009897152334836502470632490659853992490584626326892342666447956103363355753354182743091837724168794411528127607314505948812884565709486792200047115461714986847754821139740752167087864029365393799594388641808058457130598714544358576768409270164684757326097842090546862118227680806356189694284506834086166194378840957943321197102352660974482848513966898958417995246734700350794281482123942333012438352598203860996093308127171784866169554646675256474466613960510752963769664555332985700114397912979186143590964743926960249003912145453608731643884539580320716269156251619705827600668715233477103269399300346541830477786565104697373020637107237604433108385862197585178333168605284476203204267309409965147706781025547300333896307919379130343816058291164049510918324328847790011399662935978217780072966179715083315190386220912552776151392040142555787614424691390108974648220004534260302815738825791133656331881448175280398745097930781327098582876022476880652547980849798904970952108564103849368552767595295307464210171352723177922345794261709641340876311459281015211776017037757478994208069412986734682070183948125122876171793554847375268639278642798659338037803629609566872612470643974881856618663905352399505664411260936957222732776264120362211536209619865781934232740599617890297933520001241363438247164658865873040135421803500099896984909650748381940975255477497205287120469750309122886000289405295945077990182181691939287881807134371379325277044103225305512905851289676826740189832051665158728030292468135934611028429913838494213172510119792461356650044810736739923975890459150353888143698129745411966005472979222374998331439600347571062069419934524880243491550909029550446276570547918900861222946684804012633882374372128236602034268956151279263989162706945627408331100049106600038573539379671539107253915970480506673287004329681652785062992439826987497009116654025424149120726318742430295913082156252204615862152170093496116770962786564755952922587227889139578839172506154476711678786352661568918599484216201712008115640072351630812689821064164240398629440227864060772501469076734845511994698437903860040800218555964113585082157992438757006421521334056088958974098058257712705086849049559204327988675776564008767262711777094438337835310842758666219571348923201016931181125166372805599981539293358179671382611497865145522889635819881556935796391780405789264625260518329852881891215659729505051198741544130150486382631397859833188129387846192086406192589755818259234044633162981730660522768045559017060760990273056361859880133629774566239604231927038373169740333955301170767987160339572928937181247983106695923767025563679787693839811100381600697161318414503825443215807288053576806912813158718362705032404858681365595326055348198525254714343873286036686324831236587971529120639301712815667299391654525498139082618759858295080805562547385285383231172693339757442582727874062706016218597816034699494965501121388975591725137420537404219625089892539445166501562101772570270863565760706079347736018986097549323305552118931506399483836175135696410355764503823241448656342811607390856428555044501457526267505692125330346530960825349685429654949437980005704484501968945715526709282376271659111471979144034906694356309906125728688364738176508539205144253648569723703078353344949026670255639198425492388288274908714424858364565387355690470227155816854586023028879938200476210838264005557290613527064903262938312772758611888333963753417118382010412372821644571967051091015891736267327749874761738115214987366768187530189478190037658746853753051316262870174571785695510004310894095297498794610388666326781606716207087667275447658664605814888565149476989136169806319554369504405846325581640447504388376353082555711087024150402905044086392805575983306328396150028987720407145593334021018736024015086641044688666701884137438228868568810941934431615159239205286311804826447698553137013562787821078418484850973068999147836520024697293068425116676951960139094927947833399941358296289884966241095331294720327854216440480475974701568019671307292028880652882704740263753708209947065245099644672717689875461477596284313386296876910299824225795211501734431700236855430946588559966663547485292551089297819657951272123104436218970014042496884130697642653750917752609175197169246672203095472535741597585524879061221116266757835500337986892093276743225535591834008143497637830647351847710240061875741655010543314239098811587640951603294698251574806059517348659240443720029011211122290302574953784965572581341864081018013291469628410223672413553049674926082306046107883325558980144613895803609051205343698450202272316592503677419198479152536532980196655238309770569518447697894536924777422882261125317064756593380635823401236509109447292234825014445853556691665379421183147637147341494822219422368777760169673657963513610887445844364661685768706359980933624774835849849977700524739076828431954638545124454907609828575060371937718806396124929627611542176650871384421541273816424378974697567590098533385773098748570860632052047561162330545178829797623485267362617230701353298365769723217338444260810613337822127307933558033054342598712652511448637901175023548163266403989170902040532869323952127546236005937999967104587038155236202181116729139260302729261695090564435772017827508978064608249264678758014752077134140439445718590678002804894883915253411879374593280729030839560499774489753944474778093707161501661882644033935539732723516242241284110815027315226092121551075478563100996149518977135925570859663914316096753453010483561582158353051815222644515798716775844121110786007941514730917799679212865644794905574380913289892915740030777586631919569288474318995051612294465186027408277906771772798643574149288728613710971601367197958978378627057272753173013147668197560521333094091057563040436333129800863882275756381144778728995074660172284676419785403337501918707879931251812097966073987205225655729707422686403931052677375182759950146299062974057568136233968685013084876992435257006746841761114683527780072583381715116702155960653795614364618188903935961415766411736233393317930518896909119804653580228300177035131372754640080190910558760643440535038716629224707973858769474479628188180405620977045603771515977398286103352788957976655026964462414664348197305237242687369320310155572033841509535490612373469028913837857968284106226402109224169491523971187258139369538463857306952555019672953453700202710229750915376089578657412955951204428861634473759940343804774159609475744018783904696927102598514505518677988210781045218095167756512582180884868439007822055982240966209079982744711030993568466479816003999890778612045425816026578437978638590586276660150933553210221073786846805536143008204119470576387440296170363012252798461759725293476616846655788035195296783897059482136585959915098180406615651047379348049045059661051510883119419045052163664645234875864303875378942177786858578984682463015292645921310832888938650509689423512594311542709604829539027639904736405511612634497909190637915603049448401141261973389960245018683341780262504932618490592613988391381947598945231844922080029828250965951526007230901608968559902848137826863685810279197400412425389128464888760282364822854568759188119384182960436661153003427443390025323287531370374100560163249542142285462371968718504277875406488890400427888542323828420378635195796867840953031183339158050486462939633480916503269597255918120163856014556506462954144711532915627691854381479330193832993466172538965437943081718000044911258274585535576216464728844472608104343055292662138959197056902271782512544809454242785588606295120335354190421002970579207975862745573132451506137423761973812443333505797679616533778921526748643517017847199154313538869860078184475693924921207527571023072720727275646892671793686788164952066610953491008381246901927153842805029940658446696939304328573185437584015096077269692010205776338672354047612325515065712510445347302687037285731771093233116312256768015309654059761113980023827484493604866923020318030030181975087542449605542429619636081315619123966204652352738932175127402252147222809491800081690026393201476344259548660174847214077782101776793839737996865731031096192277594268755012509373007140189502627453232417579454909552071481944175150512741769625246839810222571320859602809085073556512354276867023853092893382852046572889415459192901038617242780015922214074640880375568134907355237536686554114093614549010511232835427676866803267877108028932257596360677481997625256823234024093208614509097386754621938953808683892357154955305640691777966014903474380179170757499169531896094654404578775127922283545216838499455201446037519874444066491303187242133747375685183233411056537880666134475114972841042384281355857879514304411534961180414440983393247100827756218732872315943953118790348667188125747761882972289190359746168402698516367347310072981081608126701919430402939544946696111548279991372602789935370977050553493831044688622353477180173071531117775403510723677413756343246812094981929195214283504651779842201848982090674901154140689477298321188243359825886026257283675900686268539504529576539666383569736056459876978238195395144897584943949920627101971432447457431869708557419489390644606998456712614785003504129410277128856028596759479544670505260883557257075974601516608389165132620072180100934421306194294493304541964849320606073287511318005961455250934489495058055654767048512478956604596708305264766696923880485020780303314277026133977762002612979724806520907264254173646601499470684107905935338095701126752640940473773953552969725520935824111169999309963885490583355949267511692475870069068609298335883402142578494612971245413729866472706729219142227131417460924168530145036918890617284065961069281530428258910904196988911740379356120803626497688538402030071465418817162086036880178227258021022387697736892161135213566649178646316322386833399547175567885760911645912693669392221271715712359354549529143160592196705668030008465915589453191491375006891033786553987432078476468476821864697203772869615125229973386857039695714311946422840863328409176482223796107553562832134322116191619808846032060850635250742799597449325980867316045398518612410828007089502536941275915863357349174003401777292642065731173124315534437425048509793368567683926826101673776874823927750832787133043480947106085836415850255823071685244579971845971237603896294230137596306502645146786553336770077872324509882168017946278322822961700761570602573681102995158047435064053556354658638282893299931177368357172481867591363894013343430649114469674564985341298217227977396495144618206069400262203786514142855018084616072144309779300200875754486327329488902202573826212848727072702036045770810268446836115795256949681682826553387539066516777421416134069459967476949661179404981750454162932630605206102840291594546376268219299598483158652611433379698180569544231422830877964596733145937803305420888247913451704667198958797539746030845429430717761307464351646820046829680093419165800768388670248831018843203470697426589926898338846134559768661672397807051613754689278034776470474399272637051615548023356457795558486025689917996316151552197822554917429795601875101701108666995908151582455215640531200477924887028947343583949090454659892061413323779471506727268289719754833720344264714036744702328527016462166231152920537751027769312730810430199103144234523449621316108879040950146838428657964613073061481022852411786483208493924758116542120658111282848433200585061009673045058684251313046685458718438635466462118096098223207668950357850717865569902322023971811727305799043531620571428989359461301553945234121150577352013998735543407329441296700899798827958572673182667400932723517999729076191108655623058518161652814003046165065276954727020715413756544831425062048227792859906970241220504163290788163924190499716763887496603565104913736290174971261027211144168104852709955198825481675153029035560703738197979002960396236339275743506147821134680401958525898617677591683109681025726605743776327503057134314371319491230329266436022313837861239147529239899024359888116643924496734007414182717438926814917184944828171136856716601470502086024707017730183832894804832400647966110810103980378787800285226472515526323322422383209656417536217847053677117886684927000195707552278609002368576045860601278759039487601783115924481471250144703836613968677420855377574212467626627700002587462134188604926558865122869017328917049472566617256516051069195903537941886579949893711745961168240861186747102400102914413054988057674261940186052346405129943600213481408557027480676051270019115816270369651346640584335067774342544418996367953587930027983164562013830431874764089272082416042580543804097778561043518556093301459362383109610360006563081106614412070326738870761287533284133710913528555526978166306074174473925275203702175744251805488490229015885282033944602536075753668683679605090921957917377499493952597923494334699056169073153950266843242522758764787774865902725242939542798489972284606075997488135315526386226878756776551057262655625536329815613498860321269983390282170048627655375509952369932427101135177730642990499007674994182843987021363871314393547448852286580585625047381819277249935861296656227288295465581798462090416464917059312956241225977031963946591568078314026070835637088406804333280249410572792365762605123509693163457774822151995660515626274228962227746115423473871682760544045048057790684677662690883185008207712522370328165029968409086401130681132866152005024118566669063106881994518759393287716319508977006077870666277551708320122286704470565724771113365924673092187717621231036633127065434447242532338589550270733447991955879244092588721591911570124488294206854289788963008632981158946950694200679064450496016742580974421335037615529314027824479315562062141674779911781512029859399515934125806410882944001042547481744646149307816138329384303598423386775588832800510940191914153204412635909938022414213496733377474523900922000464719804230108189154869083563564366039900458889279184600315476584955626950873034250027573375588350588407074330219565105569276937140970782778181746380327993774044948047697107948397622725971210884782476440669895601017034182871526593879373229947577543371532125232971595070059746556870626900547857786210635292986865392898151183886178683340520284501369217292667826387851695479492147809116344211511380941692306805941176117290723953518503637843380897270341841449780826518317073143123491501267129381980787795880839927028334121643290607129749374433249809565029602926484419124355605807203238262445776621733237247996438736260088546238875807980523767371775297413365934219982116604401132082508771384178496824457084096607651175514736209980773789426113648491754727950474222699474574543552342192958395509067663370171466901002516151377291881580203097743004375945237130144558735330649588514958980989447896337231400359295653375495431602676719792232192559135364527750644106534901722718107384255108836481956363182192126921556997154197780810638773848923533644783902508389643446797835367398775292836009518256522679531653201110882430925092001328577143992685442088090609034960056632448392076395795899215317352869401826782977195506137482471459816168840070244274147370446869780567015675753836404013745061318912316776807721702202881782627814801794308138752926173973976495046427049005954506685759051037183904649988269730469316931168996195994258594752807228943495216684265642939492380046333403654829787609076041132637715613348808628064842105450424961210864162273033715546204101684757496153205268141973902011157342217496881848529792957692947919507251344637935903406868096870989463490733138082081229498107048053933476722150081709027547850246590816629181102788178239214555775556568878672523218213626945266486075134963581391421674327308668697466647065206794545391195886476336347462637332384329196668220235440760486236747772357536666716835048676427961635922861443633921389089989942127361741855486673921044169977898609076552138762766695814916597343547906149880360249743915877669437863726348394464597252743314311903171998892371054956956849741951815637314243984636764792238601212296851544926665890366517818365713005971845707743741270231142043763345021105424327010535824691237590011298527429523729732945964571895587341317235349296030042509474593200095670555952278526227457298421355407426771022935033059415684739405867969468181597898296167764863559638244527857176231392658802812828430554013125907956599469150384808281927800289580515869873780644128128023449711664846838469185446088893046109465339707772182138287536596364110275220853417745556573297446327182764550825264917382981229927702154715238678198906523391770647783816356218068336929524876193186939600748618871203265860024199204240609828071418416981513784721032255266776852629455499531974825041063936134284590674620387616371283624346198103613481475251183279815157160028070795268657817095390534963711564394032110380964348856116793876335768959322044671451873932949639809864933373467459497348918698849864896332657881283176540736567474004488537390639515556992646889532798502443292896473545379577692671601734445736051752539554739266501508968385693140101040856825221699170830458927130761055031952995650876736145374778839517180080593956457079304762604464682996528075995205619923664036066629040882972417285944693804282575271421358687693617883716991416793733835526552693144949370634186395015159430135519806642319919228968777156502966842488945101693821072345133364570392331172461819843601709115725710995965116498178596922037901272844790982360832894523093348705853879925381883386776621095989861576962196108219793105994925866206958409832629578495704330792160488222675321969576729100214996920317607702077738675964533615725495304818722224543831584405047659481065029619718383239629860326479829941639754336861411187588982090912364263657761356192297497007672970167273525209058012687381058481602500800870457251828719766363826216257864408024294936608959628355983784508972613402091335004055752460989856397678544054339199153877740709039995966291517856013050426851486245031356007188006166496542295145542795818554250771546631281634793252890572827496298090085714392830025627080427485512770473678731391990022019209545710169018701130872186876539657749106479608334924039860667992311430346426748579053606573530858094468528750405325952129237626747358201256394106858858522137245983147750893297896945240131884343896810660294624444587377101358043089899281594015962412034821429252482586669076336675465558987628275583840870399994189477473920139318073886898227928052408095317024786183382797256715363088742385526886122962980071872435950288071578100639447332667338717776915305254371219843398242561823382236505487407446621866396049179682405792812971209185574765297618022616942204161698798271073934507942373527263130466927826390270979734063350266519058546110811926132579234797942822888578711973204211257493355494648703213073740882798413509390170082125086904348995808585290123186081951053716954211201760866469058509622181744082685262367903033705703648200810164444074351978035746384438256286861538739779236655565049567681217661451031183656506119409420867003159301010927662709141061233349354751360947473044235099103515282610438372929842420896878870827091546097781755272485961255740998135950315297172162168289799975034329248006404316283445868339312866881923037167843450560386599829098816894057337295644826558056261210716222674721519638674953542229347977203064422503105887512620829338500296606216708839744337342903626580696790679465984609290571300773053149323431722101276305497751147489130236717549309545442213662843800991088522814853777351127006549438150598894138839498224555563957612618948243522438330086646906688346010409557803594819218132759580204039471254834870394060557246713635300754660928194531108308422990120875575014580345177704675955020407890117168831900601211404183914305193254245679217703396717351284164401711773858985886127594582180048864306176895039699112583966382295842903882202322763872638007264109331955750030938414300267326525297266754443499996340349031813249333773137649573259349276834430182536254031655843987516134543242260057888517083996185092029956197217770895076598869034656703696084116839201552271303599107890454712840099900752038074288981610400902187092402853180449689251419751154843078889721911531349669851541804216455984328599008245296831835611011451417013652844030405900911433325128610885339040616149696241954146769094349684014882598442372875127185952581853295323006282363074626554137551086485453706299491086905783943878526662688549781812046315159574599845054191235610382816177745129088320449159958086053312759391096428746922074668377472163042335759802503151253287000095501392101898900797819566198495695846092194088446221103336681497463229894039604760957951695640965119689059091402429309034964538521791467228651260415949332744381232858711690347647934777011624256922977060620560712138179230691553751727906982269063630233652144630653414589499847014999400895332688240674047397539299815056686524027390221283859077697038205987978237330419231461465597085601653882595404499983020767294341530264173717463156872948036491110890779875683186577906123924810172069863693945590061701070671039528659424310345412834072980580913917744852055734042912039993812150096105291387767245111353149266217112474119213785040121786238147925188783380073828717204815845672538953331572663727866378417988560302196792163483916463827766457450405947454911268141834163093937738105908442728474865924538449764964645338211952858115204111433797696607807130987126531284907436578004712854167474940861506668127207213089975511437722246676375631569918978118306472392655435126026720187483635526687496077485895634668242203594332192412196994345912354060998337261462446800531633829313361456436630567028056681918145158234659919085095911819262836927092482716372284176171806661321516699074353945358628323734188243971970126923720726661522538197996344503300748663589190231916200699919593816995800977066247144591685201614944569671113562043171063753194288898801417983203214447502599365101165431503072932573676438943775223495536708646993654288083210175178196408649991115017269054166211335843106338456387526466684127162653289650418670803851005496511445774107904327461040079860927174396203882283102017177648285598505885322895697566457204987552935436989433965796906325545732603050847814141682865038303388901135975431535342038615522767626586236961870557466228207683238678129981186852599014548562029576203482409119742206196819756986612984828298323636711434731558544502797915698159035075521872524082100621468168565806180039084572112234524063534441658114332861964636357319511689444649455990471462650765536604874526599995471551107228435842948501828079975382463274811814848288670930570208873480301906770142802619945748042438219544878016569266110983403172159894366566392089952051295944769010897102831517064019419886354583086298116051773858844307109522107870671558523836190025098439325296278888377524401302919672583315678417638583937598713363279020661093819486073700615004231511147320681806043833690502722846137267451354057131578058043698837097551429239707169787754030079420645721842496545797039581198015251063163717919847740820102351340069193950087975163644543569182434690642349313242297356055977071128421516393109289172901427498698255531123291508115488087689205513189139428063746605647449576227466646144465909608828902927593400023338818362955091290496496440755461342655027414254336916341175562184813759731378539830155828220296057098969154513609317994164278616521237285213909494525863789617595286811024008563946159025204466907794846627821560735484767128635228173859538481441648681659386793493807825928740198891016544520344917502592490370019611384211838281085745072158001662074639944229900132043192016593815992004522327262069066339859389419397007345263776907909966285833876080600052213975186371597802470451447843305988836891459229401787530841543771254176856521180525531166703665281930454926661448813190886377956489602769707544646182638735145131061024924326461769137693623594520198116790038702841556986781381881104703735612077132986024289021258715395851894822390833235492763457046561923953777738353268790383159395061416106537705828802326880879571073595497737414120712091245838586970075610670962740991707996786147592702811730893309726165889912017016406054320886357446645960202478304115788633841536724559380344417750069942670638214856406925573161205797894874967474727291605930113274290367644716196512371161018977868743566033413943613565765542406714031268539442836721595433759538712165806889869804691898616446223626262884364656240095156677128669844952297719555946907274441678099345462236381608315407277935642797916422143184670338631154236360103939006922447086613634230138494446798317229948342864908682594276733521067322246775640277609446149109211528657600262424194910690142752267753927187993680219581083336036714818262482728272224854430439898746523911375507632885101688750876325746348287815746204445148883394243292866914709066199126038360840424917762233572785876727274359168434429972779569044257696905105139082975007237351988962246759346129204064448876313674723386366165762837410700011831323326728646843743646174379906300327489177981128691804651990972895068977290227274190039677957867701542984812510175024316940273158181263639093614947227550089809094745743171661549846992036831797808760152771841058986758847641554183554579786035476766932128390983281492554703427057217861429872638170547452915503700946915849385351892897281180833181288843548732300332016612833556016556288726438315185203627242821800866154452782926212958697849654866656052788328873225206961711676239117537164412045441467209370418985662972636170255909150265726816198864964463764081038499940563782588162469040366764037909517470091167350792675595456090389142062170619745020380161268270529840991765309764588118506492139397867646180742738663539418543898114321572000730002487408834731699538442381607192782404478172076007008345990229339568433804298120154756609900622405692896124600587799975292603219689144061027283764534491749019024214513441568720336955853295867723664780531690426876278433850746203863268005872657419466774779805661276592266611454434247780604827193030017905404023385645880070486946821385209995427575020707961796941698352318609876115406548577291798584972209254228606191175782057902844607873286808928461806565857110081312444111239730804874681030025233144960603640840805875553054253206548952539114383436738434803058976866744305957622807164983622992235978377711979895346399761945200088975061232615296027472430022645926629716634926276531622710873713062305391675494008142266700539404713719404388500292556238456415017009834455071779450831926539554365917244635164070052016213255585785641645072381954649245548044560185405387347635750659866215171734212377599755021110406561186468142629400420739520149724101666684067663353992175766339591123981733770185072718156304383312372160074878601023397788940939249347629887516857352773625467859074904771122271336239144158596979931741323748626888260525383744881168281420821804132110543636797387038909442854919390219714371211952394924870467227089013309047963102782010347990858784746529382534274944025794489717526674434609458771462349465925116324615297263158267544070438458601619780296973146480624903524031290748537383137334196020160072682470275049923324820288905061734303651163875082544315421479796885505284602510061732155575571514464698387775405766303938801946869127309104963074340765808157881307542755656203806421288421020065765013514162388220408787151680440343983050412878535483277968089295324460346069361885925085735119181864641951044863380913139230542792023265236074293947409001518832736957066393523243514417941136141240270686405403199974054672089974816849427141346853949329436565471788910389181437669400075697254656163455430322395343685696340109409586996101580658313101747425660902897372644042172746455873236832141340383086426038293257726033654564757756460529200150229273051911165837129907072928792404997693667871796912351876060158051897541959359078149509918130507663797132766593420729534315729488602725922037719784613225417560752232330520650170870159535807569750005884951045012565331608766352890336357084206031675569483037629889180545652591294457523658805350103973895411348817321432995356144465427026684067130815523017673434247589369083929752740650383909162032104379927902347224260671849698580758927283886688024514340491795794570925467137944243384847015506001802154898542182322444107006667979749630996468019616212082047266103064690090789787347542429903521459303320185562578047476855803689526576960193483277798330204826433862055134846259159945616841276785797281425270909359378359715168158502467499293654367134117210854876863829765862555303202826223170439843344930679324446043517507037682185770521634781310892079373878478991941501137503329048552849375918611372042132388529157403725327667332269723450489766610183049782864924543184498263485954814586298103977190188560602307263437667495035465752653479123451496447463769225448627660156311579592411106476123114087977158534659823981937041679448766481594853488230233558242533255547144172071912589662259355740789622763717239435609757217044547622655574362783417744407022317075711895381032821042172607703863365477852109712484333551875870339306717536622504739753158774422070584674216908574945171684949949070730231331204971676684446022141995796247229062754193913690626556457863937767243140418332781816418647963993141907495936728473983353526013482847372634164319100716439199509938466108470795422673207576670187518696943105599046565322209839796611255335443880533997580631012695627698129225316958182114536224180026654358600569211648579001404538694388383170150739183426050425043125439390633305492002694242950066205471272978701025933900427043532150765772929316416719707570517306173718312421619897428947303874997346530087442971057629390504529048241031990686293740678640305007672001063797183571550102883074748223230692328797251687423355732568150534033400377224589656181529519187097544454946100333311394277676198928821936596213635746850346139604907626318592784753004899133052270807684823563895840549397247541566697444810565758867386573372578565405897014804749373485083088126802759648240981454521550404106658795539056273772527271241664766315529436499025709136759797165168219762835948824745162085032887725007219621087406849231181689277778770912472781558192310177932886848029680142900826572362561468548146416462249649487693273174048035787008203027268449436243014109511825149941715162459191999619408426726026352474122158730062798361899724110976326425434420054175437223309658372949514046890656275991249455618964970073590949819365256607684583547939155512593235977279022436412700595742752909335746711164250869476194226778363987791122664953151710442409366913205639799004898824350653889029298277573944463285964257150114662787360442421327953505729967693307166669165785417802089924969565805150064552207941430277315725078136329014011200970719513889117762755089104505346141792311405836106766455086805965946641709095679304540408070048026178806789535981075293091397362819133892514884298125303417041675870276376682765056468394130377975532729343187244222422605351691910693967756466242222969554384915874545708442909142888043690328762863570283601102380531059254946322544752972584015582586294227908062867153435602785160920253362296122627349367335087892898762110384720496689419092305415266542365586120954272046658902128839201532962558347774285501590407733510999117581574607834778722992154574418719257682084223938515741688023790736435570080656384591833524441079864867772050918323805239058323554425844384013140821784335706848643635360855854293707666069978915432039387891571562224553712759871788014357915160579146474932148086239620841961269627454116049118436000520491840660368217806896254290390566112138805249372806936176733786555454124487299948326281750765405383535002293140428253008536484049550763841630649118945588278608885403571205018997518309318141744783600322444632371295137364957144910539958127827310628745194677902658149249324443709571992735036076729392199213658695792102801198925825625564296081772686087596644148140118608762785752224400434727996248990019595260856914136215253659814413357407087624321509389137217201766536041614527067940646007453123053250198865197780483860409918216634943090472751930745301288771037094386824790708190636885898608957640719504384028734902440468016441808593588000374563321444436691390961860420374125007176782174411867972015100414580457052738979057368618943746635523169482299963683104045026592396880043510684695235728433314723884936374126513197878949385862249326891011546843529703221407557316175864806245569054122919521445410317273954358437353119443723666434578656475743155214471390412763051653764722272349883014044998076165043937069504170676719217030712311677002933304106266591479975236097858165341687134682555121111628110815440205711805373475717074894821771305916167408466684834439646169887002607275923587338782947824106154316479098857688178016735545046447405741191447561068040155170826862743592594166756453528376456069422306059847119492366785802786739611076868051920909963382974518686646295766337607352962318612298893390511973430617267844502206883361552634571241852111952392045628443012307209666013200448115657767590140557750050865027997378408923457567362342702763807010566640173646624102479631168641540808729632952430486270920733444116809555870457017293155354723773058774625444181837627616563877308899929704766164706331177115946595651317938361710881725903257397349150342671224876535445789678035942741122968444883340884657364249876531388143391015709631684814769671847115206217895916044144808883601617602313428134360436425015696603652033280288984583944426527968990496285314138376344485890877784536175510939854175457174203024904058882180426994570766353263932614260825979767006690310853599223347118311389369288832521014017013952778719486335899296085524442579001609828424024124084944630171661472647371701774328001584028371137474963513321026800430105426907755798726874517803369524474281776528369716908154625678900360212036409355199469805715884832609236717830609648893415094785291177863047232794619479677346213392925767993201593930177631180092295668181533579931147985839015660467295738585103847619411354960175285958892901849505663782185010441393297450513749321538065699788873039484977754556233245904052191828716834967624241165351204624445470696065109364160291126977669254643583478977485450262689262727907323622631510843744263520503759390821677356646603567878463632155239485777770054297679653137644884032987027105691019405796610245162697980153189083127589567596574774836614012626414991860612187222429359985846359081117527676451329952401599324711218281081510171741542155462354051658800072070867387126689789050062609271068019967715393322216816869720480860740830926663953529022845367509409774016890090024282690628684249729745725335720442906441466749213408026225802461549644727299634474599854630670974103493104524850155633914753414916906862251644144046399778083682925418087767139920232007201166874229879427878743445742557225808342491077759794442901486726791095217298874207051428197233636177424305617753564532324298996951183320234937874723903297698896676796653281791538458833823914418792537243662417006409409069955466634680326425571965629408922544422222093601520179248337937388842828638074758595415923569046248282129657734797262907589088308287431682373082287127304768244456600253920059855927387830003738414205655005729088907082646658309239986166501107632334448535169719117838506899039865264746917134432478069666977654066999816372666714466043839340768025325875086407855918257523723778648766691403112751671234927461350249834722825512076296824986802092949555366549009511490935391611073739623555088004978877638246686171690374641474898721941970691409316552974044898039245199119270592245499941631772316770024068771608023516148063347146514770748941507263392090281955834107590965373435166104518221724463479065488075787573930258858893014906586883956830290125831545138547665507739677264105587485651906093902737688564334299479502037075514694221775476660778289503427845948246433531273527985274425357875841299667558239060138793218494971577697967223079259558779009834305806200367961143125953542127043484209068271725204197667083708208069069158931526334270260204284381301788643454817594050845492741189475787916783244313177425195178023121410311193443076747616371806067891587679673313395286111409270644692220479789425149004894169619803599191172055724406865451872824175654337669647959801051709991304499621684970460099640067709131090444033011419869880975624220381749737402173945670194785001932677235857041575479219925044411727831112125881291414846741714230552355690445296811655906055228902235180126815146266071862300226972989231426801303094145542175540370562220642761679157154791600691881799352260487016133955557925437241375156630738117873872613824085583849173073831747796978365505018185865077074370880831555456647945692627990573188331952318757641898308680297168838090340472626410016492522048257894831397191052427749429066421573381874557113893769690734181513093634936855043293393300366041334792560907393648751890221611841336121888796829633262957664080139494762450429558839079439777937707243423173671924079624359419899916899092333513079157250998572315936143652838708928158495521461044204080492132886833596753448196277922183251213584062964804325876134550202241575831812837156814077920250045888989898994020083799506511203813561207407988042113259186750062612479889762891160185882779508618990359820353161821100275146173809533268914348119832715061030675577106204992999699368754034814529645762817446042867287815858506940554064196065037396817925348550746979592103631585910045653496340239142648754547784419690596175145323389933114990921082537597222333440058160330486409020014397518247900292854413151049107550686429296667654013499580117456140397118056973863476978396495147946114538175569149818357960115976120906347408556126916065647287252158477000614994919122745120771373433366529838812221554588225605243162419939564110163784048753883342381619780688496011196260901947470327531212098796987356099534321100788262504323940192428111185085216480004309198746502758033333976337934817922580571304924640041251018504941159844879354518345582649660690707121879112498491047511627288768822009208973486923336973721408144094385639796662832066578765615295149685462287046841312828719600414435803819578376738136905955632764348885872501129579356221816351443078806067022069799255496517428699132552814362582843815252036479303861631148837784560581184081736131532921931098523118557147378754473403016067106114916963304869164299788314536366236526182709083571141831200128904972222691425972694865471898745218730048439096919090785942352784118860326628580873538008581407240840270503108990216288797550470611694522970468124165489578651996761902154935441696804198803876363541638668579463623569230355582233315573718642283861942055829053042734844202185983802721241554678038094622491006590992601862289585474231428202208499755454639170272115639395120195920719036359548018790599788043770420805959286443918916731105539869347258959305494099697066701119338945097138631706218504525909564690398090226327108095340943627667714737384603783468584968472209501802177197834455326629373511236911304544702317270797501313028134400123821708289018234876434240977733205973483465309566337952750702369452254073759824866925781995891422192549087303069283488725326203516965322340304828507589283216636298873547135885559479953805365625095574709614407108935299844436430123921971459345860797940427758264023012408803336662730112838116203043282695657217834282024183173608030171883247502938970175942509982268461042912889110129868441422094664373612942068720027037227444773108108570292138568555875244424748881146695790590983100204357799502053368254173589293847718760060074908748353863513893294807170821288106057379199579964671460266389986950640780312330623929371389555625268695308504859157872203600638097549431851055420841609939099037863348037821617851034382292831188583839976868410084190554354701267735815545538336792495130129416108965050690867777637124996405134955340844779791635528599553752046619945757754878410116724635413277084044195030070335820020286592105598297476487534403598991024482626943636596564544161870038997198626635619780949705524703420085816798847686715532171683342824384150179740300838650888948125690566799799619668107097443052469498285438997352494017603762895705610958812608235096129025925886797007090536393006530638093093867980697599726048100979765977874022082978353174329034093423427131766127699075307819743106981968803547063871960214017057049420276715804746038878759092723544700528458180349673743513577541545515026861290012907564900265400750282876863483702669806997491549345817953281900759301511998408401783303805013656171946340865663069396693719029985623785037182213982922166905187211838135865591181863808519107905002846451899992853496886342446332386357912845013575600455998409524821819258268931975137981804426943650091064490502689337608802298321540398464388768170544660810958560254117831166917444333384986651118536475599478246996924689307984792162579241896840059983481622403092697407409887543312452952404711727650774873299586074026718669529925559928644590931275711063175966176682547452097817220251211491335038382708765120080593926989638898669211900901193368222136063325580017604252381693052900447573735221427512410603958748291347325340861897417909594136637963622487343625025703265987989436015840685245211271048815776235979469016439667756215644009399993830631437590927772371439985773256160694211008738594223645144435582067800298689823375111807466710971495242728836705726883016550384350058907661825283442515191008482960639336116663553688191041144854174708539250103352916771751086376769619952399791815407234575245971964379565212062738358276469108573446459009584088311627273037443598382297484986472451830731818453474006296432458184676794766062032344461151606175801940454210459364060218601372068867443312037573781348568637747783024849082150141266920086800805170584812551571072731786585130001017816662583098449587235824460454935434292678699256570113621649126939145226535968775305449927332110825166791417882912684735369379156826845494648875479835480169106875492099229897696553518305078730369920411297565547255607490640710613153402474156904741697817922470262525489058951100683153772379435204351143234863908380310257458865814976645303850652755265549226011462319975284807163719262864977070339831972578880200361366871147666933210437345267217455685690592029127302113654163950096714839492597134921651683383751488784181923584319718628028798259221729457082637959766923852451299770906013810686653804946295673845574173146656087025503121385649014899559976270797146638770848003300552674727240483141984177068463750145125440564716253943497823214921044231992230774027087620150490490758649783173984656559627929255278058431861485744018704015733524473104222862090308034517906916696709155897346530594673966194576083731550082512121574833138635663596603968104951091886849357546987224036649218249864126418926162995041518377373755561546526254831344046449398941576118377912650684985116558743593437076379503892619880516248677090374708412457341232820247620456991020434152424431528752168638018643219600567965272123995997784474194567408405064429917781880156030369535840353655290055886367688687864388123635823252386461700585185814130067736389840722662177904059236433475273188536156365941647178074073255266145465770255155129621782404688181630763502803465827285853064311413802750178469628716780448634415199832962587574395817924935121200008005909819980927576347111103420382141089501908367517317488957598215032730167635789309501183635683163234271762614183671704703196383801123554514644227343225080052683363843563878393767444897940389272480810651555024948682557908104882354011230425204849322524283179933595055428663058142243940941325352218944168056122364018384964885240096388016432976401023689360164151114683375247420844866918710989927399482363002431107400816714537137304556089022837901848103555626365399973374729222892057412441660170231841712238421975748063321144332405690303340492373307173155764240776225627859472337513310889511629279420844218094997855258123611694810207403649192221193902353333012240757244695631784914059887146376013020464295958341250124976032913981708810860192224730019610681833306436998920988833873851661101091569599598654914583769635137645141494347416048516592075862911640240680712971044271615991718791936028101087024366065621233540370582819345788200780900026786196236756229733773561162998563320643727919628209082487530197684272111154818013898536165579632233072876410341229260352269434755306967956190820000512053524607432735364046726300639040984642647971415526449552946526964031305819847533715045337415773234470056842200188572196141780993747008217975202337607499524633495701776408757194196742942241661212849884086215695234849316087503418161698590516703251832557092721840579137634217475220078046213370249529527415327932921742570298277778410482235737084358911086157555345547329354880759497573532896554784916733242390408876341390280217476093039987174691879590556235942619559920979751775147924668084472355180992232840637423852651910802744214694777865618272420757597309898664938067215688080402620054199813409547601768033564187259152225712526409959638474281669750435994619840786532177653488423455091280509025768490648077634442245904238099549773117318869367195613063073062117150684901144220321097137088835088202500982356547637129068329866650138559140824523428753259366007834652852828073583029503160148909638842703056946309922108667003981299369333891964478032918016625614410264662863049264857700648723031251658123908596520113386068983358035791345747512590057458783057643261180812876291948750952747654134462262018758464097914043950139329564018447068108034268953170639542710508709158793417102090028770300450537268158075315722450586155804357915281890914876221145505814535561276834027837467655559515369976480461795775351661366732454069924708340350303978489212447794051430778818814146846793778281470380063212912639035769800305854797796670445611136192435367537021471415083093059338616774125303445451848878141630405210291652158970002921926918024708495863077398853564464518085393908961195920057033977012284532005957882594327981758611246467360653155717868584777864068456822946932742080839481643441590810395742241701818180761703217815097090410990580061812977843268334389820530189300592174627996806104414767983767193385374806465338895397123573908861042583467985427462525088958407553064870773421156219877893749338544923154972029680346913563120397624023114570161442434831345078480325606727355481979982623258201004219675484228251856120656956394483929527024380654345976854953576503203517097919284728041362423836135468172480878543724374277679031767332814823821161081458300041891368968624517403327742121573091241616107917432290664996050408228411561800150004817167332237063581779941291372333217557583738765571254581368235484053669668896553653945633994601688303901097583834123016568862765465808018806701271164951249196516568295920346318357841150279682381253440973619457113100325970140986829763977155560380677579578424140884765498257701890365254800304593105076982535572846567180141799402212626735347887739064348571890773471631736205014459903314241117711070590519314507656920019743110773897833959340504380068380367555682405171603356212553129560441531300951619011538904456393104888135209579299347900018631461427965361273905846421453128779287774854370260482476927257998850958249107071050164246365272281416748227536625256513273593897040692162657057766705509505356872607659041930350567509097301405397904030706486405131060183422210410323907351853471858207502432508623596837085789078787147362404567144207925898136473761447177199584133468824669766160801453441743377962534251014452454194345625893141565592470673060556841343430897255925892102482879245282280234380298081586819078096707302145127571433232762506402196999557096355843492883786358164009103385157646244527071166288424435326135732822702428702940436597250771717849259588732757584005485897631184697895644052770021331546254466276440884494477206809164527816995280286420733360969085737661132992397965465531939577022319170770599588373261401433625260210204320793722678033627724260631052483583181179479836898149821679203405414917135450159405573739735234947976069421807688758523966549382533036730602996361501658436308416127361029652828565242892333663911734834197573345115913905341149170846262138880502588490523476606435884585257246443094912954143399165085798370020628003479333014576349146557291268765756936547881865092980630850525862884876794365161727723413739646531247976252068568926613374358532461628597721259955668761738437726313025962295541191721552650341307232591698194121486073078423192906736994514990308871114635209152547464072769466434004662701718534818472311024808367479501029242160803577387611151087890532547152077475839703721334632039301590461863227328742532928813806981223782242099076301227664848059011865831309853537182531853392377002919557964154127551573707536564141892782935084360301045260478252511947999972680902386830556514919272767568659668410148944169512887828111435974798387529181775224881332956699304427670617444627441589655718144702389936492710962385708534719740446632080442845166545077310124061866394647768333222020669326327450370722957673839904581268169036957305759029363256486912423288826381855240416063421731417848909411496584856064676829658719994427321344764045851686017294734802471835889707147985459642868585274950901880209815943013799627822731928012826410592536008370712825365084421372913853021126625519238258924529457957776583980924920167566640124272187342534648238451476642488581873531239042153274421202899841340298810587335757730314252534165053386838199228806176727169805122486307549146089593559608808509415947464789662362471713765502772344920623159504461917384124059949435507228737617614973399380932338965997392169631985145475445394132492515955559911732018326665439984354570488273538617059394853261571074800725733280683227633242746414909389264021656461729540330521131327760695437600842209595537569959139189674878789995857688836454523150796509636343728864940225102682123928707889121791664290208658011552568851747180996031135060997475899708001865225771018452466599991496185387326331284143164436181447483186302758708272002873446315923252265560968398351109317640715792855628997072471928885366656055890326612891815758290951540254142402229041205427700020451061041917506720850285752794905048277258677454241752168585478273669010974721425283775744088520331635722376413038049332083218037969132882387051704691711684295433503293499688916241563808698844575849942182893579112686701536035487290076382886853793658025267033857935901916718315267554807153618565241795986239616417032727331078787102696613450264644454651329875041836973388851618038612019511179209711071908134597610869593022667664172516362275747100375088357720702094474911136193114369023282568277180543857322244230268724789139478354830896997004990243816293652814233181867293423491058774549824523069390177277062764958384429059391923887828173129535173153100679601514632069376508225980817015371261172428615008768578591474302854442512109866864163094850203675423276099419731701181111315409962597418201135155537069927848417557337866053085454533156849114491383105440083245809828249210381903258171067781926933907915635179656333085675537611829745529594269713294578539130439043681962838993484186263315048021956501679481814651343370293233853879628147954637780730677561004508955213109469638690754796984879480565176955824685373788350929934729056283104546254618105985433575416443086070289732131314241997281543060323162943687657319295929785459985885141007052729321820829554411116339478771512385371077238191582959444401089553315347424958414455670215547260907183429732976526633880703611040652311910683220747101133999462850292705862694674881028990261696348594044311023509366232797719195344062643043700065860534438835247086974653974616861855189412020442243484412847628547830684240684806815488259408486364483399458294188844641661416626759784386546984188790650193291221601796572784138660394203926090662924093761862985554370224196215962033925306201677299562939625621515426312451367159821547226812489631805284549775824189868001513115279872907847918110509225398951008713741811889642948135419682274115898513859234715297514226616361420610562834858968029419639243602998492141426627832529624002500429190156875408982628337223143158190024022351306910360410466360622150943467472765314494259138719676484607563690965204070920132909268376483476532450896785977225345136178181377182396004249805950227037290258700404428681355369172137994062907651857441986480149996408619189118724877611820913926892606964144774576274056267820161832296156578418051029725557484006895422929479386795466447599089329034279865347924880381229262519432473995034083987672583694655949971989661065599720956516603097705676096233781036327709242679570939808054504321851203431401651628154180542042226759148426741649894654512652277327483481621342709168670122901002688495321673982823228455422515285546108463708759838993466805152273421808007870273314260940141296702345210445716913584843058828241507707523724968575860454871251266006523359466948876580377130034683379577123688380686948281989093056161924568125134940720633267308567144291677449211684294672007782039349051887761724346516279976358648095164173284102563942955357213864172170494181923360354264417295925776507476315504526360221589982240560522106745679451477170339367869272973605905213676538623896610276977058663323182613397072882846364810090242600364027031486196443585824198215071394498367189966581186668400007465729133857606203640790970921715594664927286548710960691982007189721506874911930028232448988447336108946081130137531791348429620062246714521052830181004939849778210599398283949458779066985644474227235766223079660624678894344362530488894136974346961274455264574167473085807393110768242805305716366562105393742628526236966681947465491906153513657569772248229507441341751534727824558653624724021369738745466554073707715963860195134371405948467143350049544175550361679304857247555019278350724298028399559754632968642836804792938140055366726891122394539841051826490849778786133195528370910744704345180743135977912522092410415268833423520715677465118782115968054430794581146429744384803689983754489524162083667983982164247315949187431752286104412265404301667003348400361115437077713572666024844075251113265607179840451264536232893887138007249899024045639455476344734496425278473163778660052746576457857505772858120856910425312197608609465664726889124502810427603394734518531348513614077700192056337794709075959934927202988349837819693519108436559530862633811564424939006755677948745297829346901002573105788297283290427832597720306727078695694222447832204138278739214411270611237838851662246152359259559753332887521091428355276937595048616512672922574256865863854894702854020523399168911203600790262111949690324249148147382960421207613183768050101237070713026593729749355814860866910455846226275705983191807820753074235131903060413132356427866994443561670781282527029770441693049032924297231875966394285290397816993615266699564060064023154288929087839186687479079410401547966542275974500827606415835596869647923802061263676316973050066715165886542101386123622468063721313768639367974188025817998892297678337854604443653480762438219203152879697818160954807606382958372394678394676618203749295225060766456856549951833995625178505797715564750967704667201129067896700364067501325541219057374592408907517977856364233376418703606648312708910907712464236703615404639216207102011009687210776113800970456067823073639076104072107236774977780200241721973512162565461313557363960043815170514012925970479703614895365284444155061345225020090083850552622498756025986260598842057914055414763117311134578545981995471218095464026088122003527272340815159625122236696104914320024043595840030359722299671569877243728467630989650329999597365744137181721502127033425970141663089135492056388731701768478784990292997784395054313235423806642209068945213305871377620256398641836075282573976614568096366034727981920501698185121812135400348153885833540422255908953406484909530458043156462376574013752271628659586922556037660011177684742029702545353180905580510902640506806507606440469181539100205860063185204501439288300584980201176187643293073547320993373445632226427759720856393573376875458402409050236979122776246345324617088789137146078844606324434830036583766389055160620201025344879170669315825257275926130432146117691274124618051399180753728765573830637766750069710162882320416081092662177387561263043678201140574469466095635459611925182705875064129217229726801140947542983506427413187711939612716750258836916770015332412717390424347632251981863285223560555184255062894430751127417888919117701513983015425815995197652049626506289225038864325161575344969958461598679020894490019601933167120295950008074316567703511157355554000532788755530199739772228315319041445845218753837119901760692423538319166142097728098602996731655013022275281794563083904660487600960948315290584120614616063622388954538957907453191920954887295893093170150047537657495059280324178215395508532819943679688833351286841489350363314061519184260198195327972452155575742479690031144806524854022335993923173271492473473088918798850638614238129506007232252060975168734591122689114060274612782244703639570615024495508949434793718345933357277454942795524625576401969227306260414383692522697827921007008953548112705149927304832817772647746042051061756063086389652372783695781557838446286037245374385116515083845179291142832883885548264687988654621270683808890166157530947025604633254525458592763886054847932713511922795377035683668066154057094060257778322382004724922868618554497971543065482866100493429787659223817640914713294640030470443631080725646565038602800335345784069284157626142654451353812410918486565877545326034809491905473389847306942424504799602867120609714549656950500587309674246576019550052417050187087735487088456140181729792095733361455633813033999749493498616969073531859610000199100717393529654404712392319053081237934978535698362071319566980865850003473511521369273219795581974000418277388871838936772708440688601111514456341790564195919670665022536973021305197503001819495114492179812172623152979867530007110636715449982963625125761636587233392217535882907569715106548271422234381759638007647535038529259477193615185780398667280321620383983074720757278795356643262637055212306374800091257276811212278151667697410449096846979439172871371254191841915174175537083294733396526561861978993934258625844189224785561426684642178969497079312694730773959290611453126705789179626893092260474913761945526939683804185054932561105960097714633765256129828666988348692319772909437154136724460605139503282221895794991486052735093162278953907525497062531764983286908780223331095666108940214388111512273194588673931743813580737819737358329086963246826167337241332261397099395492677725409066304889050404024089481667440096402815861732027833402543034996104840378596612940405048735831788492234639937514624305047263154721425214776984101123768916356649375475628022688594737534354763795354757221138804464607352877065974260309221278444611919282578241541026354506280256687302309931810765637131026359489523466770238540931286353456653362824336183327353548594167564298955043768168233823539959670019575074960987820472791824230999476950354836256680421199100831887578405972266330608423024482057830005096289680790647534299407391345413298177496542583752780296442728769004069254548768490877058584412719019787867577836284459057027325150069413275293743084732670304272550737612617039177148245269222270660270144968541453619188445778254863455142473863085248337898935120916723075016171298910180210457299845887541723215677042938247010539042393887319833958118936861288564064084550222274803927450066863052050677638441257887753134686758643212678059933008903513492179060001338678980626671937411470178460336623994855027348053799350105868016451031131477794205158741704829814875255668021153533730733315222918597297327100957467612518405500166743745987464944893535038435147956393253984924097658932140661652725710409524330345117165366578824246835329801540207759923101779458156537338786858453446474608490485899813946466954023378170995680019640943552741884459168851069193624835849472863727359392945059490674933393900325548634040971588502825236319722536387441784075439863838587198708737141230814320261747981787930109728329002385611485426158270820342178708509074834025652869039293745339412889156791971371786096851655184237815093139350232882855615299756089896022159169278866787861427550053353499917658449579602257482199056609094700002152109286481818229303970683766327221237180810037798092646535249322544865343544922159383652824434785522651458220881688377490092811158014418091051429018854342041717907572557160181756746028694352871639742764909413414640282771188404625106274773537639897962766371205226581166281616537532117336434750090993629530582048082990652189186829263076247819846233845633007146564397654507200539193075309144243342145090183435152381693041508151285902765309672592033695308266595188102646349011914686087211501462431509980641713477000477606749140033172108149738400004320436578059571475656557264473808090459017468086359104186276542736441934053442390949168573552466429705671312692556129364903257632944601565585641429585540013013572529173614036435486423295896149569091003842507589547752152017601384256408868382948534701876321393261203397456510870533881269959740777738377168828497832655317179840475743353584036433728943752894873556229102326977777942763676528412155294600905304388725330523320896114050618543824664104601772749576076462721563845055958561337061857490589195915301458244995372362143277478370305977264433305678651247533516408159532210149548629425536336339961262613428979539859711282337726403688660491304037303432072396303960239697956583284523087778873269811113391031379007875938482932623108391618606136748359008214748940444780014102990739566457248614352690111411387909181506324877466455233175792586951138084187765162354159315830742887291788883076633687186108465389069531047656160495372099390587340219073810504423266001280988155259083276815624748183189489012665829892597639304467494712502221869513045338096285226400210369241814204038676408597716309564932903196008994468249037687958804760906875430408892915045100384740604143846809459344022862185775575630455299174806568409773123644768603739460424954909437504419868883354094111184236482753581670470841609793414644297378429414137996174848158495140980985961099165408322363430046702115553384116255900719022248283449241001341769355712336147942689364233897222935776809594914994122082424806333238119846781514320813985191566865088432076405379942505406374582500674799144702813516246803819686388003692913313564970974434896936949786942128536324006777423303396640355792609761553529014042563336295035112669897359123517766979314639799560632944867700634192436306039666103097083440312047842505755226036644309501307391720017689461254661902830555551318418758143811395606728176906225128999574972930520872430629224374843144482206649181704737425401439614708872918637782020741468405755217766719616092514018115865554778718548208455863313056835514312210735866633971841651878907796855695452371150425781534848148905539003733381946998107126520102495270229982051390688087253285832485339875409217727012978802506160837998973275854692593936140638850859359018791540918019647920382617778383120472647089012822482517138712105247893809688273137448126059356175910515084884883208772937943214302960716066621327357003595307811095416503933195374591496383574186193833938985335404879761503444757095886784751670677015172536685437088995043474325253678219529980699106788879733492321987983936970100183889543364280454106600382242254327764141749955643900064600321464139037804499515883972472250102258456460914770302802425875029642443295557173906501062027728721930787545219851828075669697074676485006964652031155868519244309262912778046337413080710708736534963024287907156458080833869218053409691416287556144501910036556522792188941267926013459569416648140251611103751773174744971153583587437483721863734481387869940053205219761865852886321474245516074536283529564171156131050612796618157451962094215509944611395383505763494547877314875229873383487567044762265781764854066723399692722734336635614897411335309934130250885423111289739828327278892884138263078662487706859575286423421498673386498440276850558956738761692510447291185702031733436165620151234953454946072099661904090956734036490678170595536742139715376029465488679355446461079103277079805751881157100245117383762716471993606617884060509313247794264114024352341326519457762252829410682221434924874757881274939312127389688909897063984820024934865962867716310841452500927123704929820712424727138345724722350872202952009171468504353617841166625579489874837038452044812903497157352428520771435145929666259413122204921922749342268098189273202532305898951372750863306711346388653286262212214444405241426951674754879845701357878304637127146895924350052229664950270140306132522066455317785357152805799929876655419463534813353932284854778878506798620005186541201105386029706621767710219682896974182048835585101434978907131699071248469508283405947777362710641329297509866196492400319826166530843184879291850889475681048625064343404701992638957212871650463044875051478211060867715103972327507811180543408680427045046989522165701517630170842363256815096503290725773771319589662932506902163641017336909088803160760511792472997721731840096078131347064274495993124254455402088338691916524481519248379662344901903838188524532577304976117675904400400002987362863438165870935618781042638503310867069177221016190027952258471985387799656402362689846368325215567510932784538822449146609562671485386209657982516968255869911541401654592142249155209587701174940765961642751072353190970827488815270401388102200846312101215728638629046207090825240926027359483755329356378195341179377737192491569146997665583489073271380576052742034137647731377275636066528940297492495180995322819534003326669053668385539729168477626648298607458940087264654737478438910566196957393352967375845908525726300275728296982710553510216887866793018270151570614776512877581424458829533418424855482450550544587211932460914670801827031880644849985799528682858377212771883963068394946003605811118220662991290513265380244564806430196411016550732837281327318247097858673799140562791891047080464743033590406688742883680255653527679242024832759776344465583292249813711564241915224108385474744319847966275293774516307378878854356128709991458799058092853377762450896800496391333279611096204941787565804032754151694903116070929824202776348236093614009821580011676055308510445675637415554862974673925094193306276172993894835035326183757958763050110880062978644499858258553058812622952771361840223474444268617713626690961091378689965123966028495130157453987722494565388331530510070198718134978311519270996729803878479767701625147113443815241052155424001438901053293182824844306182297937060810145689162154657130029100983880961844871157473843533800720004740705759649139289227780328327000138559134461128360015524739543470017624173813806158458907643888554665667264966249029850883038221487707520264185635819894635398269607371407579877792204663548400128574937371506081649964312538128180754458374539351529114217599902525250872947146511823218072348748699961402551629257037704311201869766791187935704261762781243135414786638268238016536233490785228001652587210129465040197110676735621745476245618975643903207813182805325069985871638084853367786162310917786019650968449518218351015810876094020553515294436974589268271938264312069909879976710908439178136224641078914976804642793994698794035030378159122632785353561849503727831509220938001458240630241441831376095690828125207084760688107148169688486794003516792893116412718396665121383700924157839182266418205164698220433211202940256013621838608437331536072912440678332353096193026494149669904109536110935201349190732598172972218213820285128310375867846969026778367290441802899270200422262553898490086663070215653646859457561173798008212911092172661924405614745664076991193838284327174755159402020091665512883580645667565939204576983070034799467977852619255473606732302498638929027905773780254278898851775373010341590358779972258331354335763072515044361183607466930462646683049408124150652557603035599128592272425100351327113356410489373497203574397482680905601018488254226531516465824983335216082837598055733477519909008236751340577707951448350337357320172941925288831905905353883881844104964479145353812957386896843736169343045704875560584613266834888570848405184269045389735451510412284428172753796613045260206052394996311891633178954101341376221734811365003430334751498517963740555365432883977637544470079795763586030566942517281328668432063766561322948286155117258481850337074141744178338960728607671591109064213451579954311575760980298248986221872485729995426091801691663222412411708530513924070156791200811425276650248147158385305332702877779186019216648965153984436148681849837388364136620162289183713257415732580555762630634472430424307326268699724644015230884162594862624681517812348827049168707520247644946740786796387662428803749750420015412046756334781798150735676754166990458628703136254665826160022662625017714446457767953968801986837004006597779097514468280386206615004117856198131251500167183686311821527190298172348892154790285829881514886362643875006916660141572451185832278700269465260103632754408278612062484076008833986499489765042289230371623607544965346980343018589700279589422733930083195172144697341655056412658783782924762932358522810185526893018947652052215824874788402570564147700769465420625841933498428422706474081763845517476698567381171721193577851420705212096587326905867386283191014731438861195991999719923103071334772645905278617958609371946957951135700518357644948812107284343309826257575304781800902440945884079194016944429932259881381381755323592408108692842468445272319825383241541882171251085717110152208101909420956378675724526301356284872733191072154092113296754424340833320923266648345621241073244783203911146025532858900962745082071052394705638738363091248670967550068112736576351816189958767514089077121639128639537007737037198448407346566982528426438643048402902592468593076962474228081599949070838545763079805399498570551075223474789226476875944740437235195769028043997664470837366134200541024231862235569931404015903933088618792815025655334561159606818064060616412289715420623769641712761620006339024086425096023171884812302300999339457796087917965002066307748504816264279430402001157748700021714239716762559546753418106767065371230973471490942947109767208113901675112851484295375318889050402621020358852482387948329285853822799558885175894202427856005971497990043624515681834354895940685903509613937977528121732571281561834603959185582591648764853182174269673317497089365025533446063606426729771269696757495355249680882102937699158105734967525106614818960203007114873653810122409972560035053014058010067811228388020999016274412011601217141682204264828359459005560630709521577669439220890879454095467392054465932470124277324048034923671299695384807655850578863906646119306036466049224608820325508425907075164794293710702938834968658933740599731756884650412713909592016780050617481828162710580934233321344780085022208490360833772436660146316795567040726043189930150359911430651517737581418210783970084155146475966584193313547217576007979426337467314625561506335195183571992958461002194945807405487363902186092737562835934433635396302875522519685433467354172925984680319366260313258048193325844624788715257559537423148115461958313054031900052300078360277791878608717963548846230935532228810214614139944663296886034953440004169783832011548898347056247503116684008018270218614804681950903275336830686376423982240186213623097091178679924754155736902181667551927338566162273923715469031592965574855241436307762117645685156111409461579036387765288953043807785806950785351169726263276353105638561505849726554129042354779701233040638796272014027814797463373024373532465380067219785591625770623189324487551106557931167329935950398604661462027604191900263453846558021573750917832002125817273021562099040162791896369854634325921507351876571630440991989808547985762359769719099103382692278681980053718701419389550735829283448605779390345551114124273366705945341416278184299650659237484316023970887692455713481475962448835217075345977199406654876710935948069530654033334471984222794850533263901978812569727221346786212162485465444484020629751062974733274261428406341258377458077887074427991366747235190101513985212483992004970491676137128911833466662053880354181806161226144290640800332247925224410197821236064517247319055162949471267290235282905011144971419987640809959289143555851289776994381634269808664573684805260213489022163690505438902192556485502154816497063340659790960708287030133572652196372111127223117819615445996676144257374752463024486097525516884801136812117920906725363489690914560389908798071460378330788289320790955550858797247196555810070668472608702543427281703349817680127494043974340238357668869955685679201780588640853343834139215159434281777201409599071812235938823133318822766990466182950225541241282793001137217878953531054951592479831471454789467098450037356878471511820928487612746866584068656773544429900339443056483383292314977979766558724104325719233201125039578785532015204534993289978993512268401955510560649222513458646901405909609797061552061067799850778799898301988979789124225641134658799022418206728986598155675525616557753477793169548791344543180677413213896233479683915193604635230132212435538221222734763581690802409723312477966896467858818689838472966371508696027726102322761883584459508973225802654172094946654639940301636655273532143263104409433413942180749070516328978753477157107635237099461457702665755708479432539203992965222800976047695774605644795291829675665001646289117093108929178534519773129392537647937697480141120045191826635018673110501613499519761580913097038520352832063862739217327055279911497943681063320604008736308487894667204609206267143382675686010001566540581146272399270604703196194517189905566209794431341018099151333439279668703762988134149390177312928403234687227349420312778194175245164697893047318795522680970610592113382907479664091756631072956962184858524575174708865339949330743919383118763168985831380533334056905512233360391742981933683801288401886366662839493630090419618308735244733775865723465022297300515973481015785001578255535723036279885786062255253925699264734095419163338789851900481156499102988589605212628796577065241885754558523352449148335375549784911490248135684022729996260665605371375908975641842876321718881934738631492598966223772024694968418765838915008436705084571233427573400608980940910472977801505697548388829027254499912223520668945146297699843997912546813810375558309112574037189264400642526144644332496613459537475631409943186858143175336318103800907121850188708424169136794455610141382341213782247075200499712072586643742764373447719639749279930687122014897136549536627246408106030402082869422002151239025455714112472385238798111735954910054169409664822639728873198960565178919562158172632461718496719560274419619279870091797642237006984131119139207306739842237123030435421311284548888325295586944524695677410215826346600498561792386315857639296046944334853665762771775869364886077135477413011394478171458040233478588227989851073661172164620671970915952289392043501378359179421473327646209254261775429800694285442525013609837570140645271770457866841212130995790052692916970963966481385501845978181850369117975978498252579173519999494433046959227107434847248460863074791743886007913733761613560260343156902369591555799884162880713998238395286063403922474892092699280978316889652589226937041014978841607373438858502364590479043054345540436046496961741431244123589965149403117926816676944520399708320890106911673120530442780312413874730549768186660210884117288290261250835987846661036559141730187315484809672175073532387424870170265383695034363669861801992450625963428800571437684179131212534753070231825384473004389169091686059180331538299190926861447195498431509350149893083564371722926136842521629661207062063875575479093402599829911850993568768664199316330922271481679963470852055802696298345334430645213582749959900366888425687270008668941722037740607250131297172501464930435267652970335077813129288638464939970675544650505371549864517612642233408509236426735866625974029685667578940961857323649310278955701865142923896000829386057608099256257637643861328786709976349571719801832707464243282283762820193128689967724134677146996800820402798175219914182063148173074042138910791566403504681225098800089552747014089166643785257659945265026708941261649633096055053347397672605300329336696410090803509072446340990377411040919143287040329571600844168959925294660195862785160078608206451019809148161697777567580908130562096575005568048926741745944826856930769575022874511782611303136273935095112097033773981576715815994473442097089793501845237533455562524733651372701456513074494191841113260094779112463889308348640832969232465094126638612298472254105379107480345388917184292518071011422815978244037893752356831724416706562972648331914415097404080236919668034852090450166646629064387654287523363674095929925945300144141315359360763734674367727240491655024677587826003318095762890346076238554473532632370339742108837162163946142909026696251594601698767111432537507494473688295356640737617514277231513031891396275355699944873171527932424635232892467791718952716324771315844625369305592303835323318840146154141510563115373084380881812862080325674009335873230563023113368812498396079698346064294538947432990745565407879960816689850991364960144870450480606003460609465423208849232163734359057030845537140018725932725227582516610708727196313188481756711797011678126676960340040033402652040722689209981360979013342273387970165644764427268747177479431588169987653996005171418959696457920934000917011478838600160932689235040422200289690687101995428863225243994088978408614942637880705023476176355973044108391157965506020626615097555188224196782955891548471064850222985057615620874437873310240278111023970217813531298125078085243889767836054404056156799333096969770888167435613293885125775846855848721686040421755444589319645779646194997000161153497670258850757839822445752346257235441169698130104395199958484044220985035086229028963136271392406527285119572015228526713823030209552444229733829301980861962305515968041722632262034554771544709617692780263917662615539954081941797620207006913970263509020095468987991935261464287780804373110066403904466373848528298891777065514548516558733592077090084512749137715284638404972639961966487585320365159059322687766457792171656680689910961539775025588355227898867137465510738397568124401446673439096258821224513033652165772855311563705803077592270206704932673051873374000521518416746920534043165327272113459002969683506359319799523788658278904987350524761288590258569772878359121297380223259495435034177635347779595404488405928196928042097764443031872894527949550175805302995259715691446863771322013206944790598109732141720853112892219223294893572050208859010402531736982992846456173348912390299934054439986632726454710165415216450330576584953299586946167320820799857573886550856833623477361556949547545052660836034325176764286305119162613481140038633387547341811052951417451095305122017611968544021278151064063376572625872592206591342358645873584815793131429516154455372228435582290459006447686081770779091720125433760764352325178830808423097475023488764446295671176519587842335495949528712034547025642604120020618902315922689218330303547304219322677645086375083009304189592786088416663679496578030744211433625089750552034030733908166303419151569869204981633371692550056788308559289689678986939666478376697055331589724416902782945229076918551918646123858528743301292251460980016988599698289136914406584039952740962234123021781322391982236665410224314241336510518218757692785204578090393285497838988462929075637724777821199962807159713790355318131733847222146494754646086179086245641887312649664229602805490177714923998051974315037089403289208141707938015239498976609631550958393004598108872421466606100761017491553129696032110882163962223733401582899454809232949687395491752542928340516885004699668284551697399913930423388912365493321872162672255211529756118881137393432941501645992591131786088659717690995787814970003532091642445226779222991109735750789956584012150871660077730314518854235342369862209211871843095996030016018726404740086441168120383137367286673303786154806245268768940955912139267286759616571955384745433353512604484594971433651109483804268583654775616991241130846137094851006917081414352678322069668009862072844593521179116034159685546528662216172343961372671756094621954715482554427972582360886103507122390748434767735748097433950435731163781296624766243590139283738508513980882859818415572823352881716594691580182492895620088476361158363272237243150421562085992272818111874459446988201334740231693380570259753688371972128607794406709083712628869965868185517267851346742717688661073051188061280076618147897677004184756798597004829879942301263650398737076044925314521792961199814495781790276217936297610938146054006614105153977024991528958456792249173831129303791510537836808005984633743711215743052422749963913894481311520971455270475738570484106158038160690521190970113436980854545985258380977219533901363578875803898293533853886228558591883636234842100292761844016540582633516973984206922937500819394207937555654359912283270215153995754549209299421303611557476333290387007818412012386526722447749401711490687894023447622381460636058299307725251709494485561181092022469501483189124833606431201390828623729994115843538577399564390477998872808012076999874952070384042642630307875353435389800151153554858908060466377971617303478641725680020354100924808115872697320340606873349199098466948028566187952876119322489046058942820846783366664198525977634939194326570190872369930579571565797248359010492751635048147737597005207574524670465479834693600493424923534336816334552035697134135037068640622188970461799744245755765533997852993929197893690775470134296748494821600945162195131799018654879577588852927008048604809272231804798181183630847139533033051671152348934623821788115179309299654910562996717031656320461928500636954933124598891415367247061794007806761462447949790904572031546193565082472257659828089929504040346194226148378421230716091658553434843901257628011465876219776598376305638039198303860704054441042553873928684148008350083231471632520331260294421564353829106976693175037085609096177985829854420803058599875344934036846053322788489843698326013068234220082823041079138757606159626541525076473978598596847998799214146356051972666445364261490108733523441299078408306702944011547349053645708110284960016108195566958031358418124612450963715623137137212844172973204901952713656731301464222713487653266818785662362387527657482020722890837502457688083451510980771308540548474452429938767658617427351806733945116122377304358370836752823254465307526297913316536672028010584057479782916475072936955478094228134863993789879008219159160270495833614176124807089902369622350372690895060393850211607610629841751510905618338302654073474047946549308622420448974015644415445044378813689513401939658399829522742216458970876435945238284743064956032456928221839010979788736486445539013539296438419777526244698401128724214734304919755073715592994922979537363520909792046976911064752837464719508706711618374248097457219451337996059778796576295157516714059581419085832620360874305832170342713961847793678769329068975726039336173645275141168701718993742121352876586480703529583403523922617426751543426004574249394759560124981852104042954264988016644024989280774432658096197419348151488534975734676284239832021088478927869522006881008322690369437419063361204665386953181644743380112529185334115121820555446079785806348975051887422427193476060610386191104819397017645254592663226628454593271073186282814335296114071095983901104802950589358011076763386668760714605097363938246604908136325251286354973052678500673893691120191931938879105002868375692418737770428590960761298951753864047227748921179774558841278202931043697971885639068840800640253119975168974688585074965339832575397586252188721482524042067596745776826039395395150229218659012897701149664948731800468497311523871946094937656098498512013099517201786381183519982751507619553169559653104924992903602952832673463861128436282174683412964893734005515478215430361197974852345763906689518365000700773339645225566307240053894656335972248540156835654679533878223245533136100748315712864583966752998549147997097953896890185430234102558209506133424854203510670214721111350536647491481030713937259851663853964303822245193182046371206248220167959752443352614383350040658985840687974992455335425841670845979088083147423132221674093048392843859012795465306571523641568604160349797984023280618497361156380092604131316687234917726819917077405416693059173956258153146659156461425295891768253064090208742880934966950679685332890063375747093816125784101203432623573566933148689831167006928740535295373415676126369056875161991756837136826068260670802915953327641854345294692026467887748437085850283698586983257267189550229886095985948142778923529105555488982599311641318365396688891597304571590566189248238794304952291332244903310483050408437027518199713558253288880422223373053553110039405821376957214000998603443455940671831419462917231208973053511492259609465723992699120555312387335732192212776640703929898855407820445652294010290958655904159997851207548573064284838963006911932723942535567054669424211164722746248185798044093157223386301417338496684287089700401828330102698840526181714189420440076559495521101446249576845321527393964716586246081774234321355329514340279752843746356353697464875159090225012415602667700220877163594500184210072540670371937486662915311490754058194792416310202934339044385588529572246925020105764280373716879043916350313632065465213134139849008774392089888040850887495495249624823350143867521186990054553788409310980735567583760603462780113180647644065052917760159253875206202095433754942067378571505572435658340422502671557649438408496387344216904891347696452345616305337663361660256268565324440853171808276952727509243088881275019427150532520614449159884881968830953123707060298829426525076721383482943750197812271321447648263657072218772558390608223946031140761633807512707690908575643486249703841265680773187897666620707507885451884618979818665814805530162901017062732204368462813238794427867238843339831650385442375676955866924124164454024950176559150732087996887052450299220104851325647345643839796268886839651967310693631711160944495010415426533765442133263683342547634993357153949968407498862932422320886838185819688841177004799155847079458325935400402481975246533399287229827840229396392389376643966936638552472042886147368717966091459343458645590676293454144617398392401956926663518259906333434275842753009752105453883044009873807159213937567853718682198337706501397326808841951432967176528583227581483796962251188154094804752988897107522816433194895060600360259732986602536072888593659119875437000990780945386844097004013872737933165233259776756062116563640180297253079957128275384115489695072885055007144770685726842903518718369267886698875160507621055970687041455455792719207562378911309797438488016979841152601213144850151571258437591813603494814992488954047153834073533003786224870407189266192148710332158007543368002422001270978502788505538943568734187715798995981422266931867624198455704682533050516459956939338337341663553398490611772177609066242818204692638364615045790445590650425535555975064053419750405201656589255320434816142416099914709563153887726691711383543843485164781544022855948347515471086878332454979269711818948313941490558236224417904184408004177582020375154934797152621732901929269129229223863104963692668875994680826325129131506503691996538729653931603144688364992413536086828432639788277357480434903228993399591540037452721679804972049681186374570918254392379322566898992742886752635424832279425907984833316331744581824678932848723154888181342226683713044405163673458497829578602127351989078175118034508421448597014948853818623930563566709752005632532594992008129321772651101975618575061226470840896275137847861948158765840429299454386060022062483235714649325108153463802244200598910603178043074637832899650100101612922559310262906763986745154643213993628591121303254224282596640080262498001379578173849449422533399784816009871757904650214048132529979675457733651598343756431641400064790797719153090991374629090215483749427471059298917125949494306297710879985919319614335733850600578803524073237329829663457240271590086520964157351508860459187972812266404463439301926590074249663221073546590975160194424980787273523925124923404848602559909843137282899648704544351622545680510066834653324885216202057367627568541036345382200691257274091497012776538519758033869975709208013057460340245597473013433642399120582414723801805526931381291952983349484330304514474129469692121385805265977972521277575037410643103866501727293794006677110120826734926737655652522638213739038502585489179631143909263604315871010619931413076740085196848859649733075161125050113185791203774590113935651942767928752547393896273190239065103790606972092141413507820794321462216164588814561226636872271154732596459596927033422289699207650409638602405729471356975778090765572064966800855622017666118003529770933437930791703514208775026551608608808750007420053566935208964472774404764101479621189791529544836239777715368211462757117358545269699879599506008668729095599534712721151231433110448054337745667837282730033665373470478409379611328533391250535447753641810357990308527161149244878301712376493335543071647695942760127711310606328251520892335623987915539294292178344122378182948887885765571959405671287879993227128161971801415798569753977528665047911005288549231869312678557218067008525127922379729573221865861251511289699889843276940854353786103321005857585682061788593255641468456741837163869164761434755202318575544358380015246829520790148812328741322601238822553795085033334555725906963224949232535234553191736551219906124294610131886010435377020796112018315722704787497332856133314623082026378660086450809881185228125197432007201182430163182433113593585712278161439454234662729841455777119694888754110494066388274877229021910386593609391629473175802907336367592410713238431254539878491487455231117780697509929040458410587654809316197617424793898437649968907625329599232109860837214250178828526481748863162247636360489682896346064717788166381478101501859229739138492043628993605552350648311265887057907086525388509212117663156667919772850141804246607226379632730507015126617382587354923406085054017203121317403887845425450594909126328941046362159434214363210951388211506976035431615776276675905949004552040853250611743429580761494728785346916743106702617244105382390766293136470243474672773800798113232137427196386605836710129818770878788753626061193237762352823811500103802542125113683560878782579104810196208145242270786867514556067094191586179151846626139998343314864395044550719104394878986927196821175582040824586573202118407664706576125485519093652083724990389162967665946539410197446533865997716303876900059970865996270148821480316655152247059652606225456608019029652252644385976375859211824575771720022383616445606603842584803780568744021271289223008238721573837153183153205217795228460217899856008782975935912175786681511007570476742130554622937219512170924785651874646761531845845252291749976053826905778488301616942052491150755477018993068286751556777163855902518870511622470612027270666772904808294729784124631362289855668418892893974914934706836775130251603050072272846995173993231260839281570820625280926579269176371036010178657005538102618204290087888878312025898341623134979372720053093560865457908181281387407724130535090197895763933488512594486715902498538538293479426745745061310740225164325387009451729130315147422818080705212310835591305300990511167312111688162510216981539634363030470142454797575860165849308600412206979497959767547008929858075918637789680613920774917487485732137517069580709325874198833380033354281958418554412875873010830530717712567994551219150338813027557209642899656520860452590821904539771704832359642261824419847674742740062069965035219593306373951398125364788484510681833994633240686433623021559967770372282409076053978217152999906970749546982803862872463949135859756063014236147706378290540128494076621108336546832434639230785967741565199269356793211228970893088354466323357086143976773979735646666122168141136925558269152742195760164631343973046887012777627287505610258619939537439252411539906162657825545922933613383852600239507768710741797949807458866615312360081102586829564709892873600199459410544275842885515804785683175478028969993879204520030548063458101709106629115154605151535760180558834836540089051495151166018839929897318847134019839346427264915902363997110034302343871337064840880370752400230858405023309262261160443949207037881210718970157797000937854189031818426881533649258249751267467417073013931564010981931039478491990912274773690858459661282017892341000408198741747099597862627905976509892131820991322567973118732154505935855557293443942400697855498841910263235126206252475732668541532282797455883777573266534941799697521973349958259137108385674442851390339491949768532751552750066062720692137455935443274560483085730310580795096334117953061731558017249986996384449964964667965435842918160396253901281303303195131134062014387960568624410175539513922546926674754617821766896568894684767246353814808008759573678077176427586559648040366894955062636596419461389463525443155568552533552616686137900309996376578808937879015292232352088750772437842165960206468348582088169096252778210683050699893140298703995274036102340263436240051122504567782178161392531649106042798537033804453736092802699947018783299023865277948624911417432121711696864340281164401221488665469002551628790728991365685288787436261476247627523050024733242648384271105031276575210112653865903533072276378233534658660312255868999143216262012183634313206424929883036104794401947908595755708397204838994154053226543647646979575286383427787846702387286209827497782915428610146886107423587004222076230618597938782736731093180135436354567023436886448551501203750729452225087202264014263676102122251353558283329218772186143833180045205393586232914016366247693828793920805613353822150366163553126446782134642632448693774605199402269004686320398020076193660970869444959132672843384262781073727855353019293128690174102187355933206695376502772960134866434203124589231146485702509492118978674474199844643675661976525599878097183907582364716611136336359937067865758429113238458958443177317365512871480827110471153461829456106496680041711697424455660742101058703533441287496941039833180336117641303756715795782917877759812169943389284144681504248178645779164191095061571759922630647898734468885917256436887928634243228076408490083457007469780303236508956511680214767453323326466384094646462918538001645928199539514788964565491628310537614367073768596926194516712832436217996574365515572517729933829166834747986438634255193564804623348982922448044759546869286374680959135571623652537820284491702095427919385921916259938187126179784061922929951642330773662103192064282214884498832388215909688191690956634475793410347177411830766695225409719694634760404748328649833414460736840619406870814615453209696251647132039998523346768220136650581670154729951652583660136319647206683359899486589713827762525190122628837175933776902261716857354564753038671226786686664865298423040005689825089026498209810235932374933675243024410129795001783883790660059423200904068322775299248913877455737502535182766834115795370810364384208365850543962815053446318671668710534751673198059321728734866148886976077156207112128898411595123016281159450368997546700853477237481659038357926838709167023869158161592991376950144291842766048001156917472285208967464045722196438771077074358450111176409651665569839372516678276511484270188285020342220839631811904017533127183597964899375588613705376154246545217958292193609826910153109446766581497017079834891944543014651554683776415451163500305103616411066467936834421905163127809359050995092114425115318386737865401511641141984632878702800563212219617099910216909493734977787179676688083116277129279808938293912485674301300289480928640006413018507527425350097315924721113638011382803333971850727792992031135396330792628717921054097118465663285534513682346637577204049227593107672048174766172305049156276643741904782270595908018474549519453391616414468615000775434336233488554902871594237972468370134975655954461501208729344448460782043909418097545909043064605470495156505576476535632518752578798929348803845194646483777340145977879480451669981494484809450308352134447258026391415870328774854385874958534088297315729173962699692331004305723232606814848153767685861606719259292800315554059128392118160448487540608729249836375769348718001163495448222060458984207080929536426407639774740048934181083721427590490992495743430070237612262882496875105659967398885591380096764829964441718505374775465109751993738268330253878289009285998160516056603057181700116335186953516510198278407814283133097531884089282331267665600944511504627952711596873585095926994140993576772637178857227420918912333879865644918052036095108681812123261639716363049729490038849656971178622237582091172411357742953473911214576909921919840033016865265705024171832278753667623766208211614166201799297503038778111263902548854323299350949337769809125193677566776350183440600664737338635206038982647374512986560912680965040952899873034355940912623031968322569192284131775376147829997409263976542330439866208972040386182906005245495555886679428404595181590214665779676238115223405306931266029946609291702741049340858748140966077392068886164521143122506253618832174177671982659229201288673926348112464222582429427159473392048060697635810924075937430942358957248650926947595416457513272447126611062150609829324803770163948837027413666290872606265507495497210362675036951736073639542403586966387938934240295813342549203592571356702841879118709501414702751118137464828418287151800106562005644315251496063608373590631497328557974726566203657343854143186992488650431615901349407374959534579263322359053008308799742745080508083078417912870204783167339296776714677821308944437402064156901350734056398406849103104154724955729779040606243871024684092345617141936998638242294401273255543640759662943843644361503334286742976424257810096748273304387413965142687486025606678514477027629775361151537813716701020954095638962542298339991336111956822414999818266899837479006782456126404729176968500617644836555242633362692273713392572097923676288651714053464387128492720827965178294946654142835933236338986881915222197382959532671267127930794320187935839880954996733612468287541360025028057164272385429770816383045324102610948296784589616241087613645547027295449315727024379279512329999404818712277876158858631449690213204678895562555741984651956162524627436687186528680216907136393696092081907153591957606100910975187151789731746123716712389586187009297864886824368885630442030634682450998739296578965347642376622106388069756347755876113795300434946067039076767798738530184273967202426388754840030973994111656192607011898431945821518589330855939032824897971283422012732164570992563683696437469874571572618393272933478698249234587985756476536745304449247316747767202990807392197010377944986802667971887627548678586446464210639420427126745646352629187592221719198807629653625223798776612721601920618739495392640108342198507148461932913507245358827423160260415871072034247943107669659322601740902947644635756115034804666976645542550874280031224214983552540186456639749755716816806605815828523908034090601760202015410883593394457732373448308647330098043397060671211694841057786434572121423976791311125715799140004450804758926121129526059460054990829116145637033702910859818612820804084206267499179761866075692437389206090790013862494617954290442109899143155421645152491567244808138150131418544884549357976905797623051255924735942634102530358928421387429857136867131584872671623767665185795898687729234443323602329736820199131380249890567286382412097340061529240380283502578792519496747156550516191687752244109612199797468898972982955035894138882208077001329390821883236803643216697859784313894188319091323238015850755591502215139250978086985076823693792102883824523677497269972292669613520911055550203972616055679794971347997110635260783470165123878481858892306611628677688562269525855599058007734142540142789193952694730365344093902774960828652930348967267693449720240104949048447028577116444884526946945380563142885275682294220679309870578494676038888925259231978268083269200409548530078782790902440414719129711315838374317265972079315628561560678135709459131904091633610023590713291184208464016324732345207174911164484087782070935191952444277045557531684413034340290775170959724507956163922528853528722141970578685549829975214658880778948489472374431958631231316245870201140260551754293144161478995910464507240467413996559968707026020559333214102835333096526513642405337150987315101982413016918568303863705150937917505446202175228310118176501028402174431193168475353893134614589511229609450937285076203580273484022324455111443502839011765212604990924410038329231149089551357244415980919632857667954877498911119968046827927406266406328086770907724058288579360382918491496798961331198942077708278828190164785653704605851856425238641389361549224402067979156606055323137325494085270180701370380701549349244585114036415246454807063086083864867226646056009842751348846911851380540905599114816960692091144557847137243244685753249260068231826973371339828432847144520268742673060948986087446864316534352525505757482856019413424941491833846489379943491255999954215757832631034597638992680965117442251992520945964990117215661942815666799308561479928277886258558050049268147618786770137275219358405706488716772363221931550924152443768444448605228637598099186046217288599064912454759366733131344168057729857244433487388594346189115567663003916307088537307409755874767300713121076652958497633678197317744017374368318763148364997756035855080771247838735917247816404809207319216650337070204220632618712995602056330590282889163839447284431811366791384874053861876194863047008613013332348852490262771987222368141203452010433872236278633716048289187423224382287057597133938514174845496897502275433486028071838013601070989423422537090486291304360874098068218392254067105123232737038110632213839462420532768899321426704155974849099144922528655415327117091056718461093821624699062106733261251025234765836914829528356592215167670270354959063595352017694131772361058015935303258287414565076067149761366650200139600420560905312780291621042660756706842167526066234167436144894710692850188914517069345919444147900747969174131884034254610129442208918986490043904008153481404052640891182633161481837119471937126152791133387869676117241915856328908262514954108775298055722235090299255477888679348530993456044212540225326470830049734031326721538309432076552827664588465876821208845617371688626080708084237998828487999035273419082609856251491723269268591551582282791872045777475817968939597487866380893312994729014372481042573755572398367673577807491853873927665048148798360894216165900409357897746028669658489419189258540306071603258368251457687555446283804903776265033578481663287242007751496841357280603622691161859172244531611733715493206743491111837816030638090989340992782563443524736616516416212215322832410755728067793164391545239075339458872080882046508104730917661055302319778326085108837482431240328705925911880465437997928797789810102177434802616968190798726730591451692888241976931690861218114173661101899156783606872170437609426007666411625177166240338773419672483598984905368986704209699167517077772092520432438014387055170708914404754768063100269189741976478008348916565252118487630050555129344753768561343548229546308793128973116769978142936787220209314705585741050681208306644045707025568793139542117436703265002206821551141513953622344611826080464704889154350639270878598816908393187542763213250332664720550864163563689232413461175713428504310895700580160658724807251500533292854837252621298379555167011293403185165539393303399749860267292350116757290205811355079552891965946343337371394137562404423631894841276471655950266089217303606482174813746813118763545982475326750081985348225021294976596285800251627318954220349344279317185479087474025152433503594294428377880898301249803718581559294357105747477604263646710061729101122110122658974482219263122622586258326569079711244886937774574162523903673445931319676575331511124341158440965078522030791606842006996476870996816728773460720862994551739583040355302719267836685216001127455012850269260265111511643187549103227742609013730653152852832886186400928853614617903054250135588769434332851191978953146392325570223453556965438076547063520746238210417957543988525152465368641100494368373781814705089192442798493122048741629481258912515371902995551710090217573792860262289711160486881395993690109570528332346388429318879871946832024389562927779214775297326070171355343927072746331353768812920153639023096009135708550295929005611913763725322590658222611329739126887071417809625568714715033607367879917288232896901435208803427293247319936533949317855541062900917393207114933963962086599469163311139693812120465558443501285521265834541277876250882717296968927871581373611822456635702116716941296385649425021809616575418748716173692080634313587905541445375983285851424451076944533666907087118920662346677759105703791299461075726541344374690249575524167033728377662184821151947435288321480408718643294756935891283732123508035192923803310577437028764086014341123283118764109028590419119556337084603050582430034237961089988851409462166691607597932215593382465712209666079608975010993122642292626471621111437336055771426271961857619373458354958675652960333054466891599806790748917650334838011436108987435609180960389651948999671256038123650409475537598403071533089683775618465047560102442315507894074699667003805634024355824787588196876874629806237787062974256687922081651249191052484377922421666560614031528599442741239734546100927699069500142925503837701882866429424743087065259907232704185653987600240090624892921787498205723157708146679458249632495979381853991209003290308150531853056267866814289643310590963229704314959178304468892767675324723407218559900026822994147803022911099653520885447297237964725653771023638421635027333901193796168781481290353186082632486694811205873337481224648225479863051686737444282911486464085233023533525881994274477748805274967095177300532963923322089320758831916250078487295848489426498271177861109804992322756822611209815105060446779831076560501113358776683726340456337274068718352684518226029542061487304903116852486476206965331274770562791226071823679017451024397589072453591364045277959880038848108087795349605006505196041312397276001866349402331397563535755406273325245056454128878878966549869860328380734674848949516704652268004744324215454574459669908601737037164462005230398274134531990134268371540117033268799267176217112758331462302767186944286936828943040056570413598167050310730166414076719172023547295666989394298289104030330581555464014100965130826828458512930648474428336296899573686644141507588344922441147642798710359062569855272079910885780465467975522250921312948238037254069356635927095049003591678904532922785792313378889831528583862042852755882954954948348851345606664630147604230784515407303638190811395269270466394578826691068247147282130092039549373579896369282549682539948950690845925057243715434871108181119001556763887553298753469359090690163102781829592384342707421943488147525284428458799297722380121315126413291684802462409027144266172528152411806984327793666741490684501597763824504775058937529472557471560705515328319803509386165554753537924002880280069436639576787532122648495090291793861262501711125634237500896880608930037718963288727135372291170711946573570589574541729331756774360151046283145341502789365022656558101179638434775670806288295891767174396547194717494386112844877865874225068390975785786727091264947739162590399542994192393133405603823617383594440080267721222763130549646715373153658725359052388892501269819076541600851665613170228491128053551991147134973074486107416436367138367408846001343552927597286783847822450319418231285238986351691264440165524198187371832984762250306335964547884395510593218553844368316401717405348264081320008161285053615894357843667379259539322402995850550184150401455024978877499987801409273376589283353400161389021517640292706698795117013723203179629886038949102584138115954243151568852540241747052505649316740219884565630528839102745788670471722552762171774896051469991542302874839205265409199536309865177717463244035771050254975541711369152506009276267804216096417937759456796088265852175506317696232155519283648616144574567186044982741784703238758578923328774149881017613777118961667959255356889172671851677510997124976127807363287558711543933163539539112593648677457019266150478101328362329301987063810117453292680937232431936435523975114025221147474304631946572339371138448379375770864356383595848261407419722559428398045923927145069271796518464949273620468210245325036132440893693252530234399989361403346375895358897639147506398344164886919696579011069282349489794439649014437362140966000867187213725489406824181443488976644513987760460075311457337498639142458014996140299677813342044217381116480052996318037898935318490541981639680187668860722765150379359984058768314448971221350824916971803949902189269214547744534607402668624305586851983816040222814103381304210611342858879322109060157869763996976451188114705366240229526316737658719813199350513259725530336529462563717323740193513536661849280653845164410022505909090017569785598852290834706962064585825482666950931094888453144186267671505923992725223121964320354913954113765322238542801528174018002306193284977971211478975209304929373721378528709958051289814455808880083135754561986227196673307094311772127220513784106727850615906082717190165143793330175259068312866757804976680163571801910209281832054673748352147867723280924366548994752741715158440383783521118009300130464525185623394660795476909510678057126887420539490159647065391800733757547251386397595539299700734714108782922000540024351075761706984514576555870728898195778683385453627233886997793903933473693241617457119121412004249460364779530591248915182390746720069819931359154740537726093593945882367248048893357934328516071104001657721391457085703170598623517899863990074374657392618393127477927166350730081851365137886600886424561759014674830990991764766107267858263243485057459623325659041621360666021632081894811876661483439641981238746595263555984696261983105698497420448159331992158306360149489629139352824571617187275563110371923796024405570271249309973546469063237421489355050916958778035499197585172183349450372244430039689352813615950428209767984908100736164680442051130067585642693945440178066983637766582363836332781838886022589943926327231976624400752216982060465917946163984696591800479849168552728719772003355269631357040243253097514363431306764410551472150591530716471107924503968327687100252479770454749700429896576056590970932526440888898178128297443043561872381719329761896159178346157698495342488794206378575097780237735759519757113444087118343894347421326485170623074848358598382070115742640787970510847035417464132222427086948562083493405767156900227810388978810949513226440994038974384479161443503740692359668701877343785352999461400642387866895927616133262380721301669323938946936437668174490899302060789935499672137598399532545425774609300496394910896653648111977020864068077800205498981420478487055430385249712031030633577027799573199097740131008504336609505254026033579267542226602018889759762480204532733125538897237255556425144452997729931188056616442682947615613172633666304614071592669545653320231735752253526103584334830789761488718192187094254325615355486218675248329234790909817767720065686583640818662700549543675597566416120443934275617841111261178980602141057796426855367916908198465228910146473439061330506268879693608297388454427728299808142984412770218105960263605865335618299906678873697407260450667719842646384958587909897478662617352728239962527922870344026115836819069597915540594820093346608030375529107539557070750798602316988363278694457400936602392228023844657103302091606710333474764348405918359925909062038251230469194389335639070617247284116447244002221219923918197067246955486564526277136847985989699403158742064175462246461224315680136641444951744180811261330766045732590509651140656623345208525763208190547183556118415213858043362721259188199165677845228509122824830143017919838531927447756204180909698360985712206474207872134628500065440728849460816902122759650759317636463765707622937635913060070574482021343888635295698005713194754000328177464060816090612214221449984928526408994187248987329663770443991864376371368982728332418907599719423320278128237018274352021873665477515683733617064234199584252006666216749459347418317113204885127012538314620602010733614469122399486569432421235306668371596038193725452270773199412451885069964850870533176827462596908060415943278459539148437412567887891674718197906863665947333659130163666342275604214491469595709996289696915077746631665202126270674841435181085424863119487747834227131636250941812389062943950826675307677715012270721981843704850891312283705281853258610487450212754484932099393527279776149145991280417518895522711381290572841802978184024012660666387478570698841943443936612780355591703585790514632375828237493028604898468299118696581746930890122997986808389257082776205285026143783800517427178134804187704640949861738600847267708270200159970099994073048852333846969159972010206667996549516253710820797363262179395978215706708139726708627279082011247758834461563952314540758869200860559735406264541564116214088907904369425276703008260284988388223364897790134472986628287623124246181626422030539309358428727474894071551577063671432069980433647149233886674846794245571189169040147607551676273842374960910570226124568237147200717337314426041327685281963396917875515324970070526333863973375135106282302472015536693805010248246527783641652036698587612544025749100603149886855985179143479111767827778795639296413763387245002797292574342159148199312215898981701044822122981685716941069546509180045684751390637033674729004467976559752220366555335780207929395513800675433757926981934821583125745695257841667694708094999119503280693001591927607899071668324070448481341900004998869235012335699463890303701742464181915011651723573753435258805630365444866909600237019954978802127021268537591276881511177344249245918686529804539326515282631056769215059152239073859035963310932888427011791591062033552592446460228733941626649709325405780707931303264621111342765626993636531698257085611177890776806170239943819626887255605849358140557552667563688858106587155703502548104452246769353090195144161724980061448432777217213552068897747292002591789431784040881715235049300103393027152376094561117910270871229433081189450465677481374253174064475998129868442575799651128243845389161510841351786749623075723746734972861143722254087952364896236309780847295068764324865213351901008925051768100441687189631737568126231395781200547297871681937720402834696901476060801536305374804367820122002174238734547948203233527472681388074279880552125224844517601081624944715216937468916506237992464418063061269984760828372747730613026892271293260520150419901638304844492028510784616819832876502541725952615002431710066308756479333015165614761441949220455348869301365124725732276548062806180898793905159806429038130839182112988873682697365949410524467884807492288939443827442594404661960673530476051622565185323529559362124354434887116739789611925307056461825448561408980772409459261048182579814989572135395671260951736587966637791558714947035072565435615366180558861638410394828805177918289411544129413944310778755391295280618782102071016655274468988926202996055262054345178490942141341144040810843905916719660583804821987029681394474745505611219222605215672320825688674163694999533338110113226291235552112144793521963333519975181070285861919788915940603021824426427196319983857811245921326290776032950080057360035614334286328699084426726831800123270905342058596620704185975339844381552981796140147715714539009488321764493163809541673652540606497823056077504613658032756700475284584941115797295704532473790520532250836420812670145105458524447370034569182942752275484997253309276264546119363601501582642412395741090046555564954371146387842747865072790456497882445877433844514839647487442946382741582756588922146181736698570297419628641730140806947582081870588868136869597351444189744005708780695010100327707765620369402404432407178984043323323051559097834639269780193097753543030372791523238418455115995469791095996632529438472366805298148900127246723818165774352624591478697245715246130591456688305491118925616445531681134254769109969001669218049986576430262995453301438401509273886728071783284484873028355197701868845145295883862763943385485328297665934178711926286573684313150692172375736502448196865461095155297462517174587185142565584262727132385915154776993906220114506028644329890407469959384639198956659115362236665874637406750798007558743398230823530489360106378739299925012103857882025137780836577194973425288360233595177988732365439069170960016363611817319958225131798130750506929534545887047542353359728976554578995618816428684820943392642512323305995268823020191139194219911996687636618605065905255492303559408896954855045280432492222434988727931424729413307963452451879786119710154296109748440493471923781817840325870611973103271915862372808599019454788157599683998937404785991861287661211021404677259859019710064956622059883063330475351723369229307228978821998692578704065284413457640742966725504962848053394779341469886745696923425425158274022900089690959602979940948333732480223866473493868106235143654822419795998905790825000193423024540232270307437942077906782395406839641603463403805957493241695925876395625251691789291367973945244354643915089536984930145615989322486773591917156610671819301767869356537871913471508301787537180926843185011657736868347660991733752155788546880345703311317489113889341585637117804767283750301265806817046088674687558002437782304980832255548448963594275549247638237260265533778968451793478709699450806517311088982826004279892052236536813641827070372003076043236116263053587275197535087202249339765123810269400220324757740711952777736919988261600038799428109814115204470774790369405084569218234852582934209016656050595646145019427638997924619533648157306231403911915155994670918618624748290725994954099552884380169721839885333822496192150363749978261331584463038875867053545312144667659792617551040309783025597643623012388064378850407250386351135322206555082402583145053756362881457143012553691479726485136903938489981343370631887650246033108319682005018162065851160053380837230835940293458247653243810105537836168052201923232886465837966904343232884630434692128570068493982273695955031723454048067349395672388556051099675535576384745971997752415337157790817094976769722930001378631994779080779349447360588712431561037777388951581507171710864503690300055855484237594824438480171910419950447911310561424873710811682158478354015824468409847977354352843447559819065190663172670968243253835956158788951292623168199757848811913292584012522155530251379679860456550744288422319214816374879483316049920921934476121741180597295130148071707852028405478940929190430258143388914579599101859802740781228578040134120231561061113446380845854375286911893128851841050101062664405558953561709283675400011784420666948661869868855568032480370723800208601175758799303585393734695015998240379801427652442479142063676377639128726417060644129864876335090613311276388808477284702457154566924326074187763997604089917938305496858541322176997765495843329274745816583580385067916006452234157861478895323875955719669834205530644700173574521881500472594277462968076555218028478741399170960580368101836640228712717755457810503726807165950804036959321585922466566631526980140372773944751891922925461515800941199892400915081469371791721811499445406548520556062773682524269264111755430689279111445822980529058732608844896403567624733015730813142452268817033575304369404191237695705776581002121788933792656971680727175754257749878663582202590577979819438172815573150091539269807215617420238868171811928598770322093016766058910967112026505890988122998940065714997411346160180699339873040516202037505624291692283909873639331631997483524029587422273296742161917235568140780854634424108085847793785603543317664287015672441349513653830957393859657637596095994007439159857898017867474875216247964110813607018773830329055803861768187501086112027152118170289085211478427734965794966515387289920442310830258662249522344767299188577697987386342135550999242895978848136262693250205198244476929745964726732506204139856420539743675001333814587642428922818954054511796495628410179691122428515019996815575801104094564571047562303007709469767673171579979419438640970777025959853656922765598287157513517414354101702969144032693456086135521712131629951597585776861527461828700370738355660936342912187480978430297036398591067088373489777704108528505165850580699131896353417422848616768017230523670187427800243215650581553908198939445593397510360730517024085960553699528402427520498314125981958854390017209001697603620539052857280662601806199165271482192851095529235640261126646715048919067730407340339582481754318204510980770394073624724558826996596686312393096607585224910161893652049991641671347454440015470837488235325346275955324688357106944193759468703145616365175245613018689836321682621532539089135116480023367161928549421655487557873965735345524650610643029107675334747344056480802357846507357469909202789749729628868478130804827319908666321689486720807954762576929808516029028645793104742752528360453417780110004944043001536480508602020555834353475617331949231175914661876384922422432145750878281001544104186553631737788136757043728740857613256617157968252641818330101260364003319357580549070548031743007864239783061594792119721617732852723273727362388926170007243644827100411930325939926563361250445544037827106600430886585856106380677672590142594143142373531197077206355306188756882875556264733657177234827209592509325247660979080200299633220962338898643862573069523193172968578857947714258930679956242915366417986247748473783188112881431022631866651253687744378555485503651957860977333540291103648544177715241083266090887018786306997175736751382631620397460077811083697828888020206327785630463387062177490065329634733740198764245767278067869216329920553112135666843398791724162217700202520128676769273851168395896499712144918216864148686551229728529067015028708759195786687404239935661411574383029824534369785037328262925041582297601831312436494902225326178617059376362001040626880875792365669460144677804556713477030063482330770051158396004524560687549813895257332627893682080290733293813138156980658755516725781733529456868803380800944552567504696240262224002034271024894767730648750657059840906851603179727098862483352057158155436718088089684676921525512702288221911893944564364576855539723047058530148326439640163970090307619965649002659978580901801865139370385682013280402405223349953927168527518833490982116152171255005697028473134073896051766288504672755152509804747021550409593609924225574399562348979784663911153147831595946783093052857925683373684227697687799566794171990221982998662439300984651865323690155871226683807215739189018733564323552815736089401875686141640154681246050979474194223604638857938918683965480262387436283333282111339105366194750201800557053374981203909846319872517575291346645362873312372110710629382339391133135696914107183652807180275782674570260015195290414501785253134470682007453913109930493609363005520021567189707637048045613327839813371580708147073741396476979105201177927677742666038489293253063639258049281336773372516773209381933582942536729008195183152264640761933013342471211161655841403989866772591770678287013935391962384005206266701064055326147924202660501190081797628036761932738313383118707831792715433365980173273655091596450458794152320736336802809053244588728163856749066152925155902655137296211024111907358068834425472523176155871659419773609125917397604150604578605240117697082058125490373546489089588694605270568356381491454866094602454718251539311922464425203545793498101282702828252212346939387305130897293153066562211647269707048040913933771707229311318520568952329143258091613717402232552352142526368667234219412733912810095556334400591361407366398390539831540132755681357567723112684308929738843737574064708891409177212560444087926294856192098254173947320280428605592456418137869275048711995952651762567250768854026792596873386066103020297431010150661177538056569775279806710694889279602766745300778956677000629127663082658945976565479331122220244718166543568318309259254400580530774817307657854703356932615718595856332955451559239366011834456367873413641992049375068132765102238292663808268012978661741326860127597110616562495802743522831926494537845947301063264137708930456644439699685297220039759413524431119799080812141335981629201049171852616219583846040186369664491896638102105086854413230124800143429573343965123574821339797152922106362148705466007084806846164756086411111431476148612582691569299574275122045285600706573311359528307730598855433949915033361977211857452693033265725670020617032635267403279670764160217179782475739900339457459307232728119055261621399930712231876698090304546421219539958406463350876420259031583622264917419663180340021599488365612407585700005758017970425006767755819449274206416562429555181017131798268942001225767469076389668464722752041609284274377434833023915459253895566491114383778230346454222750075584201785199906220826238429950095023115315379034795068884616212468488670132258172194297576401819980611766118263878765983111450186328606425258919947105937176038631016488423513743775386392206950743352292269128409882776265959151246978192431755835940039052212315608162822804626767965879581360482893073032732979801387375440940547793588210006548782129487611265416372822277924973396328094234270605655690267842367215295567917073882560258359977875716782421599519414331816368730495657227005097427048870475822846169701892795330157340519696060295324320542948889045307861216647741331469138896904925543773504175650298291540034782205081872069262275797617038541066882717929683308789938164052600120926817145164333463484064324071404101449792499659575717750671296406871304477496334095227254840878462522466939812125331406728582057604694764988211695845613697720761559057988205576855606406502588084411692875160223331532886194460288090528548549522427705535889312208762384774887904289248430069476943691463788679938694834347213469365712352628128971882510667900293755238285250247620456975469782825812089075015221701151234129161152108681093397547188948863366647338969152912507949357730393758956130736988119912251080846050215818252418732012171369895486001396626696904037852677935090484706700044532778980701712345630725429494995802064247368906796288622792657255151797388654806945405917961146431826966961828677942403073672700203076936906487274511578689945483415398511523241598415864483444300351803137749648871585507633995439492485900065525289758682821235138836933983939626711978870828336915597144729662234989012048366709770137687688369724051946207636266997351068074214717901192541775214431088836067477980902731667221341449976396898245315090087697018584629264770043702855039021987028625086263195080981265436137428212208189004976239587694395428835675109327852354220998967438344308061138926884985629391298877872546992777993761391610091101921251257483830301748697540173243126618347702460996664624756052316690105992519354842491851001850860138127593190303695100594907187740998514275075228450770114838698537266953582007641445266983731715908366594061551712400983706671589768551803455982367454861693743479643527820413480200185192574977991107513579047304454619860170122761249090136641378938092212790304773869326005864203682819982663601604390199551746493092311618464739572913685684975717226808830592566535719400149100098549685809361129946940281181802552938292744976584889585702805898215960990056519923417625217694905250491695429473681557366152476578324788091194893912195100008283086558362365218990133422607663105186027780964093107268594466346359916245555146647862236035978444261937519789149386689633659985056861965969369629368722783940725528830043326184948217095046024766486640008237556820791364496809912281003225305784690431310778673123800828991970225927846198288877848855868930967606870837623966161481954762343829382967222255715574627370465595949035143394540420467541313052797651920911907792114659075527057796685381584015324300493105302271474338329555500008381607797838927383453966154852726534374961987142801199576802855094664886933046997031035095122330343524718449597361856715604145671477875048246152108141080753764543205743626703948785251196698038728458128690923495198458944834018928326692346508157089957850671465393175997038169906404799375425144608112875837345880953169802716967333425730675318189656603671564095858570776778592768542734902853174681141308862719652746810535818467106072476737595448858804503085947511214590979461677242140379664911204142946028676011711518497193438767260185468775738955435002022763492818646352768119121929953544716435918534122904834288596457306748658352647060848977024202255264741828296338415422585227481134288801564457744940994950831215805241976974488787142952920377642162535185718696856396655855667580261566083454514486446712390119257772286846995287964983424005950598197932545369864965701250468808643446199718601269675136851540086430768296383969463994420091295257010238942500336309105334459662398851915775715021372472197127780779125538967047508491056767120507113562316987173168801986433028009324294941902336533455381922356835472759510270189842468209719563026988379856449732405851041718854691084870978145789307243237033078703593456426700150514179718451957680049969577630540144517841920782093828399036150186213486382042091902464453860338500117193813201198537429438945890214954298574273489069005576815782712466439128797658070768195076599185622251177462385737835829874189506571249818613486821917274406923995846602008152983228576973921338889933766473740075060937917386557389323404534648843287336252976344448005170087719447709604161905631014211302026723966693763041149791039864936064591839656318659797662698656865902796126626900883732673294864029212160186070634530685019618231413226738581313151112525699654990487780610898928425995609579349341833945871873244241850446449517125769573223332109655809941084077802274966184737507424932699319536754573092593557122146163199435300815986088877017829702148286327425003293422785079748560792150116790628598658462482001265119087472146629139797348946902588539295043943587024123135148230039360456650813479043246366065308291303535547052876784357297126076404173813905932477546196181133630318765185985039994607415241630043275951746783768893114375124201426813108480431934927376798784755815496893524420166667178982053204422934921655433401074265850399438530794605598104960731989316896378460818478335069257693902553812808138641957381485920570853868764205993710245956601260441519859967657473665328266160269663049513387879204514428911499748027648843587329913353861830517644510852206315229584925145781461802826307482897302595362984397749965478960373324081299701431098926763711159674812221183349120171990145632903412772856758769014641394323586322240748324195020586720712963082274027319825380604030991813216962259574447504401773719659929903450519794403512308092748390770158643246450200349929774205024654773387330090101424828026750507896396718069540758161021184504232037077767150328184894541192245975409943247796117145440806724176859349698870198093651258586394576277509863036107894270806779517869911324388061308259237323952626256831148457039047417893207416688479367344014403629563802572206491507563173791898116562009760609328267633673985982081546130922566702949920351571118404464970178481761212260572985059757044351213857198768507013346029584576146802461214363864713034256423156428224623726480108052932731570793924939921647087250249730008270033642959607338603251350488372137482677103593131492290252741675508260376446321454762873738364491131784689456612245685643718238813263448816058636804506236192776821444849127379465394850549880095723919322864119901728696182278964367314935309288470469088756928272393415102191126225634747909049160696001459585348455404678150103662788845447495729483818184360481006005573867565931781986631251770541660122842179104386719567840858475710034814272968610370119236825111263899588464967347142919237918977003773635120415210045031901563786836788252535712383145449196376822503946085061263251191552786869317714778677366727737850585622602283659241424679429900361290435931654359567238074440003040621369161939626339187076421815882879018474252772729224214292876760947437338709374078210083059884010179011552380902338190579875657117508919736234672601018010292386143661326723138704309648809401981081556014332784809504875452062460219082779031269904584214371361675235329385246665523283524973651636629666873327446270366612795526221487965061000550844965084301903254192361482320327488774836978622401353633523143986877093792391990001522234287835439764826303893109515157067616327751820310793942264642586450126496122582243986697299405396869233135242018985222105852405963412970868672708002613017884019306584034721432989431626996699066360785508125531947465058063322902560069034282092525635473091077620504668797053480210003099133616330377585708629166888039475011103372215166812930922333170791688792817172146787699428177042183161791413369515422206990463825533157274666736536371468102003576086871493288541885559509367685193690229733125519119493682003749745733114864408343038069462629368076449840103135598663648487163793848459059972247723593726761024202515480609940443185783652364469225043732610201040440105075584704720864660977582907464390028238787475472977785802449340752165073916715295641936304789192684096796919968777817180422301084890001894403186617871995357764397421897320684123410324072119480814278985273589627503107411317917360686327878032676332110298823526406169003008255055346828756297161166432767369323186462812730852083201737697241958315864314210582836861265140603123411653006439390765478895809696221355339782617025808255683664853360628967261909192761201324323185269901805448138536750943498918271405218229459530509970832560692600786792482011887985301949644971491712219502257531929252575103685291963557602187629841286167018541032077825439409580860695670450545900626459859078294474425403164824986580163240116598992385959001961541761862844523568270980400905801198820395096761108065608219619019904794007266103991077614697124956599710843196236402004436828393912145620147477296593295968286613888104664123477624057862920067525063518741249461951656474656347007918215442790768546223427091201105307701934396198446916247279751796290461580565796996231179982871702267624005561528285850236302520744337494881361690390006586409758454905555809421563765886601586291307975120221350313471237843573705485696202530106627916414183884546599828984485454391876539328927470371306255318402467747649481327399711658407319490898600017578064364702047153388501434031883626888008649116930144467092589790525407649058651997740720264672802812294470939513589020944956153776696114187647076633743421644544074649094371957502922771792170088742593022140962876255830970089353185534461158249500613991270762635111406263314511574802060926160844724895104741275804855840846915869205672822820711273948007301442342336397453247520103342254543537653532033258231298842930199183397482773746657592702481888749731677632564566090677339090205043430774669154284459179548161319872391290216893444751606114468063344418424193264399510905197390076959999252505936890121486244310467870928428815438672633802696243461482672817290267225258926818737270471166584178168783757039314806090136502866772143130593645088460736042062801153431788381604312836225879447427654803996958849983572330069270508887835905095731361436719441860230270315831077465245391024356401791283382733904436556356801381809289599488733020610098051898624661747614257057269163329204270147097697473455032194506621424609684768300523309413081670833236072044266833580317465172272437159202442428294405203704448345718823608234067429422046934447490589902135115365179979969671781329100555498595107917395309751256339417179588173770750424049450646004677430481840078249578400109762448379862724323405658694449034514988565515748085068480616221748898313836315942274571845564475943314035060005848252069904897204012810163753358414816827748745361843833289224006180772451093101481739545716232737861629419695015344461046076091499607490506258821647444493441403129464856991980911935472276000423504065824730675545539473370282442844183045813627690016784083320586294346200941054060909499716266454037109709851564013390068496709835185161757028734373381005700753015110322901540472857350063476783197854509045385488912747607625739707517416470106695442936741733884026757860722374423670208957633105692653683782941563007232764203376382172628456897595261345155128124293399458229798572230742614563809211928009322913368592151838262821028524231718876189714747595535888547510141355181579269008477006671840579204001863360901216737598915707301184361409180134500523811457667178181286486421080872662265396580200999393616296653739271524696156337402823921565481089033706435754902283679961618846014482594019974796600658853616716909253260792201050660989133256150466099880605721355756208200341111558324069545318655828786115656195642646226288291790146537284311518061444025590349366899374927625847844694630654885517764930386213729986290429033301374093161815763982676899456554531117309574279807197828514613529688731727498357130156371209676483596475530504100002982078325913543904785612513910199598961006438690346288676438555351058321225580905626368574397495631855658035375178600499943416452687051343065014482459694614148826707793000599053053447130743552603076337009792910287575038214197913498285366486689242334816979644872029764869318633259009303078470607170275767384994827739263762522785356964753637302338128922091009643644793530352552261423944975846817923705306348222601790358345099392654892582803940297499591592605120039854108368963888120008874104646147495203360314032807055876018420051440086562632850322893291258796523346751477744687643993341224299934181546731139170143885045344118053664889703641776710306493923676184810108811043925886997190180006510021149655820864484868826498274049404019597413289286204980680716169388059997499289935320895615284353511745204621334755741725879123027815507514480654074290085220892166505680943734960738416784279904453608312039168912777261946225762907328815534339042102983259264457995388634371728102087029566644740177849001993965291937711539397706680648253362866406778921541195528859954165746422774270453385861438450980956401318786329069750604667265230386897972296946906358130380513176223407030485756878755451557168882674303083802133318286927547453180635634033849801743544652040294612098474632447401822163735104669206818489986276311889220564584675946609028483275225525039436888317885834673596365576255742369740998643939814819856171970240861652379176775107102958713497508374576526725987923755562235862748915498943765906105770180587071246475724336232302341884721660831121954720470107341359300612416254801745838012121775073121473320273940919786478899612551739514970607850706175484376014900428630123803240097358208526365577397965438688373121969561089392211143218261265415352203647067130826563767279794697050622312942864620884418989010534430848885615435285775132264151206624685188679912939302041154181703947795140496495377356885395310180540524314648761227996875345916588285921459576017907483452196698988988459024017050099169984976872363521819792745562894980237471593973879168552445926204257882242896040742653248021044438247251977090087119394792802241168438984545500684355370088800953182631535611328321580993146638143653707965197916359118922388593012165702552388919938502447443970755176625954664993403341380672896892862410503742878267646260520463509154345575863504202298500908515467787390844769085868679248745252346808024171617609338746970383859768096701194237313879272317973143933708697963946632041380752653198913646721477067247705945038092205459876947158895828032760213751827823061810876924663543950250482758589403519226487405068310673917059012734796532605029362041246703718287652722366342456520401801287689274644191066676258461689135532877300455606118951860709275603353483163104510610708263307257880511023959394133939507071460517696565035845739844860937016713622970583391503949207264705088089036528428912163615560228331252105455013151235623533042099836420287277393604867144357133104450127549142928461363009811051830593147854455884542866947074073600792132869583092265017363040824333972260347836099244009796245425128735453225080710813225522726763265661855830655063279069944154627504815414260016401554181385058412532740644928442615007893402649059630879268841661157587522099874514730345984636252584041529667249854991783683296241959713582584905994706660261484046052832858770214143324765765461872553922602320904110758514043151440913905252455105453856287054508951343096091419422742260725691164504236373630758656073915250825391963302922247927729493969318944508363351278819559750086620250720776914796335943827953518122053546894397404419123851410150894170072661866413718395641618828706297819170210657691336751512129763332996910187303981283250839099992398258104833392485059315965445022712093397691676878802583815170917416626740228660757309956455106154494259877678676734599973693973520257960370438278091634774731597077031671870784029416202595822318751005342960244269944611933705119692636274690720437317562709729224739551254169002199291308152901418955205621019377936754845047019389673194194460682956380009460378430659368183379982276036325631483357742743464253353440657559363639288339831037254361537042612432719526281842560455802840139743132121491863130782676797770826732919387660947834941646049706522312936770413399836547310887648038349520078516439029529716853273105566577903386798498387965924177654173855180173652631881254622179858669945985818401463441723247869541835845546779950866177463853540993058658110710252766899994078976340376498123501836604941482453590042293837408190756009145559145429245968437765992759475629036292505846572366680030178818188424293231949927101676922748424211700710639879384974602016725634158769596629920151492538880963576709581553625863602214569633053243904125372464975803934183606684797385549562470043278387541931328029820387152342674338914573266736084419076930926848928276391591330239576802839946884248713837246790668420703219809811235155390674257548751646726617142833069434104703770760536200082503627605169643136070638892260371534436910220508834611803180038597027113344838329910835254094567246522502727884626819175124451466699024722958362712691463215324070127202088890366721659054183835852678392024832970231773289137933276713024027516024816435515941708279422147997326867998692040754721719168379079433640415002622683495235991714387014071335565501791284804022969112882614150835527439912175115858280397389751449626861399022000345176902107572296947502264511648055427107480222539345295776217805131616548186975871375422034952984736035530372529339092968582470427603424815294344824727658039167391033054293887933118006601773190638648212085198588718216004923875569983601700451712155962695682571183855547296825062736953867705696371921250355165773755176453512994144233875555644110019193763266443179832813547123099208368286037024339149815497842279650495867277501156779734308642512437706590293388407338394447416684984353564863185097308809521490176397106659201320895628463227009501224685760378874451625808511901537117433429154393867434144778510859658961400787256897299847156148435943848806024707462663358242542437629440368124419960064082175235822363516145458657540014350182965732494604461857496954462894488347647585393775612183385377837692528237783109233425823207936814875893613654343305979527193787108176325689232581126005376917979537937831974321104372555692815914997209178175904878708992750180245786761662341960481487787893266469447497007917755575966198680107186723978493528701596417772939246057759026884162858875185684681928034583806574019084832258200442799382619115321684036931039068775977947603521082347006297629265479826639285217279004903892717746962615911357806767543495395700992471856191155374143807104470927835279114001136832204587404554456773453580801100274752909999681338399266457856254200286767971417944824754142980424797567824010010936863451201822276253733638032953977076550246482999734265736834141158617733856949009256667872273363263774640454241870220206827960694159904008436729164913168309418627538583491987104491797184111759212380016770942875409506019660927708723215018119905904773306050744297252329823303983018652631783182005740191309507307264693939385105079099659991365218924272622037268866248509478337901592109264590324823737393456857132673644897992822120163727138450407259521633979188913045084515528571622376901363017706674459419185624090071629660629005547655141206180650232745770884361262602351794569348678272256180289199912945283499678282720805885356754342264752545412560218551755379062265656883415572654564184144757315254537411440808915485804326977958927287624035099468279377214877042691438302685878231135431632505507319956891749485344827852979056852649346706144793295410770517732689985390082387010405851226949200795146261959598452731776209796073937667785456875136409384881057332891933963241266426375219448806647761445371233992192728293391413747678131791215101439175273845249549457024314583345219051370471808495102801122475221321953756829424446937081469180572766001964902794096561289038926785966615305122813860777119667606842093044718369967748497907386048567223937540616690584529740374476696767581981040242060559312724652898394139779691359271181932251464201282138460711133721024930117797929274687683255875791437073456554379415114533617168922986851304757733450942897692751789998464200327596552555803673055890741010842495993105821420573024785562002902574539582181207022348340211849880009265287437427194968689655851969351845266430161772945185602049709380224568938248883010852633104850590046057538439855347346623662410975114169464094633594978939275438733642244095084130387350544936372329653844424535464526801261200500295270029624802944444172622577515874195797730489601119185059452376153335067248983401398612895394052032560507467663058886369076149077762040458206603366938542446419756819270789529983153368191304119196692428929394838146462467400439338333747370086245653811753014129586080749815228421923193004207019484316546028477718905262637503113192886957752430852382049751112157680570101581712495230820583213673404235861594886797667477803888792597912140727616799638863955670071457094790809902322203619624950752587570108300297024295276998622027132888325221147932375822774208179946064387704242872179389603197943117870551808598545092890687717825158037936464012873249401461875201940915012974654795187431512421766262583054664418758551570909044945933719845611643961369638182400830368887858490370721780206765380617634740283237200899505525874245380283657208935899784049746102967138701644830544851659448776306418978855304602983210057510679628648132022690880006944375469422435618338701078066362951812071220460493903749630162366468374576797178385587893901001055486404683347068421688094330037656039817856670963223802216151645940565492529956951235994430671335312106295737963816702931537279744657497123013642227886637852005681782168376410768736505992350233112174009440189565191133128755793772149187389768324741010375261573544908172244556010448191447303657689280960088530815539813022924823859859050584447501300673833410230394064139432969765473790879262047779033178186400971115173889809468909174170666742037679699555121897804454283732774343021988699717479722289080198172439616964455371754751652193683417267250045356276414350157980387711919476612525650359222475477726807649340518432292044560637135875761206032644349015541653349172901999178777476867544846049904802954257518843170769136309837301480870874192538262561544541959758105399716735056902438645701231833421930956977706176165231052796992090097559878486312221136277377299033353598017052362004987324559250256047283490720264398662141673860648475893948911608927114324469260901937428028637711946907336887355262616871326566568320060666519964319802579042171286797135159353453064748003432851728223454311808479148012401675518171997224074492423600566002885461425461901472450687761510448621592802554751741830203879120437952712217673421403037476523696094039794963461101174439789758228103435641896183707996313150052961902042664979248496777496373931823439613207033525251397925116088709339828674153858324490019222106181465076934160859209805022019203903425720828862176957670082959298000425814617263648450732177074359837294181192074027049975346906857468142959547500654826371853597939341198005684431557724473869888133842106301153677037210254535657772720949087300560306548436239474131910268603965829474188266929646083576854683060778825637443210129813906756373319633579467344087914032955788807450214270518677089933570069026794539274520621240732536460858662213987054874589731479439474739217251674310504219286064777015941789694560044030860692008666888562269172931516712579388356823394567104892952990078071344417789737614209264274242527561257909554140794010159771096023248107804498296631944791945790120393116893965643551777528678040758661651173546982604883759015486264351598136232445980295954723578129115150331123939087604839518734779717154998740940471696945657805101382367661570070541583035969406394710171396489950018288086407777027550381733799965717487410494636788903281933421383899971274676112732234847013026595696866742682693130306560324420165547722985217312503585382058409840165475959169956191175490373335030326820004810345958964069554171932551148177716266491202605823104977286367173191071728661364367388595324009525766876099430338825440580588074510537608475239539251966472908869058857696859170241568777644771312119896888304255188867074479808928747938800526094094239349668839417308531233947259444041204429781515438113758090030286762333369793985346551347851029096657442920349533951635305028351759553592011510756560334759033659158861690369909576445472580945142102451180196361834676165805317718462727986949559722509110079788466758414125047400975499584308876511353388911831609078465107024197537386898602799737579734705427160297000575939144266847230551182955228010159578578917590707097625355936880710649165403744377150380491311769984549782624403782118097334584912602391276081615984342501516867051713168196417584468150366870411214522123473601647958996974835212726330464152037493900791433160239134840396557810855644778133149354791209751220538924645157408189135026167979831792520988129986374018749971541383380737781233085317223703648540094781803549400308115128938997660763262117992826818147982614745532863270935524212889335865576948313828493226900050424111366142398152376328198465705289320537685931464008878695181993232333948271854877943974750473197506776896101812084039753211100494959738243119954502052854752867679044738499500050389938090347575470794900440014268024125566690195836816372664896384448031236223299160598552487666753361557900632722247600621907596738744052089427803124801488666869115602379729639665835560733714571912261435156587359155070451489038967184668366539232176587716959146499703969840282325420254507123928831220481728519781359533889504567106796975726047749583474582547848266481555367659520848695973526992313808023125303677066603330776995765735462222143744356740820876650748659605122138941013496345704599836586248473479344023386482966792916096831983871720845519899335026639994050070105763688872283022721162129983838735351592643881837796825622628446624487931104469285466342804181805371601453913704133829661309943135493506978173014895030173703338293622818043828671858968511302330236234018195048156240267031383660840145522288475513464500417667585403472949631039405967157343302653657387901941434752310483510886463318742170962775645799385690295299535496086047702194549012706169308181636716186246508958507242722920977718393623801380257652697260505098660169252008909106700193845953217017561038095288103669195120361546512495059975494476695732460869021060336159391994669824480634563445126155153683518671165144507109020358386841297957094826372721066683673988525919223434024077737105424429474479208458113274990462552057198683908141597046824205234605022559865355703249718532030317891589356167187651447458179322632278930260002970368135015423306650265990109190070964450029006903001271727550305305157176754700345137035823206653608447965271848546760900783060693765210416972095636774347660742396268974228435025187464007126666673614526384190056775679832912048067054524212057673468310993737220201356361973808162077940644329799786856351992136842621191130575953899849783876105918635983700236130627741949310562768779784600783468588334387045288893309985546425446064173339878885842294776617842172126701860985887062301395689840552648150962481516208267976368621828336898570185517513525934377304224551446284465496858170375426578475292027017861610575295940298004934602395033287538072578901123385916083791411104078489763918461523974411799998704378770674818907163547952023116702912189660364587252214342329472589599191505212733524967741702012077386751860191898270953270033563678424467577436891709492906501667553567775853798944503916958495749338898570919934398489270107658525840486500958347648067775610450816031144781324623341213472866361238833001743966411910580744395390721864378107963080906206659408543855473415267847889437690818673874202232108288044204945652475863309482886595463248458441127168675329701578821610552375561101426012905727222903017650273012655175670166170389092328086242698534745664754125228786483217816688476957081491454099575549430549896962853203382143629370753573806127088828734649985729727723049809709345201955245027209582391755535505756488117802958021275858425414063702025299523747871953540292145904968949482894414907437385449057385112240831467847203743177730439197228522034486291029617470901505543118017229422811718532661382430773900509179985819576482062787590278561168490356611343396051147148866584813050518176189908331789551166825792984721134464664215826479577266641824195226520585739739563817388421411107700390837124349984510854223108039665895706849472602936674643872310368455532323261130409588427531050680078446888918751913736367485764855919282069717391511468600825211363921755994140248076186294962252242496334606389273194591760619015327386253645703860274267567203940282566027284670542558461235134542076488153828165871326441938171527803376970329472729980450441486168046657376723692287688395875142992040054020257317816080924099537422053947887684425804129325301068404193027579977250075175760778876344993904842296415962320791226426484333893250514694005319266349852273125445603087879033975191137804788212409268877149831414921000231263795442127458472841837054267742278834967384516214727763060189789761118444544035812987156143557595046858848994765287526920018906932701022266964114784505615175995540192793817101510407899238956412209199599287414207518636153634029143366086268867820370306135806003637217889380349100562848002395366087862377889735779231997122235965868670274267515907046599138729583764947093917659374597363802188631975576083236862224926899558350905885672074299066134458692110974237408932548578910572106529609843485230613265979640904135010272188954251596410873094974038875697215089339983233308985258908393627757618507232037841854057702482554051013575003102894260304531282790579505009502282010509531581294335163380489467227193916370091434167005877160407659545782809984022507197833819622043621792529535987456713992446459478573982990354840131292258881715426761866921981882411480875632308062043346429803079515806225241607281902539488973667459381626989591211521934398087201826396541861949726079840472308823464514493524166222311291288724983786234872471220982696972966111966135182309372416000271321664841518352989344859885228576665014099401062294106304370082977858571414840636701464867861188263838347164258442916894370375824318565792096386322032055133268246530097261529528310007045746843859992008971962795955615179906291361729195596493501550157222552231447911427168333782313569592023910740003469336627039095751575171458474760015730113460890928718612429695978863688725478109735786805164982274414205695902023897474953668116414640221941728060102716572835185306695514341049453882324992684743391420873255654506393341539088470050303459252710806785708302429721608931724808209957051431632376541346544442018805794403784421917237879814300447824739522041630739367273666789478310281638167945945666607949806424001042851590690954973262377356430929945784669093869658536677398204871277709067730985349005496284282817475687185690912361564615435224619925660157091486580558363446328258026908543183874804112828592390341173163347476186601003111254243921632174038324669989829878719181960370381071390902910830222865432627322418640795989996509842629476080494557445341328887765637449569920065249621070725790883323904879438494409502725699291088090646864909119914723348095097670019506604799859334300140345068626920899235081856411249568410506318393958055224125698312272361677540056914895987523394724247849947777609218936703036652252976056388617692977487592144251668957178521238121347872417046412082473964698346921227578419583139945914401581460353893345952451335470854322032043784075664080851186442293625651144001449797831656097699483078207467777598857579884697217610812711437489297616298765481245476691050190025194688424284043744436816729991064976648069353041526491264575347223102733499079405509551189816350061780987530447395396193242797954331175774004828798058665893341013570602254235430237054135046148792757382656487681576578806367954166875755705407351925742348963203320969382430022284244675121123499262959679930305924113591104914388620765345654753297881987823400731585586153251896220331047317442283707212943780307840751613435942810039739479922624952726719291446722080448606265581260484128690348374250076508409015697453458350419625146290889004998020973943928808428440762643970142001804119129988975772418225305449040449006854894898107430729284404230749498766677882419889885893609716601974810108206551864151819823024380069338374915360918257329715055036766283269095980475537650189674348580671404523557925070552227345842796638942797073313852031087067672497755466603933500192841067114679273478709242383181995169528220384799185380442910755648132294760808003761872661270707753014648896251768489333252574288267159798013083204774326930661874168741641710476107693950235492171501467077079418445549732160758566116898616669296016571630608450492134255316799694335116717834555152932582470882809459212272391228266180411862827870717129271751002600021590917312355735954495982475640980317958886265242161146147256497746969963147184496493993891993801495151869593809090204692582559471568846045951256171975614149472854174186135906146963402952867869345204320187062286273727889239996707178387644635370112091172397789999061299313914857838564869107979214053584777691664066495433119147367187158452243085211661236270183509184270160367134010971724866548427027805934032092146844987657180143979559094243155794505410105017273458008104750879521266224934588450182873198170473806588048026904411587588348760193187635697924056601339446794294460496340810459054393572047773529125759088149741753238408998642882827074743277222549080561756450099801926221874021594360374805683524165510676477205586591925164645361934732177364820789312961182087551083733325706879678221676637843889412949130709310290506091090668934317498903919637819534877526845660516055739670424201841252288217417804807889897760859463485348858621358069062234466953948585397732322319826529541856834085256981315190807160814790539095646114902508204698863176631094499496173623190958094854948728098330247315862042601263619226532663367454811348977184332627441593841739769230095862673932172781259189618237242770240460653682554556496082260696018180369498899147280209718795322413016153843219998176537021190957251524936634384790457684145497956356125640464747367610077315884326228941492424758914661437141332527240262606340324902859137508370858454360018368699387336768159859213266578405063767492862492591099204907855274490938886005302823582933630347300464676524070949221179267453023337678047215417143144853010638695393545440931323673976895969328898112507687036519942462810185894128877292630035345107496775966431192959407689330527960455691849627365065387083727573943182184361605260030090812722895639682384441382128932695931800145924209196459397607234753978796726653617852199439387951746761780823659390392234318835224139123210240929211046903744015493652101037363626713820815367478656104668516669766135045461976106313985240288148739640166037722531065739060499962302105827348131120865155713682010110323427345880435666617084647011980749363960308476019529989141688549744596425400069182368838493738788501506334460027964255465404489127450475561588958851886034186684879272087298904722498242646003220389194536623410175634216491196253012335886048236091402908602798724380528106873528917565205262985281885697347348882039129881239782586793786661819467116920274347888117289034950226681647611086071645163913907204197484556453469984355762431130259208242240594805863516031284830387113545473584079195200376551478377671740909633686132403759946307318201487131939520513840435399720262245431765940326537206960199733909481977518861730119261491562779180309388435897545643701456632352465374849420037406790868256404628937368389445905459089401329778415188367734359183882047298293271362658151477533377980910935553963380099149605029413905178434236391936907240513680013042678373734548262683951270425663007230774037113692647185648796077065051005234788747807394757120991184176895049303305812888109248919730068343573162342717501234037716007887324916470063363971610374033161654923083446910344916110138310219585791545871397730495241548917527453338507875316330225948354121094722264123137935185420566228586875699887045487725629125673672359022200207411736531127080363313267396717362542829060025770508862099432627751550320207250382755143976633597830595119743033242785051217594612113674689734628062990191841260285198342896472226530588647533444172360236524275193088542162051920856833024729450423623805857366119436535378674056928971446166048961330479970063182817776244131880383387532044898437003153485005612087243976042521697870125123927277963019956043044806947319714722543458816755632072557338029860162374836794548539099215539412528256532842685629578417127861565689156768903914024680200726079545821710061224294008325943228877521389195619187227964853102560318161945074488034667910322768014840532450881551031048085597608361519313114231781031659702513129198379380540923707641391416360486641425873219758233595046691887364530060835178456344530553939895000823459959224208663667436818471409322581212762141674827734454104180822038863401694115361195799827376518573846189802290697971309730557277576998437291217480024623105447307393072663716060067175920829622215413131500731739227469429336889266578284934718483783131547505680119606755543415413031848368587845019080116151552292517631148062109382690228256255034987608561550967440510100862611894324257694742026284823850609280224543572892439879420093454642414190270702845612547940945987144264967066011232993091072649694838471541197068871507957663009437655305323578178315411185436560713860215936316195380893695692847466191025423925705146992899727828602739199545079791976758156305356854058809130338234514879072203183882048661126742118504771421369252214370292459284498314207123992757292647563947846430516153961789943865959462222161677125472374685614538511674581537254845558200623526037246858098622649121379854855310711787306358786838761973675032368137810149921528745010056979132969627575613739947781770813864575178866004543966557346453827380427860273843260386369571980479652120975486543772961332840624524559648451115461475644994962639592598714307882458236468332799099530224311009566931273289267142780530572204454988816520955184006844571556358691687868349064705897763735763214540832701830746117940568328926884556444504794350782088423276381988064396676389999804307115798434383749268055248935764614547277911350106462044365724136128467594947574962355702643691030119812261220739291681234801773173578167958409798550805841888681244579070203489873652362401424911202749376990562387497984102830817914638205711277348289179093119474129441209036214141197410914830840874365961422044904226539687736674680757324814725218436829790078407485815717165561911151357951076436645022979108726232038879140230897724474056194452142889750258435765238649975520633819014785603899557217487407770948180521027482675941276773260468050174683251410185833543061863858698094063504801163402683054570779089288928706527365841936367670553714471224094766564208597881230527410052600413771954822413476442449393965291376546408132298418115070838996557941898638949824825074982557060715575889943676756160540124463019027513436559984829480082081750698170760489542046977128748258002359715350837407699638498251492278876459204087946756477727975704480959591783789139017486125601886962847632162588755614623993907669797632753526644860595427609089604940018186743367179913272589905360462438661914826796290354085125865387786438707293492509183438877201780198748323147843686721339890904279728668651098827482414131662311595834635798562398617979818762323587753794955449325571274043077647992062110176739049316808907470378487322589388602840508630980342104201207541869202502386236831006398580584154471267981221003494593643366448770641885111388592114450025149912136862856169035269616301918322722074394187216221415636445431577335890816007851339453622598836154831814989665842903402069372918220520803099466177807458315209974155549443914501632232275228870427757879722036330957459380835903709004367722305971467080972242214105902519698522874413423024059461745755141283995506537497646500420090367029712965210963995295279896661691248411151671092556958267010260896254430621624766667737374246750174424308196617065184426939171443346621599053720467168343010092521374634269589141490931378375537334197826390329804786234304568533861648110692011303395128515810282346724372312702280349172469861356844526564718898256631303919741338716836290545651831185060229941675878454871526170583893108858636837430397914487798740678757975247540855352572978183157464094604603484869723682799541728842208169125245138877767122021865884079803930152157835603669599352232225850384740512995323952365363645797551652827918035727286354312856836004237421142076260945580835280050375226112453557586420452549142194384067253103186618170617125107288253069952383392833570491556302547551689432201976053426491265863067993320598657956322510213974147242489755231103314635212004957577650526979380297207753674051139918682965567979636501166376523111950289094991314947340968804434577885825511099158492848868142609958704453073342342621810094350420020131908215946592210695383122619116561248448055480658958478011683724456517641002420234385948436036639501277681636321504760886400195215535294003653805452755060279279233183103480037282887396888202188287733828733228674647254807288724698618574773594315338098527833655920433058602235745175527099742134237742888174997771534012520431915851934885325494546899745697662661431755495812117945848170499368777295722816926132054338225605766782213647475266326906828637396939755460954942596222925617212018140639769546141242120098358233924108484782155977138300768440146466901312617489549034705961096199417692815402325384398190214752489440987951337556607623672611736644608428506684754881881835666540185966265890945528811150883479063277643368548939852481579038468449682735725776100374730213759762293007429765675202964230025215302193692790100399170445554682594817864696158072789149337739811916996961948803454314656539893282873128393934862110676098611988412677598175979395304867216306628642742749437781880646164725336431547435681622745432688619398845512509646222861244579319411037156296666425885517111582859286862249421657722284656722653586437780669143252284846754724949498496602398311203776994546769354294887912940376537682156597668183322715925157060090876018092424746259143617830436539365620635236849496537172330900812848283697232569686713624811077433638112213855783174975414031689730021490602876196614540841550338012749440887393309420664648542660067110898777040759197224557488329399552486830767263444229605802797271888644869562131200429850941099964634010062054832045390833559100327891551531443608404625809087713383291456849337154262991169002416985080738516512832322170702331091488994073259879084694155697079111462676623010012504984611904326395576889246067459786385008255399844174505392819608708425755635605806300042044257438383621196778039590937298070017299965050313670209526322261588016507343392255412834157994899172828707633687618761458721330153710504354721563329287940366228005660640727158793671726101270089892886922630625706281254387251604665375695736753013155989789002708722118585065330991201562667751358847989770046204401560500914646510789149356457195036955131354180763853019685570363761305027665948486264560621228649899802782905456592261029780839406300684845909774393552156587415466042526743595340723337256791685689676467427122734025173391619843832309118335488921395902355512870508843258197858243697132438391714960496610845661744248672742652122323153630494138320760590716330269567058258091815052493796195611898840160590277932901132407996876912894587575067402235023109089311456630122243562020634015845042907564800360101096518375314437060505547592365086623563386859922040103764110408032979902106585272837686699620190372104034564782288612270838064406829924226133018594799483974961243389660841526735226207752304524811177077253423093475993336277118841661637429583721661776303782702249359233966974653718103597909870641504179826904541130075861204793304250008307686227523268106380270793259006270657873091902952500473478485647775639429655768278441626075584490807500003767533758911538242566657900334383304970801798225950524105562461138250524284380156351551007636088423504188354974482700230098507620310088374466863986316371952564578554970969475699935096789950161782883493211910777254009522220258759463266870537072821662380089362461694374045405194526766340578196643797318784184523424291779512096559319591527390865668258071587131899387513550757140958836608614334693472633981629456935844582853155960273902508500418365488677592815059061246031341512938532838330169794043507914398598801562291743902324567964753825689942617268558189002196299601834341545362541478113100952227299581212097380043433067929295791297081476363552237378120861954728689367885398750937593778208355865911389980411396941616534931817443553606981493079851821837589996402504551231352030500495746504892762193582556701632254848966116507345346867357650252733100645804497368229787610047809109963610913458841269141372280363322855530740995522026783341910648494876047748262817018126439873088281518939493272251191715001579490942662790354896711948249021454798670358871482991848968306254601126009113291900436613115842649726591395725767706738637837346543932928415057350113159773791851405227213374940452769154663294674354044035996550655689886421381380779060690980895776531335301317758814532083102501578889785341233686782396610095282392611643123432191252621107985943917702567681235859700646414704224312915385056776894651253190725478653049631037762973488942209936477531700205795444051841433977840941996746122705783191770507885300568618026022131154369170963682899662526200648093054567823491458410879169585627086704473679149596430690371225160959893558965126397754542274377853936288256891261659559312197320466488083945652668698495636339526789868062084127532890270024597964436612172096038683071769655827525652923155189052730306587607444947385655756860168580390431490639104933584087394325727333671920036561031415628463186728713294059516323688714038477145123626481006220819356621283351073502959664377172126529672912773577543876659457463770435209631486212223584448460461999651691704128126770860612093652273683878227220101307263012190019591519445485805377644888035471749088657754577225448461147899226843816311122435196262546032675596041262904076002444619601797785738534145944997886558051543196057525243158116990205184758872756969487025552424618506596918474958549656246743212165554286372926317856317085872223684800689458274549787612628081951888036572782299887111424575679623032994083656173992385678363355558525790019586912984058134294880377859509170971892111751732949126114801534592141546389190784844194886813973824485805512620182217443462038497493651402704140272442362553377098772291426789910317468008137792653223124436426650830978552918958899269851682427375974447012719426377186167446569373889670715611392947443089504637600223619773140575787095390111840018166140159795046039883120951183057922383893831496642490165440107360565404586766954039969744120253708659352057557898219416232656253692982652246430700281730820306334509458078335909477992016227464064161638895048252045690867241088668218609495321245856928437352226906858910349640451155737229911323641794587328936930586268050346195269867762776390619208452457095920791147687589778686088231546963246403727651274244818256726556843939183780289559567416899904738068444214149194685610005465299775284894620482342501399282569499507495682652209862424520044427424339520715809214010430119319275634316360483771455543737849794063072922058365689637857911945977988757746174916670653156650931036972174093116110356184974310554475561674011566353398467235530514031350987244173284145393979148027489302518076190615101140383943099452809790101888700269149952492144155604877185409954671423988371712874645990962323316520487469564334570492699647186997178153144009964451268466691884710963471435757528585706936957714029259570928435892515156464425631441822150888531658098225029956047902578334885210247521608688102826030441176900075509671658522150584987923917362855488290979514926861124858537235235611613239289483052995762818761212596156603136705606840187152034780690834420249903662170749592846872392550094510776898007828756153859598645732054225038752176750829560059991884073057847858992648579920666171319207320084639674212650130464248000439545957599839650084895924342746284550931412098099514733867589086668024003700363373674995645053606167811698415979495361474074034847665376145305666314775768381995366663886383408230066711736862474758729015414019153743951128863210483988069389702834798910878707795405117313116387343725708333201034143403687617201471105002579309806130508532274817603382080479279830329192575200290195135268973265955380865686484590116442739350682251569391822985826041684353231319732588262219792812079312539006296793174373832536040186776723466169471842581159864221047890446544744939058637338469489257092306284306021325528763520402970587441389683182249520564401267174097271262521240263510469288749911258352347448945051217369593299171251142560935722516659909626150162581154399421867208550386430952365515764993081045073350481222226098294502898462264680333696490348285881247896354234370484304630675841240103336291183819403889107492154079641138185550022118482213737382212128527793783383748202156683012191766317465834020464117723480148081866446474091019587482345437098956839490894794994451048008634054749641569126646384554281012098392449428401759833603478083999432292659240802098802692902048906197329127453065850637420759933554354676277815404257941255763093618332155831271408888274993313644897851512795123831136068456569960607131110422587305834238780961618059580546028490771063046576922914870784724318551828946632650489155438697836300087366237911172302169220695116625788177710125171273565553994395439178136192722797638367048152994653436697145915632985529312128252901061131302310640887448814577240057479111573472084307375595328072125935159028158083963196940068584076744091102265228785611399626457018413320087174862233577172288245764781582391277653999177132909464328120879629020381408950726834921801552090070345345178005755618013823065762875913192452484221021947475634016852122039788173135310784068357328689298562877208599273170837749510822375953288512160004058404308193697716701803151766173773569312897149082861966605899704095271512915483111724537528041563058595822923244400788910003022418950411185814567785474404235595725938370736254061657430208426439951598684002189645989555361464653497431981231719513473166872630720148591379951104515612371442190473175677006886030861146663171105251427925681776233786379566702381691163312954879580586607005204853604302322302562627566554161154451150497271435248505198759422565708433037770166576426665884251257711806952119694357154975741081739607644764633203630881295921421639111523711225056541391736685455411689088866798587751432387237945897641451726894194360440935930589422494157801542732082557902705538862193798398304949097207612162552055061093280967695366658525580835547852912984296744518593630173804846646613354855280657722127898011001763632127492216328229509093193330222926380734735397941869233121975564505010503901275124672226091019960909446589778105989618393644329024130360042757226330092805197510289970434945936499775350989017185843473143880876870974068872443348218217442690767470881266532233978603500498297629559113366187362825780806971340133713052674050146364262641071578146620602436960139992576411935441118415489275907934590838572238890167683480595621194847944955310867023433609648821803650807896135412172124585538390780779454295308447043605206196421534717481819443110737950810187314894780812057829962835318731325505863206148441546732885805236450464282069563317709542742422746920796474660164220853589480950778664202664701143182408302780022938153197171687347858333771727304668931858450303380128501567228095869627127225248218554226681830380687988847261824608436590904917668449218561039654382385536384951372064397647438088427229889588809221556183507292400702790715903237661962413571027510707344614410058922224545555727548063619166873253369211660667060685008131970360158521561120998101032576667314306904104600506817119579970893556833402761649274641125698072692455633083299057335505944552147284911709778259057728704408160221292289366817125380825167833482611399187281930574888125639832346839389892887288757013139166774553114723978926406882106182344306099881618222109175700677993547991976915488377873573005137265073236802581476744505478670740528456173592881473358402890478438848029625795414239156597764855257669118175603313495002337487035403193587872829753489506899793165445847753996004056562884150130611916142657650442469691024170026508214184696401883222102196120519178148311685160877858669864566482093365102034739896259103197964332110736034997123414012177641661522842561920827090449872520450493335472461759641930339561702889962884118092297172282251603668835027693985745596116817795427361747295007358784612476689123539560774431838127415084013746652527643776203511616725431438296925597421780477028357437126436378952137672718904829438040907932609689310522877039360661828111309557548151323822392463318434300016651511558281800559604829367094133012733321171488802423096360755055185820172420049593494233653980015513375061975267891585183366830681280314040474120148581405962979789077174996756202079957347314677638925333087976528387772867108981429616321002554638249078039115189554948136769972911492913255677975992112456806911963433794351656993802821105713197427131858849520735000583403973611847741274299604739881218846061922310747135497228419966423931215207986985309471727176660298943804479234583736983513283834253838038232705779381019727556201362314675096545030963661009093833439139865072862323949956000240916339696046179350067818838000924165100710681748674151660293780366376328530208773805472957089885260353846912026723401965831839627649323791667950755144972697369952964747370579972037165396148454686521125370470749278425676542153560522501139243989523352092253380530532024889965728844665718512362186095498401360292742207408391079305157435896109466882904108713227960804448965593404192267515583084118211719902180140926528252914307270184359014220933862816073965915112338451412427011518786252464191553921665541922196006486882597625725767754330045670837171070143313020140158157932740060186593234417871132268395648594469484190862866779626134550700988761568016007344829244297364110053305578374996541190494292974483505233934380462269612638743610679867807733140372759150843190687343042204732940473894447278577883009203738294138844452409325099271390666377744287189122399347668069397760718055445910247582361164018890945406741075163738484909885120097211759137704948475134390229005268026319093170662458178409287049318383033259396942367693032108802042402919837689915950067557004821381165721535199042187408199419557140582162285267519705600692550572223224457155539442521943811695940565062869376082193952295897180594572982467122490905605687117877503613659743215823729456129044502329187205820004288607521853389996060108999909077848263644862306627943776529423276539102747508763546481687718903004353710689682405641280843630127387082362706816777103825033504280485698407106900524729667203370647149250446958777694230170391168773624457576938528978811083237879664366086522806147530563175104943739790133178929880716589453162369423824894661795703555508864589588970250708664688118058598269090103880900160457347814266576997097586181695515193095395623643006289530646214348497950068024198485197160261461899994422463057642699533921759157725786202622902140260688862002935395906419699858432674861666159018143263632545334814459717057908754033546122609067019799881075503406992824123537091675259676787016298589874475687208678574066851713032811956883760875609167097350098444030474862364417226273007911921797364567613746789372778874138192330347948241831907840718738718787227680311920193952008863962180441461955474065171309611203646094792509830252135562531800477669901877547311355537568766767917447174726556387348700427207174555470507543972382561104992123159675545012383155161401003370022510368746259213790460274205139880231211039716897516896019780918220299642346210107566737526031046338729686862131793400758867046341678294395484224432745572066721495165534741739378803782799358226941280775611173448201345280788122421280295516512529451742676196445143430544482061328149680381531874294023242933016235609393059795574794905546876674447414261061611960708651224476132646452351267199269830591626338036937000273000546955412468309054925695876673693685254205701188563412662031975192565865107122646408487642081810002858974426229120280367286276585790501358247351033472854486306721493098996557830368260653852533425477039353654273072836575184853936722431528057532415529019779609006060733907173127694814016823749002968514612561203004713831903655820270829569759134717699304134149354912772395189163556276850753306073795468791356439929460670024501080109581094995263445155015379567241428821420296399430502919938720920802817864236327474530719877161391424249826812930972621168273216672502258293482053010431071577105193967609972038967124698510548278955926966223424644278375520096467058918362750418906817890943706137750299441798464404381919519641257380490863321537684371792285256699523862166146058593343935711212823792818068313700489463030260602677426637058237997692124916628475655504070477457082298498922287716319177592887390868576984092272835154615299482531329929353761447218233246825509965439463548451096870738418102524839761252843372729176041919148919378884784814502260200476817214071145312109174973662198702811733893304305283313585783785001552255973313682625564924924964951549633958486778266409848959755854314538749543655873270331664948655037266586879249082935033476385236992283482562550118867837166494033339750503636335623164121713290434510114471008321585758606602490033086741106565382468061022149755330124584394235968296447905676422378601823288289209837666258102934760005320156486559738421505047358942132893141751830400714328853568111873586978550392656348125785023977911017024917765263619611860708888567576950541510876952278254815376906173913673535832893087407517318747696662949707791199856872880817471400599172989841572961316290539753910205186460019389171848014484204630047779298116672664935912879502112879042962414903502040303654630419624821950124777473834868975435971488917357808179049591298783997702294064044965000779276571497296874351190324448202169865616767767418373546229071059174900024830684395644909404501448540395291670643453129429239437692686002477509918039575003819740010074233908346176501417357865107690180645628087783330481068445091471433851096837014701708887178762057770729095082919756896007455864297326500855157674006479793817417716181960907201982715462164832880634479712488525355709603012694993239447796404663192352330228632802764180340532996894896890579819176387731427544242698924382059618403520909775858588656251833737296939435653269554125223227496387825467885206889220853917089012361814922062919893799403352322977730504903541942183321586879154657881846829606939555224503510593628023936850196461984267055765661547801237926670833209926174358444843925490159079975994633197401378687641419770579594648196771997996567931106422343202734068900733717136289324594486032166333822158879057287512905564688112641230757275824653937595567312457018250943326660306525757218112329631818961697376766560495426411873421819453161752428087713794093960526896128921640837292819728361967916013793509172174821225182090883287642850640183646789417393158947323924480243500030353410004133955095794975792011253547306371735841591491850555911298673647251248447267739634610338057324906173669787777087158742500061633929135328254118115403707180826175293794047452102606767340138623420997097901482556415746702360962805859739584105569344776966047979765257662043603663582520453257113290163146008005853072759506118378212730488409417676262279499930253375020802631572959485354363199332677422061268207184451269640828071456764567765697959143476203261165147633034971292898429688443323247272735158000787703724401970491190664033712126936560804683721042236586024341160608839340980044283308296713639749848154878809017020380682888177885415066172514998227038078768294983687280735666871430363387011710960841738205432426800484595429204334068855904361651818744840131600130917486766285215007795594493691776744984886304787138390671440094137359300711315169164214161962315099423469457776505496476758231951686324869752343887590405633254122263195053340900629651374307048251545820723696371829358661009470645689136951225956315368716311828469010654182025386788516678488828790989126860613336481884831655559589102158866714099275130012719374966700688835428769940556253941555967720341735626686182139761974443269994666334552654253504184586196902707901883132261859341743757909869749943985169447799169770256431757670886498736466855721273755677793710549061616141004685558459338285149551841828409864600335994291917200693275061757295483445257981783632282431335695818084975340110876361991915085219618237955286744737926662639056272529017233818883222629501304174982191572742312373609277987215990816231280006977621683300231275804392750192346443765784615279538273374799673158944286347745859977999311324004405850399669593138636607397808391978228134829005302407080746342392151229073820537752572223247119030069958342013740927272111237128893791715686539729135721630309188142432687417935740037246149627297117409353670674743481433044113430071557403724256519646538929939314687998228981481105523233248731455329721986497349474562894663265694915571251090964645930499723491286356178273334823726228935917429851372163668727523062063132761200847151829331334116054149167643345981799218388392172349885457896004948358798449666821381359421736686980191848017370540352081954286696836034944348417276009931012227965497499568581393000918267179500125202279884734949153336565138186436739693200413787739735373183800607142468007217686596467056100851923765473291045409927281710792247646626332045972944654153748326793730421051677367774292710868833493336316532678958766665875637431849377586399796154137392087558716337896970545498557742966610232862557528654658332728198434564656463245994343735833810523149391155379607235351653830677088157970678734135201950839240896761596271837316268586562202459709520686075649491393121061314865805278877348480525455806010254273519472262895446502151295583176322511244770477067376935842028262649508667839811458976525166729484959252163212283970036742548221872506693669387492928552075777696246554480963824091032157322662867104939101506797649851444954389519436106873215900585628629966660891926183998748642325353442039993154063008078450315709733298361152789037901094955542177285566709315933703738222435545067374380929350715945242757309675490434026280289577324459129250740134606453389728549250426028666375347304014756345140004410461168752070743394413495444457280449430591071336946003875210204833015245435179165210324954250250335874826230775213141908650735200200624030650034483070645504576129953844086558481121471453657186377221962320122263429197565007677275668687874493168434993672666494495843866728246478580509132279186166481068770934599394204700293479578305528805794256473065920332933705095845442076147081047275016213877463918335090160763743428201219984366222625412674780934807793230726127450779279928050556470138070206905640901278756764058708729495681160785883639184452072567870020032573252846552745663384149922422033238913547555625722756688542416249923496582196914948941433328600170064075098805467833539348283141664193680433543331833837962024493013202700982263565255055564462312393755906584179217661219634021184772910031329952475352663921632986481540976679788838713975558917333620434522251776870985794188550449199520596510405290080771271513087077983109307380050531507163325477680918708229548358459514268444287372655685333557650532964121326974900629812504036263272571076571665183110587558161849831784754028596980827617877176251826531510526878944287180819987822120220462020676895267069270425520621261965882289481352929187988051551842438268622904355893443757043455534809514064482774268302056727960268082948163329304752276645000305408400837564138277938900564824989285877650408106173331484064327611943537891948283640865776200762669979199533557933761197213702775700969370239658083836803998692249743029107962536270137419111043616162846973661989111504752801919238083999840154756091382186129907400187180130482846156780029316361310019255525507923311722296168492726293534370643018274731502022994371582686990716930834715961456933668807580851705968110762581754556247115662370175325001193513317117386199395421491704885086732781438768794446535137268908195586417032957093440326455859239270852819069501947366746332758722202747206357693389185549366127506296635726513349616901699115056377653929677523370989856681940940948736951116229648677481713696181026540018547429921761462134201431292602205283940700014695639416273171513428248707948045633286813926284074894707089016984115839387241107818100715142130138054574161814835869297116386667300013523684387041129342823189367081547141094725303676699332702120742481324421024145452418069752330734883770008093592723140156587503970542940170641556742639980465159221363823419316451306980827201896850111192030585485902257051585007801113644898053265570540384252415080732723827856061352414047774676182457006419723556991626988684481472870073677923503286580185963246334437105646238477813012392652996339048339875933525479553348655140778383814079514568368532206047955173590471854444209337343378582035816550707266971948381909013813951252480657953813895574431816448206694133605586913449006417663519132471349134516189245316375846065757476144729920316374415285977118531517458087888403624225247536591224351199704001186101405702666796856127148584869466757169606234598519203337928623244304756643615249040216375823599319184044879979854006706916363202283026524383847764705818828092878776333616199934361948636761130288559914619154017360172452101045749307702023421554499976250211147885281118078440369419021945848082862834113411268454637376412778677121631311481453619135398880755349436508771009544154160924244501780375019959288669505448533217999005786179356117058786865935726569003933713266409433812994028786899069224853288358894222729977085611701458827127427522674928640505256515932002523474304863984025754944025726820219730639276505575954939726282259911765850590152318893474607075933588995916490771901966731645504433439507966335665636729712456124611984351148662479384528060572972239832127991795897974127430065729695249366435875112026691205338522538784505873927871141202065145518398241610448445808798180070146466462670751630328525657835802251416998395532411930133327891989089004255446832216789879255143544310376898883478489510016357139802939518384011383449480320630706085948289335163385974438085732880489193354516027497283338137969907534152011903783269891889936982901682899180373129212041335071788365480120578569272503145011267561768443789285652406979289258831651253119765166651033141752917453135752467552091641149611765313016331849289978762402725366318798516485363147006665414588101870720667862442283770397512043977732746274047296447620627498223213976244157156474515775036335451176102856739998106413686469317133652207097772442871867245905063083652539924851021546469149944828181311372669784688050385626388422338331391926108950047312780005393299449281667043479059732822283834611078849028170507797767227198917767098148873337930373789161694932128890547857935588290692820081296245865806538430869269638603700627186620775871966936108537529610860724226465438590949605009311472250158926085148220277886783990280116812355407234892851869186300453075818895815211371888518334736680744140014855050233113600677706886569481527555244716817258131175789341662476270150107096677976899249798316983255355978314954090299962248043892111434702940260673648825590426414045559844813997032553394969269593507124839041093449631066650235320153742209339611327362986591397976491424024540154308656066650413693841469695719239807713256509146299730610439228597646509363126969379750169339722388676597663266442310049533382668827759664717812794189335128678957706600495791984343809439833976470623384335898123046724739118388183730664781585341527051713509710631550012582235509938484722569149385816758735050817479954763775612838189434807613894995128629891676619500594051807970691475299854518109636396936407032626806087670194579003794500536388731641938604147867655756790824151294412555792032770895197551413224088368255290094127788917375342503063085389165833889742386702697469166442000414642853891462917708211408721749098922359911884329646106705283319697288376194437008223219440430350135273926421186365109143178101974193456485638675434078394441168261672300510845321978576683663667453082408007918417988173163626908725867881307786708732559654334047345371641757442189600144919708096562616025444403870110093780422648419171217247353943661110054559086510889675455337666650400791831629081533780941397744059751082221132842495123584473394296759419004180788402417726654428825185822300853018615529664017641313131680176096385807390049903453304024819848024622347054500650448129170887872084440959758432617688339897630684206789246655784923583076508092370037837536572998417838164727262465970469657328826422462023369723879268802275172722845927564840787246430359797320679144675336039422964377017760364333118613957090529494249377295452941658679041190768739222282970775530466011363976578650822866314032262868394850608913974711463739665071563810475685360067538944843187193315584690317043065961740358051783186003615377462221730343493373968907058106187543171679355494851139055832695117574507376089039339948470953716046650055919358163252213651274192041232681162420257621459980991408805046980789411509915345864291987776927537184070285449692430858859650549658669351005262183225531619480438184435577893723403514845124651908270749847814246153913530378886157590353738920980590894076834646710003053735424878198179252627916218256673842798684004849642301211574557046097224921954550165624616116163484431287943142151286256186083718560475234033302333066777090432522349713230214314487520963461570378674826075963335868229489761036807494040093660715632287004991899567492281222686444965909204192273704307831472915514409949460408934735809643423710366811112712411879123642951930042587850895503117486878748440108850715428182259039072457072957233625165559548200870935983409937958704806776909242061006326805884558647536000766316384099751037214364363837931087479804698164868483840301938576871715178305110467748188084427722348751849048038863637977141824477510727430971811088275895662228509863098994574841214356061454565787523436374782140329753179896374821201664147367309163820443694362346777494551295165515157864010042860789486698510026525927613019245669413917846956886690044172672744509208643934577370236648607868557165306352598665326292862934881738767859957068425138282922674657562924878996238293892943478317706477059985524978432811209201973460555560892704922351910134359380661518427602210841012405384867250911386554627307616194542911055220217475952700529028789184647049521484419052321961666886827611328037527739861954923841031752815020020880258708652734859252454375455371528674066860923310043230497322419874337121788344487267034582747705779373619377102632572239843220705651467269464284721210601193914375699845293803640479097687808608734525028609554165833199303119175901895510191730768578527508844824613303610698727894812957888312564553959099442377740227530345305031904769381720614474835821023148161126357229778014301245360466376496976144173434432871462646530429351523117764214826581390663560853826507472460039683534404424184930128364769497549538998995205515851863970979903126192797898697517164318312676750348999400643011115315052379086104548443525766217196721511868135019438632782499613193960318688612941666868689534805691426265670427423387568821367424000164718981898347440651343490802565229865488236338578300187381400004975041771129708705105579964968934071561220465901829026182810662749677084554707106534747678499841241377343739435566216588700763809114899161789661769158012870858731420251552812173097496341848856627898420117745688552086054562743439158913425478179776906040999805211794969222074643263383223384909069652116615297346768506430784406430871426702767735886963252182689391433535655564416560038573877241934752656920000523383328369275625168332877842587881922093574949329320008491033232819003204848733722365029391561506935472015293952031124544907628948830661120728768972555229213319805266685091865753039501886687475010470644341224014821738811011527046003035123762457029375225716273827049167588630083501227998512025365685734889947334003147363047323958546429511291211224611208772088138983490810122576531786342424856159933650975386807544677469439670800435506718580343950744149054815296997170265372706164771610925165651818641588134358589359372750252313501136010604879606640534508013391875277344221177742779978017085048965879791240942004446830590920212945906880434113288882638189407982890416994043134581091803871295964586423777601549265141207373166772704385286323869469084409064077899330262127967037005576594007188612051849906049014352534491305554502048564855365218568694212264839150618438868730443618660922954241588126362360453940303491501349738681047565136338357360032976999267940474716977898544643869408889551901550502308512231507765587413753975759926091108001804156503599217439099059839068638825125377540310707133040885285604651240536178008523393400332684343561744706639084337353067699311665294179233846128644587725080966990473982159032832085408978095586364662299910648520721114301527563204207687080492145320256691267583908975774409877432067598648803955396249307814980059228092800213917051304657684580321455984510026304138873964470636901296626445816059108058335448226253748206189385818399437807322744541025483617303248789032854389105325189759823987941369696632564332276296689306762367212950247284689407427632943803685497705381356207044830413095044264505242521575746406992492047573612143462896473986454630414507704310738299855306505582510561243590400935826698300546699435232127079196485785842310809110233131644030062723110972178760840654525361902195606815996719602910856150043820603882982041265554314709485797122185322624567864623607930982632869009638842441681540243230532000606494950448271919675513338951155041814511129150782068838853396141732545302630435415300796832248401984415528443146301218979735065447506475456468647510396413741781999177811348500002817853300075105814603944864131039236837603622050987249268131038808631353595528201491075241829613050711480097269167923569764505716459109383486659051051869490532105093169211387194144101592190313873310307643623936074970930651404432524999417203177809524907577896537251212470621926194851834238498221537368333751204833518260251671496280492951891571618646365947526473630653961748723446117713758477888850172053877541529830385777546202062924241970102301127231603467506214386354956040686415041478417627574784657190495911849559325819115225687029136686364318624659214159814019388301596688255859968387057999327760906119829996201590694981121194003923254376868832514002976169794896611321993250868678297762025535797603546624834124934522273316317123405690793329862543344182779469415272910390985950882386991557948233173998020158625130311797931367011546964219764891774270052272837553324494960464506840604033673430323687283430932212748627434690287509101313592822812866993326671443997643157332437563352849137077399637349033315623779735277041167893045652683371144987758621313201733563231685997703397827822502481258189752994204530371761577010674814238648796942068207610140935048714044702476677196060828686090109814990127922282762555513869937311786397763414291930901160658377836097101188581297046672080040756385302012092341987304883379820432478866765512249888053494103089525156907511956075950644353120055091593270922605024187301940700542361518737092579107007203205102155316889447362570021349594146427256087644933271918022623083137844418315049316000797319797701482829239692796486205027161511035977245414768915141162465221419312047116804742491485983244364056781222146823712161284990050110878097350444563233122365071197838913193020246373565040463457942031589709699634271789313262878499473055062461114598433657556200559170997021678765314065981342999358034269038885086010741717294088119035227128530710243939364578763916119624984062265943350600115761114965502536999858002829974875577009012671860414659166914270114632084347495817866714334340193523551752931757609614632151420203282062279233319535345499573184561312716130672608163815935458451413161835244064482621891813825386982860400201669001827219751017770850221783783542207560745592256833058661988328014692998346651059193235754974784310844297347684898327026752894933229625564543241102432842618117855385147087287490698068603749896887050517568122387431311997810167866759101384208102934477188593598069777170837709661087803439001096343219630688284454837735300857938645963774154550695609666853495353021321970956489726216864027515530646312924269792821715206367330444578090452994727053163204199982618411147872403152763417632183216059005888476809815841287103061944641434941211692552694820085601949090475986914090090127212194067848944617382853794708372115272067351859470921526983296913077614666432482591554595814918126406881180120859086723087896647345602759055857326010021141502101430532177673661750792091933777125207814869331569585734078989075633646784380263904823678025687606699956759707803620774080094145167194302835738870348882499121610190684312682676343841633208713669045385325911931615458610644063714979642465538679284117942665654991064040578282516978256886716467149312872672595953220905702423068083255054545830047728360852416641449271313231338267971692614370751395434512894589133710718209306299830755566481686462136753816569743909768004463930817396507688063006475323386921136675194298963766866609766027081366523053872273870735735003138260895463003656458383103594182233438580063172871451190395713223840862664234462892055173630775760272770056371336154727251213668290721953287035154109929406648034030223068728085777886966970407808332762885123183531303901225307926022199652683882125873048965541852206600935981316488046136243663195376871605242875679624132491229912178051450838412624353869474875871019104848335185759620933241837832094550392446524081322018061717556684068976881065340783162388569081278069244096692444918901188243812351695035968599369111863139198782227343322410866783479875136119014804564060107916541216823146098556477465246473659051805520143493818467353211108149627530177750444256884554167424941206687542726027110353369892493512154561701020069691489682410894105603407747231153225907916534101691988006343038852968604296602603630198905800299424477161625709117851263334665671426296931242714359946310976331515743635532333536601954095873004341255118002757265153983937961046550324002916517139852725096699656738153330347838718232853840971588045939107178422772046509672541841688941165233879471336099394496716137650444504728018004423532649799667054553684840596670465860687259151396989564887370980874106921348635455232766628567076307821747264809228924676205878240469698489420330156176977674434557626102015555237601300963704503737994522605022240569180138697110140884300024730979613124147102273434340858498777750491652099587172346042809607990569940921281874354842857296382903160561616552360613547239080524175078807271587569611912318536927568309166588946540722331876136780681244698905319218618562052488352098659177992773626250337138727691651236186021173443565164038912203830502578544679109410754100780016676714089083354567174735598840545960195641246011368739222685476892534050309271295494523286955564288023815749958121910537938638352954480131050354161069872445636780207368705310398568921904806664408676213807007584362410283289759674235866398270225412345092973199967313630753681498804093459981649886777492454028539220778181482546988040654601396279345475325539058525770141201161645241357843885406589925259853495171102936296166754095569582531885308949122594231653891005086711357527911948087819145540537375275329680297200512991133279964400047106130184604064305398916459118141050960718041846926661549701924868356540142780507555073229142091926520759870076370603739763514544481878564095404528861668544414032572868655372119830748149267201171998259922298768533117576325227703785514944469397248833227250774659017402043117443888241091567405876395928502331033522175457674388183126029928308101381153152006156117804657554014284649232099496558509181103614605482885103990228395943121467856526945053587103376844158812990516188915604800130756872637178858681766541124771880323474893705429171104143352917819739631912334536615020193260053371553792601659337190262266810234202363080359064184559216223724325511218946979051548789263446246378623305723957889146760869526834846614974478517580080417770819541863465140765549763248809489774867093522763080671490583670864950826671506852470576854364906915119698405079322791623935388639524874819308349592234716423194038834599954795808840297763484151660835787818879817627997735767113271419073176003118986563620894300117785127755132044441707516556543871392919667147402411885987286774568758703864417916832459749090860356728418119716080712711880229668895349348072805999258401270793287794886918597105019841694694670079150584821729741562278832430217265339704537315678200553908746276499630943963028361890309313564954456391240516415177817072404272609692587449195259415503852412327019791830402171678106373969961263153889485683696704395447993113838347717025517281088614595387012642535274267093332001000098247625148698885966991814650197477817148801978372016307821431232095026967221461791814424380501533621836712520573492892747560153518956132282732697667512726170579606557842219648001997759793079133558136025325688761591379243247501984193951510252403209455991562805040304371250643093163173946879696968298810177853761362884565183079902094266280266062163439599621824494550342265817911527196573063328997243958357822030638070071645050891926042988200088774685540811586243263882367162844173843688105863157619051618107615911517547961657921084568992889627813077341982595758926699218315103628692954117955808218508731462799551345783249982601912763383325290446328124671401622858724212829193822636943051060608359018937855708282154058897964786161356847448351515243253643544873947601861500689749859381787223599088771014989834864350321542912390554831548723656281994630508760928977432959385747368697716659972626178138296750589994266235004158938558321944196276835302817322759971786600613561706994239974613227599569556395527069532556889354242460315753148774024511028057507857016053817915112601828415637414748588142669123341799587811818065256544476239316054308371382188608714609646047790238206761149651386909567694082232411503139625210412907525869691603441664821545362409079149470626414364106693888650448643985484057433126075568599876208803894222635727341526400481688670891944514365220363299415367647944112851562345013762091334129834716760846160485465523975217840068523345040268741937282280404403916665398212344306223719887400368576716925329354749558309983551409853366195555212724979419687986087099330591885501968446169102794548001371911221647249320001611302168179298606987329505980769760991848131300008894035893586407552599450342442477559066259187917999595149750140715935516349071630133619781154248021772043362086692443418041635915378405893766404621399606075730686571961573170187169465699755157731091468763030218943810134981889182100747227156986848451534675581740365753034573286985405642420542225033468678183213605791449218926267316515695704502817174044629707603530390336342077452995465693947488925510120912954338643360997314930513145418768261593061324506766234050867448345705226044352446298794383104670348885271609493219370601341875951674729327905169925419607912648265602712817195583196388334233158472133304228856541856755626155697949975634046937551497522270850064683022019781531740574752601832299841045790877276778425684920846838372719304824948438216033225149304516874068497386148724910767921280310540403340432685575737504340782776950691228111209599304506356148687590959419263596861206444677855649335348173426716942881792676952331137437173703334157564803890649612548506711904527688575916283628272554049980371125682210480567825604977040323155943963813863857590486851169444974029813600167111850585497717303289442003278509529836889015062525842516048740037884616718882765723933094089377873217537390876356639663943864570042637852903310884312125593427009488973276149305578452447736457470423937434924134914600466211101565450148173251583291720732853599720946149650875222215281621954274693539810242415360281377452694512218035286474301031844015246622926698442982050695328542193912250527531564217034541411808209919430837706046099200577063554836318942409278791919993277519380751522656312731913399612015204703214303641078805737010288931956255105963506614529943104854796957282715176422322654034473040789998025498119789775255666624093438457912802213386072087089297192992491503018538929529675425315085726293475682769869939417739303411544829253924371277691608367939510314544689035113198506066096633042228756502826524317230714454086294776629759208830540861016668161502142048773833201436993380980236934785279437479965632243772851594689894370305276148649115515660058207066458870815984657550715434361726617270444852185652233962351331265153081939994482318178723393253766663536329340078811060544317275385125069770426865042066489600047836886620308988012095772998421877782032053308146048460376326483603043868916053599819745378398690281027208349551604341867893879813228767521940564929745586540741626057054436739755232539222818612810932391147365783503089148290245673124094227903500884436458761563788788668240962246993798364655945221524435858811317531014686908063426031227833036046227777530995149080105844880562516296979161881416766933730410493182773693624559519436844518171188866043672826483484623123537782502803486589954045054312197530157459131324752631483426080451474638380009086579726330026061368477335752570485934083226158453032536780021662334251263373129067579104848839989122378465509888903457028800868360778777748652780256070912631018942039431439234728109587365682891744167999501174498825204603432074534881108541469516931451689832302693178623606153741461103031514493891943852918093983592295742946762351972757234657043675036425825498237429058104946333866463162194167858649247933841661609251324510699981242466984331058408569068576349430368327101166305776064035485759970004137343159395248283996715899987679326092034903330862731844377645777583915847479405911454528834274525845182892317308186982899795065773444921755572382154891926174295928323912118871019243954027934114390129536784809577699371224107855439349879838647108526381103827552724593907132274389179563452092941667558448673558041874029145626189476098931817953405689984428796531169869532957267992227722354957514269980451749500338137805455272199539652391250069723493780586043699928664805811930147542351210802587751055620558822903357313031623483690333211014944936340670038515036510937933177364271162476466729887883386389875223887546975999152386771084675815806966184973434643093799973412668842147804784417626345013604228365388908754054777055841283982876137711637695140833871075740274833689731028518195549398412375991288268260344262633600294383492714537782614259913104588326861883216991166454387199772940927848660840518483224920593089840420405142833134016540486774813632421473449605561842593450531940352227322582725839248501929897769135384490901401417281496964470395957860727614859196655189619322306083793814212739483324026533060020750569648692194134060536220011262698988064399192630474678515353781209262874214802883416390134106612115539686965721996772074738467782543813681252635839794124765988168148116691053373090720954073229202664373086443200942189131463293698052464509499375017619994827631492506524201144100580843076761141482915366150824723706209636169226955071712130584603050826515677618178496854410714458049165929532987452227040641837847226183132487833233020929950087858316413267534254345708793678940099266575361998046220894688385575608581255386950578677161826996040629518820414589071939010226341755510540886562723139327078518693800078880813357634707550810139199937254787205897826322033744634634365246067121433830978522984828580950209759809363191006423004151166306751936754525813896069360653670009847137003517786796476595254393181477683818096650972194413321247089033570155915550131960581122357928242097096455150641233077802556130619675098384867378446883505712442618778336623583139059188151538587873731569655741773227407655244943470614164651410168416740379169786290280396518424365357465787406309736546735652507575240663843285223566022228614369883190350361996069401586333793199726325527789619937842161237698372389269672691916709104868359885777021423324157619548575237819064468341060611143458099252502943355280493396233541635604320345876143500353054631301322969446789075864876807809884584140890094468731622289424591742521165433455039867093006654525631197914059652386263591764860601660658812362262872369680997009660386479317070748970999646708297860382860874478803318784006971405853414947435848864468537566608590910775351560985056165330292220284796658424666258083606697234621720621604776544757728827825876452677762984766896295716121947546904901802562337937191822055039029832803341355518747316158443184999707174376633296063446435208707272505479100920509098607390545401464711304284540481087171584797402961797547061190676672426219444921969304632926273362191033182454693195360557307994725609959069549316068321276901300648905759536190609016243214355336372665998446758374685138809155358619894869468511464281898529829027811844644887839497556238409906858528895523096408828720043523626192675258638434075223601686511278050646348631943895194098252920457035524038786867862198485685631260349475323440926698371266883022119164908188211242839401884756708347537308159713123030914398448098585177473105778366604482076543016958582154714930364581637849059727605049876453835586713751518569661373393860325892602868108295781919098829212012499481290975396785529452049793035934849085634748597795683444267909170370802418234193674895248145736553066245570611223447309532728654423232617366103871405577609709731077522611966432085930540192572314931975410109177518857496453492692478413355335794114336227147718961511391378163156808670204067874428599608152751049061652769046061642905677899216425905147642904170280725230005572759166998097662238899782737671329563042928023619544400464774672431139178723277449149852289076394989904473139811540197933429971600660446567159518007891059249470819366496977541741930978811413436472759915659827707399976171206574664632878997535025453795432403113085041339424565580642425485716755673019355487056368824826321633360917790205958272717593047477694730739414814796606216231169368695595240141674020748664679207785182413533231697343129578612086471844308259893470646508058664263306281436677011725498882464281938634378120107532342781421134622499413217314796086023852834166079091696609253985469112183782760850847171962102100906083634627374930968638091666000649497075069029565442963659872362795642353802970418508536083281360949971408608332240462116912922914639768482901712246226589840487709748153755050445064137058856685994707785391846335422001323228626898094124580018438117513801741023822657701011433378286313751598024142527000777947926108821483349757937502862637266161921850168955221757134648347201395951629557429661740905349545408314093360966539626702672611889911204241090148491979983160860960193330387908323372325876434280787987214709739338340073336062853208080833402054027465579647520557639766330883169483723492344583373688597813936390116036693955071618590808931901071592353555159617890482447521423331994544637835861795667818652829705322052302013161064559571951953899280451628828614299361537080703472567005312797766140372207572748636201846141280816108141375939185115953565064899760726718412266186353956043386982042533280050148010704186092525156357381928342793950585936586340902769608694062630866609880928771391134740982182758596163930186396780895506193490435722918044154659067323058598720997312452874517549299774947510038930065628574947793430229107631066174238153540144465037952345211095995312990970365020378556629163327407256312093460603325212491135782120239849945050562356570845866573476517189081044932718434697288778278674604313074821797237920930113971964344893529143075098164835858545470622455254286523053144945054492766379889685201589581178447316306788900725817077918619675045327008263047138939344301006055234048222264818029962179642657626433651754079212687180717901995217915163940587164236653556628018220277387309587100717833980177877766961313986031070107802105153758728022350384682815455723274529514834189129411624354351323595243437316570524737549383445327721428206574602810746003501507086635017065342060904697245113361462602496359589278876325958343199809653701099888512651840260287198945532469995280289286786499130491501053489039751921356659000053703120186084015482110712674823333005597692203283508527514768461722846798541114691596898751801276195669689491567979996305657417757387074261125373611049271137108740438264802094152590352934431279318155943193128722336200886900442317702969448759864249904905927972420379287306825561113636528688351289916347184741472803518813045700557940909658249544566632120650248702515727129382414298178493996118329995664045883544719814457377414610432856516848474661990323185155689908771759378494198665370409179194073737557834849545352313889017324391484478628237636841222780477396607421553201840471859564569253930911991783673830071067763731107734875191488794599845398753195490522963353740180119905627810933331543533398237419231275816501613255444821395496745038098604417037606333837236352883976731865034201991195248085374672387227778535992585940824180959705647786377845656392702363367675087283844870800285944384523175577778589899763360093274767922640087673964125267090482759435211713964250899750929620763371191358100619961895770442510437345140492624554035055771177077980143121597858228237199723444983571297016145882338474868804890383200131443042813280557927710112176913605497382376153601173233527103149082539455948055704703492757825206615947169001310983464964935041650894841959957607834623275159837734959955539128099349408148675875734644788133384198674966619910494531573049234805461407664594969731761625507389502731553017839554585374461157343560292637750671204107058948242512297149250135322642470437765697074563286480942406305463887004767290286277548940440724192093918447760333796602682887441303617080298464012629465552322070186847478258898184337100254351612171640348157061649252910164528585301137293954987269574938027827156968211569658227174033692984346178286389020289605907379136959646493628986198438853432365221464020658952970695828165098260097995604833962611940262179585761675469479702918445428370806672299920824603386411456166390918310918154847195539320940583037307492710931452811981322467741721754310631406888475572898084884163100633585534457356545070458767878037930956479833888321955578962484940392574840939414444936032131454713422430500443598882309325888972667857576100849016070291757993190573186776971597232631543212850019546957725308198166139824296462796078871905428979322271239301162257402835723478365835378789576922927337677293663935690560904508106904440063886916470925964846328495319390044181561800328405248416087220083763779194640768382784272567311095662151684477463947478436029294253817900148829015153741957853087245329261357208286944538735756487243246972984999844478782418411902071917500709288627923818359104995963709348607252041183773417421524672776346761862817409113868923657277089223973841229593505379820484584299988043762500663196350305566134140841455582036462506118661565587952626367436965081054675605507823600024957723292169499257480086124273297459840904472888059591805484220969438055085629957837804678044404300539783038157625857868955605596686724337776339870361545295095727835659362980787232246942903966965201247905814744492002849831443879805256537889530299044443317578030864840901643096057896548191367887553821638387300941566252895823594887574403205193913982570483907510672397315281473046541705574213425380178435306654732121408115791816289153449820381705794983728949246330213619037130118544916811171066694048800088219932938293337757339149920252952964258464298460435330439522736110155167755592029893268367005300582972999808197566050646509326633943268071745757303937944230081471298334443404684879391956940888022330319700642458790292250633272419214394331374096066584354423251473908985371058702867314065179330287178720892788819545988984795534570511778094633536505723391096618942744933218670763295726300584344314540121866005013460381917800754551449170636351785728783240961159342241962210745221076274558927595222993216538670984006466056966187682232499927107662616272263717894812829944519664493414649220136289202284482049384494543727996842743677320454696809136098513218690935971745720704942494388994450520314202420058404037412999488863407658890843051844023321139531638874249294144101488873356950604215918210027115183744445630853380606402169020504465124619102870379907926454120085887124878837858724215890108247560315631498687327249626424468229955291379482332568769255517096363403142544649769307613063269954070467641093624248374363706252714095223233062039902930977494830995858889274049111228255623572975702116565377504400168642170518718576116143540620938847576220112990779744463777856092173606485594587667656655540491020288425035015062533664461487524103666415456390994407357484202788769253212432299780491403392674294122454559586811124656424935729406692273520840454871665013185858825664107443214882555908920561005466544832374951356240839649138607856286583856552894394029652073317547761874885709673633146868132584243554367019741073233283875206048954850436168710799426017760438022171106659170203902376133050668747304817069828006040860818617949692328237530786780171106760907762461374574056341354328143835803608099099645356131970529279571202282150804717041602079652325317479796222553082064040103368065154598313664193860847694091348731253889787919661662163912201667683060456429669502490839489194387437996401040062502409261464335006268967386856998935881574196314053111769229893230113104408552945128108447462467207815518077108659138427879991210343435470187982285821912952479160179465420752706853204789637754630501812295463142533604189791784527260956573777610427241467794259152572482132694320505879572966999761923472732289619270377476357768044499567079648440231593074970555981862264713806966584097580502943638064632904826123000274779809230940334423562191268378914125126587509160665293583345730995205267533694270182436971398825827634904789538564894787403094936352141135094151402855076900686612709152654134265710569776059641194873285336068439779735889083043038821317625247964326448701110902220083967076770416051680397517512516402927562805853272999261448564848275440810842973404728283089764399761136388674548179628261892925208859919290069350046174016602865722416284362887901397301948414897498637805216796361808914837837719768507798059297929712554292142005554168871337091948873325875789515593026258060711185333495549465580750000603539138949139938071830253822973085848110168247271483553165606907193806793440341420930316262944709075088688255369664769299044684856501029436972294640688704121681011774943210058693700762873067998243215753391221756605173079681053506955887832131281290695047719344997943695094924914657920459893828700767417613866907298991777075771835709993783054821626265416271855034915371201882741311106724637521818439723146951167808641893070544296393843581780901411461522565729406768360249384703050957355733664179961185216938557439695576935111444153047800696539546991055997443099015122927779436750229993100482557138694703174396402769339970018735868807027754259751670392337854319995319595774356998375782072806628411534883067628306787867676885205188214585979909126226058428071577037862412905368844621365426340778428757923770157202766284185950847932237149340485909538057535934542575003930508556616856760419598064797285191265512076168879257269313741328330796927058611642638179925904862127533333388181536082529515334774967044227737078206816694880515252425995249142072103078352724489243844464262048533006322510781555650814497901454120256655591215022607109675191123787551425530169644778209158715344799198933642133659291167620400410370890307359595485211714395178082415827433785308063398407830440801477546903739401190701326491452728937548005838057850765403410530440990264466602569439234523710472030344532940935886679671633872683741614103330882565685444045808383419694798249900294133737397155338562102288398967087063347435086031467334550039671670487112334932353680254289206567711203603192646725889280296076499924069347382857470780361703585056931153038980044252196430106740872993646999080775000577450608556204988081535229784810288851982025060001184032083747854480966807606231713412331138085704102833571697515533912842215516808143835846566649107774500392955900600534128841353086710534249243293258574589697716061369254033320621625620578388365949936484485276969879106626358540264594236842856635260999119816470842762313061595238520595736830573824089295075974128785052368553078921095518908203262705234434677851891165194953080687673999619196964213508563591171478860006436047158229383732404569488894965128262367084880918011124902859441327545127083236591070934842662051225773490087270790375206509616577890812962710077417233581956370009842281819186693317745475157150221126957847369662308502893553862352500461555004981278412423179367182957030135051294158216997719779364102020995142408957606921059611862216227335891087608141346463135689017256133370580321163119526271553140777657054878439734770461767407641571864507034965292533232642285391987508810754581985571468727253633794283640965065366948779507344319045652468152003307144346762976906877281084744003785568208933638208052371860965252077832115987835561528051025970377922061622757348309757536585708556794017903641821439280437455522583116159029845091572888899712869309944869015832165740665940412514777202600655280916120708481641692225396224178943634842964598318212960345156080410148941879655412454702140910978758123906615806083533676477364962771558499252234398981097514043104637902763650797984547577731202231709789038879367102628852874935537314142663872715186940913797192282549135996999919601988581723525499509141990108263372187886334199701224880707434380049969719748231092206908091084611504223429444634937285716985947367786322660569264802108950153924902918625605554025676523897977393069269781934236977117539612128308883382943424803553313235192552748370372155886146168783459032523380185032568812103759797303113305144348998092012278678711790490873344243712036571577887733955476912075256985022188501744129828702711337335134329836322732240515121311346552671476801022322916477055702435380696694987834008678521480268081864408285869705401476603795854855406644769939360069518002284837960116194055109986042072174741587755655984818562605688588882939480234526953328761668245973932023188161680825534907375110890876366623164366035977323794204061040867645151596842255562741119763102956016652884057968755905239278263997748665688810861132226530994020506891989656676770297293927079309560319189125766309467994962025584568119139969797303422291579757349972661408470547058896388222008519944339951211317887755769480021328091949173588475340389496145277797554952272197878423439226161354987855960293369651953266323215165135910830005263252543111982932029270248998856395795853181131149121925020573034090877410934961075646796937574070615310508206956187135841170498935345403228334893412814865283073430995067278845783706673078459991287874845827040318894818693649440753822580758089186228164241029726332449285137791235019533487347547081715827171865893099749101339203369948202814440836409442420098044696757262208769260312389895331108809768031049687549514328158395359616179607541485866701963718906437801508795145124448918815025837347402590261049548892523699068094664295374988763301564316711146976226476772416993343597067182980226818989252240111721316253995758296304846354837905790121163545816593288154806024856053755314039075218251515770683570097028618150858783151726260497317720190682820991122267826850342748122004030723685688736277067218308715829572458812463144047603532231283736953308379575450243486893441889973379309711511858776336411728627147532219294768993504948069729057966345303999154588006635615871673690698148650031935345773156559400027041196386162911992872192391777190858753896886292464589908238025517797029765446307466625889939925336676901070394953784572199538437199123866772262097148663782890068148370627146824739910772697880395930670536854674240580300725305520776421214409875390101033057049219965870709405647105500540252413180999218754731117488259623127310518533710792521149903970357700283308404992256656794793004183607547084951661065797864689779582026661879574754414717837904111608750927840639093704808450541782555679785636550815663827405430205330511532427277293300906421526451367495857189438621802273684651439013077958795598874063895371430419416586497467945729821696231485263440154114065599110399367853793526945856466001101543692966545030610521514188084982395912689176596541847039614960463025144436968667101512475842542463178305192289992322092424277529092248103848229825064457007873891317280404234061220745439526532992025981474367994620820729344427652540900626726971179285609006822588172056945923425121717189623719848445690907469331256702001050568172971754265564199138362436654992629113383083742775857281312877878848534974045152986368768204465071974322162634538896723170923437951622377536307267403023713437109392224238484027319192514906769367916691171953083827583020120249784184475654947397208562416102953868013953384349543770968167062876557844310096805434949389368900575154707887099335669468008914464283444703798209577293713047619374379412512727738809357230475226184112030239893515544380672852717953778324695792890963242003127630455384401919362514984218441356870899612920327298561928338148113737158977388370311943636008316619735359828612191804666052958728446193225722430504203816198259177432313566532667014126325918435290592942866335161507100682131322611000277068755650878086475342245935921892133850010583293540832218549431736675517919043959584190453569794393536141653602849055154916121952325123635486539957635256453261553787392461080747988042756203401881438398608095896922762132511090174140135051337071941584726938796690587319294191686526547471424419048452958799148575467065639171232289992759800916618524615134615833212667603590225402406074292551989806857823556297303999032526934663688427356198530039034057877395867969779625211365264127045542174158837791177618842086515998154657189113969099730020207903844283877864731905099718231503233948588467289754368074172176253970024730811834894994770457083240919672039245026455910784325699300517713571901086693294846718511642793070751582567687824330863480547276582152713813786497111450700094622380556524166829253594500600025224701011431816739065982921391228279652066636158553792374022334726860847618672613125716130309840247935477829305021088709885587898509173152969614989576082659015237549222133524583643622656706117700686154719842810910995146323621350805172832752048903767527786572383738317176660069841885740761042389112865386286055831402337181988753280658487457633748370771485744701396539504065247411028842925873180932938166963193753414678317926986993737709335523163831660621766652968825250896512134831721591427235670971051515715412000582399411250183867636944827004802607237586872922971856556255037629444332980831353599638751875597649105408892028321736171576940720559576080400383594946283156413636297143674723533807826294134112257969658566915605193574175982841241495549503023422140863059549442394505368083999183188607333825666880150709395563472215625147943491171333721097309981064270495285487819474660851868169110585743265249221641544499238396796173106504940093197543427757985964392577295492708999319983065082144187242996569193111504611226186760422088128087252775908241339721521858971840192722582092793421808693417445587830387827708996655455413510290105668466582977621784460044160042241308293222990170190742351948196079039586582966319321143922098292915947959666066480726423985708116901452880341477243261425077397906643809638234665525576499350979268422233913774211590079954340263222982779709086930759352223191103675413315746577430796980412296196765834532265330458880971134376844736856913555149956962602468384933666734733161595652749228042185634755165607038104305391912706384429571019562299205371129838027057853490405148042460737874591997498675041959203390659739519537012282753272982339624290241228886541635159090867264533701237508080373399186649776003314855561311239350396243928044818249253399655995992800981014169098427727950802153227400455532641691912149401944901652651468716940775265954419880866550145747514464657543792564226252686850734622273077439787880803526776754066828948331931267437770536073870353414358638519795299189269206090964693829631056466688676630346858759079987900671036575192727381861484309742021948376232344681867279091377451945654201399045511404580121021285571950305684261082688550474502245917237693119221352101979350054222783491609120793437475387570581290285229347148366540530215174192208074235899584824092285164984600890632632345971643774785893838845486591872702841188583809486378119862440283980473943395203971059284297978657876963632553435142421762822600449678169859453705588560410762022635035630208713602616436810429607954394022848198778315795841533698496932149985212938692343977065205794850670565998104928400486261069846674702030646496007732353431787656240020417747596524700690060162486601227900826780125965375322115207846402394749126756401825365758281133279303962556960611629527189450433162548126745390241897305903877687978699759462981883013573507386471061873882538621332109555405143288281680087182556644066027931024542026501096319969464388092924611487407502361082265925093002973547598817584611856409796476739926446165799328070813584108788620800813180356623385954928463470131689013239012490408722995311831111492113245605408490641873690741914709265819625297803486064728495577719425287514231480507770002183437893311248382902648994403485321729467225105071663942817335297484333052764642333391082312595148787055250368658739233749455223122325427872590449199098592836114540227553692839890601843111958132064376315295121006905378328264299933455712110052867633201123280451240729097455962047253769628839714384175586876957514783807733264338780201262140074708898907656451382255524717501192117831406281144393165101462171149491937643721982942141125897685276766098948299122884420121179824677959863994706644703949361989277279662897466981144888941680419585175436845058326522451892480278181491363687072088439571974445920545641151859966913117626867903361452985249897152866017297685013891429628603542879893844006368467217288949936142081588135761662030913695869117701539093593172232917558317788375717617351642875616963851405977524782489269307994719631851901351594406441411899672802573311777135686307862002305233500549708614078812038212649230414142929190113986645118068942637946089789569752876768472225472356072449002786009573323747713420834230990533757481300804889249472443527095985647838523480298479253498400900248209049861546218825270416827638310593197295280068493225763440912493377525700633684872647534199455305168834175055289727354795823331499560960635636319974447568830168203372842078792220533878509003908543344822944215138863265594148750736533052042006510778208363584422324274213616546278537318340531619504131349371877020436918123694648688614667042732995331572486498535161494439472638546031517953452241504160816231278523206441133268907234356274303721487084303131394997529231285894263345430986116465111152135425961822271833187255616433564567661910949656339364017308617691429746883603254331024861758059289919952604856270853153803237134985813732700111008122887287978777784200513398820090362990018762884694083160432760452377186920134876318437730921472184320748798017895172406812145853880523696820095022418179754290950762137805355220105451247256567101928984147312543842561740298420566746794365040452475205854496509854609312892951986933527638692841106866988010646188434524998579253187287395961886421023937710492563748848160258005508983650313358489090841142076592338177592362375951461218791940330584825805881537761651723933949202457404562123567405176434658819074965139635494280250386697035789065031049030531291561865248648705915492958143830127413361405753607422714186607691568003181370840591938209230247464931472711883401292412069534625724449256349665621657533820899653710012193347523743913544870401112816950106295802295359324894954135288324146081539121026037795874304576917483814041399439742950227937852502950649691373383775505787583723013949522043963588253579792853220431145599445396922980799192231461670042556989755738082108993045962891528014276220002362510371555393533318543557844494807509355104587029996594900488355857222921873997729840168111551480191022838457811387578621047564098583620750520788020189530653091731995808690388658945396630962383718298070726053406781542846328661493042015068923491255376735939856859365606948977603512926076063188372664101826796099084094520595877228379213246661066485880784485108770449265617195688467872471611664790050658736684667490602627662705981445224541635106594150433385586560471921298036897193478241023359406872079971760389879549006775363916597834855920628075691408136643522500364285111359337586889513607848671924387621508092467709932346417519568030196838058456476381010327803669905392780988991786853138381073348150070485664489849316033087538101037250006080937722080664145568504574871006417975499824601299930001219960168390140690035644349940671305906240624935335989776375278222792731166358406653145645977003683339850824060060678399358350815868221877736704679354224733830203890003836277375391463488398185464812007309292694376714167196824762188525501385053364498284291880871157134540128652804170362922638678310021613658289338687306536606513274530586626405767954940138589010284590946644722034852646376919967457301623126492830693869458237877201529688847833116101615675990642174126471123325184002180969710315239023116403254524544795448031597143167990582454260865247068793308381899396323427437452000807955280719577153144175141397832097654788373958812437610810883924837130562478215243878727013174820059198526737679630456873298614678752989938072309261649663221289798502310059321814144926436636481445449868082662921302415231409220014131879621864168057993197703594836560998773169004889724645098568554257609192146345538300289310353098915533592081037514643806953760793438514134573787244225534273667955911599206685650041168209052352308345970819826091588762953860283598560756687421320600269748558259563183115743060052492503516868668315085397113257975636684940367895599369562146936439883329184191031276119780902574540808680986853711019372963207765308648241542632988868530559069675263789011860373742766776006019842721061466859412354781622788630413913743998645560130261250282358129926632649881764829088754648545476079152578285747106331692622552028915564871875062671214015355816063604845865853786709645864878792278665797509479276343102606810068294640294014492391350166633683108594039141159765959275158485925676443867585908685229812002890590163066944749341624191461581161807871841544251524019372145006382837170690568097079381821367146470144093671164944718085210110731959052600253941165252523378113495531466459079284480023278160061037078310728618822686236473948862485084542526270965559933170368420388110297266139247946680213588643023014722491092999708555259080383531278720658291487621589961055024112139591382689991548227945178545191352959024178665761390338703032723290022551575372323579073967199201233057371065463677292609987805111416934422875334190125128907526511255985842520156588017903426910271663058550478206917930474945482047003860018338243021107774112987557593444892396534771375919086630311172114533511054992087426125659341297683314812490017369234657613224609524524239407216475882162184803050679282570989969276863125640629332759200847825722831447720363950624405115688816479372397630754138030146475657843056056211312021758727868886630091778256211956397836931295754559432870437902477987155441790992692737167039031804721681194172876438172547804527675946134478546793866730658625382886586906889324622329666750914257012962458024967402884365406175678992237262203172546432330820253429638328837909746333575737525329328182683767427005536952440072839499343415183471005059685131630721774150589511089401944935873608220424688523801366320874855883393706505905262904610606914960343003252282055363725867012382184113393292183303722814277417266189581344981473831071517192768078249180527404794522998710666607722000451240716794678033164819957199730968852212725864221750934787027568684025788473452596601023471607496040366516737945012202009431426647783175893181708452464807069152126679662734643949803864042335552627188848090917671184461163174404675593640828945500358095490444849855760615644898694443831041463191032739174288906378572105743085567843545668520234537430938831739182939301270643547947930040207557593578972409465891696087084321283800956292553734849758398543513810413937036382362858142488783392896345003052320540151066215602607716224088849404780351350465620386619533514428026256159496511611100921407458879173428305831364201086624999855679838675681396511917687567645535268263180408758759656380538592448777603518616492838839002669006816372819195466695684322275977298484434457499972311899039979697049465179585990743697294685380634673652162012792656173052793544697979264363880790736985126673665033883269634849184830455700966259386349469858555341011422591099904330207193327982034138819158133331666960144634629370704078885930694373791534040219414057693003965646125065768040228853251095227867729294857535193137541998311435306809451267082814980970680882450845502308693896886683982792883259774784578186276098838780303620155928636235208679525913080842834425766499458019599433016315357505238185314772749694534907218290001354234449661060354508983367885728899141511334187126778339488275715942404540679226407792890342387604509438508349106715549314928239428491968611402148860220562081382126050957440401437551269376716579892491368349413821968687217293352612013207351676763066171016193532393813291534215280524074313909263220378321917739419161595811895511788634865824936998146842702539655898802914394918533359192406341668742909154180754037208296772550142402536747144174217148868940607464960243750992184237818394681133633675845435141729412628406796119317662337774365820752739432829988942616862859648028239903874830963891327053437498286197550856146333652562873640377652894152567823111353811545691180506670833030162533410849049927692058542649379411360636422978156670450161041505250313868401118761499222069937990707185825886021600194873614811008494918230629949042708343288995189736451397374641003605463393460404267145259907726474154344001952523733572529850521023217870535659875824042548331287850404402825910646678586415101725626973230902410503349845943637358843549944455767216480345814700532170608199069033266718297112770056571809062164859037787412130461220800265005618122330065712945531544844138647358401162629519154411152665158081502194243849710350966248797763248898471859104071304012446654926980043841162321123286745628976610861652136359108665445601709445922359440482902808981327421017270305861976053320122462470428955609369382981211474134064218704271837000628333286305277919380428693981775303653114642216904484795314086993410157637477062321861645170984379034967650572514057117208871731836965177682402125650073206476609312517441173978221917124768246218504059195617610246898625586387316773128428975326722222033658220484092101421136445059009158766055873449030291116789482603367633718205034980600023263766806915974225345981959270795576496742874055004252830484390769192479684866191036786942885874447406815324647569772156052312419644685619895476677494921709409675471171965073553730386379258766134899830206652323088616240865589601634061649106806906761980773532681252629128488120273611259485363132505864064322896278787025977063083418909823941537998438884783332352084771555793467488423307526830539892519760035382232030476883375171965203491518556357572850050464909187093957921105091341352594468972790948310411848082312263167312484043195129261415544209599295371591325300233849642155814493498815379127584330613512780662496511957184695628780228205948463328229770486842155040325585237876262217428895175956010642174836887552281063308542163733771291138104621394937113700724329223792946671187066037538226525999292293333330238047216944571364132246223164919990919719008485111383432814064750072453320856269702455462599137311038746759739241655013591625722875089383198711146782557781464053851352785721671333224341152580378835779523800082696770500371850888307784711762782903696785005006625020150082491536727059476465682912703436308103644010080126990670864983842739563319390590383125246374286533735673583073065036979341016771482192954045459072599860908154504981096775007526232087382263873092358084950288978709563318710957053360912069127634650439329494483634583285589585702209102320557368622943129610589972431358072196733374360407443077228863116941336833559140550378598219958874198098288765160041567755800047433259348708198813014658149029006023991873179451264243677559335984615458994638683635436569605639896227271889946697814077890188481612975410018394361245050592399413224661320470653347373757177317180955212518622208564911822166167259885346456565216889142616716750200061275073464916850912023305844354776546000158846749446632229878149466436155339186821474176093268929576080936511750757424726035030138877733311694485187441465182240306047392226583171889864873896055296777842952349287597326092802812051907586785362199952393475941753347713650836493592607129567041406047634931076893688352101958563298670986844517402518662831113379163264879724672986136389683497623635907955619102026073763056098530676528281084112407879078491581085589076957157717745588330264893877838166686190179741632700845497818120789809615248338169770368774488497208484225930159121830756921882582180172375440412127437787531498989079372854136838563510079228268353043586899246819016493252333200723511313843407959681019707000126853375988589650902673974897932107198699664565043651319124174052774152205496649927363269342793097118748609723761610846312947913940729986188390554766022210582233451390823809329757372380575434377335759254193424664712030695506573285390278550438270931929305253345066372737017570159197559655931296800817280522913192492076362809897353094771653737840411131618469211201119476699365835593710332409057094984812785147078459883877972937591996030899252571545914243855147006502704707818143976712682110299935799355333166648710134409058368828548486042698402292697987370061920509342204420299691426072077340222415567495900500138416401153497194376661910764826026888711118857426801230159195334258888194564032232375570867751646122975715681972924443488351582771032046258374377426879759464121692527634271650410941075359263513215249130113511451493206403352119580687693002368301348797639959553619680444959392586354635790239000541410718246301082293506657272516189320619792000835504114377436451478071479688605108189070050552089860703575996093702403453175713723332671618034559959534648466764917453002882781371989654300774014519261736933169516178608426057366470202760372779476705954560496616623796647579005605483845129261782021935753357268844863003094081048309113065608247069082962455748881621192398820068089464646603585262281729779522166089751772451933114023380431816548470149307003142232592548195362731356075667515433886516256827704943738349580176569789191883560356838139736776929162781324921272699110163287553415765053539443333800020137948947617232954172300200352019439981559267730825834935450354310237820505019561968110422121337921643103602237560952322635149618368238213317593059189194614721425033208658959725966294839122042915618086690847868776999796820309098430982273032993534278740713342166399248354497494597462737831786523294573095235872319006882221775027187973014143225279096688291625113086954672241485072706224674699423230729632735372378175206439817081260423541476342414652475156162247592663962128445292123314820778177111558132834041299632036022727355566043453496821135567502429264119883576904677165180776820486548719562071318689554724542870713853312846209466493580421826852959475792688568487873953364300048343667327055520062305306299825749321151117410336348615048603637081123958011930390999641901429865736109733871650713756535214854083978274193250750412905083709785201319823988710917578420135528963650129103697778677950607741821384153453482807057681535992000609022368797105201213733865741183056222050623707975255768663963853431201952573845435274000749321154423399559735945257203753514972648323252733178322662337955085158690011506070535897036053048208246694856279857102171311317806736919929094872905232119222876093031653662152299703166087648436449570708067409875502079671156150797266001219689206489158575689144912529235461221893637787463080923386918272268948399842721094388014366467436417989610384656697234961505854227976183735547238977961534279652793130317005592232529830291587967542768444689030855306938185991208841021014617875317536275782384867962195619384705357622958896764352794007220389682412449032584306004241694737941432275617402571646166272711177595209394687316573402868769992341824791445640493152238461086879458964422574191895607532402934169491628774668970791452332497110251952070320818783040947880228845591981401040201724283416514491475823748278655934728541821051559579969206269511000599288488787254998234101682065595617682006013261146168994248361544123150795317290613172345748978789108966994770380797855373299660066787187327518736785413322812035459836544436522573894563702671612255418687811190832663451059153936603140986939994140418275207564720610251163410375224591191212610577412666153439121751492917693695111416325444385498776005586071859340043360627739432276653450596244146924173830582748133070774739143247392760587155426518445994440915556330792066148041781653162638053193521858057317386289077145920089655898691686869734331720189112542777085988588750399913198738388316163123363083694952138925939376420240415960376184104994458952663810651447481675806335137255515239650475237809640337087943302391520018616043353786122302971186690431146676298703290192414662816518104299942273953296894210303314692385329268831759520350246771720279060771586141300155980878861523278710907965569659692334855680300783031601380638021761413299894793193373147208216541985153941360458146401469283581358612844585042160873134751491917669492477108444502001116882406682865806566592972221098308184824973672566133402719823497680483108668882760980906184596267131621124373104748973694934913810478973968265239777294011932549309518435348102218797742599531124642222113582389233923595697390305029759085380112060468590688255366228045097133737545646542887442250679236907256956740168751877632454573537790841591258918977887356132249724532802368318431150217123476440175565410558920421866618181050189495536258539858754616692031127565745744537471403776414612113072945623144077483190828114111188576138764695543601573087947492575742317772692416216237942399923125504206165562598286868057567854488409310939549602307200743018849134702057341360012632248823499649978249282363455632946000412422682575211404340829909632443746643090404724785459310922847133233291710327532027022255494944655531331376636434624740167669692303641219161489452977267707712425318229069635939303754215061907154483311858962489353085878642245874239911232892850307916216811014194362590891139823502714637671410730690512389925905326837117041196275145842805493465905801403941836978418596318315904306677850009396341641525946497859430249097556036848387392937114025914844139399644198372962269009040800969033856007559867787054800357818901490521405907576758546071319072199083223514626607508449442196225393884980310573214325179878890304097980823381853517658986574032710857318387462038118551437356120390495740317529758542021269682218704981990688255565945342165660742878719530706724110620170532946816465884980104464583318257237538620984985734854903772443908372023049224203517751108137107927230322195259518440271596152273846149574162443749084741341002631502989495858136926088815857654241830198300352757718997027665687997309268223456447210354260491445692176537506934920776842042710675595509902691915646613708025112075402762672245120365537704619215872044912744074086705984750330805327902666986210721123644621981882135377649385994872700591343355449153998379676824338785404794417940675625620938259727637779798557865861873179143022387793089644397494357328091777665170373102603027480524214580733852927851683307307197726348313823277853652905893969995392058658668947163929431907768539947370972977451322960416498141448329897926772174074280848801638036373820614778300264625355818535275256046592895666940591981526959718005904827127368175639909972687269039217295898724039384540219715265159692761115762740168896318973117000801367041530557521719035116993835196992406849380340388254925277229661522006693828194844671576447446870546958637933581779579066372294348940478692314291436510678201461712724990833375002759690147314567896140014684627051645504332644568569076698034981279805532192832464054433059995700642210949594280168568666825983595291846775079047881255568068378598540750139854933912882503156698791644877888138358063492412248445455071338080839310800485880854108310370590856556896030523797524146490445489179409192245796241864506635163930272156361033096321760250142218104080944573455862375809635888191625242572503960689718850719622677996130651810707120350599659897577121085922835658005734171251247757809668325527405169107407538879249451171870684667206727191446574200110853692102327852034374464154804024382895798319528044948917630585371876403292784545072356439359801292429910585563722408209094070860663010113915741610839109586053688309397338775585299187814438269439621498364181533089926893456858121353601765258137754290653959912936462630870638499197676842765016391971720743773813030042591068350588528135313959796998932133594457242035815156571023258265461251642173192161630105405578133279817919015122511417554772278030546958666593874269732889370008894706802681213613614989190452465822971142761722423135433272405045536946753451960536670703491122678058920245341232391300543663624007444769453033167645496120344249907413670950374222606248551090471584009937915638326205324262809319907952276422002711127165804938957822742901513415522851148786618918188829473605699330186491870477731805747740634523888334999715565371061248255679575952342064707742449699651912588656563474945766344391922907579019350432813955753284736502082883094099886917320358424966032653263676028902156591041187578590091717023421101996220020572072400914672428263676006336913559439862071648129605226823505794509703112247399747331281275626884040817620673394181829940948180988671604714233165215477492213856997702550696440733450610926790026644439489923511582018539781785817340823993139939764588464813337527338460105005398636911968211451687213014965597825852158725781003370815943357719123952324491462556032089151865022823023344658295004011295394398868495344350959232600762046195388545844540344371639427601160965440999455968300544953501644527100226607498249521824141064865650943345991349659562092935747478628042754630357494949936813958993584656531427255740061564701937621054328963299658924680408792153914072176617601312419269972530673658535527161240286490112866280764660202654175501924352893771501266904227027067508017517941295891008197069077985660166514421212378984638941429247110462725789747318383919488942746845091849097907356281842579848015433968833916103686946883559552430853416439637509673809762971679024927882478959079631498835351233669805298661320156960392118057066971801986485382784223244654201594520001324019606627673570606979047684530775310430596615098561235337832327907714771704478038801289573089299840785346151883547623340758978900965701653594547933099760932662172104847819711075576087923736957364348624747178799079876828632333562131070241168937351282535232883255049128567406678931402920102040068237544528548810210572849309626712320128280492258068882733273711914283210367627446878586562085846558749168084657531429957293602147193267976546138866233353182458435445037705560943450906259896441654523386426099974520418460573253422132407987763539372918400160489085417163512694781913154408940486907542699456843053877246167219280538963449381876348478683565322723593741670051156830250971250671408731757553733883539618549292833040627945878711215869408204880105507503601667637840799461012701457051501241334916034811226676705304199216645463778022924253335915347375336548203113744905483365840037246710536047366828055564620962440293684877983464646559681854098373838522736574874032557923539350930538913133932009398574079407067598350927797885504126012797011821737156830254447604820343594439750944065263940131867243170209719472956581250929665747322554113352071984077404591709201130614502880519101401247770670757511578268568409699002273573787298198677900484498489697953348523678402937001113556695981795992052042216079185224516490990967140409844782567890972437538389775806667589119595658554529977404014525695706097367946251064345176646651500842787680991078789092338198422262407850030772800744865572834197284924894556310773428196380300220038657507234375062599074059179672461859140065539826894456987450376541505221027125205737545857903653630235115658424759170341444206736318143935404074860198997818757608766472125325832493302037023155671890658741072056979541814102849370695771285122766481620336591607071955742485667342673379826673214727092861772432523582961815337297412419473924976027554680859225003417999519486189104139292706740339701834031978582456251287274571212435254177916464005625899672048550755116782009020563050986033006942145547242476442435534004757340194690609593492211372475757272564315016449831473657464493353478386292384211644190356588684695845629850066571436027248320094690664972716048656197543422710740110096307037125453803077237994600178612548142078854410921200510608073156548635014445045760697279401097891686217109428539593090852163493923479223671101035794823458188373191436791727788769776140887419956781476978205378181438508903474974167046183436049472335289614882158701049334664199799533022597673775746857680083045512367903995187229932556081372390751175069069271173116741408986746738835803506009165142921448685505845211860303974672722513031281876152280598184626409156339612461011262355986355126496399097348462090717631511065600580063996255968800525265417684683442621608211285944190994488074917661196006877642395811891043331907333898730552638588252675427661740412079413047443013880842960889656197757356523129615666713429332459019771211103953467770796245677610559621795654425621110764164705854157766969895238838295816819137024580852207786722871268793498425728371225545207537045633178608808811976047507362258414067615963873479697238708483977348129248224077864228769760159376634479375204743516961380638865845812043021616985411292377433754453164396001417527323765967377483401529866009584178167627425968406601696382244895866866986572503927557265366496148763559638760873216102655162455851607607625751067469489363497942072582214240240550455876197870887551767302111870529789874973506981335953052160323693156458269978924823344158643739539775047072474489494415771296889846756688574416631691966155596197056608946061727485175791294702129381982651457977828360826958313480224602725139894229846486051043109860090843617162653421835244205152065937445732947778488641025429596010867113307549487687969903608115239954044190114640480959835251549805621887900377559788404013500248749393360840417381405444949917070648743622536188092245577747579863637205698990127016147449969101604788112054306756426660314263359032258707932104540746575112210436876033782322203704385602162481773979671010076856211099592213615783344666246050689183853071431505470145381503291635082049019048409871445373326276186129030206224818681792615026470651077368210876141757702158620057191117816910630204875723985573237149884156033426193472091261606348373257496386281475871038073939484622098991440671164494903637919976335474624835095785192362239826146053092770138588541219237401709855375949939966732781955605564241113314678685558761208273795425367371411240041872604297283856085456133138813483382982767773229093574026787518302693385163047436334027691780779823549167018340268717327356894052598147105026479239607250760651998724940015333703821122012051259538304170838137665885439945276621536571451893730299972398868519454377038144610223088470139042694665818290480841658170137616293194336730532146516333398831188375108120363942872180101833650313749145379352521550149899604111627132797271593052083044535009492058488546410009683143588663617902830379647150773692460110173380753658983220362168833748550307115793224738773254233668253022036545896852498349726258888187250569298952355933597389257390641133128598126291963944791003667628501684127839941726347354324522260871181555934111027783183161051346133892738611639117498279271128128876441070355314602107285406385015614960219630046238517480677406188400026187917104342392041741282772797417730962464495352307547953354808934885332742428190667703950066952689033727663918231612504071385502175302581924262524928124719555530177640616020076031087731341429130532989348269055848660920240918653022268099672459417742656222075708954944605773036236145107048583730101224519980771669812174119466847209408959400461980222200637019663739953885549646954380109711692173532461472065075835986361900039310381799661848094144036889054331589963943327413644248637050324428804096337650810206027600916126996853629098316926800639315379122463471879710587413564674939686396026406688940642557345946734438661714245721648644075272557956260725242928899460096001395353446020453710777833016227739107791000108745576200326571688395567085451240314740531547464917976941062918783716603256273207368594939607047909387206199915991001053903466888486018000494028919025872863885224700521513150481405101757882598811860205243817191507059653725639458910715494741490699884666135598780659855868696202050336308564715155995092826664076188776579085712226521453229738783968862352383243438771386814195046325351647719562511345324685011309903679586546979061106327241468946192755952035904309454648595520551378920062210899888274315947387388601979011103974790236782627936503455793808845913288242053234469295753771237132179399819558514245514032940212852150083399992051941684375905740958727580860983193353059601849875759299409322297360118338604638808053510361206064326671416514115660115601173016783517012195884469646378012296795942685772993310992412170992030973936485558026367423679245762990568599739052004116310519617186822168564669886393902611037037127323105348104798845755536126506792132615758397678157693267722790893006569615397405048211224250244593494955397312407718606495716705326167120532827665142824655135952159457028246229255165847455137861969114302480471765512199726282442125589947683710256232647720808199251274594562887730543225366856597983583838776174518778691743770057007072686180018411621699353545354858714201251908441112829216815669863956998604846233042848727915065169988987356280856625101548316845853755844071755110345286147484533867493204695793341703515445105920391996546855533581271680461912372902222025552563704136277213716220003981809709258353712458731999088900251027152547591867173947850576186070615879801694016465563889905333558969216825326424249074471333544390058123133837414717859364575261413780070795383759335115702691439150284024703757536131893110376366309811630586002613249632090903907710223967090018953417782492519688161227993158805284971315890737627984984182441877362091178463517211577874436808551507107876265039771431995896720264354840716252992906192652846350734758703973443573376537596517736631128832506397236554345016621054433841809492178650665304192956212903320420265054163231987952958709929684086716203271923121066730581384464683803494636918485860107588734943234076206543173393952502454016555890249010554354973238354946995801212683500024852078570074756416639922359780235944238402106913906217503190440255875185587067684674308658668891517904011889134481381470613468556818759858978747301218781289627280287177615715159010637095211565288417209188892092905153904845910342897725713632166507947766078140162843136518366801447395250131556282582457919156684338928591070982779709797435884188309641792418636607040788349181610272020690260005980440190690476088391792796275435558129138455543190984076835866026648162637169637458140904162560837433768580681843335257201247238102668627063073885589352961650152428366497063163579287500613530088097034947737167709549850434865924523156179357285070630796651777588791482602906955583455679188962503321120195486065121940777057274399908714219090995934646987034740898490244828197980720530250919341900208151519954037631361459710324828982591483140126848465205153061242241491098966387154308201847755352974308628595502494644276378265909395041984224035945785586094272548085957255280250329026451777905804978548721896706036411209791800356273354004176199992454410051209280939643346059069478148128374744398493888284453200948582702826853383371155064133746867453099354986916887478765429702919487263275995508245942719013492343488088553984677583601053798794108208261704915567779331448881808174976264269410822761195031146266966020267787790567537519852926102728884944268147205444976998241070091022329718818792317101160179126281300394685520402232119835435244607784422139700121470868583308430059544297607659567922465565274959159263425389853710770168560870454438467983428647518093633613704550214766692297443296527125470114869927573514640925775715373322043804659210548616850326451810686755921716501883174854620553983797163649996602661200070311481130649513711168506013865594731297404574149498410517089633427821697903153080924504615908233779244759505645900450198074503936682159104407352042131011498920260935854172123369932013349593894647800046296114870705536925131547670845891928793718239403147955532335174280543286866904166160502245629213313186548084409903554572927846123126267270485055290156431557129738713188316404652350910840602282822338287598405132469991860685246766075973002794044128296682507923301431627908745735502218628800543926832868454127258846377664906948419538546296882805543057571021841393652989174569584475305923249053055859419495100779903961261519373258354019005093275065366573625617002948443167534652351944946569806231257521227951510259353604565848127710179050081198500464736947130116261409426681757311551251526112594118464130835890225737616391979663440730911064528352672131330145116526725636551643244315100351295030497353569838191436951713404986173544277754660264086983151408225524202794695221228550152900875573817914551903537057246687558566517423430263003908318399522001770433817366762461256183339205396938312726147960918052243369532211301043708834586743579148302187428071295875963658117225180889494680926483652880566726255167247972125004643383166114400679811258120400676189990140588301033673223874450189245810877904119291565151412029158150895349989370402201126940046013235174783862924781380141391555725530362105504161093560696555004259019012873458078321573384669240278211673187154721126920807895382860155012298773032927199642087970188399897159857875145936207705596895458751455602922388837824520843767462464736354120872868966157212582580446864739728058494889419052141739091576182648231990649996406123864510359844768497895633601000668350737448621727235018165903411063193858666167883880776731122697469960689853303271198058076600681266386522596575985644238692208930949002433632184767514517588662630407405692893117975225668628466113296313601966788059312582138879117648755128478675158552787722331845203933629273631872032536658088736460355193046251948907374525128506842223556118227111464069088312408988141907220659788880814659842910362589054791819920717994858102307558430757682531538463167233187416239764382984124284781469791680599201170000196020060604153567987015271193182948550034942032951013535394802918987750492695458079988228821336183885509109549002164908398696510134383318099476825228293019302039344090733773810022159913812024987383816070365719449000934665444156007874317707568534838226471858135622697098518244917497109632979694857905047327495194709821347760684664116791925278874197197758627443756185899528750639469120705985491061856429481577245876025206776180463157464589079854148486483901145257923732654465772401637743502233445021902737174322844150170017642450246616195013661139901421869753829011476180458058294512498400352502968890604858487495250536379179795929489694050829998734070796110454120846077424701730114643477148816683732663438311654231568397218727115449117604298438562332641860820118489876201785716485904820258871029165838491794467882308468736